diff options
-rw-r--r-- | Zotlabs/Daemon/Expire.php | 2 | ||||
-rw-r--r-- | Zotlabs/Lib/ThreadItem.php | 2 | ||||
-rw-r--r-- | Zotlabs/Module/Cloud.php | 12 | ||||
-rw-r--r-- | Zotlabs/Module/Dav.php | 2 | ||||
-rw-r--r-- | Zotlabs/Module/Dreport.php | 1 | ||||
-rw-r--r-- | Zotlabs/Module/Item.php | 22 | ||||
-rw-r--r-- | Zotlabs/Module/New_channel.php | 4 | ||||
-rw-r--r-- | Zotlabs/Module/Profile_photo.php | 2 | ||||
-rw-r--r-- | Zotlabs/Module/Tagger.php | 11 | ||||
-rw-r--r-- | Zotlabs/Storage/Directory.php | 286 | ||||
-rw-r--r-- | include/bb2diaspora.php | 4 | ||||
-rw-r--r-- | include/feedutils.php | 4 | ||||
-rwxr-xr-x | include/items.php | 33 | ||||
-rw-r--r-- | include/nav.php | 13 | ||||
-rw-r--r-- | include/reddav.php | 299 | ||||
-rw-r--r-- | include/spam.php | 35 | ||||
-rw-r--r-- | include/text.php | 16 | ||||
-rw-r--r-- | include/widgets.php | 26 | ||||
-rw-r--r-- | util/hmessages.po | 2539 | ||||
-rw-r--r-- | view/theme/redbasic/js/redbasic.js | 4 | ||||
-rw-r--r-- | view/tpl/dreport.tpl | 9 | ||||
-rw-r--r-- | view/tpl/force_image_reload.tpl | 72 |
22 files changed, 1724 insertions, 1674 deletions
diff --git a/Zotlabs/Daemon/Expire.php b/Zotlabs/Daemon/Expire.php index 0ba83b240..215513e87 100644 --- a/Zotlabs/Daemon/Expire.php +++ b/Zotlabs/Daemon/Expire.php @@ -38,7 +38,7 @@ class Expire { logger('site_expire: ' . $site_expire); - $r = q("SELECT channel_id, channel_address, channel_pageflags, channel_expire_days from channel where true"); + $r = q("SELECT channel_id, channel_system, channel_address, channel_expire_days from channel where true"); if ($r) { foreach ($r as $rr) { diff --git a/Zotlabs/Lib/ThreadItem.php b/Zotlabs/Lib/ThreadItem.php index 6625b7b52..638afeb6b 100644 --- a/Zotlabs/Lib/ThreadItem.php +++ b/Zotlabs/Lib/ThreadItem.php @@ -248,7 +248,7 @@ class ThreadItem { $has_bookmarks = false; if(is_array($item['term'])) { foreach($item['term'] as $t) { - if(!UNO && $t['type'] == TERM_BOOKMARK) + if(!UNO && $t['ttype'] == TERM_BOOKMARK) $has_bookmarks = true; } } diff --git a/Zotlabs/Module/Cloud.php b/Zotlabs/Module/Cloud.php index 833b1b493..9845c5658 100644 --- a/Zotlabs/Module/Cloud.php +++ b/Zotlabs/Module/Cloud.php @@ -23,7 +23,6 @@ require_once('vendor/autoload.php'); class Cloud extends \Zotlabs\Web\Controller { function init() { - require_once('include/reddav.php'); if (! is_dir('store')) os_mkdir('store', STORAGE_DEFAULT_PERMISSIONS, false); @@ -79,17 +78,6 @@ class Cloud extends \Zotlabs\Web\Controller { $is_readable = false; - if($_SERVER['REQUEST_METHOD'] === 'GET') { - try { - $x = RedFileData('/' . \App::$cmd, $auth); - } - catch(\Exception $e) { - if($e instanceof Sabre\DAV\Exception\Forbidden) { - http_status_exit(401, 'Permission denied.'); - } - } - } - // provide a directory view for the cloud in Hubzilla $browser = new \Zotlabs\Storage\Browser($auth); $auth->setBrowserPlugin($browser); diff --git a/Zotlabs/Module/Dav.php b/Zotlabs/Module/Dav.php index 6528e0271..9b4b576c8 100644 --- a/Zotlabs/Module/Dav.php +++ b/Zotlabs/Module/Dav.php @@ -44,8 +44,6 @@ class Dav extends \Zotlabs\Web\Controller { } } - require_once('include/reddav.php'); - if (! is_dir('store')) os_mkdir('store', STORAGE_DEFAULT_PERMISSIONS, false); diff --git a/Zotlabs/Module/Dreport.php b/Zotlabs/Module/Dreport.php index 17ed6515e..d2933b464 100644 --- a/Zotlabs/Module/Dreport.php +++ b/Zotlabs/Module/Dreport.php @@ -146,6 +146,7 @@ class Dreport extends \Zotlabs\Web\Controller { '$title' => sprintf( t('Delivery report for %1$s'),substr($mid,0,32)) . '...', '$table' => $table, '$mid' => urlencode($mid), + '$options' => t('Options'), '$push' => t('Redeliver'), '$entries' => $entries )); diff --git a/Zotlabs/Module/Item.php b/Zotlabs/Module/Item.php index 369dd3948..58d39da83 100644 --- a/Zotlabs/Module/Item.php +++ b/Zotlabs/Module/Item.php @@ -93,7 +93,7 @@ class Item extends \Zotlabs\Web\Controller { $origin = (($api_source && array_key_exists('origin',$_REQUEST)) ? intval($_REQUEST['origin']) : 1); - // To represent message-ids on other networks - this will create an item_id record + // To represent message-ids on other networks - this will create an iconfig record $namespace = (($api_source && array_key_exists('namespace',$_REQUEST)) ? strip_tags($_REQUEST['namespace']) : ''); $remote_id = (($api_source && array_key_exists('remote_id',$_REQUEST)) ? strip_tags($_REQUEST['remote_id']) : ''); @@ -535,7 +535,7 @@ class Item extends \Zotlabs\Web\Controller { } /** - * fix naked links by passing through a callback to see if this is a red site + * fix naked links by passing through a callback to see if this is a hubzilla site * (already known to us) which will get a zrl, otherwise link with url, add bookmark tag to both. * First protect any url inside certain bbcode tags so we don't double link it. */ @@ -834,21 +834,23 @@ class Item extends \Zotlabs\Web\Controller { if($orig_post) $datarray['edit'] = true; + // suppress duplicates, *unless* you're editing an existing post. This could get picked up + // as a duplicate if you're editing it very soon after posting it initially and you edited + // some attribute besides the content, such as title or categories. + if(feature_enabled($profile_uid,'suppress_duplicates') && (! $orig_post)) { - $z = q("select created from item where uid = %d and body = '%s'", + $z = q("select created from item where uid = %d and created > %s - INTERVAL %s and body = '%s' limit 1", intval($profile_uid), + db_utcnow(), + db_quoteinterval('2 MINUTE'), dbesc($body) ); if($z) { - foreach($z as $zz) { - if($zz['created'] > datetime_convert('UTC','UTC', 'now - 2 minutes')) { - $datarray['cancel'] = 1; - notice( t('Duplicate post suppressed.') . EOL); - logger('Duplicate post. Faking plugin cancel.'); - } - } + $datarray['cancel'] = 1; + notice( t('Duplicate post suppressed.') . EOL); + logger('Duplicate post. Faking plugin cancel.'); } } diff --git a/Zotlabs/Module/New_channel.php b/Zotlabs/Module/New_channel.php index 1dcf84fb0..26883b6e2 100644 --- a/Zotlabs/Module/New_channel.php +++ b/Zotlabs/Module/New_channel.php @@ -125,9 +125,9 @@ class New_channel extends \Zotlabs\Web\Controller { } } - $name = array('name', t('Name or caption'), ((x($_REQUEST,'name')) ? $_REQUEST['name'] : ''), t('Examples: "Bob Jameson", "Lisa and her Horses", "Soccer", "Aviation Group"')); + $name = array('name', t('Name or caption'), ((x($_REQUEST,'name')) ? $_REQUEST['name'] : ''), t('Examples: "Bob Jameson", "Lisa and her Horses", "Soccer", "Aviation Group"'), "*"); $nickhub = '@' . \App::get_hostname(); - $nickname = array('nickname', t('Choose a short nickname'), ((x($_REQUEST,'nickname')) ? $_REQUEST['nickname'] : ''), sprintf( t('Your nickname will be used to create an easy to remember channel address e.g. nickname%s'), $nickhub)); + $nickname = array('nickname', t('Choose a short nickname'), ((x($_REQUEST,'nickname')) ? $_REQUEST['nickname'] : ''), sprintf( t('Your nickname will be used to create an easy to remember channel address e.g. nickname%s'), $nickhub), "*"); $privacy_role = ((x($_REQUEST,'permissions_role')) ? $_REQUEST['permissions_role'] : "" ); $role = array('permissions_role' , t('Channel role and privacy'), ($privacy_role) ? $privacy_role : 'social', t('Select a channel role with your privacy requirements.') . ' <a href="help/roles" target="_blank">' . t('Read more about roles') . '</a>',get_roles()); diff --git a/Zotlabs/Module/Profile_photo.php b/Zotlabs/Module/Profile_photo.php index 9359b80f8..f459f7deb 100644 --- a/Zotlabs/Module/Profile_photo.php +++ b/Zotlabs/Module/Profile_photo.php @@ -180,6 +180,8 @@ class Profile_photo extends \Zotlabs\Web\Controller { dbesc(datetime_convert()), dbesc($channel['xchan_hash']) ); + // Similarly, tell the nav bar to bypass the cache and update the avater image. + $_SESSION['reload_avatar'] = true; info( t('Shift-reload the page or clear browser cache if the new photo does not display immediately.') . EOL); diff --git a/Zotlabs/Module/Tagger.php b/Zotlabs/Module/Tagger.php index 0a46cf56d..25f518d53 100644 --- a/Zotlabs/Module/Tagger.php +++ b/Zotlabs/Module/Tagger.php @@ -129,9 +129,14 @@ class Tagger extends \Zotlabs\Web\Controller { store_item_tag($item['uid'],$item['id'],TERM_OBJ_POST,TERM_COMMUNITYTAG,$term,$tagid); $ret = post_activity_item($arr); - - if($ret['success']) - \Zotlabs\Daemon\Master::Summon(array('Notifier','tag',$ret['activity']['id'])); + + if($ret['success']) { + build_sync_packet(local_channel(), + [ + 'item' => [ encode_item($ret['activity'],true) ] + ] + ); + } killme(); diff --git a/Zotlabs/Storage/Directory.php b/Zotlabs/Storage/Directory.php index 06ae90a5f..b524b3cab 100644 --- a/Zotlabs/Storage/Directory.php +++ b/Zotlabs/Storage/Directory.php @@ -91,7 +91,7 @@ class Directory extends DAV\Node implements DAV\ICollection, DAV\IQuota { throw new DAV\Exception\Forbidden('Permission denied.'); } - $contents = RedCollectionData($this->red_path, $this->auth); + $contents = $this->CollectionData($this->red_path, $this->auth); return $contents; } @@ -119,7 +119,7 @@ class Directory extends DAV\Node implements DAV\ICollection, DAV\IQuota { return new Directory('/' . $modulename, $this->auth); } - $x = RedFileData($this->ext_path . '/' . $name, $this->auth); + $x = $this->FileData($this->ext_path . '/' . $name, $this->auth); if ($x) { return $x; } @@ -206,6 +206,8 @@ class Directory extends DAV\Node implements DAV\ICollection, DAV\IQuota { throw new DAV\Exception\Forbidden('Permission denied.'); } + require_once('include/attach.php'); + $mimetype = z_mime_content_type($name); $c = q("SELECT * FROM channel WHERE channel_id = %d AND channel_removed = 0 LIMIT 1", @@ -431,8 +433,8 @@ class Directory extends DAV\Node implements DAV\ICollection, DAV\IQuota { return true; } - $x = RedFileData($this->ext_path . '/' . $name, $this->auth, true); - //logger('RedFileData returns: ' . print_r($x, true), LOGGER_DATA); + $x = $this->FileData($this->ext_path . '/' . $name, $this->auth, true); + //logger('FileData returns: ' . print_r($x, true), LOGGER_DATA); if ($x) return true; @@ -565,4 +567,280 @@ class Directory extends DAV\Node implements DAV\ICollection, DAV\IQuota { $free ); } + + + /** + * @brief Array with all Directory and File DAV\Node items for the given path. + * + * + * @param string $file path to a directory + * @param \Zotlabs\Storage\BasicAuth &$auth + * @returns null|array \Sabre\DAV\INode[] + * @throw \Sabre\DAV\Exception\Forbidden + * @throw \Sabre\DAV\Exception\NotFound + */ + + function CollectionData($file, &$auth) { + $ret = array(); + + $x = strpos($file, '/cloud'); + if ($x === 0) { + $file = substr($file, 6); + } + + // return a list of channel if we are not inside a channel + if ((! $file) || ($file === '/')) { + return $this->ChannelList($auth); + } + + $file = trim($file, '/'); + $path_arr = explode('/', $file); + + if (! $path_arr) + return null; + + $channel_name = $path_arr[0]; + + $r = q("SELECT channel_id FROM channel WHERE channel_address = '%s' LIMIT 1", + dbesc($channel_name) + ); + + if (! $r) + return null; + + $channel_id = $r[0]['channel_id']; + $perms = permissions_sql($channel_id); + + $auth->owner_id = $channel_id; + + $path = '/' . $channel_name; + + $folder = ''; + $errors = false; + $permission_error = false; + + for ($x = 1; $x < count($path_arr); $x++) { + $r = q("SELECT id, hash, filename, flags, is_dir FROM attach WHERE folder = '%s' AND filename = '%s' AND uid = %d AND is_dir != 0 $perms LIMIT 1", + dbesc($folder), + dbesc($path_arr[$x]), + intval($channel_id) + ); + if (! $r) { + // path wasn't found. Try without permissions to see if it was the result of permissions. + $errors = true; + $r = q("select id, hash, filename, flags, is_dir from attach where folder = '%s' and filename = '%s' and uid = %d and is_dir != 0 limit 1", + dbesc($folder), + basename($path_arr[$x]), + intval($channel_id) + ); + if ($r) { + $permission_error = true; + } + break; + } + + if ($r && intval($r[0]['is_dir'])) { + $folder = $r[0]['hash']; + $path = $path . '/' . $r[0]['filename']; + } + } + + if ($errors) { + if ($permission_error) { + throw new DAV\Exception\Forbidden('Permission denied.'); + } + else { + throw new DAV\Exception\NotFound('A component of the request file path could not be found.'); + } + } + + // This should no longer be needed since we just returned errors for paths not found + if ($path !== '/' . $file) { + logger("Path mismatch: $path !== /$file"); + return NULL; + } + if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) { + $prefix = 'DISTINCT ON (filename)'; + $suffix = 'ORDER BY filename'; + } + else { + $prefix = ''; + $suffix = 'GROUP BY filename'; + } + $r = q("select $prefix id, uid, hash, filename, filetype, filesize, revision, folder, flags, is_dir, created, edited from attach where folder = '%s' and uid = %d $perms $suffix", + dbesc($folder), + intval($channel_id) + ); + + foreach ($r as $rr) { + //logger('filename: ' . $rr['filename'], LOGGER_DEBUG); + if (intval($rr['is_dir'])) { + $ret[] = new Directory($path . '/' . $rr['filename'], $auth); + } + else { + $ret[] = new File($path . '/' . $rr['filename'], $rr, $auth); + } + } + + return $ret; + } + + + /** + * @brief Returns an array with viewable channels. + * + * Get a list of Directory objects with all the channels where the visitor + * has <b>view_storage</b> perms. + * + * + * @param BasicAuth &$auth + * @return array Directory[] + */ + + function ChannelList(&$auth) { + $ret = array(); + + $r = q("SELECT channel_id, channel_address FROM channel WHERE channel_removed = 0 + AND channel_system = 0 AND NOT (channel_pageflags & %d)>0", + intval(PAGE_HIDDEN) + ); + + if ($r) { + foreach ($r as $rr) { + if (perm_is_allowed($rr['channel_id'], $auth->observer, 'view_storage')) { + logger('found channel: /cloud/' . $rr['channel_address'], LOGGER_DATA); + // @todo can't we drop '/cloud'? It gets stripped off anyway in RedDirectory + $ret[] = new Directory('/cloud/' . $rr['channel_address'], $auth); + } + } + } + return $ret; + } + + + /** + * @brief + * + * + * @param string $file + * path to file or directory + * @param BasicAuth &$auth + * @param boolean $test (optional) enable test mode + * @return File|Directory|boolean|null + * @throw \Sabre\DAV\Exception\Forbidden + */ + + function FileData($file, &$auth, $test = false) { + logger($file . (($test) ? ' (test mode) ' : ''), LOGGER_DATA); + + $x = strpos($file, '/cloud'); + if ($x === 0) { + $file = substr($file, 6); + } + else { + $x = strpos($file,'/dav'); + if($x === 0) + $file = substr($file,4); + } + + + if ((! $file) || ($file === '/')) { + return new Directory('/', $auth); + } + + $file = trim($file, '/'); + + $path_arr = explode('/', $file); + + if (! $path_arr) + return null; + + $channel_name = $path_arr[0]; + + $r = q("select channel_id from channel where channel_address = '%s' limit 1", + dbesc($channel_name) + ); + + if (! $r) + return null; + + $channel_id = $r[0]['channel_id']; + + $path = '/' . $channel_name; + + $auth->owner_id = $channel_id; + + $permission_error = false; + + $folder = ''; + + require_once('include/security.php'); + $perms = permissions_sql($channel_id); + + $errors = false; + + for ($x = 1; $x < count($path_arr); $x++) { + $r = q("select id, hash, filename, flags, is_dir from attach where folder = '%s' and filename = '%s' and uid = %d and is_dir != 0 $perms", + dbesc($folder), + dbesc($path_arr[$x]), + intval($channel_id) + ); + + if ($r && intval($r[0]['is_dir'])) { + $folder = $r[0]['hash']; + $path = $path . '/' . $r[0]['filename']; + } + if (! $r) { + $r = q("select id, uid, hash, filename, filetype, filesize, revision, folder, flags, is_dir, os_storage, created, edited from attach + where folder = '%s' and filename = '%s' and uid = %d $perms order by filename limit 1", + dbesc($folder), + dbesc(basename($file)), + intval($channel_id) + ); + } + if (! $r) { + $errors = true; + $r = q("select id, uid, hash, filename, filetype, filesize, revision, folder, flags, is_dir, os_storage, created, edited from attach + where folder = '%s' and filename = '%s' and uid = %d order by filename limit 1", + dbesc($folder), + dbesc(basename($file)), + intval($channel_id) + ); + if ($r) + $permission_error = true; + } + } + + if ($path === '/' . $file) { + if ($test) + return true; + // final component was a directory. + return new Directory($file, $auth); + } + + if ($errors) { + logger('not found ' . $file); + if ($test) + return false; + if ($permission_error) { + logger('permission error ' . $file); + throw new DAV\Exception\Forbidden('Permission denied.'); + } + return; + } + + if ($r) { + if ($test) + return true; + + if (intval($r[0]['is_dir'])) { + return new Directory($path . '/' . $r[0]['filename'], $auth); + } + else { + return new File($path . '/' . $r[0]['filename'], $r[0], $auth); + } + } + return false; + } + } diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php index c7d0e56b1..16f67dc4a 100644 --- a/include/bb2diaspora.php +++ b/include/bb2diaspora.php @@ -302,11 +302,11 @@ function bb2diaspora_itemwallwall(&$item) { } } - if(($wallwall) && (is_array($item['author'])) && $item['author']['xchan_url'] && $item['author']['xchan_name'] && $item['author']['xchan_photo_m']) { + if(($wallwall) && (is_array($item['author'])) && $item['author']['xchan_url'] && $item['author']['xchan_name'] && $item['author']['xchan_photo_s']) { logger('bb2diaspora_itemwallwall: wall to wall post',LOGGER_DEBUG); // post will come across with the owner's identity. Throw a preamble onto the post to indicate the true author. $item['body'] = "\n\n" - . '[img]' . $item['author']['xchan_photo_m'] . '[/img]' + . '[img]' . $item['author']['xchan_photo_s'] . '[/img]' . '[url=' . $item['author']['xchan_url'] . ']' . $item['author']['xchan_name'] . '[/url]' . "\n\n" . $item['body']; } diff --git a/include/feedutils.php b/include/feedutils.php index 685b2f982..01ec0687e 100644 --- a/include/feedutils.php +++ b/include/feedutils.php @@ -393,7 +393,7 @@ function get_atom_elements($feed, $item, &$author) { $terms = array(); $terms[] = array( 'otype' => TERM_OBJ_POST, - 'type' => TERM_BOOKMARK, + 'ttype' => TERM_BOOKMARK, 'url' => $res['plink'], 'term' => $res['title'], ); @@ -403,7 +403,7 @@ function get_atom_elements($feed, $item, &$author) { $terms = array(); $terms[] = array( 'otype' => TERM_OBJ_POST, - 'type' => TERM_BOOKMARK, + 'ttype' => TERM_BOOKMARK, 'url' => $res['plink'], 'term' => $res['plink'], ); diff --git a/include/items.php b/include/items.php index 84683273d..72f0896ad 100755 --- a/include/items.php +++ b/include/items.php @@ -449,11 +449,7 @@ function post_activity_item($arr) { call_hooks('post_local_end', $arr); Zotlabs\Daemon\Master::Summon(array('Notifier','activity',$post_id)); $ret['success'] = true; - $r = q("select * from item where id = %d limit 1", - intval($post_id) - ); - if($r) - $ret['activity'] = $r[0]; + $ret['activity'] = $post['item']; } return $ret; @@ -3290,15 +3286,17 @@ function item_expire($uid,$days) { $item_normal = item_normal(); - $r = q("SELECT * FROM `item` - WHERE `uid` = %d - AND `created` < %s - INTERVAL %s - AND `id` = `parent` - $sql_extra + $r = q("SELECT id FROM item + WHERE uid = %d + AND created < %s - INTERVAL %s AND item_retained = 0 - $item_normal LIMIT $expire_limit ", + AND item_thread_top = 1 + AND resource_type = '' + AND item_starred = 0 + $sql_extra $item_normal LIMIT $expire_limit ", intval($uid), - db_utcnow(), db_quoteinterval(intval($days).' DAY') + db_utcnow(), + db_quoteinterval(intval($days).' DAY') ); if(! $r) @@ -3316,17 +3314,6 @@ function item_expire($uid,$days) { continue; } - // Only expire posts, not photos and photo comments - - if($item['resource_type'] === 'photo') { - retain_item($item['id']); - continue; - } - if(intval($item['item_starred'])) { - retain_item($item['id']); - continue; - } - drop_item($item['id'],false); } diff --git a/include/nav.php b/include/nav.php index 6a79b6530..1fb0e98dc 100644 --- a/include/nav.php +++ b/include/nav.php @@ -255,6 +255,19 @@ $powered_by = ''; '$pleasewait' => t('Please wait...') )); + + if(x($_SESSION, 'reload_avatar') && $observer) { + // The avatar has been changed on the server but the browser doesn't know that, + // force the browser to reload the image from the server instead of its cache. + $tpl = get_markup_template('force_image_reload.tpl'); + + App::$page['nav'] .= replace_macros($tpl, array( + '$imgUrl' => $observer['xchan_photo_m'] + )); + unset($_SESSION['reload_avatar']); + } + + call_hooks('page_header', App::$page['nav']); } diff --git a/include/reddav.php b/include/reddav.php deleted file mode 100644 index abf21b86d..000000000 --- a/include/reddav.php +++ /dev/null @@ -1,299 +0,0 @@ -<?php -/** - * @file include/reddav.php - * @brief some DAV related functions for Hubzilla. - * - * This file contains some functions which did not fit into one of the RedDAV - * classes. - * - * The extended SabreDAV classes you will find in the RedDAV namespace under - * @ref includes/RedDAV/. - * The original SabreDAV classes you can find under @ref vendor/sabre/dav/. - * We need to use SabreDAV 1.8.x for PHP5.3 compatibility. SabreDAV >= 2.0 - * requires PHP >= 5.4. - * - * @todo split up the classes into own files. - * - * @link http://github.com/friendica/red - * @license http://opensource.org/licenses/mit-license.php The MIT License (MIT) - */ - -use Sabre\DAV; -use Zotlabs\Storage; - -require_once('vendor/autoload.php'); -require_once('include/attach.php'); - -/** - * @brief Returns an array with viewable channels. - * - * Get a list of RedDirectory objects with all the channels where the visitor - * has <b>view_storage</b> perms. - * - * @todo Is there any reason why this is not inside RedDirectory class? - * @fixme function name looks like a class name, should we rename it? - * - * @param RedBasicAuth &$auth - * @return array RedDirectory[] - */ -function RedChannelList(&$auth) { - $ret = array(); - - $r = q("SELECT channel_id, channel_address FROM channel WHERE channel_removed = 0 AND channel_system = 0 AND NOT (channel_pageflags & %d)>0", - intval(PAGE_HIDDEN) - ); - - if ($r) { - foreach ($r as $rr) { - if (perm_is_allowed($rr['channel_id'], $auth->observer, 'view_storage')) { - logger('found channel: /cloud/' . $rr['channel_address'], LOGGER_DATA); - // @todo can't we drop '/cloud'? It gets stripped off anyway in RedDirectory - $ret[] = new Zotlabs\Storage\Directory('/cloud/' . $rr['channel_address'], $auth); - } - } - } - return $ret; -} - - -/** - * @brief TODO what exactly does this function? - * - * Array with all RedDirectory and RedFile DAV\Node items for the given path. - * - * @todo Is there any reason why this is not inside RedDirectory class? Seems - * only to be used there and we could simplify it a bit there. - * @fixme function name looks like a class name, should we rename it? - * - * @param string $file path to a directory - * @param RedBasicAuth &$auth - * @returns null|array \Sabre\DAV\INode[] - * @throw \Sabre\DAV\Exception\Forbidden - * @throw \Sabre\DAV\Exception\NotFound - */ -function RedCollectionData($file, &$auth) { - $ret = array(); - - $x = strpos($file, '/cloud'); - if ($x === 0) { - $file = substr($file, 6); - } - - // return a list of channel if we are not inside a channel - if ((! $file) || ($file === '/')) { - return RedChannelList($auth); - } - - $file = trim($file, '/'); - $path_arr = explode('/', $file); - - if (! $path_arr) - return null; - - $channel_name = $path_arr[0]; - - $r = q("SELECT channel_id FROM channel WHERE channel_address = '%s' LIMIT 1", - dbesc($channel_name) - ); - - if (! $r) - return null; - - $channel_id = $r[0]['channel_id']; - $perms = permissions_sql($channel_id); - - $auth->owner_id = $channel_id; - - $path = '/' . $channel_name; - - $folder = ''; - $errors = false; - $permission_error = false; - - for ($x = 1; $x < count($path_arr); $x++) { - $r = q("SELECT id, hash, filename, flags, is_dir FROM attach WHERE folder = '%s' AND filename = '%s' AND uid = %d AND is_dir != 0 $perms LIMIT 1", - dbesc($folder), - dbesc($path_arr[$x]), - intval($channel_id) - ); - if (! $r) { - // path wasn't found. Try without permissions to see if it was the result of permissions. - $errors = true; - $r = q("select id, hash, filename, flags, is_dir from attach where folder = '%s' and filename = '%s' and uid = %d and is_dir != 0 limit 1", - dbesc($folder), - basename($path_arr[$x]), - intval($channel_id) - ); - if ($r) { - $permission_error = true; - } - break; - } - - if ($r && intval($r[0]['is_dir'])) { - $folder = $r[0]['hash']; - $path = $path . '/' . $r[0]['filename']; - } - } - - if ($errors) { - if ($permission_error) { - throw new DAV\Exception\Forbidden('Permission denied.'); - } else { - throw new DAV\Exception\NotFound('A component of the request file path could not be found.'); - } - } - - // This should no longer be needed since we just returned errors for paths not found - if ($path !== '/' . $file) { - logger("Path mismatch: $path !== /$file"); - return NULL; - } - if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) { - $prefix = 'DISTINCT ON (filename)'; - $suffix = 'ORDER BY filename'; - } else { - $prefix = ''; - $suffix = 'GROUP BY filename'; - } - $r = q("select $prefix id, uid, hash, filename, filetype, filesize, revision, folder, flags, is_dir, created, edited from attach where folder = '%s' and uid = %d $perms $suffix", - dbesc($folder), - intval($channel_id) - ); - - foreach ($r as $rr) { - //logger('filename: ' . $rr['filename'], LOGGER_DEBUG); - if (intval($rr['is_dir'])) { - $ret[] = new Zotlabs\Storage\Directory($path . '/' . $rr['filename'], $auth); - } else { - $ret[] = new Zotlabs\Storage\File($path . '/' . $rr['filename'], $rr, $auth); - } - } - - return $ret; -} - - -/** - * @brief TODO What exactly is this function for? - * - * @fixme function name looks like a class name, should we rename it? - * - * @param string $file - * path to file or directory - * @param RedBasicAuth &$auth - * @param boolean $test (optional) enable test mode - * @return RedFile|RedDirectory|boolean|null - * @throw \Sabre\DAV\Exception\Forbidden - */ -function RedFileData($file, &$auth, $test = false) { - logger($file . (($test) ? ' (test mode) ' : ''), LOGGER_DATA); - - $x = strpos($file, '/cloud'); - if ($x === 0) { - $file = substr($file, 6); - } - else { - $x = strpos($file,'/dav'); - if($x === 0) - $file = substr($file,4); - } - - - if ((! $file) || ($file === '/')) { - return new Zotlabs\Storage\Directory('/', $auth); - } - - $file = trim($file, '/'); - - $path_arr = explode('/', $file); - - if (! $path_arr) - return null; - - $channel_name = $path_arr[0]; - - $r = q("select channel_id from channel where channel_address = '%s' limit 1", - dbesc($channel_name) - ); - - if (! $r) - return null; - - $channel_id = $r[0]['channel_id']; - - $path = '/' . $channel_name; - - $auth->owner_id = $channel_id; - - $permission_error = false; - - $folder = ''; - - require_once('include/security.php'); - $perms = permissions_sql($channel_id); - - $errors = false; - - for ($x = 1; $x < count($path_arr); $x++) { - $r = q("select id, hash, filename, flags, is_dir from attach where folder = '%s' and filename = '%s' and uid = %d and is_dir != 0 $perms", - dbesc($folder), - dbesc($path_arr[$x]), - intval($channel_id) - ); - - if ($r && intval($r[0]['is_dir'])) { - $folder = $r[0]['hash']; - $path = $path . '/' . $r[0]['filename']; - } - if (! $r) { - $r = q("select id, uid, hash, filename, filetype, filesize, revision, folder, flags, is_dir, os_storage, created, edited from attach - where folder = '%s' and filename = '%s' and uid = %d $perms order by filename limit 1", - dbesc($folder), - dbesc(basename($file)), - intval($channel_id) - ); - } - if (! $r) { - $errors = true; - $r = q("select id, uid, hash, filename, filetype, filesize, revision, folder, flags, is_dir, os_storage, created, edited from attach - where folder = '%s' and filename = '%s' and uid = %d order by filename limit 1", - dbesc($folder), - dbesc(basename($file)), - intval($channel_id) - ); - if ($r) - $permission_error = true; - } - } - - if ($path === '/' . $file) { - if ($test) - return true; - // final component was a directory. - return new Zotlabs\Storage\Directory($file, $auth); - } - - if ($errors) { - logger('not found ' . $file); - if ($test) - return false; - if ($permission_error) { - logger('permission error ' . $file); - throw new DAV\Exception\Forbidden('Permission denied.'); - } - return; - } - - if ($r) { - if ($test) - return true; - - if (intval($r[0]['is_dir'])) { - return new Zotlabs\Storage\Directory($path . '/' . $r[0]['filename'], $auth); - } else { - return new Zotlabs\Storage\File($path . '/' . $r[0]['filename'], $r[0], $auth); - } - } - return false; -}
\ No newline at end of file diff --git a/include/spam.php b/include/spam.php deleted file mode 100644 index 8b158b7ae..000000000 --- a/include/spam.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php /** @file */ - - -function string_splitter($s) { - - if(! $s) - return array(); - - $s = preg_replace('/\pP+/','',$s); - - $x = mb_split("\[|\]|\s",$s); - - $ret = array(); - if($x) { - foreach($x as $y) { - if(mb_strlen($y) > 2) - $ret[] = substr($y,0,64); - } - } - return $ret; -} - - - -function get_words($uid,$list) { - - stringify($list,true); - - $r = q("select * from spam where term in ( " . $list . ") and uid = %d", - intval($uid) - ); - - return $r; -} - diff --git a/include/text.php b/include/text.php index 89c3a0539..986e3b56c 100644 --- a/include/text.php +++ b/include/text.php @@ -2354,7 +2354,13 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $d $str_tags .= $newtag; } - return array('replaced' => $replaced, 'termtype' => $termtype, 'term' => $basetag, 'url' => $url, 'contact' => $r[0]); + return [ + 'replaced' => $replaced, + 'termtype' => $termtype, + 'term' => $basetag, + 'url' => $url, + 'contact' => $r[0] + ]; } //is it a person tag? @@ -2545,7 +2551,13 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $d } } - return array('replaced' => $replaced, 'termtype' => $termtype, 'term' => $newname, 'url' => $url, 'contact' => $r[0]); + return [ + 'replaced' => $replaced, + 'termtype' => $termtype, + 'term' => $newname, + 'url' => $url, + 'contact' => $r[0] + ]; } function linkify_tags($a, &$body, $uid, $diaspora = false) { diff --git a/include/widgets.php b/include/widgets.php index 7fc3f1aeb..a4a6fb55a 100644 --- a/include/widgets.php +++ b/include/widgets.php @@ -1347,7 +1347,7 @@ function widget_forums($arr) { $perms_sql = item_permissions_sql(local_channel()) . item_normal(); - $r1 = q("select * from abook left join xchan on abook_xchan = xchan_hash where ( xchan_pubforum = 1 or ((abook_their_perms & %d ) != 0 and (abook_their_perms & %d ) = 0) ) and xchan_deleted = 0 and abook_channel = %d order by xchan_name $limit ", + $r1 = q("select abook_id, xchan_hash, xchan_name, xchan_url, xchan_photo_s from abook left join xchan on abook_xchan = xchan_hash where ( xchan_pubforum = 1 or ((abook_their_perms & %d ) != 0 and (abook_their_perms & %d ) = 0) ) and xchan_deleted = 0 and abook_channel = %d order by xchan_name $limit ", intval(PERMS_W_TAGWALL), intval(PERMS_W_STREAM), intval(local_channel()) @@ -1361,12 +1361,34 @@ function widget_forums($arr) { // There also should be a way to update this via ajax. for($x = 0; $x < count($r1); $x ++) { - $r = q("select sum(item_unseen) as unseen from item where owner_xchan = '%s' and uid = %d $perms_sql ", + $r = q("select sum(item_unseen) as unseen from item where owner_xchan = '%s' and uid = %d and item_unseen = 1 $perms_sql ", dbesc($r1[$x]['xchan_hash']), intval(local_channel()) ); if($r) $r1[$x]['unseen'] = $r[0]['unseen']; + +/** + * @FIXME + * This SQL makes the counts correct when you get forum posts arriving from different routes/sources + * (like personal channels). However the network query for these posts doesn't yet include this + * correction and it makes the SQL for that query pretty hairy so this is left as a future exercise. + * It may make more sense in that query to look for the mention in the body rather than another join, + * but that makes it very inefficient. + * + $r = q("select sum(item_unseen) as unseen from item left join term on oid = id where otype = %d and owner_xchan != '%s' and item.uid = %d and url = '%s' and ttype = %d $perms_sql ", + intval(TERM_OBJ_POST), + dbesc($r1[$x]['xchan_hash']), + intval(local_channel()), + dbesc($r1[$x]['xchan_url']), + intval(TERM_MENTION) + ); + if($r) + $r1[$x]['unseen'] = ((array_key_exists('unseen',$r1[$x])) ? $r1[$x]['unseen'] + $r[0]['unseen'] : $r[0]['unseen']); + * + * end @FIXME + */ + } if($r1) { diff --git a/util/hmessages.po b/util/hmessages.po index 30a8f5329..8ab5226e5 100644 --- a/util/hmessages.po +++ b/util/hmessages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-07-01 00:02-0700\n" +"POT-Creation-Date: 2016-07-08 00:02-0700\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" @@ -21,7 +21,7 @@ msgstr "" msgid "parent" msgstr "" -#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2597 +#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2609 msgid "Collection" msgstr "" @@ -47,14 +47,14 @@ msgstr "" #: ../../Zotlabs/Storage/Browser.php:164 ../../Zotlabs/Module/Photos.php:798 #: ../../Zotlabs/Module/Photos.php:1243 -#: ../../Zotlabs/Module/Embedphotos.php:147 ../../Zotlabs/Lib/Apps.php:489 -#: ../../Zotlabs/Lib/Apps.php:564 ../../include/conversation.php:1035 -#: ../../include/widgets.php:1578 +#: ../../Zotlabs/Module/Embedphotos.php:147 ../../Zotlabs/Lib/Apps.php:490 +#: ../../Zotlabs/Lib/Apps.php:565 ../../include/conversation.php:1035 +#: ../../include/widgets.php:1563 msgid "Unknown" msgstr "" #: ../../Zotlabs/Storage/Browser.php:226 ../../Zotlabs/Module/Fbrowser.php:85 -#: ../../Zotlabs/Lib/Apps.php:216 ../../include/conversation.php:1654 +#: ../../Zotlabs/Lib/Apps.php:217 ../../include/conversation.php:1654 #: ../../include/nav.php:93 msgid "Files" msgstr "" @@ -77,8 +77,8 @@ msgstr "" #: ../../Zotlabs/Storage/Browser.php:231 ../../Zotlabs/Storage/Browser.php:308 #: ../../Zotlabs/Module/Cover_photo.php:357 #: ../../Zotlabs/Module/Photos.php:825 ../../Zotlabs/Module/Photos.php:1364 -#: ../../Zotlabs/Module/Profile_photo.php:388 -#: ../../Zotlabs/Module/Embedphotos.php:159 ../../include/widgets.php:1591 +#: ../../Zotlabs/Module/Profile_photo.php:390 +#: ../../Zotlabs/Module/Embedphotos.php:159 ../../include/widgets.php:1576 msgid "Upload" msgstr "" @@ -112,10 +112,10 @@ msgstr "" #: ../../Zotlabs/Module/Admin.php:2113 ../../Zotlabs/Module/Blocks.php:160 #: ../../Zotlabs/Module/Editblock.php:109 #: ../../Zotlabs/Module/Settings.php:652 ../../Zotlabs/Module/Thing.php:260 -#: ../../Zotlabs/Module/Webpages.php:195 ../../Zotlabs/Lib/Apps.php:340 +#: ../../Zotlabs/Module/Webpages.php:195 ../../Zotlabs/Lib/Apps.php:341 #: ../../Zotlabs/Lib/ThreadItem.php:106 ../../include/page_widgets.php:9 -#: ../../include/page_widgets.php:39 ../../include/channel.php:961 -#: ../../include/channel.php:965 ../../include/menu.php:108 +#: ../../include/page_widgets.php:39 ../../include/menu.php:108 +#: ../../include/channel.php:961 ../../include/channel.php:965 msgid "Edit" msgstr "" @@ -127,7 +127,7 @@ msgstr "" #: ../../Zotlabs/Module/Admin.php:1213 ../../Zotlabs/Module/Admin.php:2114 #: ../../Zotlabs/Module/Blocks.php:162 ../../Zotlabs/Module/Editblock.php:134 #: ../../Zotlabs/Module/Settings.php:653 ../../Zotlabs/Module/Thing.php:261 -#: ../../Zotlabs/Module/Webpages.php:197 ../../Zotlabs/Lib/Apps.php:341 +#: ../../Zotlabs/Module/Webpages.php:197 ../../Zotlabs/Lib/Apps.php:342 #: ../../Zotlabs/Lib/ThreadItem.php:126 ../../include/conversation.php:660 msgid "Delete" msgstr "" @@ -186,7 +186,7 @@ msgstr "" #: ../../Zotlabs/Module/Layouts.php:89 ../../Zotlabs/Module/Like.php:181 #: ../../Zotlabs/Module/Profiles.php:203 ../../Zotlabs/Module/Profiles.php:601 #: ../../Zotlabs/Module/Item.php:211 ../../Zotlabs/Module/Item.php:219 -#: ../../Zotlabs/Module/Item.php:1070 ../../Zotlabs/Module/Photos.php:75 +#: ../../Zotlabs/Module/Item.php:1072 ../../Zotlabs/Module/Photos.php:75 #: ../../Zotlabs/Module/Invite.php:17 ../../Zotlabs/Module/Invite.php:91 #: ../../Zotlabs/Module/Locs.php:87 ../../Zotlabs/Module/Mail.php:129 #: ../../Zotlabs/Module/Manage.php:10 ../../Zotlabs/Module/Menu.php:78 @@ -198,8 +198,8 @@ msgstr "" #: ../../Zotlabs/Module/Notifications.php:70 ../../Zotlabs/Module/Poke.php:137 #: ../../Zotlabs/Module/Profile.php:68 ../../Zotlabs/Module/Profile.php:76 #: ../../Zotlabs/Module/Block.php:26 ../../Zotlabs/Module/Block.php:76 -#: ../../Zotlabs/Module/Profile_photo.php:263 -#: ../../Zotlabs/Module/Profile_photo.php:276 +#: ../../Zotlabs/Module/Profile_photo.php:265 +#: ../../Zotlabs/Module/Profile_photo.php:278 #: ../../Zotlabs/Module/Blocks.php:73 ../../Zotlabs/Module/Blocks.php:80 #: ../../Zotlabs/Module/Rate.php:113 ../../Zotlabs/Module/Editblock.php:67 #: ../../Zotlabs/Module/Common.php:39 ../../Zotlabs/Module/Register.php:77 @@ -214,13 +214,13 @@ msgstr "" #: ../../Zotlabs/Module/Viewconnections.php:33 #: ../../Zotlabs/Module/Viewsrc.php:18 ../../Zotlabs/Module/Api.php:13 #: ../../Zotlabs/Module/Api.php:18 ../../Zotlabs/Lib/Chatroom.php:137 -#: ../../include/items.php:3462 ../../include/photos.php:27 -#: ../../include/attach.php:141 ../../include/attach.php:189 -#: ../../include/attach.php:252 ../../include/attach.php:266 -#: ../../include/attach.php:273 ../../include/attach.php:338 -#: ../../include/attach.php:352 ../../include/attach.php:359 -#: ../../include/attach.php:439 ../../include/attach.php:901 -#: ../../include/attach.php:972 ../../include/attach.php:1124 +#: ../../include/photos.php:27 ../../include/attach.php:141 +#: ../../include/attach.php:189 ../../include/attach.php:252 +#: ../../include/attach.php:266 ../../include/attach.php:273 +#: ../../include/attach.php:338 ../../include/attach.php:352 +#: ../../include/attach.php:359 ../../include/attach.php:439 +#: ../../include/attach.php:901 ../../include/attach.php:972 +#: ../../include/attach.php:1124 ../../include/items.php:3449 msgid "Permission denied." msgstr "" @@ -339,7 +339,7 @@ msgstr "" msgid "Connection has been removed." msgstr "" -#: ../../Zotlabs/Module/Connedit.php:525 ../../Zotlabs/Lib/Apps.php:220 +#: ../../Zotlabs/Module/Connedit.php:525 ../../Zotlabs/Lib/Apps.php:221 #: ../../include/conversation.php:957 ../../include/nav.php:86 msgid "View Profile" msgstr "" @@ -491,7 +491,7 @@ msgstr "" msgid "Connection Default Permissions" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:708 ../../include/items.php:3949 +#: ../../Zotlabs/Module/Connedit.php:708 ../../include/items.php:3936 #, php-format msgid "Connection: %s" msgstr "" @@ -570,10 +570,10 @@ msgid "inherited" msgstr "" #: ../../Zotlabs/Module/Connedit.php:737 ../../Zotlabs/Module/Connect.php:98 -#: ../../Zotlabs/Module/Events.php:475 ../../Zotlabs/Module/Events.php:672 -#: ../../Zotlabs/Module/Cal.php:338 ../../Zotlabs/Module/Chat.php:196 -#: ../../Zotlabs/Module/Chat.php:238 ../../Zotlabs/Module/Group.php:85 -#: ../../Zotlabs/Module/Appman.php:126 ../../Zotlabs/Module/Pdledit.php:66 +#: ../../Zotlabs/Module/Events.php:475 ../../Zotlabs/Module/Cal.php:338 +#: ../../Zotlabs/Module/Chat.php:196 ../../Zotlabs/Module/Chat.php:238 +#: ../../Zotlabs/Module/Group.php:85 ../../Zotlabs/Module/Appman.php:126 +#: ../../Zotlabs/Module/Pdledit.php:66 #: ../../Zotlabs/Module/Filestorage.php:162 #: ../../Zotlabs/Module/Profiles.php:687 ../../Zotlabs/Module/Import.php:551 #: ../../Zotlabs/Module/Photos.php:677 ../../Zotlabs/Module/Photos.php:1052 @@ -594,9 +594,8 @@ msgstr "" #: ../../Zotlabs/Module/Setup.php:353 ../../Zotlabs/Module/Thing.php:316 #: ../../Zotlabs/Module/Thing.php:362 ../../Zotlabs/Module/Sources.php:114 #: ../../Zotlabs/Module/Sources.php:149 ../../Zotlabs/Module/Xchan.php:15 -#: ../../Zotlabs/Lib/ThreadItem.php:710 ../../include/widgets.php:757 -#: ../../include/widgets.php:769 ../../include/js_strings.php:22 -#: ../../view/theme/redbasic/php/config.php:99 +#: ../../Zotlabs/Lib/ThreadItem.php:710 ../../include/js_strings.php:22 +#: ../../include/widgets.php:754 ../../view/theme/redbasic/php/config.php:99 msgid "Submit" msgstr "" @@ -648,7 +647,7 @@ msgstr "" #: ../../Zotlabs/Module/Display.php:40 ../../Zotlabs/Module/Filestorage.php:33 #: ../../Zotlabs/Module/Admin.php:164 ../../Zotlabs/Module/Admin.php:1255 #: ../../Zotlabs/Module/Admin.php:1561 ../../Zotlabs/Module/Thing.php:89 -#: ../../Zotlabs/Module/Viewsrc.php:24 ../../include/items.php:3383 +#: ../../Zotlabs/Module/Viewsrc.php:24 ../../include/items.php:3370 msgid "Item not found." msgstr "" @@ -675,7 +674,7 @@ msgid "Email" msgstr "" #: ../../Zotlabs/Module/Id.php:19 ../../Zotlabs/Module/Id.php:20 -#: ../../Zotlabs/Module/Id.php:21 ../../Zotlabs/Lib/Apps.php:237 +#: ../../Zotlabs/Module/Id.php:21 ../../Zotlabs/Lib/Apps.php:238 msgid "Profile Photo" msgstr "" @@ -711,7 +710,7 @@ msgstr "" msgid "Homepage URL" msgstr "" -#: ../../Zotlabs/Module/Id.php:30 ../../Zotlabs/Lib/Apps.php:235 +#: ../../Zotlabs/Module/Id.php:30 ../../Zotlabs/Lib/Apps.php:236 msgid "Language" msgstr "" @@ -772,8 +771,8 @@ msgstr "" msgid "Age:" msgstr "" -#: ../../Zotlabs/Module/Directory.php:311 ../../include/bb2diaspora.php:507 -#: ../../include/event.php:52 ../../include/event.php:84 +#: ../../Zotlabs/Module/Directory.php:311 ../../include/event.php:52 +#: ../../include/event.php:84 ../../include/bb2diaspora.php:507 #: ../../include/channel.php:1051 msgid "Location:" msgstr "" @@ -791,8 +790,8 @@ msgid "About:" msgstr "" #: ../../Zotlabs/Module/Directory.php:325 ../../Zotlabs/Module/Match.php:68 -#: ../../Zotlabs/Module/Suggest.php:56 ../../include/connections.php:78 -#: ../../include/conversation.php:959 ../../include/widgets.php:147 +#: ../../Zotlabs/Module/Suggest.php:56 ../../include/conversation.php:959 +#: ../../include/connections.php:78 ../../include/widgets.php:147 #: ../../include/widgets.php:184 ../../include/channel.php:1036 msgid "Connect" msgstr "" @@ -1066,37 +1065,49 @@ msgstr "" msgid "Create Event" msgstr "" -#: ../../Zotlabs/Module/Events.php:666 ../../Zotlabs/Module/Events.php:673 +#: ../../Zotlabs/Module/Events.php:666 ../../Zotlabs/Module/Events.php:675 #: ../../Zotlabs/Module/Cal.php:332 ../../Zotlabs/Module/Cal.php:339 #: ../../Zotlabs/Module/Photos.php:949 msgid "Previous" msgstr "" -#: ../../Zotlabs/Module/Events.php:667 ../../Zotlabs/Module/Events.php:674 +#: ../../Zotlabs/Module/Events.php:667 ../../Zotlabs/Module/Events.php:676 #: ../../Zotlabs/Module/Cal.php:333 ../../Zotlabs/Module/Cal.php:340 #: ../../Zotlabs/Module/Photos.php:958 ../../Zotlabs/Module/Setup.php:267 msgid "Next" msgstr "" #: ../../Zotlabs/Module/Events.php:668 ../../Zotlabs/Module/Cal.php:334 -#: ../../include/widgets.php:755 msgid "Export" msgstr "" -#: ../../Zotlabs/Module/Events.php:671 ../../Zotlabs/Module/Cal.php:337 -#: ../../include/widgets.php:756 -msgid "Import" +#: ../../Zotlabs/Module/Events.php:671 ../../Zotlabs/Module/Layouts.php:197 +#: ../../Zotlabs/Module/Pubsites.php:47 ../../Zotlabs/Module/Blocks.php:166 +#: ../../Zotlabs/Module/Webpages.php:201 ../../include/page_widgets.php:42 +msgid "View" +msgstr "" + +#: ../../Zotlabs/Module/Events.php:672 +msgid "Month" +msgstr "" + +#: ../../Zotlabs/Module/Events.php:673 +msgid "Week" +msgstr "" + +#: ../../Zotlabs/Module/Events.php:674 +msgid "Day" msgstr "" -#: ../../Zotlabs/Module/Events.php:675 ../../Zotlabs/Module/Cal.php:341 +#: ../../Zotlabs/Module/Events.php:677 ../../Zotlabs/Module/Cal.php:341 msgid "Today" msgstr "" -#: ../../Zotlabs/Module/Events.php:706 +#: ../../Zotlabs/Module/Events.php:708 msgid "Event removed" msgstr "" -#: ../../Zotlabs/Module/Events.php:709 +#: ../../Zotlabs/Module/Events.php:711 msgid "Failed to remove event" msgstr "" @@ -1126,7 +1137,7 @@ msgstr "" msgid "Edit post" msgstr "" -#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:221 +#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:222 #: ../../include/conversation.php:1647 ../../include/nav.php:92 msgid "Photos" msgstr "" @@ -1169,8 +1180,8 @@ msgstr "" #: ../../Zotlabs/Module/Filer.php:53 ../../Zotlabs/Module/Admin.php:2033 #: ../../Zotlabs/Module/Admin.php:2053 ../../Zotlabs/Module/Rbmark.php:32 -#: ../../Zotlabs/Module/Rbmark.php:104 ../../include/text.php:922 -#: ../../include/text.php:934 ../../include/widgets.php:201 +#: ../../Zotlabs/Module/Rbmark.php:104 ../../include/widgets.php:201 +#: ../../include/text.php:922 ../../include/text.php:934 msgid "Save" msgstr "" @@ -1287,15 +1298,15 @@ msgstr "" msgid "Recent activity" msgstr "" -#: ../../Zotlabs/Module/Connections.php:302 ../../Zotlabs/Lib/Apps.php:208 -#: ../../include/text.php:851 ../../include/nav.php:188 +#: ../../Zotlabs/Module/Connections.php:302 ../../Zotlabs/Lib/Apps.php:209 +#: ../../include/nav.php:188 ../../include/text.php:851 msgid "Connections" msgstr "" #: ../../Zotlabs/Module/Connections.php:306 ../../Zotlabs/Module/Search.php:44 -#: ../../Zotlabs/Lib/Apps.php:229 ../../include/acl_selectors.php:276 -#: ../../include/text.php:921 ../../include/text.php:933 -#: ../../include/nav.php:167 +#: ../../Zotlabs/Lib/Apps.php:230 ../../include/acl_selectors.php:276 +#: ../../include/nav.php:167 ../../include/text.php:921 +#: ../../include/text.php:933 msgid "Search" msgstr "" @@ -1323,39 +1334,39 @@ msgid "Image resize failed." msgstr "" #: ../../Zotlabs/Module/Cover_photo.php:168 -#: ../../Zotlabs/Module/Profile_photo.php:194 ../../include/photos.php:148 +#: ../../Zotlabs/Module/Profile_photo.php:196 ../../include/photos.php:148 msgid "Unable to process image" msgstr "" #: ../../Zotlabs/Module/Cover_photo.php:192 -#: ../../Zotlabs/Module/Profile_photo.php:221 +#: ../../Zotlabs/Module/Profile_photo.php:223 msgid "Image upload failed." msgstr "" #: ../../Zotlabs/Module/Cover_photo.php:210 -#: ../../Zotlabs/Module/Profile_photo.php:240 +#: ../../Zotlabs/Module/Profile_photo.php:242 msgid "Unable to process image." msgstr "" -#: ../../Zotlabs/Module/Cover_photo.php:233 ../../include/items.php:4310 +#: ../../Zotlabs/Module/Cover_photo.php:233 ../../include/items.php:4297 msgid "female" msgstr "" -#: ../../Zotlabs/Module/Cover_photo.php:234 ../../include/items.php:4311 +#: ../../Zotlabs/Module/Cover_photo.php:234 ../../include/items.php:4298 #, php-format msgid "%1$s updated her %2$s" msgstr "" -#: ../../Zotlabs/Module/Cover_photo.php:235 ../../include/items.php:4312 +#: ../../Zotlabs/Module/Cover_photo.php:235 ../../include/items.php:4299 msgid "male" msgstr "" -#: ../../Zotlabs/Module/Cover_photo.php:236 ../../include/items.php:4313 +#: ../../Zotlabs/Module/Cover_photo.php:236 ../../include/items.php:4300 #, php-format msgid "%1$s updated his %2$s" msgstr "" -#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4315 +#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4302 #, php-format msgid "%1$s updated their %2$s" msgstr "" @@ -1366,18 +1377,18 @@ msgstr "" #: ../../Zotlabs/Module/Cover_photo.php:303 #: ../../Zotlabs/Module/Cover_photo.php:318 -#: ../../Zotlabs/Module/Profile_photo.php:298 -#: ../../Zotlabs/Module/Profile_photo.php:339 +#: ../../Zotlabs/Module/Profile_photo.php:300 +#: ../../Zotlabs/Module/Profile_photo.php:341 msgid "Photo not available." msgstr "" #: ../../Zotlabs/Module/Cover_photo.php:354 -#: ../../Zotlabs/Module/Profile_photo.php:385 +#: ../../Zotlabs/Module/Profile_photo.php:387 msgid "Upload File:" msgstr "" #: ../../Zotlabs/Module/Cover_photo.php:355 -#: ../../Zotlabs/Module/Profile_photo.php:386 +#: ../../Zotlabs/Module/Profile_photo.php:388 msgid "Select a profile:" msgstr "" @@ -1386,33 +1397,33 @@ msgid "Upload Cover Photo" msgstr "" #: ../../Zotlabs/Module/Cover_photo.php:361 -#: ../../Zotlabs/Module/Profile_photo.php:394 +#: ../../Zotlabs/Module/Profile_photo.php:396 #: ../../Zotlabs/Module/Settings.php:985 msgid "or" msgstr "" #: ../../Zotlabs/Module/Cover_photo.php:361 -#: ../../Zotlabs/Module/Profile_photo.php:394 +#: ../../Zotlabs/Module/Profile_photo.php:396 msgid "skip this step" msgstr "" #: ../../Zotlabs/Module/Cover_photo.php:361 -#: ../../Zotlabs/Module/Profile_photo.php:394 +#: ../../Zotlabs/Module/Profile_photo.php:396 msgid "select a photo from your photo albums" msgstr "" #: ../../Zotlabs/Module/Cover_photo.php:377 -#: ../../Zotlabs/Module/Profile_photo.php:413 +#: ../../Zotlabs/Module/Profile_photo.php:415 msgid "Crop Image" msgstr "" #: ../../Zotlabs/Module/Cover_photo.php:378 -#: ../../Zotlabs/Module/Profile_photo.php:414 +#: ../../Zotlabs/Module/Profile_photo.php:416 msgid "Please adjust the image cropping for optimum viewing." msgstr "" #: ../../Zotlabs/Module/Cover_photo.php:380 -#: ../../Zotlabs/Module/Profile_photo.php:416 +#: ../../Zotlabs/Module/Profile_photo.php:418 msgid "Done Editing" msgstr "" @@ -1446,6 +1457,10 @@ msgstr "" msgid "Permissions denied." msgstr "" +#: ../../Zotlabs/Module/Cal.php:337 +msgid "Import" +msgstr "" + #: ../../Zotlabs/Module/Dirsearch.php:25 ../../Zotlabs/Module/Regdir.php:49 msgid "This site is not a directory server" msgstr "" @@ -1603,6 +1618,10 @@ msgid "Delivery report for %1$s" msgstr "" #: ../../Zotlabs/Module/Dreport.php:149 +msgid "Options" +msgstr "" + +#: ../../Zotlabs/Module/Dreport.php:150 msgid "Redeliver" msgstr "" @@ -1637,7 +1656,7 @@ msgid "Could not create privacy group." msgstr "" #: ../../Zotlabs/Module/Group.php:42 ../../Zotlabs/Module/Group.php:141 -#: ../../include/items.php:3916 +#: ../../include/items.php:3903 msgid "Privacy group not found." msgstr "" @@ -1743,7 +1762,7 @@ msgid "Help:" msgstr "" #: ../../Zotlabs/Module/Help.php:85 ../../Zotlabs/Module/Help.php:90 -#: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Lib/Apps.php:224 +#: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Lib/Apps.php:225 #: ../../include/nav.php:161 msgid "Help" msgstr "" @@ -1870,12 +1889,6 @@ msgstr "" msgid "Download PDL file" msgstr "" -#: ../../Zotlabs/Module/Layouts.php:197 ../../Zotlabs/Module/Pubsites.php:47 -#: ../../Zotlabs/Module/Blocks.php:166 ../../Zotlabs/Module/Webpages.php:201 -#: ../../include/page_widgets.php:42 -msgid "View" -msgstr "" - #: ../../Zotlabs/Module/Like.php:19 msgid "Like/Dislike" msgstr "" @@ -2238,8 +2251,8 @@ msgstr "" msgid "Profile Image" msgstr "" -#: ../../Zotlabs/Module/Profiles.php:777 ../../include/channel.php:961 -#: ../../include/nav.php:88 +#: ../../Zotlabs/Module/Profiles.php:777 ../../include/nav.php:88 +#: ../../include/channel.php:961 msgid "Edit Profiles" msgstr "" @@ -2361,24 +2374,24 @@ msgstr "" msgid "Executable content type not permitted to this channel." msgstr "" -#: ../../Zotlabs/Module/Item.php:848 +#: ../../Zotlabs/Module/Item.php:852 msgid "Duplicate post suppressed." msgstr "" -#: ../../Zotlabs/Module/Item.php:983 +#: ../../Zotlabs/Module/Item.php:985 msgid "System error. Post not saved." msgstr "" -#: ../../Zotlabs/Module/Item.php:1241 +#: ../../Zotlabs/Module/Item.php:1243 msgid "Unable to obtain post information from database." msgstr "" -#: ../../Zotlabs/Module/Item.php:1248 +#: ../../Zotlabs/Module/Item.php:1250 #, php-format msgid "You have reached your limit of %1$.0f top level posts." msgstr "" -#: ../../Zotlabs/Module/Item.php:1255 +#: ../../Zotlabs/Module/Item.php:1257 #, php-format msgid "You have reached your limit of %1$.0f webpages." msgstr "" @@ -2389,8 +2402,8 @@ msgstr "" #: ../../Zotlabs/Module/Photos.php:99 ../../Zotlabs/Module/Photos.php:743 #: ../../Zotlabs/Module/Profile_photo.php:115 -#: ../../Zotlabs/Module/Profile_photo.php:210 -#: ../../Zotlabs/Module/Profile_photo.php:309 +#: ../../Zotlabs/Module/Profile_photo.php:212 +#: ../../Zotlabs/Module/Profile_photo.php:311 #: ../../include/photo/photo_driver.php:718 msgid "Profile Photos" msgstr "" @@ -2473,12 +2486,12 @@ msgid "Show Oldest First" msgstr "" #: ../../Zotlabs/Module/Photos.php:792 ../../Zotlabs/Module/Photos.php:1331 -#: ../../Zotlabs/Module/Embedphotos.php:141 ../../include/widgets.php:1572 +#: ../../Zotlabs/Module/Embedphotos.php:141 ../../include/widgets.php:1557 msgid "View Photo" msgstr "" #: ../../Zotlabs/Module/Photos.php:823 -#: ../../Zotlabs/Module/Embedphotos.php:157 ../../include/widgets.php:1589 +#: ../../Zotlabs/Module/Embedphotos.php:157 ../../include/widgets.php:1574 msgid "Edit Album" msgstr "" @@ -2921,7 +2934,7 @@ msgstr "" msgid "Create a new channel" msgstr "" -#: ../../Zotlabs/Module/Manage.php:164 ../../Zotlabs/Lib/Apps.php:213 +#: ../../Zotlabs/Module/Manage.php:164 ../../Zotlabs/Lib/Apps.php:214 #: ../../include/nav.php:208 msgid "Channel Manager" msgstr "" @@ -3132,7 +3145,7 @@ msgctxt "mood" msgid "%1$s is %2$s" msgstr "" -#: ../../Zotlabs/Module/Mood.php:135 ../../Zotlabs/Lib/Apps.php:226 +#: ../../Zotlabs/Module/Mood.php:135 ../../Zotlabs/Lib/Apps.php:227 msgid "Mood" msgstr "" @@ -3408,7 +3421,7 @@ msgstr "" msgid "Site settings updated." msgstr "" -#: ../../Zotlabs/Module/Admin.php:400 ../../include/text.php:2821 +#: ../../Zotlabs/Module/Admin.php:400 ../../include/text.php:2833 msgid "Default" msgstr "" @@ -3444,7 +3457,7 @@ msgstr "" msgid "My site offers free accounts with optional paid upgrades" msgstr "" -#: ../../Zotlabs/Module/Admin.php:491 ../../include/widgets.php:1455 +#: ../../Zotlabs/Module/Admin.php:491 ../../include/widgets.php:1440 msgid "Site" msgstr "" @@ -3793,7 +3806,7 @@ msgid "" "embedded content from that site is explicitly blocked." msgstr "" -#: ../../Zotlabs/Module/Admin.php:756 ../../include/widgets.php:1458 +#: ../../Zotlabs/Module/Admin.php:756 ../../include/widgets.php:1443 msgid "Security" msgstr "" @@ -3960,7 +3973,7 @@ msgid "Account '%s' unblocked" msgstr "" #: ../../Zotlabs/Module/Admin.php:1031 ../../Zotlabs/Module/Admin.php:1044 -#: ../../include/widgets.php:1456 +#: ../../include/widgets.php:1441 msgid "Accounts" msgstr "" @@ -4066,7 +4079,7 @@ msgstr "" msgid "Channel '%s' code disallowed" msgstr "" -#: ../../Zotlabs/Module/Admin.php:1210 ../../include/widgets.php:1457 +#: ../../Zotlabs/Module/Admin.php:1210 ../../include/widgets.php:1442 msgid "Channels" msgstr "" @@ -4125,7 +4138,7 @@ msgid "Enable" msgstr "" #: ../../Zotlabs/Module/Admin.php:1330 ../../Zotlabs/Module/Admin.php:1420 -#: ../../include/widgets.php:1460 +#: ../../include/widgets.php:1445 msgid "Plugins" msgstr "" @@ -4134,8 +4147,8 @@ msgid "Toggle" msgstr "" #: ../../Zotlabs/Module/Admin.php:1332 ../../Zotlabs/Module/Admin.php:1615 -#: ../../Zotlabs/Lib/Apps.php:215 ../../include/widgets.php:638 -#: ../../include/nav.php:210 +#: ../../Zotlabs/Lib/Apps.php:216 ../../include/nav.php:210 +#: ../../include/widgets.php:638 msgid "Settings" msgstr "" @@ -4191,7 +4204,7 @@ msgstr "" msgid "Install new repo" msgstr "" -#: ../../Zotlabs/Module/Admin.php:1405 ../../Zotlabs/Lib/Apps.php:333 +#: ../../Zotlabs/Module/Admin.php:1405 ../../Zotlabs/Lib/Apps.php:334 msgid "Install" msgstr "" @@ -4208,7 +4221,7 @@ msgid "Install a New Plugin Repository" msgstr "" #: ../../Zotlabs/Module/Admin.php:1435 ../../Zotlabs/Module/Settings.php:77 -#: ../../Zotlabs/Module/Settings.php:616 ../../Zotlabs/Lib/Apps.php:333 +#: ../../Zotlabs/Module/Settings.php:616 ../../Zotlabs/Lib/Apps.php:334 msgid "Update" msgstr "" @@ -4225,7 +4238,7 @@ msgid "Screenshot" msgstr "" #: ../../Zotlabs/Module/Admin.php:1613 ../../Zotlabs/Module/Admin.php:1647 -#: ../../include/widgets.php:1461 +#: ../../include/widgets.php:1446 msgid "Themes" msgstr "" @@ -4241,8 +4254,8 @@ msgstr "" msgid "Log settings updated." msgstr "" -#: ../../Zotlabs/Module/Admin.php:1732 ../../include/widgets.php:1482 -#: ../../include/widgets.php:1492 +#: ../../Zotlabs/Module/Admin.php:1732 ../../include/widgets.php:1467 +#: ../../include/widgets.php:1477 msgid "Logs" msgstr "" @@ -4308,7 +4321,7 @@ msgstr "" msgid "Edit Profile Field" msgstr "" -#: ../../Zotlabs/Module/Admin.php:2106 ../../include/widgets.php:1463 +#: ../../Zotlabs/Module/Admin.php:2106 ../../include/widgets.php:1448 msgid "Profile Fields" msgstr "" @@ -4424,7 +4437,7 @@ msgstr "" msgid "Mark all system notifications seen" msgstr "" -#: ../../Zotlabs/Module/Poke.php:168 ../../Zotlabs/Lib/Apps.php:227 +#: ../../Zotlabs/Module/Poke.php:168 ../../Zotlabs/Lib/Apps.php:228 #: ../../include/conversation.php:963 msgid "Poke" msgstr "" @@ -4593,7 +4606,7 @@ msgstr "" msgid "Authenticate" msgstr "" -#: ../../Zotlabs/Module/Pubsites.php:22 ../../include/widgets.php:1343 +#: ../../Zotlabs/Module/Pubsites.php:22 ../../include/widgets.php:1328 msgid "Public Hubs" msgstr "" @@ -4635,13 +4648,13 @@ msgstr "" msgid "Rate" msgstr "" -#: ../../Zotlabs/Module/Profile_photo.php:184 +#: ../../Zotlabs/Module/Profile_photo.php:186 msgid "" "Shift-reload the page or clear browser cache if the new photo does not " "display immediately." msgstr "" -#: ../../Zotlabs/Module/Profile_photo.php:387 +#: ../../Zotlabs/Module/Profile_photo.php:389 msgid "Upload Profile Photo" msgstr "" @@ -4691,8 +4704,8 @@ msgstr "" msgid "Description: " msgstr "" -#: ../../Zotlabs/Module/Apps.php:47 ../../include/widgets.php:102 -#: ../../include/nav.php:165 +#: ../../Zotlabs/Module/Apps.php:47 ../../include/nav.php:165 +#: ../../include/widgets.php:102 msgid "Apps" msgstr "" @@ -6109,8 +6122,8 @@ msgstr "" msgid "*" msgstr "" -#: ../../Zotlabs/Module/Sources.php:96 ../../include/features.php:72 -#: ../../include/widgets.php:630 +#: ../../Zotlabs/Module/Sources.php:96 ../../include/widgets.php:630 +#: ../../include/features.php:72 msgid "Channel Sources" msgstr "" @@ -6212,7 +6225,7 @@ msgstr "" msgid "Select a tag to remove: " msgstr "" -#: ../../Zotlabs/Module/Webpages.php:192 ../../Zotlabs/Lib/Apps.php:217 +#: ../../Zotlabs/Module/Webpages.php:192 ../../Zotlabs/Lib/Apps.php:218 #: ../../include/conversation.php:1700 ../../include/nav.php:106 msgid "Webpages" msgstr "" @@ -6233,9 +6246,9 @@ msgstr "" msgid "Not found" msgstr "" -#: ../../Zotlabs/Module/Wiki.php:92 ../../Zotlabs/Lib/Apps.php:218 +#: ../../Zotlabs/Module/Wiki.php:92 ../../Zotlabs/Lib/Apps.php:219 #: ../../include/conversation.php:1710 ../../include/conversation.php:1713 -#: ../../include/features.php:55 ../../include/nav.php:108 +#: ../../include/nav.php:108 ../../include/features.php:55 msgid "Wiki" msgstr "" @@ -6573,89 +6586,89 @@ msgstr "" msgid "commented on %s's post" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:204 +#: ../../Zotlabs/Lib/Apps.php:205 msgid "Site Admin" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:205 +#: ../../Zotlabs/Lib/Apps.php:206 msgid "Bug Report" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:206 +#: ../../Zotlabs/Lib/Apps.php:207 msgid "View Bookmarks" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:207 +#: ../../Zotlabs/Lib/Apps.php:208 msgid "My Chatrooms" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:209 +#: ../../Zotlabs/Lib/Apps.php:210 msgid "Firefox Share" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:210 +#: ../../Zotlabs/Lib/Apps.php:211 msgid "Remote Diagnostics" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:211 ../../include/features.php:90 +#: ../../Zotlabs/Lib/Apps.php:212 ../../include/features.php:90 msgid "Suggest Channels" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:212 ../../include/nav.php:112 +#: ../../Zotlabs/Lib/Apps.php:213 ../../include/nav.php:112 #: ../../boot.php:1704 msgid "Login" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:214 ../../include/nav.php:181 +#: ../../Zotlabs/Lib/Apps.php:215 ../../include/nav.php:181 msgid "Grid" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:219 ../../include/nav.php:184 +#: ../../Zotlabs/Lib/Apps.php:220 ../../include/nav.php:184 msgid "Channel Home" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:222 ../../include/conversation.php:1664 +#: ../../Zotlabs/Lib/Apps.php:223 ../../include/conversation.php:1664 #: ../../include/conversation.php:1667 ../../include/nav.php:203 msgid "Events" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:223 ../../include/nav.php:169 +#: ../../Zotlabs/Lib/Apps.php:224 ../../include/nav.php:169 msgid "Directory" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:225 ../../include/nav.php:195 +#: ../../Zotlabs/Lib/Apps.php:226 ../../include/nav.php:195 msgid "Mail" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:228 ../../include/nav.php:96 +#: ../../Zotlabs/Lib/Apps.php:229 ../../include/nav.php:96 msgid "Chat" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:230 +#: ../../Zotlabs/Lib/Apps.php:231 msgid "Probe" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:231 +#: ../../Zotlabs/Lib/Apps.php:232 msgid "Suggest" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:232 +#: ../../Zotlabs/Lib/Apps.php:233 msgid "Random Channel" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:233 +#: ../../Zotlabs/Lib/Apps.php:234 msgid "Invite" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:234 ../../include/widgets.php:1459 +#: ../../Zotlabs/Lib/Apps.php:235 ../../include/widgets.php:1444 msgid "Features" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:236 +#: ../../Zotlabs/Lib/Apps.php:237 msgid "Post" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:338 +#: ../../Zotlabs/Lib/Apps.php:339 msgid "Purchase" msgstr "" @@ -6891,42 +6904,6 @@ msgid "" "permissions set who is allowed to view the post." msgstr "" -#: ../../include/bb2diaspora.php:398 -msgid "Attachments:" -msgstr "" - -#: ../../include/bb2diaspora.php:485 ../../include/event.php:22 -#: ../../include/event.php:69 -msgid "l F d, Y \\@ g:i A" -msgstr "" - -#: ../../include/bb2diaspora.php:487 -msgid "$Projectname event notification:" -msgstr "" - -#: ../../include/bb2diaspora.php:491 ../../include/event.php:30 -#: ../../include/event.php:73 -msgid "Starts:" -msgstr "" - -#: ../../include/bb2diaspora.php:499 ../../include/event.php:40 -#: ../../include/event.php:77 -msgid "Finishes:" -msgstr "" - -#: ../../include/connections.php:95 -msgid "New window" -msgstr "" - -#: ../../include/connections.php:96 -msgid "Open the selected location in a different window or browser tab" -msgstr "" - -#: ../../include/connections.php:214 -#, php-format -msgid "User '%s' deleted" -msgstr "" - #: ../../include/conversation.php:204 #, php-format msgid "%1$s is now connected with %2$s" @@ -7145,7 +7122,7 @@ msgid "Files and Storage" msgstr "" #: ../../include/conversation.php:1677 ../../include/conversation.php:1680 -#: ../../include/widgets.php:842 +#: ../../include/widgets.php:827 msgid "Chatrooms" msgstr "" @@ -7203,6 +7180,19 @@ msgid_plural "Abstains" msgstr[0] "" msgstr[1] "" +#: ../../include/connections.php:95 +msgid "New window" +msgstr "" + +#: ../../include/connections.php:96 +msgid "Open the selected location in a different window or browser tab" +msgstr "" + +#: ../../include/connections.php:214 +#, php-format +msgid "User '%s' deleted" +msgstr "" + #: ../../include/group.php:26 msgid "" "A deleted group with this name was revived. Existing item permissions " @@ -7238,67 +7228,508 @@ msgstr "" msgid "add" msgstr "" -#: ../../include/import.php:29 -msgid "" -"Cannot create a duplicate channel identifier on this system. Import failed." +#: ../../include/js_strings.php:5 +msgid "Delete this item?" msgstr "" -#: ../../include/import.php:76 -msgid "Channel clone failed. Import failed." +#: ../../include/js_strings.php:8 +#, php-format +msgid "%s show less" msgstr "" -#: ../../include/items.php:902 ../../include/items.php:947 -msgid "(Unknown)" +#: ../../include/js_strings.php:9 +#, php-format +msgid "%s expand" msgstr "" -#: ../../include/items.php:1146 -msgid "Visible to anybody on the internet." +#: ../../include/js_strings.php:10 +#, php-format +msgid "%s collapse" msgstr "" -#: ../../include/items.php:1148 -msgid "Visible to you only." +#: ../../include/js_strings.php:11 +msgid "Password too short" msgstr "" -#: ../../include/items.php:1150 -msgid "Visible to anybody in this network." +#: ../../include/js_strings.php:12 +msgid "Passwords do not match" msgstr "" -#: ../../include/items.php:1152 -msgid "Visible to anybody authenticated." +#: ../../include/js_strings.php:13 +msgid "everybody" msgstr "" -#: ../../include/items.php:1154 +#: ../../include/js_strings.php:14 +msgid "Secret Passphrase" +msgstr "" + +#: ../../include/js_strings.php:15 +msgid "Passphrase hint" +msgstr "" + +#: ../../include/js_strings.php:16 +msgid "Notice: Permissions have changed but have not yet been submitted." +msgstr "" + +#: ../../include/js_strings.php:17 +msgid "close all" +msgstr "" + +#: ../../include/js_strings.php:18 +msgid "Nothing new here" +msgstr "" + +#: ../../include/js_strings.php:19 +msgid "Rate This Channel (this is public)" +msgstr "" + +#: ../../include/js_strings.php:21 +msgid "Describe (optional)" +msgstr "" + +#: ../../include/js_strings.php:23 +msgid "Please enter a link URL" +msgstr "" + +#: ../../include/js_strings.php:24 +msgid "Unsaved changes. Are you sure you wish to leave this page?" +msgstr "" + +#: ../../include/js_strings.php:27 +msgid "timeago.prefixAgo" +msgstr "" + +#: ../../include/js_strings.php:28 +msgid "timeago.prefixFromNow" +msgstr "" + +#: ../../include/js_strings.php:29 +msgid "ago" +msgstr "" + +#: ../../include/js_strings.php:30 +msgid "from now" +msgstr "" + +#: ../../include/js_strings.php:31 +msgid "less than a minute" +msgstr "" + +#: ../../include/js_strings.php:32 +msgid "about a minute" +msgstr "" + +#: ../../include/js_strings.php:33 #, php-format -msgid "Visible to anybody on %s." +msgid "%d minutes" msgstr "" -#: ../../include/items.php:1156 -msgid "Visible to all connections." +#: ../../include/js_strings.php:34 +msgid "about an hour" msgstr "" -#: ../../include/items.php:1158 -msgid "Visible to approved connections." +#: ../../include/js_strings.php:35 +#, php-format +msgid "about %d hours" msgstr "" -#: ../../include/items.php:1160 -msgid "Visible to specific connections." +#: ../../include/js_strings.php:36 +msgid "a day" msgstr "" -#: ../../include/items.php:3932 -msgid "Privacy group is empty." +#: ../../include/js_strings.php:37 +#, php-format +msgid "%d days" msgstr "" -#: ../../include/items.php:3939 +#: ../../include/js_strings.php:38 +msgid "about a month" +msgstr "" + +#: ../../include/js_strings.php:39 #, php-format -msgid "Privacy group: %s" +msgid "%d months" msgstr "" -#: ../../include/items.php:3951 -msgid "Connection not found." +#: ../../include/js_strings.php:40 +msgid "about a year" msgstr "" -#: ../../include/items.php:4317 -msgid "profile photo" +#: ../../include/js_strings.php:41 +#, php-format +msgid "%d years" +msgstr "" + +#: ../../include/js_strings.php:42 +msgid " " +msgstr "" + +#: ../../include/js_strings.php:43 +msgid "timeago.numbers" +msgstr "" + +#: ../../include/js_strings.php:45 ../../include/text.php:1237 +msgid "January" +msgstr "" + +#: ../../include/js_strings.php:46 ../../include/text.php:1237 +msgid "February" +msgstr "" + +#: ../../include/js_strings.php:47 ../../include/text.php:1237 +msgid "March" +msgstr "" + +#: ../../include/js_strings.php:48 ../../include/text.php:1237 +msgid "April" +msgstr "" + +#: ../../include/js_strings.php:49 +msgctxt "long" +msgid "May" +msgstr "" + +#: ../../include/js_strings.php:50 ../../include/text.php:1237 +msgid "June" +msgstr "" + +#: ../../include/js_strings.php:51 ../../include/text.php:1237 +msgid "July" +msgstr "" + +#: ../../include/js_strings.php:52 ../../include/text.php:1237 +msgid "August" +msgstr "" + +#: ../../include/js_strings.php:53 ../../include/text.php:1237 +msgid "September" +msgstr "" + +#: ../../include/js_strings.php:54 ../../include/text.php:1237 +msgid "October" +msgstr "" + +#: ../../include/js_strings.php:55 ../../include/text.php:1237 +msgid "November" +msgstr "" + +#: ../../include/js_strings.php:56 ../../include/text.php:1237 +msgid "December" +msgstr "" + +#: ../../include/js_strings.php:57 +msgid "Jan" +msgstr "" + +#: ../../include/js_strings.php:58 +msgid "Feb" +msgstr "" + +#: ../../include/js_strings.php:59 +msgid "Mar" +msgstr "" + +#: ../../include/js_strings.php:60 +msgid "Apr" +msgstr "" + +#: ../../include/js_strings.php:61 +msgctxt "short" +msgid "May" +msgstr "" + +#: ../../include/js_strings.php:62 +msgid "Jun" +msgstr "" + +#: ../../include/js_strings.php:63 +msgid "Jul" +msgstr "" + +#: ../../include/js_strings.php:64 +msgid "Aug" +msgstr "" + +#: ../../include/js_strings.php:65 +msgid "Sep" +msgstr "" + +#: ../../include/js_strings.php:66 +msgid "Oct" +msgstr "" + +#: ../../include/js_strings.php:67 +msgid "Nov" +msgstr "" + +#: ../../include/js_strings.php:68 +msgid "Dec" +msgstr "" + +#: ../../include/js_strings.php:69 ../../include/text.php:1233 +msgid "Sunday" +msgstr "" + +#: ../../include/js_strings.php:70 ../../include/text.php:1233 +msgid "Monday" +msgstr "" + +#: ../../include/js_strings.php:71 ../../include/text.php:1233 +msgid "Tuesday" +msgstr "" + +#: ../../include/js_strings.php:72 ../../include/text.php:1233 +msgid "Wednesday" +msgstr "" + +#: ../../include/js_strings.php:73 ../../include/text.php:1233 +msgid "Thursday" +msgstr "" + +#: ../../include/js_strings.php:74 ../../include/text.php:1233 +msgid "Friday" +msgstr "" + +#: ../../include/js_strings.php:75 ../../include/text.php:1233 +msgid "Saturday" +msgstr "" + +#: ../../include/js_strings.php:76 +msgid "Sun" +msgstr "" + +#: ../../include/js_strings.php:77 +msgid "Mon" +msgstr "" + +#: ../../include/js_strings.php:78 +msgid "Tue" +msgstr "" + +#: ../../include/js_strings.php:79 +msgid "Wed" +msgstr "" + +#: ../../include/js_strings.php:80 +msgid "Thu" +msgstr "" + +#: ../../include/js_strings.php:81 +msgid "Fri" +msgstr "" + +#: ../../include/js_strings.php:82 +msgid "Sat" +msgstr "" + +#: ../../include/js_strings.php:83 +msgctxt "calendar" +msgid "today" +msgstr "" + +#: ../../include/js_strings.php:84 +msgctxt "calendar" +msgid "month" +msgstr "" + +#: ../../include/js_strings.php:85 +msgctxt "calendar" +msgid "week" +msgstr "" + +#: ../../include/js_strings.php:86 +msgctxt "calendar" +msgid "day" +msgstr "" + +#: ../../include/js_strings.php:87 +msgctxt "calendar" +msgid "All day" +msgstr "" + +#: ../../include/nav.php:82 ../../include/nav.php:115 ../../boot.php:1703 +msgid "Logout" +msgstr "" + +#: ../../include/nav.php:82 ../../include/nav.php:115 +msgid "End this session" +msgstr "" + +#: ../../include/nav.php:85 ../../include/nav.php:146 +msgid "Home" +msgstr "" + +#: ../../include/nav.php:85 +msgid "Your posts and conversations" +msgstr "" + +#: ../../include/nav.php:86 +msgid "Your profile page" +msgstr "" + +#: ../../include/nav.php:88 +msgid "Manage/Edit profiles" +msgstr "" + +#: ../../include/nav.php:90 ../../include/channel.php:965 +msgid "Edit Profile" +msgstr "" + +#: ../../include/nav.php:90 +msgid "Edit your profile" +msgstr "" + +#: ../../include/nav.php:92 +msgid "Your photos" +msgstr "" + +#: ../../include/nav.php:93 +msgid "Your files" +msgstr "" + +#: ../../include/nav.php:96 +msgid "Your chatrooms" +msgstr "" + +#: ../../include/nav.php:102 +msgid "Your bookmarks" +msgstr "" + +#: ../../include/nav.php:106 +msgid "Your webpages" +msgstr "" + +#: ../../include/nav.php:108 +msgid "Your wiki" +msgstr "" + +#: ../../include/nav.php:112 +msgid "Sign in" +msgstr "" + +#: ../../include/nav.php:129 +#, php-format +msgid "%s - click to logout" +msgstr "" + +#: ../../include/nav.php:132 +msgid "Remote authentication" +msgstr "" + +#: ../../include/nav.php:132 +msgid "Click to authenticate to your home hub" +msgstr "" + +#: ../../include/nav.php:146 +msgid "Home Page" +msgstr "" + +#: ../../include/nav.php:149 +msgid "Create an account" +msgstr "" + +#: ../../include/nav.php:161 +msgid "Help and documentation" +msgstr "" + +#: ../../include/nav.php:165 +msgid "Applications, utilities, links, games" +msgstr "" + +#: ../../include/nav.php:167 +msgid "Search site @name, #tag, ?docs, content" +msgstr "" + +#: ../../include/nav.php:169 +msgid "Channel Directory" +msgstr "" + +#: ../../include/nav.php:181 +msgid "Your grid" +msgstr "" + +#: ../../include/nav.php:182 +msgid "Mark all grid notifications seen" +msgstr "" + +#: ../../include/nav.php:184 +msgid "Channel home" +msgstr "" + +#: ../../include/nav.php:185 +msgid "Mark all channel notifications seen" +msgstr "" + +#: ../../include/nav.php:191 +msgid "Notices" +msgstr "" + +#: ../../include/nav.php:191 +msgid "Notifications" +msgstr "" + +#: ../../include/nav.php:192 +msgid "See all notifications" +msgstr "" + +#: ../../include/nav.php:195 +msgid "Private mail" +msgstr "" + +#: ../../include/nav.php:196 +msgid "See all private messages" +msgstr "" + +#: ../../include/nav.php:197 +msgid "Mark all private messages seen" +msgstr "" + +#: ../../include/nav.php:198 ../../include/widgets.php:658 +msgid "Inbox" +msgstr "" + +#: ../../include/nav.php:199 ../../include/widgets.php:663 +msgid "Outbox" +msgstr "" + +#: ../../include/nav.php:200 ../../include/widgets.php:668 +msgid "New Message" +msgstr "" + +#: ../../include/nav.php:203 +msgid "Event Calendar" +msgstr "" + +#: ../../include/nav.php:204 +msgid "See all events" +msgstr "" + +#: ../../include/nav.php:205 +msgid "Mark all events seen" +msgstr "" + +#: ../../include/nav.php:208 +msgid "Manage Your Channels" +msgstr "" + +#: ../../include/nav.php:210 +msgid "Account/Channel Settings" +msgstr "" + +#: ../../include/nav.php:218 ../../include/widgets.php:1474 +msgid "Admin" +msgstr "" + +#: ../../include/nav.php:218 +msgid "Site Setup and Configuration" +msgstr "" + +#: ../../include/nav.php:254 +msgid "@name, #tag, ?doc, content" +msgstr "" + +#: ../../include/nav.php:255 +msgid "Please wait..." msgstr "" #: ../../include/selectors.php:30 @@ -7547,6 +7978,21 @@ msgstr "" msgid "Ask me" msgstr "" +#: ../../include/event.php:22 ../../include/event.php:69 +#: ../../include/bb2diaspora.php:485 +msgid "l F d, Y \\@ g:i A" +msgstr "" + +#: ../../include/event.php:30 ../../include/event.php:73 +#: ../../include/bb2diaspora.php:491 +msgid "Starts:" +msgstr "" + +#: ../../include/event.php:40 ../../include/event.php:77 +#: ../../include/bb2diaspora.php:499 +msgid "Finishes:" +msgstr "" + #: ../../include/event.php:812 msgid "This event has been added to your calendar." msgstr "" @@ -7689,379 +8135,402 @@ msgstr "" msgid "Cannot connect to yourself." msgstr "" -#: ../../include/features.php:48 -msgid "General Features" +#: ../../include/import.php:29 +msgid "" +"Cannot create a duplicate channel identifier on this system. Import failed." msgstr "" -#: ../../include/features.php:50 -msgid "Content Expiration" +#: ../../include/import.php:76 +msgid "Channel clone failed. Import failed." msgstr "" -#: ../../include/features.php:50 -msgid "Remove posts/comments and/or private messages at a future time" +#: ../../include/security.php:383 +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 "" -#: ../../include/features.php:51 -msgid "Multiple Profiles" +#: ../../include/api.php:1326 +msgid "Public Timeline" msgstr "" -#: ../../include/features.php:51 -msgid "Ability to create multiple profiles" +#: ../../include/page_widgets.php:7 +msgid "New Page" msgstr "" -#: ../../include/features.php:52 -msgid "Advanced Profiles" +#: ../../include/page_widgets.php:46 +msgid "Title" msgstr "" -#: ../../include/features.php:52 -msgid "Additional profile sections and selections" +#: ../../include/photos.php:114 +#, php-format +msgid "Image exceeds website size limit of %lu bytes" msgstr "" -#: ../../include/features.php:53 -msgid "Profile Import/Export" +#: ../../include/photos.php:121 +msgid "Image file is empty." msgstr "" -#: ../../include/features.php:53 -msgid "Save and load profile details across sites/channels" +#: ../../include/photos.php:259 +msgid "Photo storage failed." msgstr "" -#: ../../include/features.php:54 -msgid "Web Pages" +#: ../../include/photos.php:299 +msgid "a new photo" msgstr "" -#: ../../include/features.php:54 -msgid "Provide managed web pages on your channel" +#: ../../include/photos.php:303 +#, php-format +msgctxt "photo_upload" +msgid "%1$s posted %2$s to %3$s" msgstr "" -#: ../../include/features.php:55 -msgid "Provide a wiki for your channel" +#: ../../include/photos.php:510 +msgid "Upload New Photos" msgstr "" -#: ../../include/features.php:56 -msgid "Hide Rating" +#: ../../include/taxonomy.php:188 ../../include/taxonomy.php:270 +#: ../../include/widgets.php:46 ../../include/widgets.php:429 +#: ../../include/contact_widgets.php:91 +msgid "Categories" msgstr "" -#: ../../include/features.php:56 -msgid "" -"Hide the rating buttons on your channel and profile pages. Note: People can " -"still rate you somewhere else." +#: ../../include/taxonomy.php:228 ../../include/taxonomy.php:249 +msgid "Tags" msgstr "" -#: ../../include/features.php:57 -msgid "Private Notes" +#: ../../include/taxonomy.php:293 +msgid "Keywords" msgstr "" -#: ../../include/features.php:57 -msgid "Enables a tool to store notes and reminders (note: not encrypted)" +#: ../../include/taxonomy.php:314 +msgid "have" msgstr "" -#: ../../include/features.php:58 -msgid "Navigation Channel Select" +#: ../../include/taxonomy.php:314 +msgid "has" msgstr "" -#: ../../include/features.php:58 -msgid "Change channels directly from within the navigation dropdown menu" +#: ../../include/taxonomy.php:315 +msgid "want" msgstr "" -#: ../../include/features.php:59 -msgid "Photo Location" +#: ../../include/taxonomy.php:315 +msgid "wants" msgstr "" -#: ../../include/features.php:59 -msgid "If location data is available on uploaded photos, link this to a map." +#: ../../include/taxonomy.php:316 +msgid "likes" msgstr "" -#: ../../include/features.php:60 -msgid "Access Controlled Chatrooms" +#: ../../include/taxonomy.php:317 +msgid "dislikes" msgstr "" -#: ../../include/features.php:60 -msgid "Provide chatrooms and chat services with access control." +#: ../../include/zot.php:709 +msgid "Invalid data packet" msgstr "" -#: ../../include/features.php:61 -msgid "Smart Birthdays" +#: ../../include/zot.php:725 +msgid "Unable to verify channel signature" msgstr "" -#: ../../include/features.php:61 -msgid "" -"Make birthday events timezone aware in case your friends are scattered " -"across the planet." +#: ../../include/zot.php:2373 +#, php-format +msgid "Unable to verify site signature for %s" msgstr "" -#: ../../include/features.php:62 -msgid "Expert Mode" +#: ../../include/zot.php:3718 +msgid "invalid target signature" msgstr "" -#: ../../include/features.php:62 -msgid "Enable Expert Mode to provide advanced configuration options" +#: ../../include/attach.php:247 ../../include/attach.php:333 +msgid "Item was not found." msgstr "" -#: ../../include/features.php:63 -msgid "Premium Channel" +#: ../../include/attach.php:499 +msgid "No source file." msgstr "" -#: ../../include/features.php:63 -msgid "" -"Allows you to set restrictions and terms on those that connect with your " -"channel" +#: ../../include/attach.php:521 +msgid "Cannot locate file to replace" msgstr "" -#: ../../include/features.php:68 -msgid "Post Composition Features" +#: ../../include/attach.php:539 +msgid "Cannot locate file to revise/update" msgstr "" -#: ../../include/features.php:71 -msgid "Large Photos" +#: ../../include/attach.php:674 +#, php-format +msgid "File exceeds size limit of %d" msgstr "" -#: ../../include/features.php:71 -msgid "" -"Include large (1024px) photo thumbnails in posts. If not enabled, use small " -"(640px) photo thumbnails" +#: ../../include/attach.php:688 +#, php-format +msgid "You have reached your limit of %1$.0f Mbytes attachment storage." msgstr "" -#: ../../include/features.php:72 -msgid "Automatically import channel content from other channels or feeds" +#: ../../include/attach.php:846 +msgid "File upload failed. Possible system limit or action terminated." msgstr "" -#: ../../include/features.php:73 -msgid "Even More Encryption" +#: ../../include/attach.php:859 +msgid "Stored file could not be verified. Upload failed." msgstr "" -#: ../../include/features.php:73 -msgid "" -"Allow optional encryption of content end-to-end with a shared secret key" +#: ../../include/attach.php:915 ../../include/attach.php:931 +msgid "Path not available." msgstr "" -#: ../../include/features.php:74 -msgid "Enable Voting Tools" +#: ../../include/attach.php:977 ../../include/attach.php:1129 +msgid "Empty pathname" msgstr "" -#: ../../include/features.php:74 -msgid "Provide a class of post which others can vote on" +#: ../../include/attach.php:1003 +msgid "duplicate filename or path" msgstr "" -#: ../../include/features.php:75 -msgid "Delayed Posting" +#: ../../include/attach.php:1025 +msgid "Path not found." msgstr "" -#: ../../include/features.php:75 -msgid "Allow posts to be published at a later date" +#: ../../include/attach.php:1083 +msgid "mkdir failed." msgstr "" -#: ../../include/features.php:76 -msgid "Suppress Duplicate Posts/Comments" +#: ../../include/attach.php:1087 +msgid "database storage failed." msgstr "" -#: ../../include/features.php:76 -msgid "" -"Prevent posts with identical content to be published with less than two " -"minutes in between submissions." +#: ../../include/attach.php:1135 +msgid "Empty path" msgstr "" -#: ../../include/features.php:82 -msgid "Network and Stream Filtering" +#: ../../include/widgets.php:103 +msgid "System" msgstr "" -#: ../../include/features.php:83 -msgid "Search by Date" +#: ../../include/widgets.php:106 +msgid "New App" msgstr "" -#: ../../include/features.php:83 -msgid "Ability to select posts by date ranges" +#: ../../include/widgets.php:154 +msgid "Suggestions" msgstr "" -#: ../../include/features.php:84 -msgid "Enable management and selection of privacy groups" +#: ../../include/widgets.php:155 +msgid "See more..." msgstr "" -#: ../../include/features.php:85 ../../include/widgets.php:281 +#: ../../include/widgets.php:175 +#, php-format +msgid "You have %1$.0f of %2$.0f allowed connections." +msgstr "" + +#: ../../include/widgets.php:181 +msgid "Add New Connection" +msgstr "" + +#: ../../include/widgets.php:182 +msgid "Enter channel address" +msgstr "" + +#: ../../include/widgets.php:183 +msgid "Examples: bob@example.com, https://example.com/barbara" +msgstr "" + +#: ../../include/widgets.php:199 +msgid "Notes" +msgstr "" + +#: ../../include/widgets.php:273 +msgid "Remove term" +msgstr "" + +#: ../../include/widgets.php:281 ../../include/features.php:85 msgid "Saved Searches" msgstr "" -#: ../../include/features.php:85 -msgid "Save search terms for re-use" +#: ../../include/widgets.php:310 ../../include/features.php:99 +#: ../../include/contact_widgets.php:53 +msgid "Saved Folders" msgstr "" -#: ../../include/features.php:86 -msgid "Network Personal Tab" +#: ../../include/widgets.php:313 ../../include/widgets.php:432 +#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:94 +msgid "Everything" msgstr "" -#: ../../include/features.php:86 -msgid "Enable tab to display only Network posts that you've interacted on" +#: ../../include/widgets.php:354 +msgid "Archives" msgstr "" -#: ../../include/features.php:87 -msgid "Network New Tab" +#: ../../include/widgets.php:516 +msgid "Refresh" msgstr "" -#: ../../include/features.php:87 -msgid "Enable tab to display all new Network activity" +#: ../../include/widgets.php:556 +msgid "Account settings" msgstr "" -#: ../../include/features.php:88 -msgid "Affinity Tool" +#: ../../include/widgets.php:562 +msgid "Channel settings" msgstr "" -#: ../../include/features.php:88 -msgid "Filter stream activity by depth of relationships" +#: ../../include/widgets.php:571 +msgid "Additional features" msgstr "" -#: ../../include/features.php:89 -msgid "Connection Filtering" +#: ../../include/widgets.php:578 +msgid "Feature/Addon settings" msgstr "" -#: ../../include/features.php:89 -msgid "Filter incoming posts from connections based on keywords/content" +#: ../../include/widgets.php:584 +msgid "Display settings" msgstr "" -#: ../../include/features.php:90 -msgid "Show channel suggestions" +#: ../../include/widgets.php:591 +msgid "Manage locations" msgstr "" -#: ../../include/features.php:95 -msgid "Post/Comment Tools" +#: ../../include/widgets.php:600 +msgid "Export channel" msgstr "" -#: ../../include/features.php:96 -msgid "Community Tagging" +#: ../../include/widgets.php:607 +msgid "Connected apps" msgstr "" -#: ../../include/features.php:96 -msgid "Ability to tag existing posts" +#: ../../include/widgets.php:622 +msgid "Premium Channel Settings" msgstr "" -#: ../../include/features.php:97 -msgid "Post Categories" +#: ../../include/widgets.php:651 +msgid "Private Mail Menu" msgstr "" -#: ../../include/features.php:97 -msgid "Add categories to your posts" +#: ../../include/widgets.php:653 +msgid "Combined View" msgstr "" -#: ../../include/features.php:98 -msgid "Emoji Reactions" +#: ../../include/widgets.php:685 ../../include/widgets.php:697 +msgid "Conversations" msgstr "" -#: ../../include/features.php:98 -msgid "Add emoji reaction ability to posts" +#: ../../include/widgets.php:689 +msgid "Received Messages" msgstr "" -#: ../../include/features.php:99 ../../include/widgets.php:310 -#: ../../include/contact_widgets.php:53 -msgid "Saved Folders" +#: ../../include/widgets.php:693 +msgid "Sent Messages" msgstr "" -#: ../../include/features.php:99 -msgid "Ability to file posts under folders" +#: ../../include/widgets.php:707 +msgid "No messages." msgstr "" -#: ../../include/features.php:100 -msgid "Dislike Posts" +#: ../../include/widgets.php:725 +msgid "Delete conversation" msgstr "" -#: ../../include/features.php:100 -msgid "Ability to dislike posts/comments" +#: ../../include/widgets.php:751 +msgid "Events Tools" msgstr "" -#: ../../include/features.php:101 -msgid "Star Posts" +#: ../../include/widgets.php:752 +msgid "Export Calendar" msgstr "" -#: ../../include/features.php:101 -msgid "Ability to mark special posts with a star indicator" +#: ../../include/widgets.php:753 +msgid "Import Calendar" msgstr "" -#: ../../include/features.php:102 -msgid "Tag Cloud" +#: ../../include/widgets.php:831 +msgid "Overview" msgstr "" -#: ../../include/features.php:102 -msgid "Provide a personal tag cloud on your channel page" +#: ../../include/widgets.php:838 +msgid "Chat Members" msgstr "" -#: ../../include/security.php:383 -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." +#: ../../include/widgets.php:860 +msgid "Wiki List" msgstr "" -#: ../../include/api.php:1326 -msgid "Public Timeline" +#: ../../include/widgets.php:898 +msgid "Wiki Pages" msgstr "" -#: ../../include/page_widgets.php:7 -msgid "New Page" +#: ../../include/widgets.php:933 +msgid "Bookmarked Chatrooms" msgstr "" -#: ../../include/page_widgets.php:46 -msgid "Title" +#: ../../include/widgets.php:956 +msgid "Suggested Chatrooms" msgstr "" -#: ../../include/photos.php:114 -#, php-format -msgid "Image exceeds website size limit of %lu bytes" +#: ../../include/widgets.php:1102 ../../include/widgets.php:1214 +msgid "photo/image" msgstr "" -#: ../../include/photos.php:121 -msgid "Image file is empty." +#: ../../include/widgets.php:1157 +msgid "Click to show more" msgstr "" -#: ../../include/photos.php:259 -msgid "Photo storage failed." +#: ../../include/widgets.php:1308 +msgid "Rating Tools" msgstr "" -#: ../../include/photos.php:299 -msgid "a new photo" +#: ../../include/widgets.php:1312 ../../include/widgets.php:1314 +msgid "Rate Me" msgstr "" -#: ../../include/photos.php:303 -#, php-format -msgctxt "photo_upload" -msgid "%1$s posted %2$s to %3$s" +#: ../../include/widgets.php:1317 +msgid "View Ratings" msgstr "" -#: ../../include/photos.php:510 -msgid "Upload New Photos" +#: ../../include/widgets.php:1374 +msgid "Forums" msgstr "" -#: ../../include/taxonomy.php:188 ../../include/taxonomy.php:270 -#: ../../include/widgets.php:46 ../../include/widgets.php:429 -#: ../../include/contact_widgets.php:91 -msgid "Categories" +#: ../../include/widgets.php:1403 +msgid "Tasks" msgstr "" -#: ../../include/taxonomy.php:228 ../../include/taxonomy.php:249 -msgid "Tags" +#: ../../include/widgets.php:1412 +msgid "Documentation" msgstr "" -#: ../../include/taxonomy.php:293 -msgid "Keywords" +#: ../../include/widgets.php:1414 +msgid "Project/Site Information" msgstr "" -#: ../../include/taxonomy.php:314 -msgid "have" +#: ../../include/widgets.php:1415 +msgid "For Members" msgstr "" -#: ../../include/taxonomy.php:314 -msgid "has" +#: ../../include/widgets.php:1416 +msgid "For Administrators" msgstr "" -#: ../../include/taxonomy.php:315 -msgid "want" +#: ../../include/widgets.php:1417 +msgid "For Developers" msgstr "" -#: ../../include/taxonomy.php:315 -msgid "wants" +#: ../../include/widgets.php:1441 ../../include/widgets.php:1479 +msgid "Member registrations waiting for confirmation" msgstr "" -#: ../../include/taxonomy.php:316 -msgid "likes" +#: ../../include/widgets.php:1447 +msgid "Inspect queue" msgstr "" -#: ../../include/taxonomy.php:317 -msgid "dislikes" +#: ../../include/widgets.php:1449 +msgid "DB updates" +msgstr "" + +#: ../../include/widgets.php:1475 +msgid "Plugin Features" msgstr "" #: ../../include/text.php:404 @@ -8225,82 +8694,10 @@ msgstr "" msgid "surprised" msgstr "" -#: ../../include/text.php:1233 ../../include/js_strings.php:70 -msgid "Monday" -msgstr "" - -#: ../../include/text.php:1233 ../../include/js_strings.php:71 -msgid "Tuesday" -msgstr "" - -#: ../../include/text.php:1233 ../../include/js_strings.php:72 -msgid "Wednesday" -msgstr "" - -#: ../../include/text.php:1233 ../../include/js_strings.php:73 -msgid "Thursday" -msgstr "" - -#: ../../include/text.php:1233 ../../include/js_strings.php:74 -msgid "Friday" -msgstr "" - -#: ../../include/text.php:1233 ../../include/js_strings.php:75 -msgid "Saturday" -msgstr "" - -#: ../../include/text.php:1233 ../../include/js_strings.php:69 -msgid "Sunday" -msgstr "" - -#: ../../include/text.php:1237 ../../include/js_strings.php:45 -msgid "January" -msgstr "" - -#: ../../include/text.php:1237 ../../include/js_strings.php:46 -msgid "February" -msgstr "" - -#: ../../include/text.php:1237 ../../include/js_strings.php:47 -msgid "March" -msgstr "" - -#: ../../include/text.php:1237 ../../include/js_strings.php:48 -msgid "April" -msgstr "" - #: ../../include/text.php:1237 msgid "May" msgstr "" -#: ../../include/text.php:1237 ../../include/js_strings.php:50 -msgid "June" -msgstr "" - -#: ../../include/text.php:1237 ../../include/js_strings.php:51 -msgid "July" -msgstr "" - -#: ../../include/text.php:1237 ../../include/js_strings.php:52 -msgid "August" -msgstr "" - -#: ../../include/text.php:1237 ../../include/js_strings.php:53 -msgid "September" -msgstr "" - -#: ../../include/text.php:1237 ../../include/js_strings.php:54 -msgid "October" -msgstr "" - -#: ../../include/text.php:1237 ../../include/js_strings.php:55 -msgid "November" -msgstr "" - -#: ../../include/text.php:1237 ../../include/js_strings.php:56 -msgid "December" -msgstr "" - #: ../../include/text.php:1314 ../../include/text.php:1318 msgid "Unknown Attachment" msgstr "" @@ -8349,333 +8746,58 @@ msgstr "" msgid "Pages" msgstr "" -#: ../../include/widgets.php:103 -msgid "System" -msgstr "" - -#: ../../include/widgets.php:106 -msgid "New App" -msgstr "" - -#: ../../include/widgets.php:154 -msgid "Suggestions" -msgstr "" - -#: ../../include/widgets.php:155 -msgid "See more..." -msgstr "" - -#: ../../include/widgets.php:175 -#, php-format -msgid "You have %1$.0f of %2$.0f allowed connections." -msgstr "" - -#: ../../include/widgets.php:181 -msgid "Add New Connection" -msgstr "" - -#: ../../include/widgets.php:182 -msgid "Enter channel address" -msgstr "" - -#: ../../include/widgets.php:183 -msgid "Examples: bob@example.com, https://example.com/barbara" -msgstr "" - -#: ../../include/widgets.php:199 -msgid "Notes" -msgstr "" - -#: ../../include/widgets.php:273 -msgid "Remove term" -msgstr "" - -#: ../../include/widgets.php:313 ../../include/widgets.php:432 -#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:94 -msgid "Everything" -msgstr "" - -#: ../../include/widgets.php:354 -msgid "Archives" -msgstr "" - -#: ../../include/widgets.php:516 -msgid "Refresh" -msgstr "" - -#: ../../include/widgets.php:556 -msgid "Account settings" -msgstr "" - -#: ../../include/widgets.php:562 -msgid "Channel settings" -msgstr "" - -#: ../../include/widgets.php:571 -msgid "Additional features" -msgstr "" - -#: ../../include/widgets.php:578 -msgid "Feature/Addon settings" -msgstr "" - -#: ../../include/widgets.php:584 -msgid "Display settings" -msgstr "" - -#: ../../include/widgets.php:591 -msgid "Manage locations" -msgstr "" - -#: ../../include/widgets.php:600 -msgid "Export channel" -msgstr "" - -#: ../../include/widgets.php:607 -msgid "Connected apps" -msgstr "" - -#: ../../include/widgets.php:622 -msgid "Premium Channel Settings" -msgstr "" - -#: ../../include/widgets.php:651 -msgid "Private Mail Menu" -msgstr "" - -#: ../../include/widgets.php:653 -msgid "Combined View" -msgstr "" - -#: ../../include/widgets.php:658 ../../include/nav.php:198 -msgid "Inbox" -msgstr "" - -#: ../../include/widgets.php:663 ../../include/nav.php:199 -msgid "Outbox" -msgstr "" - -#: ../../include/widgets.php:668 ../../include/nav.php:200 -msgid "New Message" -msgstr "" - -#: ../../include/widgets.php:685 ../../include/widgets.php:697 -msgid "Conversations" -msgstr "" - -#: ../../include/widgets.php:689 -msgid "Received Messages" -msgstr "" - -#: ../../include/widgets.php:693 -msgid "Sent Messages" -msgstr "" - -#: ../../include/widgets.php:707 -msgid "No messages." -msgstr "" - -#: ../../include/widgets.php:725 -msgid "Delete conversation" -msgstr "" - -#: ../../include/widgets.php:751 -msgid "Events Menu" -msgstr "" - -#: ../../include/widgets.php:752 -msgid "Day View" -msgstr "" - -#: ../../include/widgets.php:753 -msgid "Week View" -msgstr "" - -#: ../../include/widgets.php:754 -msgid "Month View" -msgstr "" - -#: ../../include/widgets.php:766 -msgid "Events Tools" -msgstr "" - -#: ../../include/widgets.php:767 -msgid "Export Calendar" -msgstr "" - -#: ../../include/widgets.php:768 -msgid "Import Calendar" -msgstr "" - -#: ../../include/widgets.php:846 -msgid "Overview" -msgstr "" - -#: ../../include/widgets.php:853 -msgid "Chat Members" -msgstr "" - -#: ../../include/widgets.php:875 -msgid "Wiki List" -msgstr "" - -#: ../../include/widgets.php:913 -msgid "Wiki Pages" -msgstr "" - -#: ../../include/widgets.php:948 -msgid "Bookmarked Chatrooms" -msgstr "" - -#: ../../include/widgets.php:971 -msgid "Suggested Chatrooms" -msgstr "" - -#: ../../include/widgets.php:1117 ../../include/widgets.php:1229 -msgid "photo/image" -msgstr "" - -#: ../../include/widgets.php:1172 -msgid "Click to show more" -msgstr "" - -#: ../../include/widgets.php:1323 -msgid "Rating Tools" -msgstr "" - -#: ../../include/widgets.php:1327 ../../include/widgets.php:1329 -msgid "Rate Me" -msgstr "" - -#: ../../include/widgets.php:1332 -msgid "View Ratings" -msgstr "" - -#: ../../include/widgets.php:1389 -msgid "Forums" -msgstr "" - -#: ../../include/widgets.php:1418 -msgid "Tasks" -msgstr "" - -#: ../../include/widgets.php:1427 -msgid "Documentation" -msgstr "" - -#: ../../include/widgets.php:1429 -msgid "Project/Site Information" -msgstr "" - -#: ../../include/widgets.php:1430 -msgid "For Members" -msgstr "" - -#: ../../include/widgets.php:1431 -msgid "For Administrators" -msgstr "" - -#: ../../include/widgets.php:1432 -msgid "For Developers" -msgstr "" - -#: ../../include/widgets.php:1456 ../../include/widgets.php:1494 -msgid "Member registrations waiting for confirmation" -msgstr "" - -#: ../../include/widgets.php:1462 -msgid "Inspect queue" -msgstr "" - -#: ../../include/widgets.php:1464 -msgid "DB updates" +#: ../../include/items.php:898 ../../include/items.php:943 +msgid "(Unknown)" msgstr "" -#: ../../include/widgets.php:1489 ../../include/nav.php:218 -msgid "Admin" +#: ../../include/items.php:1142 +msgid "Visible to anybody on the internet." msgstr "" -#: ../../include/widgets.php:1490 -msgid "Plugin Features" +#: ../../include/items.php:1144 +msgid "Visible to you only." msgstr "" -#: ../../include/zot.php:709 -msgid "Invalid data packet" +#: ../../include/items.php:1146 +msgid "Visible to anybody in this network." msgstr "" -#: ../../include/zot.php:725 -msgid "Unable to verify channel signature" +#: ../../include/items.php:1148 +msgid "Visible to anybody authenticated." msgstr "" -#: ../../include/zot.php:2373 +#: ../../include/items.php:1150 #, php-format -msgid "Unable to verify site signature for %s" -msgstr "" - -#: ../../include/zot.php:3718 -msgid "invalid target signature" -msgstr "" - -#: ../../include/attach.php:247 ../../include/attach.php:333 -msgid "Item was not found." +msgid "Visible to anybody on %s." msgstr "" -#: ../../include/attach.php:499 -msgid "No source file." +#: ../../include/items.php:1152 +msgid "Visible to all connections." msgstr "" -#: ../../include/attach.php:521 -msgid "Cannot locate file to replace" +#: ../../include/items.php:1154 +msgid "Visible to approved connections." msgstr "" -#: ../../include/attach.php:539 -msgid "Cannot locate file to revise/update" +#: ../../include/items.php:1156 +msgid "Visible to specific connections." msgstr "" -#: ../../include/attach.php:674 -#, php-format -msgid "File exceeds size limit of %d" +#: ../../include/items.php:3919 +msgid "Privacy group is empty." msgstr "" -#: ../../include/attach.php:688 +#: ../../include/items.php:3926 #, php-format -msgid "You have reached your limit of %1$.0f Mbytes attachment storage." -msgstr "" - -#: ../../include/attach.php:846 -msgid "File upload failed. Possible system limit or action terminated." -msgstr "" - -#: ../../include/attach.php:859 -msgid "Stored file could not be verified. Upload failed." -msgstr "" - -#: ../../include/attach.php:915 ../../include/attach.php:931 -msgid "Path not available." -msgstr "" - -#: ../../include/attach.php:977 ../../include/attach.php:1129 -msgid "Empty pathname" -msgstr "" - -#: ../../include/attach.php:1003 -msgid "duplicate filename or path" -msgstr "" - -#: ../../include/attach.php:1025 -msgid "Path not found." -msgstr "" - -#: ../../include/attach.php:1083 -msgid "mkdir failed." +msgid "Privacy group: %s" msgstr "" -#: ../../include/attach.php:1087 -msgid "database storage failed." +#: ../../include/items.php:3938 +msgid "Connection not found." msgstr "" -#: ../../include/attach.php:1135 -msgid "Empty path" +#: ../../include/items.php:4304 +msgid "profile photo" msgstr "" #: ../../include/bbcode.php:123 ../../include/bbcode.php:878 @@ -8725,162 +8847,57 @@ msgstr "" msgid "$1 wrote:" msgstr "" -#: ../../include/channel.php:32 -msgid "Unable to obtain identity information from database" -msgstr "" - -#: ../../include/channel.php:66 -msgid "Empty name" -msgstr "" - -#: ../../include/channel.php:69 -msgid "Name too long" -msgstr "" - -#: ../../include/channel.php:180 -msgid "No account identifier" -msgstr "" - -#: ../../include/channel.php:192 -msgid "Nickname is required." -msgstr "" - -#: ../../include/channel.php:206 -msgid "Reserved nickname. Please choose another." -msgstr "" - -#: ../../include/channel.php:211 -msgid "" -"Nickname has unsupported characters or is already being used on this site." -msgstr "" - -#: ../../include/channel.php:287 -msgid "Unable to retrieve created identity" -msgstr "" - -#: ../../include/channel.php:345 -msgid "Default Profile" -msgstr "" - -#: ../../include/channel.php:815 -msgid "Requested channel is not available." -msgstr "" - -#: ../../include/channel.php:962 -msgid "Create New Profile" -msgstr "" - -#: ../../include/channel.php:965 ../../include/nav.php:90 -msgid "Edit Profile" -msgstr "" - -#: ../../include/channel.php:982 -msgid "Visible to everybody" -msgstr "" - -#: ../../include/channel.php:1055 ../../include/channel.php:1167 -msgid "Gender:" -msgstr "" - -#: ../../include/channel.php:1056 ../../include/channel.php:1211 -msgid "Status:" -msgstr "" - -#: ../../include/channel.php:1057 ../../include/channel.php:1222 -msgid "Homepage:" -msgstr "" - -#: ../../include/channel.php:1058 -msgid "Online Now" -msgstr "" - -#: ../../include/channel.php:1172 -msgid "Like this channel" -msgstr "" - -#: ../../include/channel.php:1196 -msgid "j F, Y" -msgstr "" - -#: ../../include/channel.php:1197 -msgid "j F" -msgstr "" - -#: ../../include/channel.php:1204 -msgid "Birthday:" -msgstr "" - -#: ../../include/channel.php:1217 -#, php-format -msgid "for %1$d %2$s" -msgstr "" - -#: ../../include/channel.php:1220 -msgid "Sexual Preference:" -msgstr "" - -#: ../../include/channel.php:1226 -msgid "Tags:" -msgstr "" - -#: ../../include/channel.php:1228 -msgid "Political Views:" -msgstr "" - -#: ../../include/channel.php:1230 -msgid "Religion:" -msgstr "" - -#: ../../include/channel.php:1234 -msgid "Hobbies/Interests:" +#: ../../include/network.php:704 +msgid "view full size" msgstr "" -#: ../../include/channel.php:1236 -msgid "Likes:" +#: ../../include/network.php:1930 ../../include/account.php:317 +#: ../../include/account.php:344 ../../include/account.php:404 +msgid "Administrator" msgstr "" -#: ../../include/channel.php:1238 -msgid "Dislikes:" +#: ../../include/network.php:1944 +msgid "No Subject" msgstr "" -#: ../../include/channel.php:1240 -msgid "Contact information and Social Networks:" +#: ../../include/network.php:2198 ../../include/network.php:2199 +msgid "Friendica" msgstr "" -#: ../../include/channel.php:1242 -msgid "My other channels:" +#: ../../include/network.php:2200 +msgid "OStatus" msgstr "" -#: ../../include/channel.php:1244 -msgid "Musical interests:" +#: ../../include/network.php:2201 +msgid "GNU-Social" msgstr "" -#: ../../include/channel.php:1246 -msgid "Books, literature:" +#: ../../include/network.php:2202 +msgid "RSS/Atom" msgstr "" -#: ../../include/channel.php:1248 -msgid "Television:" +#: ../../include/network.php:2204 +msgid "Diaspora" msgstr "" -#: ../../include/channel.php:1250 -msgid "Film/dance/culture/entertainment:" +#: ../../include/network.php:2205 +msgid "Facebook" msgstr "" -#: ../../include/channel.php:1252 -msgid "Love/Romance:" +#: ../../include/network.php:2206 +msgid "Zot" msgstr "" -#: ../../include/channel.php:1254 -msgid "Work/employment:" +#: ../../include/network.php:2207 +msgid "LinkedIn" msgstr "" -#: ../../include/channel.php:1256 -msgid "School/education:" +#: ../../include/network.php:2208 +msgid "XMPP/IM" msgstr "" -#: ../../include/channel.php:1277 -msgid "Like this thing" +#: ../../include/network.php:2209 +msgid "MySpace" msgstr "" #: ../../include/activities.php:41 @@ -8906,676 +8923,656 @@ msgstr "" msgid "%1$s has an updated %2$s, changing %3$s." msgstr "" -#: ../../include/account.php:28 -msgid "Not a valid email address" -msgstr "" - -#: ../../include/account.php:30 -msgid "Your email domain is not among those allowed on this site" -msgstr "" - -#: ../../include/account.php:36 -msgid "Your email address is already registered at this site." +#: ../../include/bb2diaspora.php:398 +msgid "Attachments:" msgstr "" -#: ../../include/account.php:68 -msgid "An invitation is required." +#: ../../include/bb2diaspora.php:487 +msgid "$Projectname event notification:" msgstr "" -#: ../../include/account.php:72 -msgid "Invitation could not be verified." +#: ../../include/features.php:48 +msgid "General Features" msgstr "" -#: ../../include/account.php:122 -msgid "Please enter the required information." +#: ../../include/features.php:50 +msgid "Content Expiration" msgstr "" -#: ../../include/account.php:189 -msgid "Failed to store account information." +#: ../../include/features.php:50 +msgid "Remove posts/comments and/or private messages at a future time" msgstr "" -#: ../../include/account.php:249 -#, php-format -msgid "Registration confirmation for %s" +#: ../../include/features.php:51 +msgid "Multiple Profiles" msgstr "" -#: ../../include/account.php:315 -#, php-format -msgid "Registration request at %s" +#: ../../include/features.php:51 +msgid "Ability to create multiple profiles" msgstr "" -#: ../../include/account.php:317 ../../include/account.php:344 -#: ../../include/account.php:404 ../../include/network.php:1930 -msgid "Administrator" +#: ../../include/features.php:52 +msgid "Advanced Profiles" msgstr "" -#: ../../include/account.php:339 -msgid "your registration password" +#: ../../include/features.php:52 +msgid "Additional profile sections and selections" msgstr "" -#: ../../include/account.php:342 ../../include/account.php:402 -#, php-format -msgid "Registration details for %s" +#: ../../include/features.php:53 +msgid "Profile Import/Export" msgstr "" -#: ../../include/account.php:414 -msgid "Account approved." +#: ../../include/features.php:53 +msgid "Save and load profile details across sites/channels" msgstr "" -#: ../../include/account.php:454 -#, php-format -msgid "Registration revoked for %s" +#: ../../include/features.php:54 +msgid "Web Pages" msgstr "" -#: ../../include/account.php:739 ../../include/account.php:741 -msgid "Click here to upgrade." +#: ../../include/features.php:54 +msgid "Provide managed web pages on your channel" msgstr "" -#: ../../include/account.php:747 -msgid "This action exceeds the limits set by your subscription plan." +#: ../../include/features.php:55 +msgid "Provide a wiki for your channel" msgstr "" -#: ../../include/account.php:752 -msgid "This action is not available under your subscription plan." +#: ../../include/features.php:56 +msgid "Hide Rating" msgstr "" -#: ../../include/js_strings.php:5 -msgid "Delete this item?" +#: ../../include/features.php:56 +msgid "" +"Hide the rating buttons on your channel and profile pages. Note: People can " +"still rate you somewhere else." msgstr "" -#: ../../include/js_strings.php:8 -#, php-format -msgid "%s show less" +#: ../../include/features.php:57 +msgid "Private Notes" msgstr "" -#: ../../include/js_strings.php:9 -#, php-format -msgid "%s expand" +#: ../../include/features.php:57 +msgid "Enables a tool to store notes and reminders (note: not encrypted)" msgstr "" -#: ../../include/js_strings.php:10 -#, php-format -msgid "%s collapse" +#: ../../include/features.php:58 +msgid "Navigation Channel Select" msgstr "" -#: ../../include/js_strings.php:11 -msgid "Password too short" +#: ../../include/features.php:58 +msgid "Change channels directly from within the navigation dropdown menu" msgstr "" -#: ../../include/js_strings.php:12 -msgid "Passwords do not match" +#: ../../include/features.php:59 +msgid "Photo Location" msgstr "" -#: ../../include/js_strings.php:13 -msgid "everybody" +#: ../../include/features.php:59 +msgid "If location data is available on uploaded photos, link this to a map." msgstr "" -#: ../../include/js_strings.php:14 -msgid "Secret Passphrase" +#: ../../include/features.php:60 +msgid "Access Controlled Chatrooms" msgstr "" -#: ../../include/js_strings.php:15 -msgid "Passphrase hint" +#: ../../include/features.php:60 +msgid "Provide chatrooms and chat services with access control." msgstr "" -#: ../../include/js_strings.php:16 -msgid "Notice: Permissions have changed but have not yet been submitted." +#: ../../include/features.php:61 +msgid "Smart Birthdays" msgstr "" -#: ../../include/js_strings.php:17 -msgid "close all" +#: ../../include/features.php:61 +msgid "" +"Make birthday events timezone aware in case your friends are scattered " +"across the planet." msgstr "" -#: ../../include/js_strings.php:18 -msgid "Nothing new here" +#: ../../include/features.php:62 +msgid "Expert Mode" msgstr "" -#: ../../include/js_strings.php:19 -msgid "Rate This Channel (this is public)" +#: ../../include/features.php:62 +msgid "Enable Expert Mode to provide advanced configuration options" msgstr "" -#: ../../include/js_strings.php:21 -msgid "Describe (optional)" +#: ../../include/features.php:63 +msgid "Premium Channel" msgstr "" -#: ../../include/js_strings.php:23 -msgid "Please enter a link URL" +#: ../../include/features.php:63 +msgid "" +"Allows you to set restrictions and terms on those that connect with your " +"channel" msgstr "" -#: ../../include/js_strings.php:24 -msgid "Unsaved changes. Are you sure you wish to leave this page?" +#: ../../include/features.php:68 +msgid "Post Composition Features" msgstr "" -#: ../../include/js_strings.php:27 -msgid "timeago.prefixAgo" +#: ../../include/features.php:71 +msgid "Large Photos" msgstr "" -#: ../../include/js_strings.php:28 -msgid "timeago.prefixFromNow" +#: ../../include/features.php:71 +msgid "" +"Include large (1024px) photo thumbnails in posts. If not enabled, use small " +"(640px) photo thumbnails" msgstr "" -#: ../../include/js_strings.php:29 -msgid "ago" +#: ../../include/features.php:72 +msgid "Automatically import channel content from other channels or feeds" msgstr "" -#: ../../include/js_strings.php:30 -msgid "from now" +#: ../../include/features.php:73 +msgid "Even More Encryption" msgstr "" -#: ../../include/js_strings.php:31 -msgid "less than a minute" +#: ../../include/features.php:73 +msgid "" +"Allow optional encryption of content end-to-end with a shared secret key" msgstr "" -#: ../../include/js_strings.php:32 -msgid "about a minute" +#: ../../include/features.php:74 +msgid "Enable Voting Tools" msgstr "" -#: ../../include/js_strings.php:33 -#, php-format -msgid "%d minutes" +#: ../../include/features.php:74 +msgid "Provide a class of post which others can vote on" msgstr "" -#: ../../include/js_strings.php:34 -msgid "about an hour" +#: ../../include/features.php:75 +msgid "Delayed Posting" msgstr "" -#: ../../include/js_strings.php:35 -#, php-format -msgid "about %d hours" +#: ../../include/features.php:75 +msgid "Allow posts to be published at a later date" msgstr "" -#: ../../include/js_strings.php:36 -msgid "a day" +#: ../../include/features.php:76 +msgid "Suppress Duplicate Posts/Comments" msgstr "" -#: ../../include/js_strings.php:37 -#, php-format -msgid "%d days" +#: ../../include/features.php:76 +msgid "" +"Prevent posts with identical content to be published with less than two " +"minutes in between submissions." msgstr "" -#: ../../include/js_strings.php:38 -msgid "about a month" +#: ../../include/features.php:82 +msgid "Network and Stream Filtering" msgstr "" -#: ../../include/js_strings.php:39 -#, php-format -msgid "%d months" +#: ../../include/features.php:83 +msgid "Search by Date" msgstr "" -#: ../../include/js_strings.php:40 -msgid "about a year" +#: ../../include/features.php:83 +msgid "Ability to select posts by date ranges" msgstr "" -#: ../../include/js_strings.php:41 -#, php-format -msgid "%d years" +#: ../../include/features.php:84 +msgid "Enable management and selection of privacy groups" msgstr "" -#: ../../include/js_strings.php:42 -msgid " " +#: ../../include/features.php:85 +msgid "Save search terms for re-use" msgstr "" -#: ../../include/js_strings.php:43 -msgid "timeago.numbers" +#: ../../include/features.php:86 +msgid "Network Personal Tab" msgstr "" -#: ../../include/js_strings.php:49 -msgctxt "long" -msgid "May" +#: ../../include/features.php:86 +msgid "Enable tab to display only Network posts that you've interacted on" msgstr "" -#: ../../include/js_strings.php:57 -msgid "Jan" +#: ../../include/features.php:87 +msgid "Network New Tab" msgstr "" -#: ../../include/js_strings.php:58 -msgid "Feb" +#: ../../include/features.php:87 +msgid "Enable tab to display all new Network activity" msgstr "" -#: ../../include/js_strings.php:59 -msgid "Mar" +#: ../../include/features.php:88 +msgid "Affinity Tool" msgstr "" -#: ../../include/js_strings.php:60 -msgid "Apr" +#: ../../include/features.php:88 +msgid "Filter stream activity by depth of relationships" msgstr "" -#: ../../include/js_strings.php:61 -msgctxt "short" -msgid "May" +#: ../../include/features.php:89 +msgid "Connection Filtering" msgstr "" -#: ../../include/js_strings.php:62 -msgid "Jun" +#: ../../include/features.php:89 +msgid "Filter incoming posts from connections based on keywords/content" msgstr "" -#: ../../include/js_strings.php:63 -msgid "Jul" +#: ../../include/features.php:90 +msgid "Show channel suggestions" msgstr "" -#: ../../include/js_strings.php:64 -msgid "Aug" +#: ../../include/features.php:95 +msgid "Post/Comment Tools" msgstr "" -#: ../../include/js_strings.php:65 -msgid "Sep" +#: ../../include/features.php:96 +msgid "Community Tagging" msgstr "" -#: ../../include/js_strings.php:66 -msgid "Oct" +#: ../../include/features.php:96 +msgid "Ability to tag existing posts" msgstr "" -#: ../../include/js_strings.php:67 -msgid "Nov" +#: ../../include/features.php:97 +msgid "Post Categories" msgstr "" -#: ../../include/js_strings.php:68 -msgid "Dec" +#: ../../include/features.php:97 +msgid "Add categories to your posts" msgstr "" -#: ../../include/js_strings.php:76 -msgid "Sun" +#: ../../include/features.php:98 +msgid "Emoji Reactions" msgstr "" -#: ../../include/js_strings.php:77 -msgid "Mon" +#: ../../include/features.php:98 +msgid "Add emoji reaction ability to posts" msgstr "" -#: ../../include/js_strings.php:78 -msgid "Tue" +#: ../../include/features.php:99 +msgid "Ability to file posts under folders" msgstr "" -#: ../../include/js_strings.php:79 -msgid "Wed" +#: ../../include/features.php:100 +msgid "Dislike Posts" msgstr "" -#: ../../include/js_strings.php:80 -msgid "Thu" +#: ../../include/features.php:100 +msgid "Ability to dislike posts/comments" msgstr "" -#: ../../include/js_strings.php:81 -msgid "Fri" +#: ../../include/features.php:101 +msgid "Star Posts" msgstr "" -#: ../../include/js_strings.php:82 -msgid "Sat" +#: ../../include/features.php:101 +msgid "Ability to mark special posts with a star indicator" msgstr "" -#: ../../include/js_strings.php:83 -msgctxt "calendar" -msgid "today" +#: ../../include/features.php:102 +msgid "Tag Cloud" msgstr "" -#: ../../include/js_strings.php:84 -msgctxt "calendar" -msgid "month" +#: ../../include/features.php:102 +msgid "Provide a personal tag cloud on your channel page" msgstr "" -#: ../../include/js_strings.php:85 -msgctxt "calendar" -msgid "week" +#: ../../include/oembed.php:325 +msgid "Embedded content" msgstr "" -#: ../../include/js_strings.php:86 -msgctxt "calendar" -msgid "day" +#: ../../include/oembed.php:334 +msgid "Embedding disabled" msgstr "" -#: ../../include/js_strings.php:87 -msgctxt "calendar" -msgid "All day" +#: ../../include/account.php:28 +msgid "Not a valid email address" msgstr "" -#: ../../include/nav.php:82 ../../include/nav.php:115 ../../boot.php:1703 -msgid "Logout" +#: ../../include/account.php:30 +msgid "Your email domain is not among those allowed on this site" msgstr "" -#: ../../include/nav.php:82 ../../include/nav.php:115 -msgid "End this session" +#: ../../include/account.php:36 +msgid "Your email address is already registered at this site." msgstr "" -#: ../../include/nav.php:85 ../../include/nav.php:146 -msgid "Home" +#: ../../include/account.php:68 +msgid "An invitation is required." msgstr "" -#: ../../include/nav.php:85 -msgid "Your posts and conversations" +#: ../../include/account.php:72 +msgid "Invitation could not be verified." msgstr "" -#: ../../include/nav.php:86 -msgid "Your profile page" +#: ../../include/account.php:122 +msgid "Please enter the required information." msgstr "" -#: ../../include/nav.php:88 -msgid "Manage/Edit profiles" +#: ../../include/account.php:189 +msgid "Failed to store account information." msgstr "" -#: ../../include/nav.php:90 -msgid "Edit your profile" +#: ../../include/account.php:249 +#, php-format +msgid "Registration confirmation for %s" msgstr "" -#: ../../include/nav.php:92 -msgid "Your photos" +#: ../../include/account.php:315 +#, php-format +msgid "Registration request at %s" msgstr "" -#: ../../include/nav.php:93 -msgid "Your files" +#: ../../include/account.php:339 +msgid "your registration password" msgstr "" -#: ../../include/nav.php:96 -msgid "Your chatrooms" +#: ../../include/account.php:342 ../../include/account.php:402 +#, php-format +msgid "Registration details for %s" msgstr "" -#: ../../include/nav.php:102 -msgid "Your bookmarks" +#: ../../include/account.php:414 +msgid "Account approved." msgstr "" -#: ../../include/nav.php:106 -msgid "Your webpages" +#: ../../include/account.php:454 +#, php-format +msgid "Registration revoked for %s" msgstr "" -#: ../../include/nav.php:108 -msgid "Your wiki" +#: ../../include/account.php:739 ../../include/account.php:741 +msgid "Click here to upgrade." msgstr "" -#: ../../include/nav.php:112 -msgid "Sign in" +#: ../../include/account.php:747 +msgid "This action exceeds the limits set by your subscription plan." msgstr "" -#: ../../include/nav.php:129 -#, php-format -msgid "%s - click to logout" +#: ../../include/account.php:752 +msgid "This action is not available under your subscription plan." msgstr "" -#: ../../include/nav.php:132 -msgid "Remote authentication" +#: ../../include/PermissionDescription.php:116 +msgid "Public" msgstr "" -#: ../../include/nav.php:132 -msgid "Click to authenticate to your home hub" +#: ../../include/PermissionDescription.php:117 +msgid "Anybody in the $Projectname network" msgstr "" -#: ../../include/nav.php:146 -msgid "Home Page" +#: ../../include/PermissionDescription.php:118 +#, php-format +msgid "Any account on %s" msgstr "" -#: ../../include/nav.php:149 -msgid "Create an account" +#: ../../include/PermissionDescription.php:119 +msgid "Any of my connections" msgstr "" -#: ../../include/nav.php:161 -msgid "Help and documentation" +#: ../../include/PermissionDescription.php:120 +msgid "Only connections I specifically allow" msgstr "" -#: ../../include/nav.php:165 -msgid "Applications, utilities, links, games" +#: ../../include/PermissionDescription.php:121 +msgid "Anybody authenticated (could include visitors from other networks)" msgstr "" -#: ../../include/nav.php:167 -msgid "Search site @name, #tag, ?docs, content" +#: ../../include/PermissionDescription.php:122 +msgid "Any connections including those who haven't yet been approved" msgstr "" -#: ../../include/nav.php:169 -msgid "Channel Directory" +#: ../../include/PermissionDescription.php:161 +msgid "" +"This is your default setting for the audience of your normal stream, and " +"posts." msgstr "" -#: ../../include/nav.php:181 -msgid "Your grid" +#: ../../include/PermissionDescription.php:162 +msgid "" +"This is your default setting for who can view your default channel profile" msgstr "" -#: ../../include/nav.php:182 -msgid "Mark all grid notifications seen" +#: ../../include/PermissionDescription.php:163 +msgid "This is your default setting for who can view your connections" msgstr "" -#: ../../include/nav.php:184 -msgid "Channel home" +#: ../../include/PermissionDescription.php:164 +msgid "" +"This is your default setting for who can view your file storage and photos" msgstr "" -#: ../../include/nav.php:185 -msgid "Mark all channel notifications seen" +#: ../../include/PermissionDescription.php:165 +msgid "This is your default setting for the audience of your webpages" msgstr "" -#: ../../include/nav.php:191 -msgid "Notices" -msgstr "" +#: ../../include/contact_widgets.php:11 +#, php-format +msgid "%d invitation available" +msgid_plural "%d invitations available" +msgstr[0] "" +msgstr[1] "" -#: ../../include/nav.php:191 -msgid "Notifications" +#: ../../include/contact_widgets.php:19 +msgid "Find Channels" msgstr "" -#: ../../include/nav.php:192 -msgid "See all notifications" +#: ../../include/contact_widgets.php:20 +msgid "Enter name or interest" msgstr "" -#: ../../include/nav.php:195 -msgid "Private mail" +#: ../../include/contact_widgets.php:21 +msgid "Connect/Follow" msgstr "" -#: ../../include/nav.php:196 -msgid "See all private messages" +#: ../../include/contact_widgets.php:22 +msgid "Examples: Robert Morgenstein, Fishing" msgstr "" -#: ../../include/nav.php:197 -msgid "Mark all private messages seen" +#: ../../include/contact_widgets.php:26 +msgid "Random Profile" msgstr "" -#: ../../include/nav.php:203 -msgid "Event Calendar" +#: ../../include/contact_widgets.php:27 +msgid "Invite Friends" msgstr "" -#: ../../include/nav.php:204 -msgid "See all events" +#: ../../include/contact_widgets.php:29 +msgid "Advanced example: name=fred and country=iceland" msgstr "" -#: ../../include/nav.php:205 -msgid "Mark all events seen" -msgstr "" +#: ../../include/contact_widgets.php:122 +#, php-format +msgid "%d connection in common" +msgid_plural "%d connections in common" +msgstr[0] "" +msgstr[1] "" -#: ../../include/nav.php:208 -msgid "Manage Your Channels" +#: ../../include/contact_widgets.php:127 +msgid "show more" msgstr "" -#: ../../include/nav.php:210 -msgid "Account/Channel Settings" +#: ../../include/dir_fns.php:141 +msgid "Directory Options" msgstr "" -#: ../../include/nav.php:218 -msgid "Site Setup and Configuration" +#: ../../include/dir_fns.php:143 +msgid "Safe Mode" msgstr "" -#: ../../include/nav.php:254 -msgid "@name, #tag, ?doc, content" +#: ../../include/dir_fns.php:144 +msgid "Public Forums Only" msgstr "" -#: ../../include/nav.php:255 -msgid "Please wait..." +#: ../../include/dir_fns.php:145 +msgid "This Website Only" msgstr "" -#: ../../include/network.php:704 -msgid "view full size" +#: ../../include/message.php:20 +msgid "No recipient provided." msgstr "" -#: ../../include/network.php:1944 -msgid "No Subject" +#: ../../include/message.php:25 +msgid "[no subject]" msgstr "" -#: ../../include/network.php:2198 ../../include/network.php:2199 -msgid "Friendica" +#: ../../include/message.php:45 +msgid "Unable to determine sender." msgstr "" -#: ../../include/network.php:2200 -msgid "OStatus" +#: ../../include/message.php:222 +msgid "Stored post could not be verified." msgstr "" -#: ../../include/network.php:2201 -msgid "GNU-Social" +#: ../../include/channel.php:32 +msgid "Unable to obtain identity information from database" msgstr "" -#: ../../include/network.php:2202 -msgid "RSS/Atom" +#: ../../include/channel.php:66 +msgid "Empty name" msgstr "" -#: ../../include/network.php:2204 -msgid "Diaspora" +#: ../../include/channel.php:69 +msgid "Name too long" msgstr "" -#: ../../include/network.php:2205 -msgid "Facebook" +#: ../../include/channel.php:180 +msgid "No account identifier" msgstr "" -#: ../../include/network.php:2206 -msgid "Zot" +#: ../../include/channel.php:192 +msgid "Nickname is required." msgstr "" -#: ../../include/network.php:2207 -msgid "LinkedIn" +#: ../../include/channel.php:206 +msgid "Reserved nickname. Please choose another." msgstr "" -#: ../../include/network.php:2208 -msgid "XMPP/IM" +#: ../../include/channel.php:211 +msgid "" +"Nickname has unsupported characters or is already being used on this site." msgstr "" -#: ../../include/network.php:2209 -msgid "MySpace" +#: ../../include/channel.php:287 +msgid "Unable to retrieve created identity" msgstr "" -#: ../../include/oembed.php:325 -msgid "Embedded content" +#: ../../include/channel.php:345 +msgid "Default Profile" msgstr "" -#: ../../include/oembed.php:334 -msgid "Embedding disabled" +#: ../../include/channel.php:815 +msgid "Requested channel is not available." msgstr "" -#: ../../include/PermissionDescription.php:116 -msgid "Public" +#: ../../include/channel.php:962 +msgid "Create New Profile" msgstr "" -#: ../../include/PermissionDescription.php:117 -msgid "Anybody in the $Projectname network" +#: ../../include/channel.php:982 +msgid "Visible to everybody" msgstr "" -#: ../../include/PermissionDescription.php:118 -#, php-format -msgid "Any account on %s" +#: ../../include/channel.php:1055 ../../include/channel.php:1167 +msgid "Gender:" msgstr "" -#: ../../include/PermissionDescription.php:119 -msgid "Any of my connections" +#: ../../include/channel.php:1056 ../../include/channel.php:1211 +msgid "Status:" msgstr "" -#: ../../include/PermissionDescription.php:120 -msgid "Only connections I specifically allow" +#: ../../include/channel.php:1057 ../../include/channel.php:1222 +msgid "Homepage:" msgstr "" -#: ../../include/PermissionDescription.php:121 -msgid "Anybody authenticated (could include visitors from other networks)" +#: ../../include/channel.php:1058 +msgid "Online Now" msgstr "" -#: ../../include/PermissionDescription.php:122 -msgid "Any connections including those who haven't yet been approved" +#: ../../include/channel.php:1172 +msgid "Like this channel" msgstr "" -#: ../../include/PermissionDescription.php:161 -msgid "" -"This is your default setting for the audience of your normal stream, and " -"posts." +#: ../../include/channel.php:1196 +msgid "j F, Y" msgstr "" -#: ../../include/PermissionDescription.php:162 -msgid "" -"This is your default setting for who can view your default channel profile" +#: ../../include/channel.php:1197 +msgid "j F" msgstr "" -#: ../../include/PermissionDescription.php:163 -msgid "This is your default setting for who can view your connections" +#: ../../include/channel.php:1204 +msgid "Birthday:" msgstr "" -#: ../../include/PermissionDescription.php:164 -msgid "" -"This is your default setting for who can view your file storage and photos" +#: ../../include/channel.php:1217 +#, php-format +msgid "for %1$d %2$s" msgstr "" -#: ../../include/PermissionDescription.php:165 -msgid "This is your default setting for the audience of your webpages" +#: ../../include/channel.php:1220 +msgid "Sexual Preference:" msgstr "" -#: ../../include/contact_widgets.php:11 -#, php-format -msgid "%d invitation available" -msgid_plural "%d invitations available" -msgstr[0] "" -msgstr[1] "" - -#: ../../include/contact_widgets.php:19 -msgid "Find Channels" +#: ../../include/channel.php:1226 +msgid "Tags:" msgstr "" -#: ../../include/contact_widgets.php:20 -msgid "Enter name or interest" +#: ../../include/channel.php:1228 +msgid "Political Views:" msgstr "" -#: ../../include/contact_widgets.php:21 -msgid "Connect/Follow" +#: ../../include/channel.php:1230 +msgid "Religion:" msgstr "" -#: ../../include/contact_widgets.php:22 -msgid "Examples: Robert Morgenstein, Fishing" +#: ../../include/channel.php:1234 +msgid "Hobbies/Interests:" msgstr "" -#: ../../include/contact_widgets.php:26 -msgid "Random Profile" +#: ../../include/channel.php:1236 +msgid "Likes:" msgstr "" -#: ../../include/contact_widgets.php:27 -msgid "Invite Friends" +#: ../../include/channel.php:1238 +msgid "Dislikes:" msgstr "" -#: ../../include/contact_widgets.php:29 -msgid "Advanced example: name=fred and country=iceland" +#: ../../include/channel.php:1240 +msgid "Contact information and Social Networks:" msgstr "" -#: ../../include/contact_widgets.php:122 -#, php-format -msgid "%d connection in common" -msgid_plural "%d connections in common" -msgstr[0] "" -msgstr[1] "" - -#: ../../include/contact_widgets.php:127 -msgid "show more" +#: ../../include/channel.php:1242 +msgid "My other channels:" msgstr "" -#: ../../include/dir_fns.php:141 -msgid "Directory Options" +#: ../../include/channel.php:1244 +msgid "Musical interests:" msgstr "" -#: ../../include/dir_fns.php:143 -msgid "Safe Mode" +#: ../../include/channel.php:1246 +msgid "Books, literature:" msgstr "" -#: ../../include/dir_fns.php:144 -msgid "Public Forums Only" +#: ../../include/channel.php:1248 +msgid "Television:" msgstr "" -#: ../../include/dir_fns.php:145 -msgid "This Website Only" +#: ../../include/channel.php:1250 +msgid "Film/dance/culture/entertainment:" msgstr "" -#: ../../include/message.php:20 -msgid "No recipient provided." +#: ../../include/channel.php:1252 +msgid "Love/Romance:" msgstr "" -#: ../../include/message.php:25 -msgid "[no subject]" +#: ../../include/channel.php:1254 +msgid "Work/employment:" msgstr "" -#: ../../include/message.php:45 -msgid "Unable to determine sender." +#: ../../include/channel.php:1256 +msgid "School/education:" msgstr "" -#: ../../include/message.php:222 -msgid "Stored post could not be verified." +#: ../../include/channel.php:1277 +msgid "Like this thing" msgstr "" #: ../../include/permissions.php:26 diff --git a/view/theme/redbasic/js/redbasic.js b/view/theme/redbasic/js/redbasic.js index 58c2a9ceb..5209ad945 100644 --- a/view/theme/redbasic/js/redbasic.js +++ b/view/theme/redbasic/js/redbasic.js @@ -56,13 +56,13 @@ $(document).ready(function() { function makeFullScreen(full) { if(typeof full=='undefined' || full == true) { $('main').css({'transition': 'none'}).addClass('fullscreen'); - $('#fullscreen-btn, header, nav, aside').css({'display': 'none'}); + $('#fullscreen-btn, header, nav, aside, #tabs-collapse-1').css({'visibility': 'hidden'}); $('#inline-btn').show(); } else { $('main').removeClass('fullscreen'); - $('#fullscreen-btn, header, nav, aside').css({'display': ''}); + $('#fullscreen-btn, header, nav, aside, #tabs-collapse-1').css({'visibility': ''}); $('#inline-btn').hide(); $('main').css({'transition': ''}); } diff --git a/view/tpl/dreport.tpl b/view/tpl/dreport.tpl index 7d5524a6a..8aa5e2cd1 100644 --- a/view/tpl/dreport.tpl +++ b/view/tpl/dreport.tpl @@ -1,7 +1,14 @@ <div class="generic-content-wrapper"> <div class="section-title-wrapper"> {{if $table == 'item'}} - <a href="dreport/push/{{$mid}}"><button class="btn btn-default btn-xs pull-right">{{$push}}</button></a> + <div class="dropdown pull-right"> + <button type="button" class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" title="{{$options}}"> + <i class="fa fa-sort-desc"></i> + </button> + <ul class="dropdown-menu"> + <li><a href="dreport/push/{{$mid}}">{{$push}}</a></li> + </ul> + </div> {{/if}} <h2>{{$title}}</h2> </div> diff --git a/view/tpl/force_image_reload.tpl b/view/tpl/force_image_reload.tpl new file mode 100644 index 000000000..839bd22b5 --- /dev/null +++ b/view/tpl/force_image_reload.tpl @@ -0,0 +1,72 @@ +{{* +Force the browser to reload an image from the server instead of the cache. +based on an answer from http://stackoverflow.com/a/22429796/3343347 + +Usage: Set $imgUrl to the src url you want to be re-fetched from the server + +*}} + +<script> + $(document).ready( + function() { + forceImgReload("{{$imgUrl}}"); + } + ); + + {{* + * find and return any existing img tags with a matching src url, and set them to an intermediate + * src url so they can later be reverted back once the cached version has been updated. + *}} + function prepareImagesForReload(srcUrl) { + + var result = $("img[src='" + srcUrl + "']").get(); + + for (i = 0; i < result.length; i++) { + {{* + * Set the image to a reloading image, in this case an animated "reloading" svg + * Ideally this wont be displayed long enough to matter. + *}} + result[i].src = "data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='xMidYMid' class='uil-reload'%3E%3Cpath fill='none' class='bk' d='M0 0h100v100H0z'/%3E%3Cg%3E%3Cpath d='M50 15a35 35 0 1 0 24.787 10.213' fill='none' stroke='%23777' stroke-width='12'/%3E%3Cpath d='M50 0v30l16-15L50 0' fill='%23777'/%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 50 50' to='360 50 50' dur='1s' repeatCount='indefinite'/%3E%3C/g%3E%3C/svg%3E"; + } + + return result; + } + + function restoreImages(srcUrl, imgList) { + + for (i = 0; i < imgList.length; i++) { + imgList[i].src = srcUrl; + } + } + + function forceImgReload(srcUrl) { + var imgList; + var step = 0; + var iframe = window.document.createElement("iframe"); // Hidden iframe, in which to perform the load+reload. + + {{* Callback function, called after iframe load+reload completes (or fails). + Will be called TWICE unless twostage-mode process is cancelled. (Once after load, once after reload). *}} + var iframeLoadCallback = function(e) { + + if (step === 0) { + // initial load just completed. Note that it doesn't actually matter if this load succeeded or not. + + step = 1; + imgList = prepareImagesForReload(srcUrl); + iframe.contentWindow.location.reload(true); // initiate forced-reload! + + } else if (step === 1) { + // forced re-load is done + + restoreImages(srcUrl, imgList); + if (iframe.parentNode) iframe.parentNode.removeChild(iframe); + } + } + + iframe.style.display = "none"; + window.parent.document.body.appendChild(iframe); {{* NOTE: if this is done AFTER setting src, Firefox MAY fail to fire the load event! *}} + iframe.addEventListener("load", iframeLoadCallback, false); + iframe.addEventListener("error", iframeLoadCallback, false); + iframe.src = srcUrl; + } +</script> |