diff --git a/boot.php b/boot.php index b282f8d48e..aad8813766 100644 --- a/boot.php +++ b/boot.php @@ -38,7 +38,7 @@ define ( 'FRIENDICA_PLATFORM', 'Friendica'); define ( 'FRIENDICA_CODENAME', 'Asparagus'); define ( 'FRIENDICA_VERSION', '3.5.1-dev' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); -define ( 'DB_UPDATE_VERSION', 1209 ); +define ( 'DB_UPDATE_VERSION', 1211 ); /** * @brief Constant with a HTML line break. @@ -670,22 +670,23 @@ class App { #set_include_path("include/$this->hostname" . PATH_SEPARATOR . get_include_path()); - if((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,9) === "pagename=") { + if ((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,9) === "pagename=") { $this->query_string = substr($_SERVER['QUERY_STRING'],9); // removing trailing / - maybe a nginx problem if (substr($this->query_string, 0, 1) == "/") $this->query_string = substr($this->query_string, 1); - } elseif((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,2) === "q=") { + } elseif ((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,2) === "q=") { $this->query_string = substr($_SERVER['QUERY_STRING'],2); // removing trailing / - maybe a nginx problem if (substr($this->query_string, 0, 1) == "/") $this->query_string = substr($this->query_string, 1); } - if (x($_GET,'pagename')) + if (x($_GET,'pagename')) { $this->cmd = trim($_GET['pagename'],'/\\'); - elseif (x($_GET,'q')) + } elseif (x($_GET,'q')) { $this->cmd = trim($_GET['q'],'/\\'); + } // fix query_string @@ -694,13 +695,15 @@ class App { // unix style "homedir" - if(substr($this->cmd,0,1) === '~') + if (substr($this->cmd,0,1) === '~') { $this->cmd = 'profile/' . substr($this->cmd,1); + } // Diaspora style profile url - if(substr($this->cmd,0,2) === 'u/') + if (substr($this->cmd,0,2) === 'u/') { $this->cmd = 'profile/' . substr($this->cmd,2); + } /* @@ -806,7 +809,7 @@ class App { function get_baseurl($ssl = false) { // Is the function called statically? - if (!is_object($this)) { + if (!(isset($this) && get_class($this) == __CLASS__)) { return self::$a->get_baseurl($ssl); } @@ -1028,7 +1031,7 @@ class App { } else { $r = q("SELECT `contact`.`avatar-date` AS picdate FROM `contact` WHERE `contact`.`thumb` like '%%/%s'", $common_filename); - if(! dbm::is_result($r)){ + if (! dbm::is_result($r)) { $this->cached_profile_image[$avatar_image] = $avatar_image; } else { $this->cached_profile_picdate[$common_filename] = "?rev=".urlencode($r[0]['picdate']); @@ -1050,7 +1053,7 @@ class App { function remove_baseurl($orig_url){ // Is the function called statically? - if (!is_object($this)) { + if (!(isset($this) && get_class($this) == __CLASS__)) { return(self::$a->remove_baseurl($orig_url)); } @@ -1548,9 +1551,9 @@ function check_url(&$a) { // We will only change the url to an ip address if there is no existing setting if(! x($url)) - $url = set_config('system','url',$a->get_baseurl()); - if((! link_compare($url,$a->get_baseurl())) && (! preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/",$a->get_hostname))) - $url = set_config('system','url',$a->get_baseurl()); + $url = set_config('system','url',App::get_baseurl()); + if((! link_compare($url,App::get_baseurl())) && (! preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/",$a->get_hostname))) + $url = set_config('system','url',App::get_baseurl()); return; } diff --git a/database.sql b/database.sql index 7cbe4858a8..2e83c33a64 100644 --- a/database.sql +++ b/database.sql @@ -1,6 +1,6 @@ -- ------------------------------------------ -- Friendica 3.5.1-dev (Asparagus) --- DB_UPDATE_VERSION 1208 +-- DB_UPDATE_VERSION 1211 -- ------------------------------------------ @@ -54,11 +54,11 @@ CREATE TABLE IF NOT EXISTS `auth_codes` ( -- TABLE cache -- CREATE TABLE IF NOT EXISTS `cache` ( - `k` varchar(255) NOT NULL, + `k` varbinary(255) NOT NULL, `v` text, `expire_mode` int(11) NOT NULL DEFAULT 0, `updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - PRIMARY KEY(`k`(191)), + PRIMARY KEY(`k`), INDEX `updated` (`updated`), INDEX `expire_mode_updated` (`expire_mode`,`updated`) ) DEFAULT CHARSET=utf8mb4; @@ -94,11 +94,11 @@ CREATE TABLE IF NOT EXISTS `clients` ( -- CREATE TABLE IF NOT EXISTS `config` ( `id` int(10) unsigned NOT NULL auto_increment, - `cat` varchar(255) NOT NULL DEFAULT '', - `k` varchar(255) NOT NULL DEFAULT '', + `cat` varbinary(255) NOT NULL DEFAULT '', + `k` varbinary(255) NOT NULL DEFAULT '', `v` text, PRIMARY KEY(`id`), - UNIQUE INDEX `cat_k` (`cat`(30),`k`(30)) + UNIQUE INDEX `cat_k` (`cat`,`k`) ) DEFAULT CHARSET=utf8mb4; -- @@ -200,7 +200,7 @@ CREATE TABLE IF NOT EXISTS `conv` ( -- CREATE TABLE IF NOT EXISTS `deliverq` ( `id` int(10) unsigned NOT NULL auto_increment, - `cmd` varchar(32) NOT NULL DEFAULT '', + `cmd` varbinary(32) NOT NULL DEFAULT '', `item` int(11) NOT NULL DEFAULT 0, `contact` int(11) NOT NULL DEFAULT 0, PRIMARY KEY(`id`), @@ -212,6 +212,7 @@ CREATE TABLE IF NOT EXISTS `deliverq` ( -- CREATE TABLE IF NOT EXISTS `event` ( `id` int(11) NOT NULL auto_increment, + `guid` varchar(255) NOT NULL DEFAULT '', `uid` int(11) NOT NULL DEFAULT 0, `cid` int(11) NOT NULL DEFAULT 0, `uri` varchar(255) NOT NULL DEFAULT '', @@ -682,10 +683,10 @@ CREATE TABLE IF NOT EXISTS `notify-threads` ( -- TABLE oembed -- CREATE TABLE IF NOT EXISTS `oembed` ( - `url` varchar(255) NOT NULL, + `url` varbinary(255) NOT NULL, `content` text, `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - PRIMARY KEY(`url`(191)), + PRIMARY KEY(`url`), INDEX `created` (`created`) ) DEFAULT CHARSET=utf8mb4; @@ -693,12 +694,12 @@ CREATE TABLE IF NOT EXISTS `oembed` ( -- TABLE parsed_url -- CREATE TABLE IF NOT EXISTS `parsed_url` ( - `url` varchar(255) NOT NULL, + `url` varbinary(255) NOT NULL, `guessing` tinyint(1) NOT NULL DEFAULT 0, `oembed` tinyint(1) NOT NULL DEFAULT 0, `content` text, `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - PRIMARY KEY(`url`(191),`guessing`,`oembed`), + PRIMARY KEY(`url`,`guessing`,`oembed`), INDEX `created` (`created`) ) DEFAULT CHARSET=utf8mb4; @@ -708,11 +709,11 @@ CREATE TABLE IF NOT EXISTS `parsed_url` ( CREATE TABLE IF NOT EXISTS `pconfig` ( `id` int(11) NOT NULL auto_increment, `uid` int(11) NOT NULL DEFAULT 0, - `cat` varchar(255) NOT NULL DEFAULT '', - `k` varchar(255) NOT NULL DEFAULT '', + `cat` varbinary(255) NOT NULL DEFAULT '', + `k` varbinary(255) NOT NULL DEFAULT '', `v` mediumtext, PRIMARY KEY(`id`), - UNIQUE INDEX `uid_cat_k` (`uid`,`cat`(30),`k`(30)) + UNIQUE INDEX `uid_cat_k` (`uid`,`cat`,`k`) ) DEFAULT CHARSET=utf8mb4; -- @@ -786,7 +787,7 @@ CREATE TABLE IF NOT EXISTS `poll_result` ( -- CREATE TABLE IF NOT EXISTS `process` ( `pid` int(10) unsigned NOT NULL, - `command` varchar(32) NOT NULL DEFAULT '', + `command` varbinary(32) NOT NULL DEFAULT '', `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY(`pid`), INDEX `command` (`command`) @@ -920,7 +921,7 @@ CREATE TABLE IF NOT EXISTS `search` ( -- CREATE TABLE IF NOT EXISTS `session` ( `id` bigint(20) unsigned NOT NULL auto_increment, - `sid` varchar(255) NOT NULL DEFAULT '', + `sid` varbinary(255) NOT NULL DEFAULT '', `data` text, `expire` int(10) unsigned NOT NULL DEFAULT 0, PRIMARY KEY(`id`), diff --git a/doc/themes.md b/doc/themes.md index add44c776b..0d3c6eb3d6 100644 --- a/doc/themes.md +++ b/doc/themes.md @@ -124,8 +124,9 @@ The selected 1st part will be saved in the database by the theme_post function. function theme_post(&$a){ // non local users shall not pass - if(! local_user()) + if (! local_user()) { return; + } // if the one specific submit button was pressed then proceed if (isset($_POST['duepuntozero-settings-submit'])){ // and save the selection key into the personal config of the user diff --git a/include/Contact.php b/include/Contact.php index 7ca45a21bd..b1f63cbdfd 100644 --- a/include/Contact.php +++ b/include/Contact.php @@ -8,7 +8,6 @@ function user_remove($uid) { if(! $uid) return; - $a = get_app(); logger('Removing user: ' . $uid); $r = q("select * from user where uid = %d limit 1", intval($uid)); @@ -54,7 +53,7 @@ function user_remove($uid) { if($uid == local_user()) { unset($_SESSION['authenticated']); unset($_SESSION['uid']); - goaway($a->get_baseurl()); + goaway(App::get_baseurl()); } } @@ -86,12 +85,12 @@ function contact_remove($id) { function terminate_friendship($user,$self,$contact) { - + /// @TODO Get rid of this, include/datetime.php should care about by itself $a = get_app(); require_once('include/datetime.php'); - if($contact['network'] === NETWORK_OSTATUS) { + if ($contact['network'] === NETWORK_OSTATUS) { require_once('include/ostatus.php'); @@ -101,16 +100,14 @@ function terminate_friendship($user,$self,$contact) { $item['follow'] = $contact["url"]; $slap = ostatus::salmon($item, $user); - if((x($contact,'notify')) && (strlen($contact['notify']))) { + if ((x($contact,'notify')) && (strlen($contact['notify']))) { require_once('include/salmon.php'); slapper($user,$contact['notify'],$slap); } - } - elseif($contact['network'] === NETWORK_DIASPORA) { + } elseif ($contact['network'] === NETWORK_DIASPORA) { require_once('include/diaspora.php'); - diaspora::send_unshare($user,$contact); - } - elseif($contact['network'] === NETWORK_DFRN) { + Diaspora::send_unshare($user,$contact); + } elseif ($contact['network'] === NETWORK_DFRN) { require_once('include/dfrn.php'); dfrn::deliver($user,$contact,'placeholder', 1); } @@ -361,7 +358,7 @@ function contact_photo_menu($contact, $uid = 0) $sparkle = false; if ($contact['network'] === NETWORK_DFRN) { $sparkle = true; - $profile_link = $a->get_baseurl() . '/redir/' . $contact['id']; + $profile_link = App::get_baseurl() . '/redir/' . $contact['id']; } else { $profile_link = $contact['url']; } @@ -377,17 +374,17 @@ function contact_photo_menu($contact, $uid = 0) } if (in_array($contact['network'], array(NETWORK_DFRN, NETWORK_DIASPORA))) { - $pm_url = $a->get_baseurl() . '/message/new/' . $contact['id']; + $pm_url = App::get_baseurl() . '/message/new/' . $contact['id']; } if ($contact['network'] == NETWORK_DFRN) { - $poke_link = $a->get_baseurl() . '/poke/?f=&c=' . $contact['id']; + $poke_link = App::get_baseurl() . '/poke/?f=&c=' . $contact['id']; } - $contact_url = $a->get_baseurl() . '/contacts/' . $contact['id']; + $contact_url = App::get_baseurl() . '/contacts/' . $contact['id']; - $posts_link = $a->get_baseurl() . '/contacts/' . $contact['id'] . '/posts'; - $contact_drop_link = $a->get_baseurl() . '/contacts/' . $contact['id'] . '/drop?confirm=1'; + $posts_link = App::get_baseurl() . '/contacts/' . $contact['id'] . '/posts'; + $contact_drop_link = App::get_baseurl() . '/contacts/' . $contact['id'] . '/drop?confirm=1'; /** * menu array: diff --git a/include/NotificationsManager.php b/include/NotificationsManager.php index 2adab59721..611860f9d0 100644 --- a/include/NotificationsManager.php +++ b/include/NotificationsManager.php @@ -198,8 +198,10 @@ class NotificationsManager { * string 'label' => The type of the notification * string 'link' => URL to the source * string 'image' => The avatar image + * string 'url' => The profile url of the contact * string 'text' => The notification text - * string 'when' => Relative date of the notification + * string 'when' => The date of the notification + * string 'ago' => T relative date of the notification * bool 'seen' => Is the notification marked as "seen" */ private function formatNotifs($notifs, $ident = "") { @@ -223,26 +225,32 @@ class NotificationsManager { $default_item_label = 'notify'; $default_item_link = $this->a->get_baseurl(true).'/notify/view/'. $it['id']; $default_item_image = proxy_url($it['photo'], false, PROXY_SIZE_MICRO); + $default_item_url = $it['url']; $default_item_text = strip_tags(bbcode($it['msg'])); - $default_item_when = relative_date($it['date']); + $default_item_when = datetime_convert('UTC', date_default_timezone_get(), $it['date'], 'r'); + $default_item_ago = relative_date($it['date']); break; case 'home': $default_item_label = 'comment'; $default_item_link = $this->a->get_baseurl(true).'/display/'.$it['pguid']; $default_item_image = proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO); + $default_item_url = $it['author-link']; $default_item_text = sprintf(t("%s commented on %s's post"), $it['author-name'], $it['pname']); - $default_item_when = relative_date($it['created']); + $default_item_when = datetime_convert('UTC', date_default_timezone_get(), $it['created'], 'r'); + $default_item_ago = relative_date($it['created']); break; default: $default_item_label = (($it['id'] == $it['parent']) ? 'post' : 'comment'); $default_item_link = $this->a->get_baseurl(true).'/display/'.$it['pguid']; $default_item_image = proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO); + $default_item_url = $it['author-link']; $default_item_text = (($it['id'] == $it['parent']) ? sprintf(t("%s created a new post"), $it['author-name']) : sprintf(t("%s commented on %s's post"), $it['author-name'], $it['pname'])); - $default_item_when = relative_date($it['created']); + $default_item_when = datetime_convert('UTC', date_default_timezone_get(), $it['created'], 'r'); + $default_item_ago = relative_date($it['created']); } @@ -253,8 +261,10 @@ class NotificationsManager { 'label' => 'like', 'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'], 'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), + 'url' => $it['author-link'], 'text' => sprintf(t("%s liked %s's post"), $it['author-name'], $it['pname']), - 'when' => relative_date($it['created']), + 'when' => $default_item_when, + 'ago' => $default_item_ago, 'seen' => $it['seen'] ); break; @@ -264,8 +274,10 @@ class NotificationsManager { 'label' => 'dislike', 'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'], 'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), + 'url' => $it['author-link'], 'text' => sprintf(t("%s disliked %s's post"), $it['author-name'], $it['pname']), - 'when' => relative_date($it['created']), + 'when' => $default_item_when, + 'ago' => $default_item_ago, 'seen' => $it['seen'] ); break; @@ -275,8 +287,10 @@ class NotificationsManager { 'label' => 'attend', 'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'], 'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), + 'url' => $it['author-link'], 'text' => sprintf(t("%s is attending %s's event"), $it['author-name'], $it['pname']), - 'when' => relative_date($it['created']), + 'when' => $default_item_when, + 'ago' => $default_item_ago, 'seen' => $it['seen'] ); break; @@ -286,8 +300,10 @@ class NotificationsManager { 'label' => 'attendno', 'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'], 'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), + 'url' => $it['author-link'], 'text' => sprintf( t("%s is not attending %s's event"), $it['author-name'], $it['pname']), - 'when' => relative_date($it['created']), + 'when' => $default_item_when, + 'ago' => $default_item_ago, 'seen' => $it['seen'] ); break; @@ -297,8 +313,10 @@ class NotificationsManager { 'label' => 'attendmaybe', 'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'], 'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), + 'url' => $it['author-link'], 'text' => sprintf(t("%s may attend %s's event"), $it['author-name'], $it['pname']), - 'when' => relative_date($it['created']), + 'when' => $default_item_when, + 'ago' => $default_item_ago, 'seen' => $it['seen'] ); break; @@ -312,8 +330,10 @@ class NotificationsManager { 'label' => 'friend', 'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'], 'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), + 'url' => $it['author-link'], 'text' => sprintf(t("%s is now friends with %s"), $it['author-name'], $it['fname']), - 'when' => relative_date($it['created']), + 'when' => $default_item_when, + 'ago' => $default_item_ago, 'seen' => $it['seen'] ); break; @@ -323,8 +343,10 @@ class NotificationsManager { 'label' => $default_item_label, 'link' => $default_item_link, 'image' => $default_item_image, + 'url' => $default_item_url, 'text' => $default_item_text, 'when' => $default_item_when, + 'ago' => $default_item_ago, 'seen' => $it['seen'] ); } @@ -459,7 +481,7 @@ class NotificationsManager { if($seen === 0) $sql_seen = " AND `seen` = 0 "; - $r = q("SELECT `id`, `photo`, `msg`, `date`, `seen` FROM `notify` + $r = q("SELECT `id`, `url`, `photo`, `msg`, `date`, `seen` FROM `notify` WHERE `uid` = %d $sql_seen ORDER BY `date` DESC LIMIT %d, %d ", intval(local_user()), intval($start), @@ -626,9 +648,9 @@ class NotificationsManager { $sql_seen = " AND `item`.`unseen` = 1 "; $r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, `item`.`unseen`, - `item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object` as `object`, - `pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink`, `pitem`.`guid` as `pguid` - FROM `item` INNER JOIN `item` as `pitem` ON `pitem`.`id`=`item`.`parent` + `item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object` AS `object`, + `pitem`.`author-name` AS `pname`, `pitem`.`author-link` AS `plink`, `pitem`.`guid` AS `pguid` + FROM `item` INNER JOIN `item` AS `pitem` ON `pitem`.`id`=`item`.`parent` WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 1 $sql_seen diff --git a/include/Photo.php b/include/Photo.php index 014cca7d25..1a97fe2fe4 100644 --- a/include/Photo.php +++ b/include/Photo.php @@ -794,8 +794,6 @@ function update_contact_avatar($avatar, $uid, $cid, $force = false) { function import_profile_photo($photo, $uid, $cid, $quit_on_error = false) { - $a = get_app(); - $r = q("SELECT `resource-id` FROM `photo` WHERE `uid` = %d AND `contact-id` = %d AND `scale` = 4 AND `album` = 'Contact Photos' LIMIT 1", intval($uid), intval($cid) @@ -841,9 +839,9 @@ function import_profile_photo($photo, $uid, $cid, $quit_on_error = false) { $photo_failure = true; } - $photo = $a->get_baseurl() . '/photo/' . $hash . '-4.' . $img->getExt(); - $thumb = $a->get_baseurl() . '/photo/' . $hash . '-5.' . $img->getExt(); - $micro = $a->get_baseurl() . '/photo/' . $hash . '-6.' . $img->getExt(); + $photo = App::get_baseurl() . '/photo/' . $hash . '-4.' . $img->getExt(); + $thumb = App::get_baseurl() . '/photo/' . $hash . '-5.' . $img->getExt(); + $micro = App::get_baseurl() . '/photo/' . $hash . '-6.' . $img->getExt(); } else { $photo_failure = true; } @@ -853,9 +851,9 @@ function import_profile_photo($photo, $uid, $cid, $quit_on_error = false) { } if ($photo_failure) { - $photo = $a->get_baseurl() . '/images/person-175.jpg'; - $thumb = $a->get_baseurl() . '/images/person-80.jpg'; - $micro = $a->get_baseurl() . '/images/person-48.jpg'; + $photo = App::get_baseurl() . '/images/person-175.jpg'; + $thumb = App::get_baseurl() . '/images/person-80.jpg'; + $micro = App::get_baseurl() . '/images/person-48.jpg'; } return(array($photo,$thumb,$micro)); @@ -1044,18 +1042,18 @@ function store_photo($a, $uid, $imagedata = "", $url = "") { return(array()); } - $image = array("page" => $a->get_baseurl().'/photos/'.$page_owner_nick.'/image/'.$hash, - "full" => $a->get_baseurl()."/photo/{$hash}-0.".$ph->getExt()); + $image = array("page" => App::get_baseurl().'/photos/'.$page_owner_nick.'/image/'.$hash, + "full" => App::get_baseurl()."/photo/{$hash}-0.".$ph->getExt()); if ($width > 800 || $height > 800) { - $image["large"] = $a->get_baseurl()."/photo/{$hash}-0.".$ph->getExt(); + $image["large"] = App::get_baseurl()."/photo/{$hash}-0.".$ph->getExt(); } if ($width > 640 || $height > 640) { $ph->scaleImage(640); $r = $ph->store($uid, $visitor, $hash, $tempfile, t('Wall Photos'), 1, 0, $defperm); if ($r) { - $image["medium"] = $a->get_baseurl()."/photo/{$hash}-1.".$ph->getExt(); + $image["medium"] = App::get_baseurl()."/photo/{$hash}-1.".$ph->getExt(); } } @@ -1063,7 +1061,7 @@ function store_photo($a, $uid, $imagedata = "", $url = "") { $ph->scaleImage(320); $r = $ph->store($uid, $visitor, $hash, $tempfile, t('Wall Photos'), 2, 0, $defperm); if ($r) { - $image["small"] = $a->get_baseurl()."/photo/{$hash}-2.".$ph->getExt(); + $image["small"] = App::get_baseurl()."/photo/{$hash}-2.".$ph->getExt(); } } @@ -1088,7 +1086,7 @@ function store_photo($a, $uid, $imagedata = "", $url = "") { $r = $ph->store($uid, $visitor, $hash, $tempfile, t('Wall Photos'), 3, 0, $defperm); if ($r) { - $image["thumb"] = $a->get_baseurl()."/photo/{$hash}-3.".$ph->getExt(); + $image["thumb"] = App::get_baseurl()."/photo/{$hash}-3.".$ph->getExt(); } } diff --git a/include/Probe.php b/include/Probe.php index 5c2ba86ccd..6145daaaae 100644 --- a/include/Probe.php +++ b/include/Probe.php @@ -324,7 +324,7 @@ class Probe { !isset($parts["path"])) return false; - // todo: Ports? + /// @todo: Ports? $host = $parts["host"]; if ($host == 'twitter.com') diff --git a/include/acl_selectors.php b/include/acl_selectors.php index ed9c634c23..a207753797 100644 --- a/include/acl_selectors.php +++ b/include/acl_selectors.php @@ -34,7 +34,7 @@ function group_select($selname,$selclass,$preselected = false,$size = 4) { call_hooks($a->module . '_pre_' . $selname, $arr); if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { if((is_array($preselected)) && in_array($rr['id'], $preselected)) $selected = " selected=\"selected\" "; else @@ -65,20 +65,24 @@ function contact_selector($selname, $selclass, $preselected = false, $options) { $exclude = false; $size = 4; - if(is_array($options)) { - if(x($options,'size')) + if (is_array($options)) { + if (x($options,'size')) $size = $options['size']; - if(x($options,'mutual_friends')) + if (x($options,'mutual_friends')) { $mutual = true; - if(x($options,'single')) + } + if (x($options,'single')) { $single = true; - if(x($options,'multiple')) + } + if (x($options,'multiple')) { $single = false; - if(x($options,'exclude')) + } + if (x($options,'exclude')) { $exclude = $options['exclude']; + } - if(x($options,'networks')) { + if (x($options,'networks')) { switch($options['networks']) { case 'DFRN_ONLY': $networks = array(NETWORK_DFRN); @@ -145,11 +149,12 @@ function contact_selector($selname, $selclass, $preselected = false, $options) { call_hooks($a->module . '_pre_' . $selname, $arr); if (dbm::is_result($r)) { - foreach($r as $rr) { - if((is_array($preselected)) && in_array($rr['id'], $preselected)) + foreach ($r as $rr) { + if ((is_array($preselected)) && in_array($rr['id'], $preselected)) { $selected = " selected=\"selected\" "; - else + } else { $selected = ''; + } $trimmed = mb_substr($rr['name'],0,20); @@ -221,16 +226,19 @@ function contact_select($selname, $selclass, $preselected = false, $size = 4, $p $receiverlist = array(); if (dbm::is_result($r)) { - foreach($r as $rr) { - if((is_array($preselected)) && in_array($rr['id'], $preselected)) + foreach ($r as $rr) { + if ((is_array($preselected)) && in_array($rr['id'], $preselected)) { $selected = " selected=\"selected\" "; - else + } + else { $selected = ''; + } - if($privmail) + if ($privmail) { $trimmed = GetProfileUsername($rr['url'], $rr['name'], false); - else + } else { $trimmed = mb_substr($rr['name'],0,20); + } $receiverlist[] = $trimmed; @@ -256,16 +264,22 @@ function fixacl(&$item) { function prune_deadguys($arr) { - if(! $arr) + if (! $arr) { return $arr; + } + $str = dbesc(implode(',',$arr)); + $r = q("SELECT `id` FROM `contact` WHERE `id` IN ( " . $str . ") AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 "); - if($r) { + + if ($r) { $ret = array(); - foreach($r as $rr) + foreach ($r as $rr) { $ret[] = intval($rr['id']); + } return $ret; } + return array(); } @@ -392,8 +406,9 @@ function construct_acl_data(&$a, $user) { function acl_lookup(&$a, $out_type = 'json') { - if(!local_user()) - return ""; + if (!local_user()) { + return ''; + } $start = (x($_REQUEST,'start') ? $_REQUEST['start'] : 0); $count = (x($_REQUEST,'count') ? $_REQUEST['count'] : 100); @@ -540,35 +555,33 @@ function acl_lookup(&$a, $out_type = 'json') { dbesc(NETWORK_ZOT), dbesc(NETWORK_DIASPORA) ); - } - elseif($type == 'a') { + } elseif ($type == 'a') { $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag`, `forum`, `prv` FROM `contact` WHERE `uid` = %d AND `pending` = 0 $sql_extra2 ORDER BY `name` ASC ", intval(local_user()) ); - } - elseif($type == 'x') { + } elseif ($type == 'x') { // autocomplete for global contact search (e.g. navbar search) $r = navbar_complete($a); $contacts = array(); - if($r) { - foreach($r as $g) { + if ($r) { + foreach ($r as $g) { $contacts[] = array( - "photo" => proxy_url($g['photo'], false, PROXY_SIZE_MICRO), - "name" => $g['name'], - "nick" => (x($g['addr']) ? $g['addr'] : $g['url']), - "network" => $g['network'], - "link" => $g['url'], - "forum" => (x($g['community']) ? 1 : 0), + 'photo' => proxy_url($g['photo'], false, PROXY_SIZE_MICRO), + 'name' => $g['name'], + 'nick' => (x($g['addr']) ? $g['addr'] : $g['url']), + 'network' => $g['network'], + 'link' => $g['url'], + 'forum' => (x($g['community']) ? 1 : 0), ); } } $o = array( 'start' => $start, - 'count' => $count, - 'items' => $contacts, + 'count' => $count, + 'items' => $contacts, ); echo json_encode($o); killme(); @@ -578,16 +591,16 @@ function acl_lookup(&$a, $out_type = 'json') { if (dbm::is_result($r)) { - foreach($r as $g){ + foreach ($r as $g){ $contacts[] = array( - "type" => "c", - "photo" => proxy_url($g['micro'], false, PROXY_SIZE_MICRO), - "name" => htmlentities($g['name']), - "id" => intval($g['id']), - "network" => $g['network'], - "link" => $g['url'], - "nick" => htmlentities(($g['attag']) ? $g['attag'] : $g['nick']), - "forum" => ((x($g['forum']) || x($g['prv'])) ? 1 : 0), + 'type' => 'c', + 'photo' => proxy_url($g['micro'], false, PROXY_SIZE_MICRO), + 'name' => htmlentities($g['name']), + 'id' => intval($g['id']), + 'network' => $g['network'], + 'link' => $g['url'], + 'nick' => htmlentities(($g['attag']) ? $g['attag'] : $g['nick']), + 'forum' => ((x($g['forum']) || x($g['prv'])) ? 1 : 0), ); } } @@ -613,7 +626,7 @@ function acl_lookup(&$a, $out_type = 'json') { implode("','", $known_contacts) ); if (dbm::is_result($r)){ - foreach($r as $row) { + foreach ($r as $row) { // nickname.. $up = parse_url($row['author-link']); $nick = explode("/",$up['path']); @@ -621,14 +634,14 @@ function acl_lookup(&$a, $out_type = 'json') { $nick .= "@".$up['host']; // /nickname $unknow_contacts[] = array( - "type" => "c", - "photo" => proxy_url($row['author-avatar'], false, PROXY_SIZE_MICRO), - "name" => htmlentities($row['author-name']), - "id" => '', - "network" => "unknown", - "link" => $row['author-link'], - "nick" => htmlentities($nick), - "forum" => false + 'type' => 'c', + 'photo' => proxy_url($row['author-avatar'], false, PROXY_SIZE_MICRO), + 'name' => htmlentities($row['author-name']), + 'id' => '', + 'network' => 'unknown', + 'link' => $row['author-link'], + 'nick' => htmlentities($nick), + 'forum' => false ); } } @@ -638,34 +651,34 @@ function acl_lookup(&$a, $out_type = 'json') { } $results = array( - "tot" => $tot, - "start" => $start, - "count" => $count, - "groups" => $groups, - "contacts" => $contacts, - "items" => $items, - "type" => $type, - "search" => $search, + 'tot' => $tot, + 'start' => $start, + 'count' => $count, + 'groups' => $groups, + 'contacts' => $contacts, + 'items' => $items, + 'type' => $type, + 'search' => $search, ); call_hooks('acl_lookup_end', $results); if($out_type === 'html') { $o = array( - 'tot' => $results["tot"], - 'start' => $results["start"], - 'count' => $results["count"], - 'groups' => $results["groups"], - 'contacts' => $results["contacts"], + 'tot' => $results['tot'], + 'start' => $results['start'], + 'count' => $results['count'], + 'groups' => $results['groups'], + 'contacts' => $results['contacts'], ); return $o; } $o = array( - 'tot' => $results["tot"], - 'start' => $results["start"], - 'count' => $results["count"], - 'items' => $results["items"], + 'tot' => $results['tot'], + 'start' => $results['start'], + 'count' => $results['count'], + 'items' => $results['items'], ); echo json_encode($o); @@ -682,7 +695,7 @@ function navbar_complete(&$a) { // logger('navbar_complete'); - if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) { + if ((get_config('system','block_public')) && (! local_user()) && (! remote_user())) { return; } @@ -693,28 +706,32 @@ function navbar_complete(&$a) { $mode = $_REQUEST['smode']; // don't search if search term has less than 2 characters - if(! $search || mb_strlen($search) < 2) + if (! $search || mb_strlen($search) < 2) { return array(); + } - if(substr($search,0,1) === '@') + if (substr($search,0,1) === '@') { $search = substr($search,1); + } - if($localsearch) { + if ($localsearch) { $x = DirSearch::global_search_by_name($search, $mode); return $x; } - if(! $localsearch) { + if (! $localsearch) { $p = (($a->pager['page'] != 1) ? '&p=' . $a->pager['page'] : ''); $x = z_fetch_url(get_server().'/lsearch?f=' . $p . '&search=' . urlencode($search)); - if($x['success']) { + if ($x['success']) { $t = 0; $j = json_decode($x['body'],true); - if($j && $j['results']) { + if ($j && $j['results']) { return $j['results']; } } } + + /// @TODO Not needed here? return; } diff --git a/include/api.php b/include/api.php index 2ae1aeaa02..678c0ca333 100644 --- a/include/api.php +++ b/include/api.php @@ -3068,8 +3068,8 @@ 'image/gif' => 'gif' ); $data = array('photo'=>array()); - if($r) { - foreach($r as $rr) { + if ($r) { + foreach ($r as $rr) { $photo = array(); $photo['id'] = $rr['resource-id']; $photo['album'] = $rr['album']; @@ -3218,7 +3218,7 @@ function api_share_as_retweet(&$item) { $body = trim($item["body"]); - if (diaspora::is_reshare($body, false)===false) { + if (Diaspora::is_reshare($body, false)===false) { return false; } diff --git a/include/auth.php b/include/auth.php index 2ca9c3efb2..e3c8d92eeb 100644 --- a/include/auth.php +++ b/include/auth.php @@ -125,8 +125,7 @@ if (isset($_SESSION) && x($_SESSION,'authenticated') && (!x($_POST,'auth-params' $openid = new LightOpenID; $openid->identity = $openid_url; $_SESSION['openid'] = $openid_url; - $a = get_app(); - $openid->returnUrl = $a->get_baseurl(true).'/openid'; + $openid->returnUrl = App::get_baseurl(true).'/openid'; goaway($openid->authUrl()); } catch (Exception $e) { notice(t('We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID.').'

'.t('The error message was:').' '.$e->getMessage()); diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php index 0c637dc3af..6ddbb6ef30 100644 --- a/include/bb2diaspora.php +++ b/include/bb2diaspora.php @@ -69,6 +69,28 @@ function diaspora2bb($s) { return $s; } +/** + * @brief Callback function to replace a Friendica style mention in a mention for Diaspora + * + * @param array $match Matching values for the callback + * @return text Replaced mention + */ +function diaspora_mentions($match) { + + $contact = get_contact_details_by_url($match[3]); + + if (!isset($contact['addr'])) { + $contact = Probe::uri($match[3]); + } + + if (!isset($contact['addr'])) { + return $match[0]; + } + + $mention = '@{'.$match[2].'; '.$contact['addr'].'}'; + return $mention; +} + function bb2diaspora($Text,$preserve_nl = false, $fordiaspora = true) { $a = get_app(); @@ -108,8 +130,8 @@ function bb2diaspora($Text,$preserve_nl = false, $fordiaspora = true) { } else $Text = bbcode($Text, $preserve_nl, false, 4); - // mask some special HTML chars from conversation to markdown - $Text = str_replace(array('<','>','&'),array('&_lt_;','&_gt_;','&_amp_;'),$Text); + // mask some special HTML chars from conversation to markdown + $Text = str_replace(array('<','>','&'),array('&_lt_;','&_gt_;','&_amp_;'),$Text); // If a link is followed by a quote then there should be a newline before it // Maybe we should make this newline at every time before a quote. @@ -120,8 +142,8 @@ function bb2diaspora($Text,$preserve_nl = false, $fordiaspora = true) { // Now convert HTML to Markdown $Text = new HTML_To_Markdown($Text); - // unmask the special chars back to HTML - $Text = str_replace(array('&_lt_;','&_gt_;','&_amp_;'),array('<','>','&'),$Text); + // unmask the special chars back to HTML + $Text = str_replace(array('&_lt_;','&_gt_;','&_amp_;'),array('<','>','&'),$Text); $a->save_timestamp($stamp1, "parser"); @@ -132,6 +154,11 @@ function bb2diaspora($Text,$preserve_nl = false, $fordiaspora = true) { // the Diaspora signature verification and cause the item to disappear $Text = trim($Text); + if ($fordiaspora) { + $URLSearchString = "^\[\]"; + $Text = preg_replace_callback("/([@]\[(.*?)\])\(([$URLSearchString]*?)\)/ism", 'diaspora_mentions', $Text); + } + call_hooks('bb2diaspora',$Text); return $Text; @@ -144,8 +171,6 @@ function unescape_underscores_in_links($m) { function format_event_diaspora($ev) { - $a = get_app(); - if(! ((is_array($ev)) && count($ev))) return ''; @@ -160,7 +185,7 @@ function format_event_diaspora($ev) { $ev['start'] , $bd_format )) : day_translate(datetime_convert('UTC', 'UTC', $ev['start'] , $bd_format))) - . '](' . $a->get_baseurl() . '/localtime/?f=&time=' . urlencode(datetime_convert('UTC','UTC',$ev['start'])) . ")\n"; + . '](' . App::get_baseurl() . '/localtime/?f=&time=' . urlencode(datetime_convert('UTC','UTC',$ev['start'])) . ")\n"; if(! $ev['nofinish']) $o .= t('Finishes:') . ' ' . '[' @@ -168,7 +193,7 @@ function format_event_diaspora($ev) { $ev['finish'] , $bd_format )) : day_translate(datetime_convert('UTC', 'UTC', $ev['finish'] , $bd_format ))) - . '](' . $a->get_baseurl() . '/localtime/?f=&time=' . urlencode(datetime_convert('UTC','UTC',$ev['finish'])) . ")\n"; + . '](' . App::get_baseurl() . '/localtime/?f=&time=' . urlencode(datetime_convert('UTC','UTC',$ev['finish'])) . ")\n"; if(strlen($ev['location'])) $o .= t('Location:') . bb2diaspora($ev['location']) diff --git a/include/bbcode.php b/include/bbcode.php index 27213007ce..74dde2fdf4 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -343,7 +343,7 @@ function bb_replace_images($body, $images) { $newbody = $body; $cnt = 0; - foreach($images as $image) { + foreach ($images as $image) { // We're depending on the property of 'foreach' (specified on the PHP website) that // it loops over the array starting from the first element and going sequentially // to the last element @@ -613,9 +613,7 @@ function GetProfileUsername($profile, $username, $compact = false, $getnetwork = } function bb_DiasporaLinks($match) { - $a = get_app(); - - return "[url=".$a->get_baseurl()."/display/".$match[1]."]".$match[2]."[/url]"; + return "[url=".App::get_baseurl()."/display/".$match[1]."]".$match[2]."[/url]"; } function bb_RemovePictureLinks($match) { @@ -894,7 +892,7 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal // we may need to restrict this further if it picks up too many strays // link acct:user@host to a webfinger profile redirector - $Text = preg_replace('/acct:([^@]+)@((?!\-)(?:[a-zA-Z\d\-]{0,62}[a-zA-Z\d]\.){1,126}(?!\d+)[a-zA-Z\d]{1,63})/', 'acct:$1@$2',$Text); + $Text = preg_replace('/acct:([^@]+)@((?!\-)(?:[a-zA-Z\d\-]{0,62}[a-zA-Z\d]\.){1,126}(?!\d+)[a-zA-Z\d]{1,63})/', 'acct:$1@$2',$Text); // Perform MAIL Search $Text = preg_replace("/\[mail\]([$MAILSearchString]*)\[\/mail\]/", '$1', $Text); @@ -1063,9 +1061,9 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal return(bb_ShareAttributes($match, $simplehtml)); },$Text); - $Text = preg_replace("/\[crypt\](.*?)\[\/crypt\]/ism",'
' . t('Encrypted content') . '
', $Text); - $Text = preg_replace("/\[crypt(.*?)\](.*?)\[\/crypt\]/ism",'
' . t('Encrypted content') . '
', $Text); - //$Text = preg_replace("/\[crypt=(.*?)\](.*?)\[\/crypt\]/ism",'
' . t('Encrypted content') . '
', $Text); + $Text = preg_replace("/\[crypt\](.*?)\[\/crypt\]/ism",'
' . t('Encrypted content') . '
', $Text); + $Text = preg_replace("/\[crypt(.*?)\](.*?)\[\/crypt\]/ism",'
' . t('Encrypted content') . '
', $Text); + //$Text = preg_replace("/\[crypt=(.*?)\](.*?)\[\/crypt\]/ism",'
' . t('Encrypted content') . '
', $Text); // Try to Oembed diff --git a/include/contact_selectors.php b/include/contact_selectors.php index 0790e503ea..6b827baf31 100644 --- a/include/contact_selectors.php +++ b/include/contact_selectors.php @@ -13,7 +13,7 @@ function contact_profile_assign($current,$foreign_net) { intval($_SESSION['uid'])); if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { $selected = (($rr['id'] == $current) ? " selected=\"selected\" " : ""); $o .= "\r\n"; } @@ -99,7 +99,7 @@ function network_to_name($s, $profile = "") { $networkname = str_replace($search,$replace,$s); - if (($s == NETWORK_DIASPORA) AND ($profile != "") AND diaspora::is_redmatrix($profile)) { + if (($s == NETWORK_DIASPORA) AND ($profile != "") AND Diaspora::is_redmatrix($profile)) { $networkname = t("Hubzilla/Redmatrix"); $r = q("SELECT `gserver`.`platform` FROM `gcontact` diff --git a/include/contact_widgets.php b/include/contact_widgets.php index f66d23c518..36675da873 100644 --- a/include/contact_widgets.php +++ b/include/contact_widgets.php @@ -80,11 +80,13 @@ function networks_widget($baseurl,$selected = '') { $a = get_app(); - if(!local_user()) + if (!local_user()) { return ''; + } - if(!feature_enabled(local_user(),'networks')) + if (!feature_enabled(local_user(),'networks')) { return ''; + } $extra_sql = unavailable_networks(); @@ -95,9 +97,11 @@ function networks_widget($baseurl,$selected = '') { $nets = array(); if (dbm::is_result($r)) { require_once('include/contact_selectors.php'); - foreach($r as $rr) { - if($rr['network']) - $nets[] = array('ref' => $rr['network'], 'name' => network_to_name($rr['network']), 'selected' => (($selected == $rr['network']) ? 'selected' : '' )); + foreach ($r as $rr) { + /// @TODO If 'network' is not there, this triggers an E_NOTICE + if ($rr['network']) { + $nets[] = array('ref' => $rr['network'], 'name' => network_to_name($rr['network']), 'selected' => (($selected == $rr['network']) ? 'selected' : '' )); + } } } @@ -116,16 +120,18 @@ function networks_widget($baseurl,$selected = '') { } function fileas_widget($baseurl,$selected = '') { - $a = get_app(); - if(! local_user()) + if (! local_user()) { return ''; + } - if(! feature_enabled(local_user(),'filing')) + if (! feature_enabled(local_user(),'filing')) { return ''; + } $saved = get_pconfig(local_user(),'system','filetags'); - if(! strlen($saved)) + if (! strlen($saved)) { return; + } $matches = false; $terms = array(); @@ -235,7 +241,7 @@ function common_friends_visitor_widget($profile_uid) { return replace_macros(get_markup_template('remote_friends_common.tpl'), array( '$desc' => sprintf( tt("%d contact in common", "%d contacts in common", $t), $t), - '$base' => $a->get_baseurl(), + '$base' => App::get_baseurl(), '$uid' => $profile_uid, '$cid' => (($cid) ? $cid : '0'), '$linkmore' => (($t > 5) ? 'true' : ''), diff --git a/include/conversation.php b/include/conversation.php index 567bf83e1b..36eded8e8a 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -78,7 +78,7 @@ function item_redir_and_replace_images($body, $images, $cid) { $newbody .= $origbody; $cnt = 0; - foreach($images as $image) { + foreach ($images as $image) { // We're depending on the property of 'foreach' (specified on the PHP website) that // it loops over the array starting from the first element and going sequentially // to the last element @@ -324,11 +324,13 @@ function localize_item(&$item){ // add sparkle links to appropriate permalinks $x = stristr($item['plink'],'/display/'); - if($x) { + if ($x) { $sparkle = false; $y = best_link_url($item,$sparkle,true); - if(strstr($y,'/redir/')) + + if (strstr($y,'/redir/')) { $item['plink'] = $y . '?f=&url=' . $item['plink']; + } } @@ -864,7 +866,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { } $o = replace_macros($page_template, array( - '$baseurl' => $a->get_baseurl($ssl_state), + '$baseurl' => App::get_baseurl($ssl_state), '$return_path' => $a->query_string, '$live_update' => $live_update_div, '$remove' => t('remove'), @@ -1183,7 +1185,7 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) { $tpl = get_markup_template('jot-header.tpl'); $a->page['htmlhead'] .= replace_macros($tpl, array( '$newpost' => 'true', - '$baseurl' => $a->get_baseurl(true), + '$baseurl' => App::get_baseurl(true), '$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'), '$geotag' => $geotag, '$nickname' => $x['nickname'], @@ -1201,7 +1203,7 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) { $tpl = get_markup_template('jot-end.tpl'); $a->page['end'] .= replace_macros($tpl, array( '$newpost' => 'true', - '$baseurl' => $a->get_baseurl(true), + '$baseurl' => App::get_baseurl(true), '$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'), '$geotag' => $geotag, '$nickname' => $x['nickname'], @@ -1267,7 +1269,7 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) { '$ptyp' => (($notes_cid) ? 'note' : 'wall'), '$content' => $x['content'], '$post_id' => $x['post_id'], - '$baseurl' => $a->get_baseurl(true), + '$baseurl' => App::get_baseurl(true), '$defloc' => $x['default_location'], '$visitor' => $x['visitor'], '$pvisit' => (($notes_cid) ? 'none' : $x['visitor']), diff --git a/include/datetime.php b/include/datetime.php index e88c274ab9..a17c405dc3 100644 --- a/include/datetime.php +++ b/include/datetime.php @@ -553,7 +553,7 @@ function update_contact_birthdays() { $r = q("SELECT * FROM contact WHERE `bd` != '' AND `bd` != '0000-00-00' AND SUBSTRING(`bd`,1,4) != `bdyear` "); if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { logger('update_contact_birthday: ' . $rr['bd']); diff --git a/include/dbstructure.php b/include/dbstructure.php index 059397d199..2dd7a6f182 100644 --- a/include/dbstructure.php +++ b/include/dbstructure.php @@ -26,7 +26,6 @@ function update_fail($update_id, $error_message){ } // every admin could had different language - foreach ($adminlist as $admin) { $lang = (($admin['language'])?$admin['language']:'en'); push_lang($lang); @@ -56,11 +55,11 @@ function update_fail($update_id, $error_message){ $email_tpl = get_intltext_template("update_fail_eml.tpl"); $email_msg = replace_macros($email_tpl, array( '$sitename' => $a->config['sitename'], - '$siteurl' => $a->get_baseurl(), + '$siteurl' => App::get_baseurl(), '$update' => DB_UPDATE_VERSION, '$error' => sprintf(t('Update %s failed. See error logs.'), DB_UPDATE_VERSION) )); - $subject=sprintf(t('Update Error at %s'), $a->get_baseurl()); + $subject=sprintf(t('Update Error at %s'), App::get_baseurl()); require_once('include/email.php'); $subject = email_header_encode($subject,'UTF-8'); mail($a->config['admin_email'], $subject, $email_msg, @@ -83,8 +82,9 @@ function table_structure($table) { if (dbm::is_result($indexes)) foreach ($indexes AS $index) { - if ($index["Index_type"] == "FULLTEXT") + if ($index["Index_type"] == "FULLTEXT") { continue; + } if ($index['Key_name'] != 'PRIMARY' && $index['Non_unique'] == '0' && !isset($indexdata[$index["Key_name"]])) { $indexdata[$index["Key_name"]] = array('UNIQUE'); @@ -95,26 +95,31 @@ function table_structure($table) { // To avoid the need to add this to every index definition we just ignore it here. // Exception are primary indexes // Since there are some combindex primary indexes we use the limit of 180 here. - if (($index["Sub_part"] != "") AND (($index["Sub_part"] < 180) OR ($index["Key_name"] == "PRIMARY"))) + if (($index["Sub_part"] != "") AND (($index["Sub_part"] < 180) OR ($index["Key_name"] == "PRIMARY"))) { $column .= "(".$index["Sub_part"].")"; + } $indexdata[$index["Key_name"]][] = $column; } if (dbm::is_result($structures)) { - foreach($structures AS $field) { + foreach ($structures AS $field) { $fielddata[$field["Field"]]["type"] = $field["Type"]; - if ($field["Null"] == "NO") + if ($field["Null"] == "NO") { $fielddata[$field["Field"]]["not null"] = true; + } - if (isset($field["Default"])) + if (isset($field["Default"])) { $fielddata[$field["Field"]]["default"] = $field["Default"]; + } - if ($field["Extra"] != "") + if ($field["Extra"] != "") { $fielddata[$field["Field"]]["extra"] = $field["Extra"]; + } - if ($field["Key"] == "PRI") + if ($field["Key"] == "PRI") { $fielddata[$field["Field"]]["primary"] = true; + } } } return(array("fields"=>$fielddata, "indexes"=>$indexdata)); @@ -138,13 +143,15 @@ function print_structure($database, $charset) { function update_structure($verbose, $action, $tables=null, $definition=null) { global $a, $db; - if ($action) + if ($action) { set_config('system', 'maintenance', 1); + } - if (isset($a->config["system"]["db_charset"])) + if (isset($a->config["system"]["db_charset"])) { $charset = $a->config["system"]["db_charset"]; - else + } else { $charset = "utf8"; + } $errors = false; @@ -153,8 +160,9 @@ function update_structure($verbose, $action, $tables=null, $definition=null) { // Get the current structure $database = array(); - if (is_null($tables)) - $tables = q("show tables"); + if (is_null($tables)) { + $tables = q("SHOW TABLES"); + } foreach ($tables AS $table) { $table = current($table); @@ -164,21 +172,24 @@ function update_structure($verbose, $action, $tables=null, $definition=null) { } // Get the definition - if (is_null($definition)) + if (is_null($definition)) { $definition = db_definition($charset); + } // Ensure index conversion to unique removes duplicates $sql_config = "SET session old_alter_table=1;"; - if ($verbose) + if ($verbose) { echo $sql_config."\n"; - if ($action) - @$db->q($sql_config); + } + if ($action) { + $db->q($sql_config); + } // MySQL >= 5.7.4 doesn't support the IGNORE keyword in ALTER TABLE statements if ((version_compare($db->server_info(), '5.7.4') >= 0) AND !(strpos($db->server_info(), 'MariaDB') !== false)) { $ignore = ''; - }else { + } else { $ignore = ' IGNORE'; } @@ -193,10 +204,12 @@ function update_structure($verbose, $action, $tables=null, $definition=null) { } $is_new_table = True; } else { - // Drop the index if it isn't present in the definition - // or the definition differ from current status - // and index name doesn't start with "local_" - foreach ($database[$name]["indexes"] AS $indexname => $fieldnames) { + /* + * Drop the index if it isn't present in the definition + * or the definition differ from current status + * and index name doesn't start with "local_" + */ + foreach ($database[$name]["indexes"] as $indexname => $fieldnames) { $current_index_definition = implode(",",$fieldnames); if (isset($structure["indexes"][$indexname])) { $new_index_definition = implode(",",$structure["indexes"][$indexname]); @@ -205,39 +218,44 @@ function update_structure($verbose, $action, $tables=null, $definition=null) { } if ($current_index_definition != $new_index_definition && substr($indexname, 0, 6) != 'local_') { $sql2=db_drop_index($indexname); - if ($sql3 == "") + if ($sql3 == "") { $sql3 = "ALTER".$ignore." TABLE `".$name."` ".$sql2; - else + } else { $sql3 .= ", ".$sql2; + } } } // Compare the field structure field by field foreach ($structure["fields"] AS $fieldname => $parameters) { if (!isset($database[$name]["fields"][$fieldname])) { $sql2=db_add_table_field($fieldname, $parameters); - if ($sql3 == "") + if ($sql3 == "") { $sql3 = "ALTER TABLE `".$name."` ".$sql2; - else + } else { $sql3 .= ", ".$sql2; + } } else { // Compare the field definition $current_field_definition = implode(",",$database[$name]["fields"][$fieldname]); $new_field_definition = implode(",",$parameters); if ($current_field_definition != $new_field_definition) { $sql2=db_modify_table_field($fieldname, $parameters); - if ($sql3 == "") + if ($sql3 == "") { $sql3 = "ALTER TABLE `".$name."` ".$sql2; - else + } else { $sql3 .= ", ".$sql2; + } } } } } - // Create the index if the index don't exists in database - // or the definition differ from the current status. - // Don't create keys if table is new + /* + * Create the index if the index don't exists in database + * or the definition differ from the current status. + * Don't create keys if table is new + */ if (!$is_new_table) { foreach ($structure["indexes"] AS $indexname => $fieldnames) { if (isset($database[$name]["indexes"][$indexname])) { @@ -367,10 +385,11 @@ function db_create_index($indexname, $fieldnames, $method="ADD") { if ($names != "") $names .= ","; - if (preg_match('|(.+)\((\d+)\)|', $fieldname, $matches)) + if (preg_match('|(.+)\((\d+)\)|', $fieldname, $matches)) { $names .= "`".dbesc($matches[1])."`(".intval($matches[2]).")"; - else + } else { $names .= "`".dbesc($fieldname)."`"; + } } if ($indexname == "PRIMARY") { @@ -383,8 +402,9 @@ function db_create_index($indexname, $fieldnames, $method="ADD") { } function db_index_suffix($charset, $reduce = 0) { - if ($charset != "utf8mb4") + if ($charset != "utf8mb4") { return ""; + } // On utf8mb4 indexes can only have a length of 191 $indexlength = 191 - $reduce; @@ -444,13 +464,13 @@ function db_definition($charset) { ); $database["cache"] = array( "fields" => array( - "k" => array("type" => "varchar(255)", "not null" => "1", "primary" => "1"), + "k" => array("type" => "varbinary(255)", "not null" => "1", "primary" => "1"), "v" => array("type" => "text"), "expire_mode" => array("type" => "int(11)", "not null" => "1", "default" => "0"), "updated" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), ), "indexes" => array( - "PRIMARY" => array("k".db_index_suffix($charset)), + "PRIMARY" => array("k"), "updated" => array("updated"), "expire_mode_updated" => array("expire_mode", "updated"), ) @@ -484,13 +504,13 @@ function db_definition($charset) { $database["config"] = array( "fields" => array( "id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"), - "cat" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), - "k" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), + "cat" => array("type" => "varbinary(255)", "not null" => "1", "default" => ""), + "k" => array("type" => "varbinary(255)", "not null" => "1", "default" => ""), "v" => array("type" => "text"), ), "indexes" => array( "PRIMARY" => array("id"), - "cat_k" => array("UNIQUE", "cat(30)","k(30)"), + "cat_k" => array("UNIQUE", "cat", "k"), ) ); $database["contact"] = array( @@ -590,7 +610,7 @@ function db_definition($charset) { $database["deliverq"] = array( "fields" => array( "id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"), - "cmd" => array("type" => "varchar(32)", "not null" => "1", "default" => ""), + "cmd" => array("type" => "varbinary(32)", "not null" => "1", "default" => ""), "item" => array("type" => "int(11)", "not null" => "1", "default" => "0"), "contact" => array("type" => "int(11)", "not null" => "1", "default" => "0"), ), @@ -602,6 +622,7 @@ function db_definition($charset) { $database["event"] = array( "fields" => array( "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"), + "guid" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), "uid" => array("type" => "int(11)", "not null" => "1", "default" => "0"), "cid" => array("type" => "int(11)", "not null" => "1", "default" => "0"), "uri" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), @@ -1072,25 +1093,25 @@ function db_definition($charset) { ); $database["oembed"] = array( "fields" => array( - "url" => array("type" => "varchar(255)", "not null" => "1", "primary" => "1"), + "url" => array("type" => "varbinary(255)", "not null" => "1", "primary" => "1"), "content" => array("type" => "text"), "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), ), "indexes" => array( - "PRIMARY" => array("url".db_index_suffix($charset)), + "PRIMARY" => array("url"), "created" => array("created"), ) ); $database["parsed_url"] = array( "fields" => array( - "url" => array("type" => "varchar(255)", "not null" => "1", "primary" => "1"), + "url" => array("type" => "varbinary(255)", "not null" => "1", "primary" => "1"), "guessing" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0", "primary" => "1"), "oembed" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0", "primary" => "1"), "content" => array("type" => "text"), "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), ), "indexes" => array( - "PRIMARY" => array("url".db_index_suffix($charset), "guessing", "oembed"), + "PRIMARY" => array("url", "guessing", "oembed"), "created" => array("created"), ) ); @@ -1098,13 +1119,13 @@ function db_definition($charset) { "fields" => array( "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"), "uid" => array("type" => "int(11)", "not null" => "1", "default" => "0"), - "cat" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), - "k" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), + "cat" => array("type" => "varbinary(255)", "not null" => "1", "default" => ""), + "k" => array("type" => "varbinary(255)", "not null" => "1", "default" => ""), "v" => array("type" => "mediumtext"), ), "indexes" => array( "PRIMARY" => array("id"), - "uid_cat_k" => array("UNIQUE", "uid","cat(30)","k(30)"), + "uid_cat_k" => array("UNIQUE", "uid", "cat", "k"), ) ); $database["photo"] = array( @@ -1176,7 +1197,7 @@ function db_definition($charset) { $database["process"] = array( "fields" => array( "pid" => array("type" => "int(10) unsigned", "not null" => "1", "primary" => "1"), - "command" => array("type" => "varchar(32)", "not null" => "1", "default" => ""), + "command" => array("type" => "varbinary(32)", "not null" => "1", "default" => ""), "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"), ), "indexes" => array( @@ -1310,7 +1331,7 @@ function db_definition($charset) { $database["session"] = array( "fields" => array( "id" => array("type" => "bigint(20) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"), - "sid" => array("type" => "varchar(255)", "not null" => "1", "default" => ""), + "sid" => array("type" => "varbinary(255)", "not null" => "1", "default" => ""), "data" => array("type" => "text"), "expire" => array("type" => "int(10) unsigned", "not null" => "1", "default" => "0"), ), @@ -1573,9 +1594,6 @@ function dbstructure_run(&$argv, &$argc) { echo "dumpsql dump database schema\n"; return; - - - } if (array_search(__file__,get_included_files())===0){ diff --git a/include/delivery.php b/include/delivery.php index a7aebe709a..e9f4264641 100644 --- a/include/delivery.php +++ b/include/delivery.php @@ -323,7 +323,7 @@ function delivery_run(&$argv, &$argc){ // perform local delivery if we are on the same site - if (link_compare($basepath,$a->get_baseurl())) { + if (link_compare($basepath,App::get_baseurl())) { $nickname = basename($contact['url']); if ($contact['issued-id']) @@ -508,7 +508,7 @@ function delivery_run(&$argv, &$argc){ break; if ($mail) { - diaspora::send_mail($item,$owner,$contact); + Diaspora::send_mail($item,$owner,$contact); break; } @@ -518,34 +518,25 @@ function delivery_run(&$argv, &$argc){ if (!$contact['pubkey'] && !$public_message) break; - $unsupported_activities = array(ACTIVITY_DISLIKE, ACTIVITY_ATTEND, ACTIVITY_ATTENDNO, ACTIVITY_ATTENDMAYBE); - - //don't transmit activities which are not supported by diaspora - foreach($unsupported_activities as $act) { - if (activity_match($target_item['verb'],$act)) { - break 2; - } - } - if (($target_item['deleted']) && (($target_item['uri'] === $target_item['parent-uri']) || $followup)) { // top-level retraction logger('diaspora retract: '.$loc); - diaspora::send_retraction($target_item,$owner,$contact,$public_message); + Diaspora::send_retraction($target_item,$owner,$contact,$public_message); break; } elseif ($followup) { // send comments and likes to owner to relay logger('diaspora followup: '.$loc); - diaspora::send_followup($target_item,$owner,$contact,$public_message); + Diaspora::send_followup($target_item,$owner,$contact,$public_message); break; } elseif ($target_item['uri'] !== $target_item['parent-uri']) { // we are the relay - send comments, likes and relayable_retractions to our conversants logger('diaspora relay: '.$loc); - diaspora::send_relay($target_item,$owner,$contact,$public_message); + Diaspora::send_relay($target_item,$owner,$contact,$public_message); break; } elseif ($top_level && !$walltowall) { // currently no workable solution for sending walltowall logger('diaspora status: '.$loc); - diaspora::send_status($target_item,$owner,$contact,$public_message); + Diaspora::send_status($target_item,$owner,$contact,$public_message); break; } diff --git a/include/dfrn.php b/include/dfrn.php index 6451b8521b..689c5c2832 100644 --- a/include/dfrn.php +++ b/include/dfrn.php @@ -105,8 +105,9 @@ class dfrn { dbesc($owner_nick) ); - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { killme(); + } $owner = $r[0]; $owner_id = $owner['uid']; @@ -139,8 +140,9 @@ class dfrn { intval($owner_id) ); - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { killme(); + } $contact = $r[0]; require_once('include/security.php'); diff --git a/include/diaspora.php b/include/diaspora.php index 3b4832e74f..fbfc497b59 100644 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -18,12 +18,13 @@ require_once("include/group.php"); require_once("include/xml.php"); require_once("include/datetime.php"); require_once("include/queue_fn.php"); +require_once("include/cache.php"); /** * @brief This class contain functions to create and send Diaspora XML files * */ -class diaspora { +class Diaspora { /** * @brief Return a list of relay servers @@ -87,7 +88,7 @@ class diaspora { * * @return string the repaired signature */ - private function repair_signature($signature, $handle = "", $level = 1) { + private static function repair_signature($signature, $handle = "", $level = 1) { if ($signature == "") return ($signature); @@ -111,7 +112,7 @@ class diaspora { * * @return string verified data */ - private function verify_magic_envelope($envelope) { + private static function verify_magic_envelope($envelope) { $basedom = parse_xml_string($envelope, false); @@ -319,8 +320,8 @@ class diaspora { dbesc(NETWORK_DIASPORA), dbesc($msg["author"]) ); - if($r) { - foreach($r as $rr) { + if ($r) { + foreach ($r as $rr) { logger("delivering to: ".$rr["username"]); self::dispatch($rr,$msg); } @@ -344,7 +345,7 @@ class diaspora { // This will often be different with relayed messages (for example "like" and "comment") $sender = $msg["author"]; - if (!diaspora::valid_posting($msg, $fields)) { + if (!self::valid_posting($msg, $fields)) { logger("Invalid posting"); return false; } @@ -412,7 +413,7 @@ class diaspora { * * @return bool Is the posting valid? */ - private function valid_posting($msg, &$fields) { + private static function valid_posting($msg, &$fields) { $data = parse_xml_string($msg["message"], false); @@ -520,7 +521,7 @@ class diaspora { $key = self::key($msg["author"]); if (!rsa_verify($signed_data, $parent_author_signature, $key, "sha256")) { - logger("No valid parent author signature for author ".$msg["author"]. " in type ".$type." - signed data: ".$signed_data." - Message: ".$msg["message"]." - Signature ".$parent_author_signature, LOGGER_DEBUG); + logger("No valid parent author signature for parent author ".$msg["author"]. " in type ".$type." - signed data: ".$signed_data." - Message: ".$msg["message"]." - Signature ".$parent_author_signature, LOGGER_DEBUG); return false; } } @@ -528,7 +529,7 @@ class diaspora { $key = self::key($fields->author); if (!rsa_verify($signed_data, $author_signature, $key, "sha256")) { - logger("No valid author signature for author ".$msg["author"]. " in type ".$type." - signed data: ".$signed_data." - Message: ".$msg["message"]." - Signature ".$author_signature, LOGGER_DEBUG); + logger("No valid author signature for author ".$fields->author. " in type ".$type." - signed data: ".$signed_data." - Message: ".$msg["message"]." - Signature ".$author_signature, LOGGER_DEBUG); return false; } else return true; @@ -541,7 +542,7 @@ class diaspora { * * @return string The public key */ - private function key($handle) { + private static function key($handle) { $handle = strval($handle); logger("Fetching diaspora key for: ".$handle); @@ -560,7 +561,7 @@ class diaspora { * * @return array the queried data */ - private function person_by_handle($handle) { + private static function person_by_handle($handle) { $r = q("SELECT * FROM `fcontact` WHERE `network` = '%s' AND `addr` = '%s' LIMIT 1", dbesc(NETWORK_DIASPORA), @@ -601,7 +602,7 @@ class diaspora { * * @return string The id of the fcontact entry */ - private function add_fcontact($arr, $update = false) { + private static function add_fcontact($arr, $update = false) { if($update) { $r = q("UPDATE `fcontact` SET @@ -669,27 +670,30 @@ class diaspora { * @return string the handle */ public static function handle_from_contact($contact_id, $gcontact_id = 0) { - $handle = False; + $handle = false; logger("contact id is ".$contact_id." - gcontact id is ".$gcontact_id, LOGGER_DEBUG); if ($gcontact_id != 0) { $r = q("SELECT `addr` FROM `gcontact` WHERE `id` = %d AND `addr` != ''", intval($gcontact_id)); - if ($r) + + if (dbm::is_result($r)) { return strtolower($r[0]["addr"]); + } } $r = q("SELECT `network`, `addr`, `self`, `url`, `nick` FROM `contact` WHERE `id` = %d", intval($contact_id)); - if ($r) { + + if (dbm::is_result($r)) { $contact = $r[0]; logger("contact 'self' = ".$contact['self']." 'url' = ".$contact['url'], LOGGER_DEBUG); - if($contact['addr'] != "") + if ($contact['addr'] != "") { $handle = $contact['addr']; - else { + } else { $baseurl_start = strpos($contact['url'],'://') + 3; $baseurl_length = strpos($contact['url'],'/profile') - $baseurl_start; // allows installations in a subdirectory--not sure how Diaspora will handle $baseurl = substr($contact['url'], $baseurl_start, $baseurl_length); @@ -700,6 +704,29 @@ class diaspora { return strtolower($handle); } + /** + * @brief get a url (scheme://domain.tld/u/user) from a given Diaspora* + * fcontact guid + * + * @param mixed $fcontact_guid Hexadecimal string guid + * + * @return string the contact url or null + */ + public static function url_from_contact_guid($fcontact_guid) { + logger("fcontact guid is ".$fcontact_guid, LOGGER_DEBUG); + + $r = q("SELECT `url` FROM `fcontact` WHERE `url` != '' AND `network` = '%s' AND `guid` = '%s'", + dbesc(NETWORK_DIASPORA), + dbesc($fcontact_guid) + ); + + if (dbm::is_result($r)) { + return $r[0]['url']; + } + + return null; + } + /** * @brief Get a contact id for a given handle * @@ -708,7 +735,7 @@ class diaspora { * * @return The contact id */ - private function contact_by_handle($uid, $handle) { + private static function contact_by_handle($uid, $handle) { $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `addr` = '%s' LIMIT 1", intval($uid), dbesc($handle) @@ -739,7 +766,7 @@ class diaspora { * * @return bool is the contact allowed to post? */ - private function post_allow($importer, $contact, $is_comment = false) { + private static function post_allow($importer, $contact, $is_comment = false) { // perhaps we were already sharing with this person. Now they're sharing with us. // That makes us friends. @@ -778,7 +805,7 @@ class diaspora { * * @return array The contact data */ - private function allowed_contact_by_handle($importer, $handle, $is_comment = false) { + private static function allowed_contact_by_handle($importer, $handle, $is_comment = false) { $contact = self::contact_by_handle($importer["uid"], $handle); if (!$contact) { logger("A Contact for handle ".$handle." and user ".$importer["uid"]." was not found"); @@ -800,13 +827,13 @@ class diaspora { * * @return int|bool message id if the message already was stored into the system - or false. */ - private function message_exists($uid, $guid) { + private static function message_exists($uid, $guid) { $r = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `guid` = '%s' LIMIT 1", intval($uid), dbesc($guid) ); - if($r) { + if ($r) { logger("message ".$guid." already exists for user ".$uid); return $r[0]["id"]; } @@ -819,20 +846,52 @@ class diaspora { * * @param array $item The item array */ - private function fetch_guid($item) { + private static function fetch_guid($item) { preg_replace_callback("&\[url=/posts/([^\[\]]*)\](.*)\[\/url\]&Usi", function ($match) use ($item){ return(self::fetch_guid_sub($match, $item)); },$item["body"]); } + /** + * @brief Checks for relative /people/* links in an item body to match local + * contacts or prepends the remote host taken from the author link. + * + * @param string $body The item body to replace links from + * @param string $author_link The author link for missing local contact fallback + * + * @return the replaced string + */ + public function replace_people_guid($body, $author_link) { + $return = preg_replace_callback("&\[url=/people/([^\[\]]*)\](.*)\[\/url\]&Usi", + function ($match) use ($author_link) { + // $match + // 0 => '[url=/people/0123456789abcdef]Foo Bar[/url]' + // 1 => '0123456789abcdef' + // 2 => 'Foo Bar' + $handle = self::url_from_contact_guid($match[1]); + + if ($handle) { + $return = '@[url='.$handle.']'.$match[2].'[/url]'; + } else { + // No local match, restoring absolute remote URL from author scheme and host + $author_url = parse_url($author_link); + $return = '[url='.$author_url['scheme'].'://'.$author_url['host'].'/people/'.$match[1].']'.$match[2].'[/url]'; + } + + return $return; + }, $body); + + return $return; + } + /** * @brief sub function of "fetch_guid" which checks for links in messages * * @param array $match array containing a link that has to be checked for a message link * @param array $item The item array */ - private function fetch_guid_sub($match, $item) { + private static function fetch_guid_sub($match, $item) { if (!self::store_by_guid($match[1], $item["author-link"])) self::store_by_guid($match[1], $item["owner-link"]); } @@ -846,7 +905,7 @@ class diaspora { * * @return int the message id of the stored message or false */ - private function store_by_guid($guid, $server, $uid = 0) { + private static function store_by_guid($guid, $server, $uid = 0) { $serverparts = parse_url($server); $server = $serverparts["scheme"]."://".$serverparts["host"]; @@ -875,7 +934,7 @@ class diaspora { * 'author' => The author handle * 'key' => The public key of the author */ - private function message($guid, $server, $level = 0) { + private static function message($guid, $server, $level = 0) { if ($level > 5) return false; @@ -951,7 +1010,7 @@ class diaspora { * * @return array the item record */ - private function parent_item($uid, $guid, $author, $contact) { + private static function parent_item($uid, $guid, $author, $contact) { $r = q("SELECT `id`, `body`, `wall`, `uri`, `private`, `origin`, `author-name`, `author-link`, `author-avatar`, `owner-name`, `owner-link`, `owner-avatar` @@ -997,7 +1056,7 @@ class diaspora { * 'cid' => contact id * 'network' => network type */ - private function author_contact_by_url($contact, $person, $uid) { + private static function author_contact_by_url($contact, $person, $uid) { $r = q("SELECT `id`, `network`, `url` FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d LIMIT 1", dbesc(normalise_link($person["url"])), intval($uid)); @@ -1035,7 +1094,7 @@ class diaspora { * * @return string the post link */ - private function plink($addr, $guid) { + private static function plink($addr, $guid) { $r = q("SELECT `url`, `nick`, `network` FROM `fcontact` WHERE `addr`='%s' LIMIT 1", dbesc($addr)); // Fallback @@ -1065,7 +1124,7 @@ class diaspora { * * @return bool Success */ - private function receive_account_deletion($importer, $data) { + private static function receive_account_deletion($importer, $data) { /// @todo Account deletion should remove the contact from the global contacts as well @@ -1087,16 +1146,38 @@ class diaspora { * * @param string $author Author handle * @param string $guid Message guid + * @param boolean $onlyfound Only return uri when found in the database * * @return string The constructed uri or the one from our database */ - private function get_uri_from_guid($author, $guid) { + private static function get_uri_from_guid($author, $guid, $onlyfound = false) { $r = q("SELECT `uri` FROM `item` WHERE `guid` = '%s' LIMIT 1", dbesc($guid)); - if ($r) + if (dbm::is_result($r)) { return $r[0]["uri"]; - else + } elseif (!$onlyfound) { return $author.":".$guid; + } + + return ""; + } + + /** + * @brief Fetch the guid from our database with a given uri + * + * @param string $author Author handle + * @param string $uri Message uri + * + * @return string The post guid + */ + private static function get_guid_from_uri($uri, $uid) { + + $r = q("SELECT `guid` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1", dbesc($uri), intval($uid)); + if (dbm::is_result($r)) { + return $r[0]["guid"]; + } else { + return false; + } } /** @@ -1109,28 +1190,39 @@ class diaspora { * * @return int The message id of the generated comment or "false" if there was an error */ - private function receive_comment($importer, $sender, $data, $xml) { + private static function receive_comment($importer, $sender, $data, $xml) { $guid = notags(unxmlify($data->guid)); $parent_guid = notags(unxmlify($data->parent_guid)); $text = unxmlify($data->text); $author = notags(unxmlify($data->author)); - if (isset($data->created_at)) + if (isset($data->created_at)) { $created_at = datetime_convert("UTC", "UTC", notags(unxmlify($data->created_at))); - else + } else { $created_at = datetime_convert(); + } + + if (isset($data->thread_parent_guid)) { + $thread_parent_guid = notags(unxmlify($data->thread_parent_guid)); + $thr_uri = self::get_uri_from_guid("", $thread_parent_guid, true); + } else { + $thr_uri = ""; + } $contact = self::allowed_contact_by_handle($importer, $sender, true); - if (!$contact) + if (!$contact) { return false; + } $message_id = self::message_exists($importer["uid"], $guid); - if ($message_id) + if ($message_id) { return $message_id; + } $parent_item = self::parent_item($importer["uid"], $parent_guid, $author, $contact); - if (!$parent_item) + if (!$parent_item) { return false; + } $person = self::person_by_handle($author); if (!is_array($person)) { @@ -1161,21 +1253,29 @@ class diaspora { $datarray["type"] = "remote-comment"; $datarray["verb"] = ACTIVITY_POST; $datarray["gravity"] = GRAVITY_COMMENT; - $datarray["parent-uri"] = $parent_item["uri"]; + + if ($thr_uri != "") { + $datarray["parent-uri"] = $thr_uri; + } else { + $datarray["parent-uri"] = $parent_item["uri"]; + } $datarray["object-type"] = ACTIVITY_OBJ_COMMENT; $datarray["object"] = $xml; $datarray["changed"] = $datarray["created"] = $datarray["edited"] = $created_at; - $datarray["body"] = diaspora2bb($text); + $body = diaspora2bb($text); + + $datarray["body"] = self::replace_people_guid($body, $person["url"]); self::fetch_guid($datarray); $message_id = item_store($datarray); - if ($message_id) + if ($message_id) { logger("Stored comment ".$datarray["guid"]." with message id ".$message_id, LOGGER_DEBUG); + } // If we are the origin of the parent we store the original data and notify our followers if($message_id AND $parent_item["origin"]) { @@ -1206,13 +1306,11 @@ class diaspora { * * @return bool "true" if it was successful */ - private function receive_conversation_message($importer, $contact, $data, $msg, $mesg, $conversation) { + private static function receive_conversation_message($importer, $contact, $data, $msg, $mesg, $conversation) { $guid = notags(unxmlify($data->guid)); $subject = notags(unxmlify($data->subject)); $author = notags(unxmlify($data->author)); - $reply = 0; - $msg_guid = notags(unxmlify($mesg->guid)); $msg_parent_guid = notags(unxmlify($mesg->parent_guid)); $msg_parent_author_signature = notags(unxmlify($mesg->parent_author_signature)); @@ -1222,16 +1320,17 @@ class diaspora { // "diaspora_handle" is the element name from the old version // "author" is the element name from the new version - if ($mesg->author) + if ($mesg->author) { $msg_author = notags(unxmlify($mesg->author)); - elseif ($mesg->diaspora_handle) + } elseif ($mesg->diaspora_handle) { $msg_author = notags(unxmlify($mesg->diaspora_handle)); - else + } else { return false; + } $msg_conversation_guid = notags(unxmlify($mesg->conversation_guid)); - if($msg_conversation_guid != $guid) { + if ($msg_conversation_guid != $guid) { logger("message conversation guid does not belong to the current conversation."); return false; } @@ -1243,15 +1342,15 @@ class diaspora { $author_signature = base64_decode($msg_author_signature); - if(strcasecmp($msg_author,$msg["author"]) == 0) { + if (strcasecmp($msg_author,$msg["author"]) == 0) { $person = $contact; $key = $msg["key"]; } else { $person = self::person_by_handle($msg_author); - if (is_array($person) && x($person, "pubkey")) + if (is_array($person) && x($person, "pubkey")) { $key = $person["pubkey"]; - else { + } else { logger("unable to find author details"); return false; } @@ -1262,7 +1361,7 @@ class diaspora { return false; } - if($msg_parent_author_signature) { + if ($msg_parent_author_signature) { $owner_signed_data = $msg_guid.";".$msg_parent_guid.";".$msg_text.";".unxmlify($mesg->created_at).";".$msg_author.";".$msg_conversation_guid; $parent_author_signature = base64_decode($msg_parent_author_signature); @@ -1332,7 +1431,7 @@ class diaspora { * * @return bool Success */ - private function receive_conversation($importer, $msg, $data) { + private static function receive_conversation($importer, $msg, $data) { $guid = notags(unxmlify($data->guid)); $subject = notags(unxmlify($data->subject)); $created_at = datetime_convert("UTC", "UTC", notags(unxmlify($data->created_at))); @@ -1398,7 +1497,7 @@ class diaspora { * * @return string the body */ - private function construct_like_body($contact, $parent_item, $guid) { + private static function construct_like_body($contact, $parent_item, $guid) { $bodyverb = t('%1$s likes %2$s\'s %3$s'); $ulink = "[url=".$contact["url"]."]".$contact["name"]."[/url]"; @@ -1416,7 +1515,7 @@ class diaspora { * * @return string The XML */ - private function construct_like_object($importer, $parent_item) { + private static function construct_like_object($importer, $parent_item) { $objtype = ACTIVITY_OBJ_NOTE; $link = ''; $parent_body = $parent_item["body"]; @@ -1440,7 +1539,7 @@ class diaspora { * * @return int The message id of the generated like or "false" if there was an error */ - private function receive_like($importer, $sender, $data) { + private static function receive_like($importer, $sender, $data) { $positive = notags(unxmlify($data->positive)); $guid = notags(unxmlify($data->guid)); $parent_type = notags(unxmlify($data->parent_type)); @@ -1537,7 +1636,7 @@ class diaspora { * * @return bool Success? */ - private function receive_message($importer, $data) { + private static function receive_message($importer, $data) { $guid = notags(unxmlify($data->guid)); $parent_guid = notags(unxmlify($data->parent_guid)); $text = unxmlify($data->text); @@ -1546,8 +1645,9 @@ class diaspora { $conversation_guid = notags(unxmlify($data->conversation_guid)); $contact = self::allowed_contact_by_handle($importer, $author, true); - if (!$contact) + if (!$contact) { return false; + } $conversation = null; @@ -1555,16 +1655,13 @@ class diaspora { intval($importer["uid"]), dbesc($conversation_guid) ); - if($c) + if ($c) { $conversation = $c[0]; - else { + } else { logger("conversation not available."); return false; } - $reply = 0; - - $body = diaspora2bb($text); $message_uri = $author.":".$guid; $person = self::person_by_handle($author); @@ -1577,11 +1674,15 @@ class diaspora { dbesc($message_uri), intval($importer["uid"]) ); - if($r) { + if (dbm::is_result($r)) { logger("duplicate message already delivered.", LOGGER_DEBUG); return false; } + $body = diaspora2bb($text); + + $body = self::replace_people_guid($body, $person["url"]); + q("INSERT INTO `mail` (`uid`, `guid`, `convid`, `from-name`,`from-photo`,`from-url`,`contact-id`,`title`,`body`,`seen`,`reply`,`uri`,`parent-uri`,`created`) VALUES ( %d, '%s', %d, '%s', '%s', '%s', %d, '%s', '%s', %d, %d, '%s','%s','%s')", intval($importer["uid"]), @@ -1616,7 +1717,7 @@ class diaspora { * * @return bool always true */ - private function receive_participation($importer, $data) { + private static function receive_participation($importer, $data) { // I'm not sure if we can fully support this message type return true; } @@ -1629,7 +1730,7 @@ class diaspora { * * @return bool always true */ - private function receive_photo($importer, $data) { + private static function receive_photo($importer, $data) { // There doesn't seem to be a reason for this function, since the photo data is transmitted in the status message as well return true; } @@ -1642,7 +1743,7 @@ class diaspora { * * @return bool always true */ - private function receive_poll_participation($importer, $data) { + private static function receive_poll_participation($importer, $data) { // We don't support polls by now return true; } @@ -1655,7 +1756,7 @@ class diaspora { * * @return bool Success */ - private function receive_profile($importer, $data) { + private static function receive_profile($importer, $data) { $author = strtolower(notags(unxmlify($data->author))); $contact = self::contact_by_handle($importer["uid"], $author); @@ -1746,7 +1847,7 @@ class diaspora { * @param array $importer Array of the importer user * @param array $contact The contact that send the request */ - private function receive_request_make_friend($importer, $contact) { + private static function receive_request_make_friend($importer, $contact) { $a = get_app(); @@ -1815,18 +1916,18 @@ class diaspora { * * @return string The XML */ - private function construct_new_friend_object($contact) { - $objtype = ACTIVITY_OBJ_PERSON; - $link = ''."\n". - ''."\n"; + private static function construct_new_friend_object($contact) { + $objtype = ACTIVITY_OBJ_PERSON; + $link = ''."\n". + ''."\n"; - $xmldata = array("object" => array("type" => $objtype, - "title" => $contact["name"], - "id" => $contact["url"]."/".$contact["name"], - "link" => $link)); + $xmldata = array("object" => array("type" => $objtype, + "title" => $contact["name"], + "id" => $contact["url"]."/".$contact["name"], + "link" => $link)); - return xml::from_array($xmldata, $xml, true); - } + return xml::from_array($xmldata, $xml, true); + } /** * @brief Processes incoming sharing notification @@ -1836,24 +1937,27 @@ class diaspora { * * @return bool Success */ - private function receive_contact_request($importer, $data) { + private static function receive_contact_request($importer, $data) { $author = unxmlify($data->author); $recipient = unxmlify($data->recipient); - if (!$author || !$recipient) + if (!$author || !$recipient) { return false; + } // the current protocol version doesn't know these fields // That means that we will assume their existance - if (isset($data->following)) + if (isset($data->following)) { $following = (unxmlify($data->following) == "true"); - else + } else { $following = true; + } - if (isset($data->sharing)) + if (isset($data->sharing)) { $sharing = (unxmlify($data->sharing) == "true"); - else + } else { $sharing = true; + } $contact = self::contact_by_handle($importer["uid"],$author); @@ -1871,7 +1975,7 @@ class diaspora { // Normally we needn't to do so, but the first message could have been vanished. if (in_array($contact["rel"], array(CONTACT_IS_FRIEND, CONTACT_IS_FOLLOWER))) { $u = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1", intval($importer["uid"])); - if($u) { + if ($u) { logger("Sending share message to author ".$author." - Contact: ".$contact["id"]." - User: ".$importer["uid"], LOGGER_DEBUG); $ret = self::send_share($u[0], $contact); } @@ -2014,7 +2118,7 @@ class diaspora { * * @return array The fetched item */ - private function original_item($guid, $orig_author, $author) { + private static function original_item($guid, $orig_author, $author) { // Do we already have this item? $r = q("SELECT `body`, `tag`, `app`, `created`, `object-type`, `uri`, `guid`, @@ -2022,26 +2126,29 @@ class diaspora { FROM `item` WHERE `guid` = '%s' AND `visible` AND NOT `deleted` AND `body` != '' LIMIT 1", dbesc($guid)); - if($r) { + if (dbm::is_result($r)) { logger("reshared message ".$guid." already exists on system."); // Maybe it is already a reshared item? // Then refetch the content, if it is a reshare from a reshare. // If it is a reshared post from another network then reformat to avoid display problems with two share elements - if (self::is_reshare($r[0]["body"], true)) + if (self::is_reshare($r[0]["body"], true)) { $r = array(); - elseif (self::is_reshare($r[0]["body"], false)) { + } elseif (self::is_reshare($r[0]["body"], false)) { $r[0]["body"] = diaspora2bb(bb2diaspora($r[0]["body"])); + $r[0]["body"] = self::replace_people_guid($r[0]["body"], $r[0]["author-link"]); + // Add OEmbed and other information to the body $r[0]["body"] = add_page_info_to_body($r[0]["body"], false, true); return $r[0]; - } else + } else { return $r[0]; + } } - if (!$r) { + if (!dbm::is_result($r)) { $server = "https://".substr($orig_author, strpos($orig_author, "@") + 1); logger("1st try: reshared message ".$guid." will be fetched via SSL from the server ".$server); $item_id = self::store_by_guid($guid, $server); @@ -2058,10 +2165,12 @@ class diaspora { FROM `item` WHERE `id` = %d AND `visible` AND NOT `deleted` AND `body` != '' LIMIT 1", intval($item_id)); - if ($r) { + if (dbm::is_result($r)) { // If it is a reshared post from another network then reformat to avoid display problems with two share elements - if (self::is_reshare($r[0]["body"], false)) + if (self::is_reshare($r[0]["body"], false)) { $r[0]["body"] = diaspora2bb(bb2diaspora($r[0]["body"])); + $r[0]["body"] = self::replace_people_guid($r[0]["body"], $r[0]["author-link"]); + } return $r[0]; } @@ -2080,7 +2189,7 @@ class diaspora { * * @return int the message id */ - private function receive_reshare($importer, $data, $xml) { + private static function receive_reshare($importer, $data, $xml) { $root_author = notags(unxmlify($data->root_author)); $root_guid = notags(unxmlify($data->root_guid)); $guid = notags(unxmlify($data->guid)); @@ -2089,16 +2198,19 @@ class diaspora { $created_at = datetime_convert("UTC", "UTC", notags(unxmlify($data->created_at))); $contact = self::allowed_contact_by_handle($importer, $author, false); - if (!$contact) + if (!$contact) { return false; + } $message_id = self::message_exists($importer["uid"], $guid); - if ($message_id) + if ($message_id) { return $message_id; + } $original_item = self::original_item($root_guid, $root_author, $author); - if (!$original_item) + if (!$original_item) { return false; + } $orig_url = App::get_baseurl()."/display/".$original_item["guid"]; @@ -2140,8 +2252,9 @@ class diaspora { self::fetch_guid($datarray); $message_id = item_store($datarray); - if ($message_id) + if ($message_id) { logger("Stored reshare ".$datarray["guid"]." with message id ".$message_id, LOGGER_DEBUG); + } return $message_id; } @@ -2155,7 +2268,7 @@ class diaspora { * * @return bool success */ - private function item_retraction($importer, $contact, $data) { + private static function item_retraction($importer, $contact, $data) { $target_type = notags(unxmlify($data->target_type)); $target_guid = notags(unxmlify($data->target_guid)); $author = notags(unxmlify($data->author)); @@ -2211,7 +2324,7 @@ class diaspora { * * @return bool Success */ - private function receive_retraction($importer, $sender, $data) { + private static function receive_retraction($importer, $sender, $data) { $target_type = notags(unxmlify($data->target_type)); $contact = self::contact_by_handle($importer["uid"], $sender); @@ -2253,7 +2366,7 @@ class diaspora { * * @return int The message id of the newly created item */ - private function receive_status_message($importer, $data, $xml) { + private static function receive_status_message($importer, $data, $xml) { $raw_message = unxmlify($data->raw_message); $guid = notags(unxmlify($data->guid)); $author = notags(unxmlify($data->author)); @@ -2268,17 +2381,21 @@ class diaspora { // die("poll!\n"); //} $contact = self::allowed_contact_by_handle($importer, $author, false); - if (!$contact) + if (!$contact) { return false; + } $message_id = self::message_exists($importer["uid"], $guid); - if ($message_id) + if ($message_id) { return $message_id; + } $address = array(); - if ($data->location) - foreach ($data->location->children() AS $fieldname => $data) + if ($data->location) { + foreach ($data->location->children() AS $fieldname => $data) { $address[$fieldname] = notags(unxmlify($data)); + } + } $body = diaspora2bb($raw_message); @@ -2286,17 +2403,19 @@ class diaspora { // Attach embedded pictures to the body if ($data->photo) { - foreach ($data->photo AS $photo) + foreach ($data->photo AS $photo) { $body = "[img]".unxmlify($photo->remote_photo_path). unxmlify($photo->remote_photo_name)."[/img]\n".$body; + } $datarray["object-type"] = ACTIVITY_OBJ_IMAGE; } else { $datarray["object-type"] = ACTIVITY_OBJ_NOTE; // Add OEmbed and other information to the body - if (!self::is_redmatrix($contact["url"])) + if (!self::is_redmatrix($contact["url"])) { $body = add_page_info_to_body($body, false, true); + } } $datarray["uid"] = $importer["uid"]; @@ -2319,26 +2438,30 @@ class diaspora { $datarray["object"] = $xml; - $datarray["body"] = $body; + $datarray["body"] = self::replace_people_guid($body, $contact["url"]); - if ($provider_display_name != "") + if ($provider_display_name != "") { $datarray["app"] = $provider_display_name; + } $datarray["plink"] = self::plink($author, $guid); $datarray["private"] = (($public == "false") ? 1 : 0); $datarray["changed"] = $datarray["created"] = $datarray["edited"] = $created_at; - if (isset($address["address"])) + if (isset($address["address"])) { $datarray["location"] = $address["address"]; + } - if (isset($address["lat"]) AND isset($address["lng"])) + if (isset($address["lat"]) AND isset($address["lng"])) { $datarray["coord"] = $address["lat"]." ".$address["lng"]; + } self::fetch_guid($datarray); $message_id = item_store($datarray); - if ($message_id) + if ($message_id) { logger("Stored item ".$datarray["guid"]." with message id ".$message_id, LOGGER_DEBUG); + } return $message_id; } @@ -2354,7 +2477,7 @@ class diaspora { * * @return string the handle in the format user@domain.tld */ - private function my_handle($contact) { + private static function my_handle($contact) { if ($contact["addr"] != "") return $contact["addr"]; @@ -2382,7 +2505,7 @@ class diaspora { $b64url_data = base64url_encode($msg); $data = str_replace(array("\n", "\r", " ", "\t"), array("", "", "", ""), $b64url_data); - $key_id = base64url_encode(diaspora::my_handle($user)); + $key_id = base64url_encode(self::my_handle($user)); $type = "application/xml"; $encoding = "base64url"; $alg = "RSA-SHA256"; @@ -2413,7 +2536,7 @@ class diaspora { * * @return string The envelope */ - private function build_public_message($msg, $user, $contact, $prvkey, $pubkey) { + private static function build_public_message($msg, $user, $contact, $prvkey, $pubkey) { logger("Message: ".$msg, LOGGER_DATA); @@ -2459,7 +2582,7 @@ class diaspora { * * @return string The envelope */ - private function build_private_message($msg, $user, $contact, $prvkey, $pubkey) { + private static function build_private_message($msg, $user, $contact, $prvkey, $pubkey) { logger("Message: ".$msg, LOGGER_DATA); @@ -2550,7 +2673,7 @@ class diaspora { * * @return string The message that will be transmitted to other servers */ - private function build_message($msg, $user, $contact, $prvkey, $pubkey, $public = false) { + private static function build_message($msg, $user, $contact, $prvkey, $pubkey, $public = false) { if ($public) $magic_env = self::build_public_message($msg,$user,$contact,$prvkey,$pubkey); @@ -2570,7 +2693,7 @@ class diaspora { * * @return string The signature */ - private function signature($owner, $message) { + private static function signature($owner, $message) { $sigmsg = $message; unset($sigmsg["author_signature"]); unset($sigmsg["parent_author_signature"]); @@ -2623,7 +2746,7 @@ class diaspora { logger("transmit: ".$logid."-".$guid." returns: ".$return_code); - if(!$return_code || (($return_code == 503) && (stristr($a->get_curl_headers(), "retry-after")))) { + if (!$return_code || (($return_code == 503) && (stristr($a->get_curl_headers(), "retry-after")))) { logger("queue message"); $r = q("SELECT `id` FROM `queue` WHERE `cid` = %d AND `network` = '%s' AND `content` = '%s' AND `batch` = %d LIMIT 1", @@ -2632,7 +2755,7 @@ class diaspora { dbesc($slap), intval($public_batch) ); - if($r) { + if ($r) { logger("add_to_queue ignored - identical item already in queue"); } else { // queue message for redelivery @@ -2677,7 +2800,7 @@ class diaspora { * * @return int Result of the transmission */ - private function build_and_transmit($owner, $contact, $type, $message, $public_batch = false, $guid = "", $spool = false) { + private static function build_and_transmit($owner, $contact, $type, $message, $public_batch = false, $guid = "", $spool = false) { $msg = self::build_post_xml($type, $message); @@ -2818,6 +2941,80 @@ class diaspora { return($ret); } + /** + * @brief Create an event array + * + * @param integer $event_id The id of the event + * + * @return array with event data + */ + private static function build_event($event_id) { + + $r = q("SELECT `guid`, `uid`, `start`, `finish`, `nofinish`, `summary`, `desc`, `location`, `adjust` FROM `event` WHERE `id` = %d", intval($event_id)); + if (!dbm::is_result($r)) { + return array(); + } + + $event = $r[0]; + + $eventdata = array(); + + $r = q("SELECT `timezone` FROM `user` WHERE `uid` = %d", intval($event['uid'])); + if (!dbm::is_result($r)) { + return array(); + } + + $user = $r[0]; + + $r = q("SELECT `addr`, `nick` FROM `contact` WHERE `uid` = %d AND `self`", intval($event['uid'])); + if (!dbm::is_result($r)) { + return array(); + } + + $owner = $r[0]; + + $eventdata['author'] = self::my_handle($owner); + + if ($event['guid']) { + $eventdata['guid'] = $event['guid']; + } + + $mask = 'Y-m-d\TH:i:s\Z'; + + /// @todo - establish "all day" events in Friendica + $eventdata["all_day"] = "false"; + + if (!$event['adjust']) { + $eventdata['timezone'] = $user['timezone']; + + if ($eventdata['timezone'] == "") { + $eventdata['timezone'] = 'UTC'; + } + } + + if ($event['start']) { + $eventdata['start'] = datetime_convert($eventdata['timezone'], "UTC", $event['start'], $mask); + } + if ($event['finish'] AND !$event['nofinish']) { + $eventdata['end'] = datetime_convert($eventdata['timezone'], "UTC", $event['finish'], $mask); + } + if ($event['summary']) { + $eventdata['summary'] = html_entity_decode(bb2diaspora($event['summary'])); + } + if ($event['desc']) { + $eventdata['description'] = html_entity_decode(bb2diaspora($event['desc'])); + } + if ($event['location']) { + $location = array(); + $location["address"] = html_entity_decode(bb2diaspora($event['location'])); + $location["lat"] = 0; + $location["lng"] = 0; + $eventdata['location'] = $location; + } + + return $eventdata; + } + /** * @brief Create a post (status message or reshare) * @@ -2830,11 +3027,18 @@ class diaspora { */ public static function build_status($item, $owner) { + $cachekey = "diaspora:build_status:".$item['guid']; + + $result = Cache::get($cachekey); + if (!is_null($result)) { + return $result; + } + $myaddr = self::my_handle($owner); $public = (($item["private"]) ? "false" : "true"); - $created = datetime_convert("UTC", "UTC", $item["created"], 'Y-m-d H:i:s \U\T\C'); + $created = datetime_convert("UTC", "UTC", $item["created"], 'Y-m-d\TH:i:s\Z'); // Detect a share element and do a reshare if (!$item['private'] AND ($ret = self::is_reshare($item["body"]))) { @@ -2891,9 +3095,24 @@ class diaspora { unset($message["location"]); } + if ($item['event-id'] > 0) { + $event = self::build_event($item['event-id']); + if (count($event)) { + $message['event'] = $event; + + /// @todo Once Diaspora supports it, we will remove the body + // $message['raw_message'] = ''; + } + } + $type = "status_message"; } - return array("type" => $type, "message" => $message); + + $msg = array("type" => $type, "message" => $message); + + Cache::set($cachekey, $msg, CACHE_QUARTER_HOUR); + + return $msg; } /** @@ -2908,7 +3127,7 @@ class diaspora { */ public static function send_status($item, $owner, $contact, $public_batch = false) { - $status = diaspora::build_status($item, $owner); + $status = self::build_status($item, $owner); return self::build_and_transmit($owner, $contact, $status["type"], $status["message"], $public_batch, $item["guid"]); } @@ -2921,7 +3140,7 @@ class diaspora { * * @return array The data for a "like" */ - private function construct_like($item, $owner) { + private static function construct_like($item, $owner) { $p = q("SELECT `guid`, `uri`, `parent-uri` FROM `item` WHERE `uri` = '%s' LIMIT 1", dbesc($item["thr-parent"])); @@ -2931,7 +3150,11 @@ class diaspora { $parent = $p[0]; $target_type = ($parent["uri"] === $parent["parent-uri"] ? "Post" : "Comment"); - $positive = "true"; + if ($item['verb'] === ACTIVITY_LIKE) { + $positive = "true"; + } elseif ($item['verb'] === ACTIVITY_DISLIKE) { + $positive = "false"; + } return(array("positive" => $positive, "guid" => $item["guid"], @@ -2941,6 +3164,45 @@ class diaspora { "diaspora_handle" => self::my_handle($owner))); } + /** + * @brief Creates an "EventParticipation" object + * + * @param array $item The item that will be exported + * @param array $owner the array of the item owner + * + * @return array The data for an "EventParticipation" + */ + private static function construct_attend($item, $owner) { + + $p = q("SELECT `guid`, `uri`, `parent-uri` FROM `item` WHERE `uri` = '%s' LIMIT 1", + dbesc($item["thr-parent"])); + if (!dbm::is_result($p)) + return false; + + $parent = $p[0]; + + switch ($item['verb']) { + case ACTIVITY_ATTEND: + $attend_answer = 'accepted'; + break; + case ACTIVITY_ATTENDNO: + $attend_answer = 'declined'; + break; + case ACTIVITY_ATTENDMAYBE: + $attend_answer = 'tentative'; + break; + default: + logger('Unknown verb '.$item['verb'].' in item '.$item['guid']); + return false; + } + + return(array("author" => self::my_handle($owner), + "guid" => $item["guid"], + "parent_guid" => $parent["guid"], + "status" => $attend_answer, + "author_signature" => "")); + } + /** * @brief Creates the object for a comment * @@ -2949,7 +3211,14 @@ class diaspora { * * @return array The data for a comment */ - private function construct_comment($item, $owner) { + private static function construct_comment($item, $owner) { + + $cachekey = "diaspora:construct_comment:".$item['guid']; + + $result = Cache::get($cachekey); + if (!is_null($result)) { + return $result; + } $p = q("SELECT `guid` FROM `item` WHERE `parent` = %d AND `id` = %d LIMIT 1", intval($item["parent"]), @@ -2962,12 +3231,23 @@ class diaspora { $parent = $p[0]; $text = html_entity_decode(bb2diaspora($item["body"])); + $created = datetime_convert("UTC", "UTC", $item["created"], 'Y-m-d\TH:i:s\Z'); - return(array("guid" => $item["guid"], + $comment = array("guid" => $item["guid"], "parent_guid" => $parent["guid"], "author_signature" => "", "text" => $text, - "diaspora_handle" => self::my_handle($owner))); + /// @todo Currently disabled until Diaspora supports it: "created_at" => $created, + "diaspora_handle" => self::my_handle($owner)); + + // Send the thread parent guid only if it is a threaded comment + if ($item['thr-parent'] != $item['parent-uri']) { + $comment['thread_parent_guid'] = self::get_guid_from_uri($item['thr-parent'], $item['uid']); + } + + Cache::set($cachekey, $comment, CACHE_QUARTER_HOUR); + + return($comment); } /** @@ -2982,7 +3262,10 @@ class diaspora { */ public static function send_followup($item,$owner,$contact,$public_batch = false) { - if($item['verb'] === ACTIVITY_LIKE) { + if (in_array($item['verb'], array(ACTIVITY_ATTEND, ACTIVITY_ATTENDNO, ACTIVITY_ATTENDMAYBE))) { + $message = self::construct_attend($item, $owner); + $type = "event_participation"; + } elseif (in_array($item["verb"], array(ACTIVITY_LIKE, ACTIVITY_DISLIKE))) { $message = self::construct_like($item, $owner); $type = "like"; } else { @@ -3006,7 +3289,7 @@ class diaspora { * * @return string The message */ - private function message_from_signature($item, $signature) { + private static function message_from_signature($item, $signature) { // Split the signed text $signed_parts = explode(";", $signature['signed_text']); @@ -3179,13 +3462,13 @@ class diaspora { $conv = array( "guid" => $cnv["guid"], "subject" => $cnv["subject"], - "created_at" => datetime_convert("UTC", "UTC", $cnv['created'], 'Y-m-d H:i:s \U\T\C'), + "created_at" => datetime_convert("UTC", "UTC", $cnv['created'], 'Y-m-d\TH:i:s\Z'), "diaspora_handle" => $cnv["creator"], "participant_handles" => $cnv["recips"] ); $body = bb2diaspora($item["body"]); - $created = datetime_convert("UTC", "UTC", $item["created"], 'Y-m-d H:i:s \U\T\C'); + $created = datetime_convert("UTC", "UTC", $item["created"], 'Y-m-d\TH:i:s\Z'); $signed_text = $item["guid"].";".$cnv["guid"].";".$body.";".$created.";".$myaddr.";".$cnv['guid']; $sig = base64_encode(rsa_sign($signed_text, $owner["uprvkey"], "sha256")); @@ -3207,7 +3490,7 @@ class diaspora { } else { $message = array("guid" => $cnv["guid"], "subject" => $cnv["subject"], - "created_at" => datetime_convert("UTC", "UTC", $cnv['created'], 'Y-m-d H:i:s \U\T\C'), + "created_at" => datetime_convert("UTC", "UTC", $cnv['created'], 'Y-m-d\TH:i:s\Z'), "message" => $msg, "diaspora_handle" => $cnv["creator"], "participant_handles" => $cnv["recips"]); @@ -3336,26 +3619,13 @@ class diaspora { $message = self::construct_like($r[0], $contact); $message["author_signature"] = self::signature($contact, $message); - // In the future we will store the signature more flexible to support new fields. - // Right now we cannot change this since old Friendica versions (prior to 3.5) can only handle this format. - // (We are transmitting this data here via DFRN) - - $signed_text = $message["positive"].";".$message["guid"].";".$message["target_type"].";". - $message["parent_guid"].";".$message["diaspora_handle"]; - - q("INSERT INTO `sign` (`iid`,`signed_text`,`signature`,`signer`) VALUES (%d,'%s','%s','%s')", - intval($post_id), - dbesc($signed_text), - dbesc($message["author_signature"]), - dbesc($message["diaspora_handle"]) + // We now store the signature more flexible to dynamically support new fields. + // This will break Diaspora compatibility with Friendica versions prior to 3.5. + q("INSERT INTO `sign` (`iid`,`signed_text`) VALUES (%d,'%s')", + intval($message_id), + dbesc(json_encode($message)) ); - // This here will replace the lines above, once Diaspora changed its protocol - //q("INSERT INTO `sign` (`iid`,`signed_text`) VALUES (%d,'%s')", - // intval($message_id), - // dbesc(json_encode($message)) - //); - logger('Stored diaspora like signature'); return true; } @@ -3382,25 +3652,13 @@ class diaspora { $message = self::construct_comment($item, $contact); $message["author_signature"] = self::signature($contact, $message); - // In the future we will store the signature more flexible to support new fields. - // Right now we cannot change this since old Friendica versions (prior to 3.5) can only handle this format. - // (We are transmitting this data here via DFRN) - $signed_text = $message["guid"].";".$message["parent_guid"].";". - $message["text"].";".$message["diaspora_handle"]; - - q("INSERT INTO `sign` (`iid`,`signed_text`,`signature`,`signer`) VALUES (%d,'%s','%s','%s')", + // We now store the signature more flexible to dynamically support new fields. + // This will break Diaspora compatibility with Friendica versions prior to 3.5. + q("INSERT INTO `sign` (`iid`,`signed_text`) VALUES (%d,'%s')", intval($message_id), - dbesc($signed_text), - dbesc($message["author_signature"]), - dbesc($message["diaspora_handle"]) + dbesc(json_encode($message)) ); - // This here will replace the lines above, once Diaspora changed its protocol - //q("INSERT INTO `sign` (`iid`,`signed_text`) VALUES (%d,'%s')", - // intval($message_id), - // dbesc(json_encode($message)) - //); - logger('Stored diaspora comment signature'); return true; } diff --git a/include/email.php b/include/email.php index 2c05d3233f..42f80c2427 100644 --- a/include/email.php +++ b/include/email.php @@ -96,15 +96,20 @@ function email_get_msg($mbox,$uid, $reply) { $html = ''; foreach($struc->parts as $ptop => $p) { $x = email_get_part($mbox,$uid,$p,$ptop + 1, 'plain'); - if($x) $text .= $x; + if ($x) { + $text .= $x; + } $x = email_get_part($mbox,$uid,$p,$ptop + 1, 'html'); - if($x) $html .= $x; + if ($x) { + $html .= $x; + } } - if (trim($html) != '') + if (trim($html) != '') { $ret['body'] = html2bbcode($html); - else + } else { $ret['body'] = $text; + } } $ret['body'] = removegpg($ret['body']); @@ -112,8 +117,9 @@ function email_get_msg($mbox,$uid, $reply) { $ret['body'] = $msg['body']; $ret['body'] = convertquote($ret['body'], $reply); - if (trim($html) != '') + if (trim($html) != '') { $ret['body'] = removelinebreak($ret['body']); + } $ret['body'] = unifyattributionline($ret['body']); @@ -189,8 +195,9 @@ function email_get_part($mbox,$uid,$p,$partno, $subtype) { $x = ""; foreach ($p->parts as $partno0=>$p2) { $x .= email_get_part($mbox,$uid,$p2,$partno . '.' . ($partno0+1), $subtype); // 1.2, 1.2.1, etc. - //if($x) + //if ($x) { // return $x; + //} } return $x; } diff --git a/include/enotify.php b/include/enotify.php index c6e0506e96..aa29e117a6 100644 --- a/include/enotify.php +++ b/include/enotify.php @@ -23,7 +23,7 @@ function notification($params) { $banner = t('Friendica Notification'); $product = FRIENDICA_PLATFORM; - $siteurl = $a->get_baseurl(true); + $siteurl = App::get_baseurl(true); $thanks = t('Thank You,'); $sitename = $a->config['sitename']; if (!x($a->config['admin_name'])) @@ -58,7 +58,7 @@ function notification($params) { $additional_mail_header .= "X-Friendica-Platform: ".FRIENDICA_PLATFORM."\n"; $additional_mail_header .= "X-Friendica-Version: ".FRIENDICA_VERSION."\n"; $additional_mail_header .= "List-ID: \n"; - $additional_mail_header .= "List-Archive: <".$a->get_baseurl()."/notifications/system>\n"; + $additional_mail_header .= "List-Archive: <".App::get_baseurl()."/notifications/system>\n"; if (array_key_exists('item', $params)) { $title = $params['item']['title']; @@ -494,7 +494,7 @@ function notification($params) { } - $itemlink = $a->get_baseurl().'/notify/view/'.$notify_id; + $itemlink = App::get_baseurl().'/notify/view/'.$notify_id; $msg = replace_macros($epreamble, array('$itemlink' => $itemlink)); $msg_cache = format_notification_message($datarray['name_cache'], strip_tags(bbcode($msg))); $r = q("UPDATE `notify` SET `msg` = '%s', `msg_cache` = '%s' WHERE `id` = %d AND `uid` = %d", @@ -648,8 +648,6 @@ function notification($params) { * @param str $defaulttype (Optional) Forces a notification with this type. */ function check_item_notification($itemid, $uid, $defaulttype = "") { - $a = get_app(); - $notification_data = array("uid" => $uid, "profiles" => array()); call_hooks('check_item_notification', $notification_data); @@ -667,7 +665,7 @@ function check_item_notification($itemid, $uid, $defaulttype = "") { $profiles[] = $owner[0]["url"]; // Notifications from Diaspora are often with an URL in the Diaspora format - $profiles[] = $a->get_baseurl()."/u/".$user[0]["nickname"]; + $profiles[] = App::get_baseurl()."/u/".$user[0]["nickname"]; $profiles2 = array(); diff --git a/include/event.php b/include/event.php index 3a41dad4e7..791c331bbb 100644 --- a/include/event.php +++ b/include/event.php @@ -246,6 +246,7 @@ function event_store($arr) { $arr['cid'] = ((intval($arr['cid'])) ? intval($arr['cid']) : 0); $arr['uri'] = (x($arr,'uri') ? $arr['uri'] : item_new_uri($a->get_hostname(),$arr['uid'])); $arr['private'] = ((x($arr,'private')) ? intval($arr['private']) : 0); + $arr['guid'] = get_guid(32); if($arr['cid']) $c = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1", @@ -333,16 +334,16 @@ function event_store($arr) { call_hooks("event_updated", $arr['id']); return $item_id; - } - else { + } else { // New event. Store it. - $r = q("INSERT INTO `event` ( `uid`,`cid`,`uri`,`created`,`edited`,`start`,`finish`,`summary`, `desc`,`location`,`type`, + $r = q("INSERT INTO `event` (`uid`,`cid`,`guid`,`uri`,`created`,`edited`,`start`,`finish`,`summary`, `desc`,`location`,`type`, `adjust`,`nofinish`,`allow_cid`,`allow_gid`,`deny_cid`,`deny_gid`) - VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', '%s', '%s' ) ", + VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', '%s', '%s' ) ", intval($arr['uid']), intval($arr['cid']), + dbesc($arr['guid']), dbesc($arr['uri']), dbesc($arr['created']), dbesc($arr['edited']), @@ -408,7 +409,7 @@ function event_store($arr) { intval($arr['uid']) ); //if (dbm::is_result($r)) - // $plink = $a->get_baseurl() . '/display/' . $r[0]['nickname'] . '/' . $item_id; + // $plink = App::get_baseurl() . '/display/' . $r[0]['nickname'] . '/' . $item_id; if($item_id) { diff --git a/include/expire.php b/include/expire.php index eca2b1c42a..e3313a78be 100644 --- a/include/expire.php +++ b/include/expire.php @@ -40,7 +40,7 @@ function expire_run(&$argv, &$argc){ $r = q("SELECT `uid`,`username`,`expire` FROM `user` WHERE `expire` != 0"); if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { logger('Expire: ' . $rr['username'] . ' interval: ' . $rr['expire'], LOGGER_DEBUG); item_expire($rr['uid'],$rr['expire']); } diff --git a/include/follow.php b/include/follow.php index 7a3514b3a7..e7693822ab 100644 --- a/include/follow.php +++ b/include/follow.php @@ -77,12 +77,12 @@ function new_contact($uid,$url,$interactive = false) { $url = str_replace('/#!/','/',$url); - if(! allowed_url($url)) { + if (! allowed_url($url)) { $result['message'] = t('Disallowed profile URL.'); return $result; } - if(! $url) { + if (! $url) { $result['message'] = t('Connect URL missing.'); return $result; } @@ -91,17 +91,21 @@ function new_contact($uid,$url,$interactive = false) { call_hooks('follow', $arr); - if(x($arr['contact'],'name')) + if (x($arr['contact'],'name')) { $ret = $arr['contact']; - else + } + else { $ret = probe_url($url); + } - if($ret['network'] === NETWORK_DFRN) { - if($interactive) { - if(strlen($a->path)) - $myaddr = bin2hex($a->get_baseurl() . '/profile/' . $a->user['nickname']); - else + if ($ret['network'] === NETWORK_DFRN) { + if ($interactive) { + if (strlen($a->path)) { + $myaddr = bin2hex(App::get_baseurl() . '/profile/' . $a->user['nickname']); + } + else { $myaddr = bin2hex($a->user['nickname'] . '@' . $a->get_hostname()); + } goaway($ret['request'] . "&addr=$myaddr"); @@ -254,7 +258,7 @@ function new_contact($uid,$url,$interactive = false) { intval($uid) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { $result['message'] .= t('Unable to retrieve contact information.') . EOL; return $result; } @@ -289,8 +293,9 @@ function new_contact($uid,$url,$interactive = false) { $slap = ostatus::salmon($item, $r[0]); slapper($r[0], $contact['notify'], $slap); } + if ($contact['network'] == NETWORK_DIASPORA) { - $ret = diaspora::send_share($a->user,$contact); + $ret = Diaspora::send_share($a->user,$contact); logger('share returns: '.$ret); } } diff --git a/include/group.php b/include/group.php index 2c90330686..6332c45da2 100644 --- a/include/group.php +++ b/include/group.php @@ -53,7 +53,7 @@ function group_rmv($uid,$name) { $r = q("SELECT def_gid, allow_gid, deny_gid FROM user WHERE uid = %d LIMIT 1", intval($uid) ); - if($r) { + if ($r) { $user_info = $r[0]; $change = false; @@ -143,13 +143,14 @@ function group_add_member($uid,$name,$member,$gid = 0) { return true; // You might question this, but // we indicate success because the group member was in fact created // -- It was just created at another time - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { $r = q("INSERT INTO `group_member` (`uid`, `gid`, `contact-id`) VALUES( %d, %d, %d ) ", intval($uid), intval($gid), intval($member) - ); + ); + } return $r; } @@ -198,7 +199,7 @@ function mini_group_select($uid,$gid = 0, $label = "") { ); $grps[] = array('name' => '', 'id' => '0', 'selected' => ''); if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { $grps[] = array('name' => $rr['name'], 'id' => $rr['id'], 'selected' => (($gid == $rr['id']) ? 'true' : '')); } @@ -233,7 +234,7 @@ function group_side($every="contacts",$each="group",$editmode = "standard", $gro $o = ''; - if(! local_user()) + if (! local_user()) return ''; $groups = array(); @@ -256,7 +257,7 @@ function group_side($every="contacts",$each="group",$editmode = "standard", $gro } if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { $selected = (($group_id == $rr['id']) ? ' group-selected' : ''); if ($editmode == "full") { diff --git a/include/identity.php b/include/identity.php index bf05a00516..70ff7f00ac 100644 --- a/include/identity.php +++ b/include/identity.php @@ -229,13 +229,16 @@ function profile_sidebar($profile, $block = 0) { // Is the local user already connected to that user? if ($connect AND local_user()) { - if (isset($profile["url"])) + if (isset($profile["url"])) { $profile_url = normalise_link($profile["url"]); - else - $profile_url = normalise_link($a->get_baseurl()."/profile/".$profile["nickname"]); + } + else { + $profile_url = normalise_link(App::get_baseurl()."/profile/".$profile["nickname"]); + } $r = q("SELECT * FROM `contact` WHERE NOT `pending` AND `uid` = %d AND `nurl` = '%s'", local_user(), $profile_url); + if (dbm::is_result($r)) $connect = false; } @@ -279,7 +282,7 @@ function profile_sidebar($profile, $block = 0) { // show edit profile to yourself if ($profile['uid'] == local_user() && feature_enabled(local_user(),'multi_profiles')) { - $profile['edit'] = array($a->get_baseurl(). '/profiles', t('Profiles'),"", t('Manage/edit profiles')); + $profile['edit'] = array(App::get_baseurl(). '/profiles', t('Profiles'),"", t('Manage/edit profiles')); $r = q("SELECT * FROM `profile` WHERE `uid` = %d", local_user()); @@ -291,7 +294,7 @@ function profile_sidebar($profile, $block = 0) { if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { $profile['menu']['entries'][] = array( 'photo' => $rr['thumb'], 'id' => $rr['id'], @@ -308,7 +311,7 @@ function profile_sidebar($profile, $block = 0) { } } if ($profile['uid'] == local_user() && !feature_enabled(local_user(),'multi_profiles')) { - $profile['edit'] = array($a->get_baseurl(). '/profiles/'.$profile['id'], t('Edit profile'),"", t('Edit profile')); + $profile['edit'] = array(App::get_baseurl(). '/profiles/'.$profile['id'], t('Edit profile'),"", t('Edit profile')); $profile['menu'] = array( 'chg_photo' => t('Change profile photo'), 'cr_new' => null, @@ -349,15 +352,15 @@ function profile_sidebar($profile, $block = 0) { if ($profile['guid'] != "") $diaspora = array( 'guid' => $profile['guid'], - 'podloc' => $a->get_baseurl(), + 'podloc' => App::get_baseurl(), 'searchable' => (($profile['publish'] && $profile['net-publish']) ? 'true' : 'false' ), 'nickname' => $profile['nickname'], 'fullname' => $profile['name'], 'firstname' => $firstname, 'lastname' => $lastname, - 'photo300' => $a->get_baseurl() . '/photo/custom/300/' . $profile['uid'] . '.jpg', - 'photo100' => $a->get_baseurl() . '/photo/custom/100/' . $profile['uid'] . '.jpg', - 'photo50' => $a->get_baseurl() . '/photo/custom/50/' . $profile['uid'] . '.jpg', + 'photo300' => App::get_baseurl() . '/photo/custom/300/' . $profile['uid'] . '.jpg', + 'photo100' => App::get_baseurl() . '/photo/custom/100/' . $profile['uid'] . '.jpg', + 'photo50' => App::get_baseurl() . '/photo/custom/50/' . $profile['uid'] . '.jpg', ); else $diaspora = false; @@ -466,7 +469,7 @@ function get_birthdays() { $cids = array(); $istoday = false; - foreach($r as $rr) { + foreach ($r as $rr) { if(strlen($rr['name'])) $total ++; if((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now)) @@ -489,7 +492,7 @@ function get_birthdays() { $url = $rr['url']; if($rr['network'] === NETWORK_DFRN) { $sparkle = " sparkle"; - $url = $a->get_baseurl() . '/redir/' . $rr['cid']; + $url = App::get_baseurl() . '/redir/' . $rr['cid']; } $rr['link'] = $url; @@ -503,7 +506,7 @@ function get_birthdays() { } $tpl = get_markup_template("birthdays_reminder.tpl"); return replace_macros($tpl, array( - '$baseurl' => $a->get_baseurl(), + '$baseurl' => App::get_baseurl(), '$classtoday' => $classtoday, '$count' => $total, '$event_reminders' => t('Birthday Reminders'), @@ -546,7 +549,7 @@ function get_events() { if (dbm::is_result($r)) { $now = strtotime('now'); $istoday = false; - foreach($r as $rr) { + foreach ($r as $rr) { if(strlen($rr['name'])) $total ++; @@ -587,7 +590,7 @@ function get_events() { $tpl = get_markup_template("events_reminder.tpl"); return replace_macros($tpl, array( - '$baseurl' => $a->get_baseurl(), + '$baseurl' => App::get_baseurl(), '$classtoday' => $classtoday, '$count' => count($r) - $skip, '$event_reminders' => t('Event Reminders'), @@ -684,8 +687,9 @@ function advanced_profile(&$a) { $profile['forumlist'] = array( t('Forums:'), ForumManager::profile_advanced($uid)); } - if ($a->profile['uid'] == local_user()) - $profile['edit'] = array($a->get_baseurl(). '/profiles/'.$a->profile['id'], t('Edit profile'),"", t('Edit profile')); + if ($a->profile['uid'] == local_user()) { + $profile['edit'] = array(App::get_baseurl(). '/profiles/'.$a->profile['id'], t('Edit profile'),"", t('Edit profile')); + } return replace_macros($tpl, array( '$title' => t('Profile'), @@ -707,7 +711,7 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){ if(x($_GET,'tab')) $tab = notags(trim($_GET['tab'])); - $url = $a->get_baseurl() . '/profile/' . $nickname; + $url = App::get_baseurl() . '/profile/' . $nickname; $tabs = array( array( @@ -728,7 +732,7 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){ ), array( 'label' => t('Photos'), - 'url' => $a->get_baseurl() . '/photos/' . $nickname, + 'url' => App::get_baseurl() . '/photos/' . $nickname, 'sel' => ((!isset($tab)&&$a->argv[0]=='photos')?'active':''), 'title' => t('Photo Albums'), 'id' => 'photo-tab', @@ -736,7 +740,7 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){ ), array( 'label' => t('Videos'), - 'url' => $a->get_baseurl() . '/videos/' . $nickname, + 'url' => App::get_baseurl() . '/videos/' . $nickname, 'sel' => ((!isset($tab)&&$a->argv[0]=='videos')?'active':''), 'title' => t('Videos'), 'id' => 'video-tab', @@ -748,7 +752,7 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){ if ($is_owner && $a->theme_events_in_profile) { $tabs[] = array( 'label' => t('Events'), - 'url' => $a->get_baseurl() . '/events', + 'url' => App::get_baseurl() . '/events', 'sel' =>((!isset($tab)&&$a->argv[0]=='events')?'active':''), 'title' => t('Events and Calendar'), 'id' => 'events-tab', @@ -759,7 +763,7 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){ } elseif (! $is_owner) { $tabs[] = array( 'label' => t('Events'), - 'url' => $a->get_baseurl() . '/cal/' . $nickname, + 'url' => App::get_baseurl() . '/cal/' . $nickname, 'sel' =>((!isset($tab)&&$a->argv[0]=='cal')?'active':''), 'title' => t('Events and Calendar'), 'id' => 'events-tab', @@ -770,7 +774,7 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){ if ($is_owner){ $tabs[] = array( 'label' => t('Personal Notes'), - 'url' => $a->get_baseurl() . '/notes', + 'url' => App::get_baseurl() . '/notes', 'sel' =>((!isset($tab)&&$a->argv[0]=='notes')?'active':''), 'title' => t('Only You Can See This'), 'id' => 'notes-tab', @@ -781,7 +785,7 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){ if ((! $is_owner) && ((count($a->profile)) || (! $a->profile['hide-friends']))) { $tabs[] = array( 'label' => t('Contacts'), - 'url' => $a->get_baseurl() . '/viewcontacts/' . $nickname, + 'url' => App::get_baseurl() . '/viewcontacts/' . $nickname, 'sel' => ((!isset($tab)&&$a->argv[0]=='viewcontacts')?'active':''), 'title' => t('Contacts'), 'id' => 'viewcontacts-tab', diff --git a/include/items.php b/include/items.php index da9147fadd..10afc28c0e 100644 --- a/include/items.php +++ b/include/items.php @@ -208,13 +208,12 @@ function add_page_info_data($data) { $hashtags = ""; if (isset($data["keywords"]) AND count($data["keywords"])) { - $a = get_app(); $hashtags = "\n"; foreach ($data["keywords"] AS $keyword) { /// @todo make a positive list of allowed characters $hashtag = str_replace(array(" ", "+", "/", ".", "#", "'", "’", "`", "(", ")", "„", "“"), array("","", "", "", "", "", "", "", "", "", "", ""), $keyword); - $hashtags .= "#[url=".$a->get_baseurl()."/search?tag=".rawurlencode($hashtag)."]".$hashtag."[/url] "; + $hashtags .= "#[url=".App::get_baseurl()."/search?tag=".rawurlencode($hashtag)."]".$hashtag."[/url] "; } } @@ -251,7 +250,6 @@ function add_page_keywords($url, $no_photos = false, $photo = "", $keywords = fa $tags = ""; if (isset($data["keywords"]) AND count($data["keywords"])) { - $a = get_app(); foreach ($data["keywords"] AS $keyword) { $hashtag = str_replace(array(" ", "+", "/", ".", "#", "'"), array("","", "", "", "", ""), $keyword); @@ -259,7 +257,7 @@ function add_page_keywords($url, $no_photos = false, $photo = "", $keywords = fa if ($tags != "") $tags .= ","; - $tags .= "#[url=".$a->get_baseurl()."/search?tag=".rawurlencode($hashtag)."]".$hashtag."[/url]"; + $tags .= "#[url=".App::get_baseurl()."/search?tag=".rawurlencode($hashtag)."]".$hashtag."[/url]"; } } @@ -557,8 +555,7 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa logger("Both author-link and owner-link are empty. Called by: ".App::callstack(), LOGGER_DEBUG); if ($arr['plink'] == "") { - $a = get_app(); - $arr['plink'] = $a->get_baseurl().'/display/'.urlencode($arr['guid']); + $arr['plink'] = App::get_baseurl().'/display/'.urlencode($arr['guid']); } if ($arr['network'] == "") { @@ -709,7 +706,7 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa $u = q("SELECT `nickname` FROM `user` WHERE `uid` = %d", intval($arr['uid'])); if (count($u)) { $a = get_app(); - $self = normalise_link($a->get_baseurl() . '/profile/' . $u[0]['nickname']); + $self = normalise_link(App::get_baseurl() . '/profile/' . $u[0]['nickname']); logger("item_store: 'myself' is ".$self." for parent ".$parent_id." checking against ".$arr['author-link']." and ".$arr['owner-link'], LOGGER_DEBUG); if ((normalise_link($arr['author-link']) == $self) OR (normalise_link($arr['owner-link']) == $self)) { q("UPDATE `thread` SET `mention` = 1 WHERE `iid` = %d", intval($parent_id)); @@ -1068,10 +1065,10 @@ function item_body_set_hashtags(&$item) { // All hashtags should point to the home server //$item["body"] = preg_replace("/#\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", - // "#[url=".$a->get_baseurl()."/search?tag=$2]$2[/url]", $item["body"]); + // "#[url=".App::get_baseurl()."/search?tag=$2]$2[/url]", $item["body"]); //$item["tag"] = preg_replace("/#\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", - // "#[url=".$a->get_baseurl()."/search?tag=$2]$2[/url]", $item["tag"]); + // "#[url=".App::get_baseurl()."/search?tag=$2]$2[/url]", $item["tag"]); // mask hashtags inside of url, bookmarks and attachments to avoid urls in urls $item["body"] = preg_replace_callback("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", @@ -1103,7 +1100,7 @@ function item_body_set_hashtags(&$item) { $basetag = str_replace('_',' ',substr($tag,1)); - $newtag = '#[url='.$a->get_baseurl().'/search?tag='.rawurlencode($basetag).']'.$basetag.'[/url]'; + $newtag = '#[url='.App::get_baseurl().'/search?tag='.rawurlencode($basetag).']'.$basetag.'[/url]'; $item["body"] = str_replace($tag, $newtag, $item["body"]); @@ -1207,12 +1204,12 @@ function tag_deliver($uid,$item_id) { $item = $i[0]; - $link = normalise_link($a->get_baseurl() . '/profile/' . $u[0]['nickname']); + $link = normalise_link(App::get_baseurl() . '/profile/' . $u[0]['nickname']); // Diaspora uses their own hardwired link URL in @-tags // instead of the one we supply with webfinger - $dlink = normalise_link($a->get_baseurl() . '/u/' . $u[0]['nickname']); + $dlink = normalise_link(App::get_baseurl() . '/u/' . $u[0]['nickname']); $cnt = preg_match_all('/[\@\!]\[url\=(.*?)\](.*?)\[\/url\]/ism',$item['body'],$matches,PREG_SET_ORDER); if ($cnt) { @@ -1260,8 +1257,9 @@ function tag_deliver($uid,$item_id) { $c = q("select name, url, thumb from contact where self = 1 and uid = %d limit 1", intval($u[0]['uid']) ); - if (! count($c)) + if (! count($c)) { return; + } // also reset all the privacy bits to the forum default permissions @@ -1269,8 +1267,8 @@ function tag_deliver($uid,$item_id) { $forum_mode = (($prvgroup) ? 2 : 1); - q("update item set wall = 1, origin = 1, forum_mode = %d, `owner-name` = '%s', `owner-link` = '%s', `owner-avatar` = '%s', - `private` = %d, `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s' where id = %d", + q("UPDATE `item` SET `wall` = 1, `origin` = 1, `forum_mode` = %d, `owner-name` = '%s', `owner-link` = '%s', `owner-avatar` = '%s', + `private` = %d, `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s' WHERE `id` = %d", intval($forum_mode), dbesc($c[0]['name']), dbesc($c[0]['url']), @@ -1312,16 +1310,16 @@ function tgroup_check($uid,$item) { $prvgroup = (($u[0]['page-flags'] == PAGE_PRVGROUP) ? true : false); - $link = normalise_link($a->get_baseurl() . '/profile/' . $u[0]['nickname']); + $link = normalise_link(App::get_baseurl() . '/profile/' . $u[0]['nickname']); // Diaspora uses their own hardwired link URL in @-tags // instead of the one we supply with webfinger - $dlink = normalise_link($a->get_baseurl() . '/u/' . $u[0]['nickname']); + $dlink = normalise_link(App::get_baseurl() . '/u/' . $u[0]['nickname']); $cnt = preg_match_all('/[\@\!]\[url\=(.*?)\](.*?)\[\/url\]/ism',$item['body'],$matches,PREG_SET_ORDER); if ($cnt) { - foreach($matches as $mtch) { + foreach ($matches as $mtch) { if (link_compare($link,$mtch[1]) || link_compare($dlink,$mtch[1])) { $mention = true; logger('tgroup_check: mention found: ' . $mtch[2]); @@ -1329,13 +1327,12 @@ function tgroup_check($uid,$item) { } } - if (! $mention) + if (! $mention) { return false; + } - if ((! $community_page) && (! $prvgroup)) - return false; - - return true; + /// @TODO Combines both return statements into one + return (($community_page) || ($prvgroup)); } /* @@ -1347,15 +1344,16 @@ function tgroup_check($uid,$item) { assumes the update has been seen before and should be ignored. */ function edited_timestamp_is_newer($existing, $update) { - if (!x($existing,'edited') || !$existing['edited']) { - return true; - } - if (!x($update,'edited') || !$update['edited']) { - return false; - } - $existing_edited = datetime_convert('UTC', 'UTC', $existing['edited']); - $update_edited = datetime_convert('UTC', 'UTC', $update['edited']); - return (strcmp($existing_edited, $update_edited) < 0); + if (!x($existing,'edited') || !$existing['edited']) { + return true; + } + if (!x($update,'edited') || !$update['edited']) { + return false; + } + + $existing_edited = datetime_convert('UTC', 'UTC', $existing['edited']); + $update_edited = datetime_convert('UTC', 'UTC', $update['edited']); + return (strcmp($existing_edited, $update_edited) < 0); } /** @@ -1572,7 +1570,7 @@ function new_follower($importer,$contact,$datarray,$item,$sharing = false) { 'to_name' => $r[0]['username'], 'to_email' => $r[0]['email'], 'uid' => $r[0]['uid'], - 'link' => $a->get_baseurl() . '/notifications/intro', + 'link' => App::get_baseurl() . '/notifications/intro', 'source_name' => ((strlen(stripslashes($contact_record['name']))) ? stripslashes($contact_record['name']) : t('[Name Withheld]')), 'source_link' => $contact_record['url'], 'source_photo' => $contact_record['photo'], @@ -1665,7 +1663,7 @@ function fix_private_photos($s, $uid, $item = null, $cid = 0) { $a = get_app(); logger('fix_private_photos: check for photos', LOGGER_DEBUG); - $site = substr($a->get_baseurl(),strpos($a->get_baseurl(),'://')); + $site = substr(App::get_baseurl(),strpos(App::get_baseurl(),'://')); $orig_body = $s; $new_body = ''; @@ -1929,7 +1927,7 @@ function drop_item($id,$interactive = true) { if (! $interactive) return 0; notice( t('Item not found.') . EOL); - goaway($a->get_baseurl() . '/' . $_SESSION['return_url']); + goaway(App::get_baseurl() . '/' . $_SESSION['return_url']); } $item = $r[0]; @@ -1977,7 +1975,7 @@ function drop_item($id,$interactive = true) { } // Now check how the user responded to the confirmation query if ($_REQUEST['canceled']) { - goaway($a->get_baseurl() . '/' . $_SESSION['return_url']); + goaway(App::get_baseurl() . '/' . $_SESSION['return_url']); } logger('delete item: ' . $item['id'], LOGGER_DEBUG); @@ -2127,13 +2125,13 @@ function drop_item($id,$interactive = true) { if (! $interactive) return $owner; - goaway($a->get_baseurl() . '/' . $_SESSION['return_url']); + goaway(App::get_baseurl() . '/' . $_SESSION['return_url']); //NOTREACHED } else { if (! $interactive) return 0; notice( t('Permission denied.') . EOL); - goaway($a->get_baseurl() . '/' . $_SESSION['return_url']); + goaway(App::get_baseurl() . '/' . $_SESSION['return_url']); //NOTREACHED } diff --git a/include/like.php b/include/like.php index e997e05d6b..893047da3c 100644 --- a/include/like.php +++ b/include/like.php @@ -48,10 +48,8 @@ function do_like($item_id, $verb) { break; } - logger('like: verb ' . $verb . ' item ' . $item_id); - $r = q("SELECT * FROM `item` WHERE `id` = '%s' OR `uri` = '%s' LIMIT 1", dbesc($item_id), dbesc($item_id) @@ -66,7 +64,7 @@ function do_like($item_id, $verb) { $owner_uid = $item['uid']; - if(! can_write_wall($a,$owner_uid)) { + if (! can_write_wall($a,$owner_uid)) { return false; } @@ -78,10 +76,12 @@ function do_like($item_id, $verb) { intval($item['contact-id']), intval($item['uid']) ); - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { return false; - if(! $r[0]['self']) + } + if (! $r[0]['self']) { $remote_owner = $r[0]; + } } // this represents the post owner on this system. @@ -90,24 +90,24 @@ function do_like($item_id, $verb) { WHERE `contact`.`self` = 1 AND `contact`.`uid` = %d LIMIT 1", intval($owner_uid) ); - if (dbm::is_result($r)) + if (dbm::is_result($r)) { $owner = $r[0]; + } - if(! $owner) { + if (! $owner) { logger('like: no owner'); return false; } - if(! $remote_owner) + if (! $remote_owner) { $remote_owner = $owner; - + } // This represents the person posting - if((local_user()) && (local_user() == $owner_uid)) { + if ((local_user()) && (local_user() == $owner_uid)) { $contact = $owner; - } - else { + } else { $r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1", intval($_SESSION['visitor_id']), intval($owner_uid) @@ -115,7 +115,7 @@ function do_like($item_id, $verb) { if (dbm::is_result($r)) $contact = $r[0]; } - if(! $contact) { + if (! $contact) { return false; } @@ -124,7 +124,7 @@ function do_like($item_id, $verb) { // event participation are essentially radio toggles. If you make a subsequent choice, // we need to eradicate your first choice. - if($activity === ACTIVITY_ATTEND || $activity === ACTIVITY_ATTENDNO || $activity === ACTIVITY_ATTENDMAYBE) { + if ($activity === ACTIVITY_ATTEND || $activity === ACTIVITY_ATTENDNO || $activity === ACTIVITY_ATTENDMAYBE) { $verbs = " '" . dbesc(ACTIVITY_ATTEND) . "','" . dbesc(ACTIVITY_ATTENDNO) . "','" . dbesc(ACTIVITY_ATTENDMAYBE) . "' "; } @@ -161,10 +161,11 @@ function do_like($item_id, $verb) { $uri = item_new_uri($a->get_hostname(),$owner_uid); $post_type = (($item['resource-id']) ? t('photo') : t('status')); - if($item['object-type'] === ACTIVITY_OBJ_EVENT) + if ($item['object-type'] === ACTIVITY_OBJ_EVENT) { $post_type = t('event'); + } $objtype = (($item['resource-id']) ? ACTIVITY_OBJ_IMAGE : ACTIVITY_OBJ_NOTE ); - $link = xmlify('' . "\n") ; + $link = xmlify('' . "\n") ; $body = $item['body']; $obj = <<< EOT @@ -178,20 +179,31 @@ function do_like($item_id, $verb) { $body EOT; - if($verb === 'like') + if ($verb === 'like') { $bodyverb = t('%1$s likes %2$s\'s %3$s'); - if($verb === 'dislike') + } + if ($verb === 'dislike') { $bodyverb = t('%1$s doesn\'t like %2$s\'s %3$s'); - if($verb === 'attendyes') + } + if ($verb === 'attendyes') { $bodyverb = t('%1$s is attending %2$s\'s %3$s'); - if($verb === 'attendno') + } + if ($verb === 'attendno') { $bodyverb = t('%1$s is not attending %2$s\'s %3$s'); - if($verb === 'attendmaybe') + } + if ($verb === 'attendmaybe') { $bodyverb = t('%1$s may attend %2$s\'s %3$s'); + } - if(! isset($bodyverb)) - return false; + if (! isset($bodyverb)) { + return false; + } + $ulink = '[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]'; + $alink = '[url=' . $item['author-link'] . ']' . $item['author-name'] . '[/url]'; + $plink = '[url=' . App::get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['id'] . ']' . $post_type . '[/url]'; + + /// @TODO Or rewrite this to multi-line initialization of the array? $arr = array(); $arr['guid'] = get_guid(32); @@ -211,12 +223,7 @@ EOT; $arr['author-name'] = $contact['name']; $arr['author-link'] = $contact['url']; $arr['author-avatar'] = $contact['thumb']; - - $ulink = '[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]'; - $alink = '[url=' . $item['author-link'] . ']' . $item['author-name'] . '[/url]'; - $plink = '[url=' . $a->get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['id'] . ']' . $post_type . '[/url]'; $arr['body'] = sprintf( $bodyverb, $ulink, $alink, $plink ); - $arr['verb'] = $activity; $arr['object-type'] = $objtype; $arr['object'] = $obj; @@ -230,7 +237,7 @@ EOT; $post_id = item_store($arr); - if(! $item['visible']) { + if (! $item['visible']) { $r = q("UPDATE `item` SET `visible` = 1 WHERE `id` = %d AND `uid` = %d", intval($item['id']), intval($owner_uid) @@ -239,7 +246,7 @@ EOT; // Save the author information for the like in case we need to relay to Diaspora - diaspora::store_like_signature($contact, $post_id); + Diaspora::store_like_signature($contact, $post_id); $arr['id'] = $post_id; diff --git a/include/lock.php b/include/lock.php index 0c7b6acaa4..b3d488a357 100644 --- a/include/lock.php +++ b/include/lock.php @@ -23,7 +23,8 @@ function lock_function($fn_name, $block = true, $wait_sec = 2, $timeout = 30) { ); $got_lock = true; } - elseif(! dbm::is_result($r)) { // the Boolean value for count($r) should be equivalent to the Boolean value of $r + elseif (! dbm::is_result($r)) { + /// @TODO the Boolean value for count($r) should be equivalent to the Boolean value of $r q("INSERT INTO `locks` (`name`, `created`, `locked`) VALUES ('%s', '%s', 1)", dbesc($fn_name), dbesc(datetime_convert()) diff --git a/include/message.php b/include/message.php index ea2fcef3bc..3d5d4d33ab 100644 --- a/include/message.php +++ b/include/message.php @@ -27,7 +27,7 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){ } $guid = get_guid(32); - $uri = 'urn:X-dfrn:' . $a->get_baseurl() . ':' . local_user() . ':' . $guid; + $uri = 'urn:X-dfrn:' . App::get_baseurl() . ':' . local_user() . ':' . $guid; $convid = 0; $reply = false; @@ -53,7 +53,7 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){ $recip_host = substr($recip_host,0,strpos($recip_host,'/')); $recip_handle = (($contact[0]['addr']) ? $contact[0]['addr'] : $contact[0]['nick'] . '@' . $recip_host); - $sender_handle = $a->user['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3); + $sender_handle = $a->user['nickname'] . '@' . substr(App::get_baseurl(), strpos(App::get_baseurl(),'://') + 3); $conv_guid = get_guid(32); $convuri = $recip_handle.':'.$conv_guid; @@ -130,12 +130,13 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){ $match = null; - if(preg_match_all("/\[img\](.*?)\[\/img\]/",$body,$match)) { + if (preg_match_all("/\[img\](.*?)\[\/img\]/",$body,$match)) { $images = $match[1]; - if(count($images)) { - foreach($images as $image) { - if(! stristr($image,$a->get_baseurl() . '/photo/')) + if (count($images)) { + foreach ($images as $image) { + if (! stristr($image,App::get_baseurl() . '/photo/')) { continue; + } $image_uri = substr($image,strrpos($image,'/') + 1); $image_uri = substr($image_uri,0, strpos($image_uri,'-')); $r = q("UPDATE `photo` SET `allow_cid` = '%s' @@ -149,7 +150,7 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){ } } - if($post_id) { + if ($post_id) { proc_run(PRIORITY_HIGH, "include/notifier.php", "mail", $post_id); return intval($post_id); } else { @@ -158,22 +159,18 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){ } - - - - function send_wallmessage($recipient='', $body='', $subject='', $replyto=''){ - $a = get_app(); + if (! $recipient) { + return -1; + } - - if(! $recipient) return -1; - - if(! strlen($subject)) + if (! strlen($subject)) { $subject = t('[no subject]'); + } $guid = get_guid(32); - $uri = 'urn:X-dfrn:' . $a->get_baseurl() . ':' . local_user() . ':' . $guid; + $uri = 'urn:X-dfrn:' . App::get_baseurl() . ':' . local_user() . ':' . $guid; $convid = 0; $reply = false; @@ -182,12 +179,13 @@ function send_wallmessage($recipient='', $body='', $subject='', $replyto=''){ $me = probe_url($replyto); - if(! $me['name']) + if (! $me['name']) { return -2; + } $conv_guid = get_guid(32); - $recip_handle = $recipient['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3); + $recip_handle = $recipient['nickname'] . '@' . substr(App::get_baseurl(), strpos(App::get_baseurl(),'://') + 3); $sender_nick = basename($replyto); $sender_host = substr($replyto,strpos($replyto,'://')+3); @@ -196,7 +194,7 @@ function send_wallmessage($recipient='', $body='', $subject='', $replyto=''){ $handles = $recip_handle . ';' . $sender_handle; - $r = q("insert into conv (uid,guid,creator,created,updated,subject,recips) values(%d, '%s', '%s', '%s', '%s', '%s', '%s') ", + $r = q("INSERT INTO `conv` (`uid`,`guid`,`creator`,`created`,`updated`,`subject`,`recips`) values(%d, '%s', '%s', '%s', '%s', '%s', '%s') ", intval($recipient['uid']), dbesc($conv_guid), dbesc($sender_handle), @@ -206,18 +204,19 @@ function send_wallmessage($recipient='', $body='', $subject='', $replyto=''){ dbesc($handles) ); - $r = q("select * from conv where guid = '%s' and uid = %d limit 1", + $r = q("SELECT * FROM `conv` WHERE `guid` = '%s' AND `uid` = %d LIMIT 1", dbesc($conv_guid), intval($recipient['uid']) ); - if (dbm::is_result($r)) - $convid = $r[0]['id']; - if(! $convid) { + + if (! dbm::is_result($r)) { logger('send message: conversation not found.'); return -4; } + $convid = $r[0]['id']; + $r = q("INSERT INTO `mail` ( `uid`, `guid`, `convid`, `from-name`, `from-photo`, `from-url`, `contact-id`, `title`, `body`, `seen`, `reply`, `replied`, `uri`, `parent-uri`, `created`, `unknown`) VALUES ( %d, '%s', %d, '%s', '%s', '%s', %d, '%s', '%s', %d, %d, %d, '%s', '%s', '%s', %d )", diff --git a/include/nav.php b/include/nav.php index 2a9f24ca9f..f71272f3b1 100644 --- a/include/nav.php +++ b/include/nav.php @@ -28,7 +28,7 @@ function nav(&$a) { $tpl = get_markup_template('nav.tpl'); $a->page['nav'] .= replace_macros($tpl, array( - '$baseurl' => $a->get_baseurl(), + '$baseurl' => App::get_baseurl(), '$sitelocation' => $nav_info['sitelocation'], '$nav' => $nav_info['nav'], '$banner' => $nav_info['banner'], @@ -65,7 +65,7 @@ function nav_info(App $a) $myident = ((is_array($a->user) && isset($a->user['nickname'])) ? $a->user['nickname'] . '@' : ''); - $sitelocation = $myident . substr($a->get_baseurl($ssl_state), strpos($a->get_baseurl($ssl_state), '//') + 2 ); + $sitelocation = $myident . substr(App::get_baseurl($ssl_state), strpos(App::get_baseurl($ssl_state), '//') + 2 ); // nav links: array of array('href', 'text', 'extra css classes', 'title') $nav = array(); diff --git a/include/network.php b/include/network.php index df46d35932..7a662e4cbf 100644 --- a/include/network.php +++ b/include/network.php @@ -513,8 +513,6 @@ function allowed_email($email) { function avatar_img($email) { - $a = get_app(); - $avatar['size'] = 175; $avatar['email'] = $email; $avatar['url'] = ''; @@ -522,8 +520,9 @@ function avatar_img($email) { call_hooks('avatar_lookup', $avatar); - if(! $avatar['success']) - $avatar['url'] = $a->get_baseurl() . '/images/person-175.jpg'; + if (! $avatar['success']) { + $avatar['url'] = App::get_baseurl() . '/images/person-175.jpg'; + } logger('Avatar: ' . $avatar['email'] . ' ' . $avatar['url'], LOGGER_DEBUG); return $avatar['url']; @@ -569,7 +568,7 @@ function scale_external_images($srctext, $include_link = true, $scale_replace = foreach($matches as $mtch) { logger('scale_external_image: ' . $mtch[1]); - $hostname = str_replace('www.','',substr($a->get_baseurl(),strpos($a->get_baseurl(),'://')+3)); + $hostname = str_replace('www.','',substr(App::get_baseurl(),strpos(App::get_baseurl(),'://')+3)); if(stristr($mtch[1],$hostname)) continue; diff --git a/include/notifier.php b/include/notifier.php index 7221fa376d..84efe79526 100644 --- a/include/notifier.php +++ b/include/notifier.php @@ -210,8 +210,9 @@ function notifier_run(&$argv, &$argc){ intval($uid) ); - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { return; + } $owner = $r[0]; @@ -557,7 +558,7 @@ function notifier_run(&$argv, &$argc){ if($slap && count($url_recipients) && ($public_message || $push_notify) && $normal_mode) { if(!get_config('system','dfrn_only')) { foreach($url_recipients as $url) { - if($url) { + if ($url) { logger('notifier: urldelivery: ' . $url); $deliver_status = slapper($owner,$url,$slap); /// @TODO Redeliver/queue these items on failure, though there is no contact record @@ -570,7 +571,7 @@ function notifier_run(&$argv, &$argc){ if($public_message) { if (!$followup) - $r0 = diaspora::relay_list(); + $r0 = Diaspora::relay_list(); else $r0 = array(); @@ -597,7 +598,7 @@ function notifier_run(&$argv, &$argc){ // throw everything into the queue in case we get killed - foreach($r as $rr) { + foreach ($r as $rr) { if((! $mail) && (! $fsuggest) && (! $followup)) { q("INSERT INTO `deliverq` (`cmd`,`item`,`contact`) VALUES ('%s', %d, %d) ON DUPLICATE KEY UPDATE `cmd` = '%s', `item` = %d, `contact` = %d", @@ -607,7 +608,7 @@ function notifier_run(&$argv, &$argc){ } } - foreach($r as $rr) { + foreach ($r as $rr) { // except for Diaspora batch jobs // Don't deliver to folks who have already been delivered to @@ -649,7 +650,7 @@ function notifier_run(&$argv, &$argc){ } else { - $params = 'hub.mode=publish&hub.url=' . urlencode( $a->get_baseurl() . '/dfrn_poll/' . $owner['nickname'] ); + $params = 'hub.mode=publish&hub.url=' . urlencode( App::get_baseurl() . '/dfrn_poll/' . $owner['nickname'] ); post_url($h,$params); logger('publish for item '.$item_id.' ' . $h . ' ' . $params . ' returned ' . $a->get_curl_code()); } diff --git a/include/oauth.php b/include/oauth.php index a30232df4a..3d4533d3e0 100644 --- a/include/oauth.php +++ b/include/oauth.php @@ -148,7 +148,7 @@ class FKOAuth1 extends OAuthServer { $_SESSION['mobile-theme'] = get_pconfig($record['uid'], 'system', 'mobile_theme'); $_SESSION['authenticated'] = 1; $_SESSION['page_flags'] = $record['page-flags']; - $_SESSION['my_url'] = $a->get_baseurl() . '/profile/' . $record['nickname']; + $_SESSION['my_url'] = App::get_baseurl() . '/profile/' . $record['nickname']; $_SESSION['addr'] = $_SERVER['REMOTE_ADDR']; $_SESSION["allow_api"] = true; diff --git a/include/onepoll.php b/include/onepoll.php index 2834036665..d92cb915b6 100644 --- a/include/onepoll.php +++ b/include/onepoll.php @@ -143,8 +143,9 @@ function onepoll_run(&$argv, &$argc){ $r = q("SELECT `contact`.*, `user`.`page-flags` FROM `contact` INNER JOIN `user` on `contact`.`uid` = `user`.`uid` WHERE `user`.`uid` = %d AND `contact`.`self` = 1 LIMIT 1", intval($importer_uid) ); - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { return; + } $importer = $r[0]; diff --git a/include/ostatus.php b/include/ostatus.php index f9911bfaab..f00f682978 100644 --- a/include/ostatus.php +++ b/include/ostatus.php @@ -596,21 +596,25 @@ class ostatus { $last = get_config('system','ostatus_last_poll'); $poll_interval = intval(get_config('system','ostatus_poll_interval')); - if(! $poll_interval) - $poll_interval = OSTATUS_DEFAULT_POLL_INTERVAL; + if (!$poll_interval) { + $poll_interval = self::OSTATUS_DEFAULT_POLL_INTERVAL; + } // Don't poll if the interval is set negative - if (($poll_interval < 0) AND !$override) + if (($poll_interval < 0) AND !$override) { return; + } if (!$mentions) { $poll_timeframe = intval(get_config('system','ostatus_poll_timeframe')); - if (!$poll_timeframe) - $poll_timeframe = OSTATUS_DEFAULT_POLL_TIMEFRAME; + if (!$poll_timeframe) { + $poll_timeframe = self::OSTATUS_DEFAULT_POLL_TIMEFRAME; + } } else { $poll_timeframe = intval(get_config('system','ostatus_poll_timeframe')); - if (!$poll_timeframe) - $poll_timeframe = OSTATUS_DEFAULT_POLL_TIMEFRAME_MENTIONS; + if (!$poll_timeframe) { + $poll_timeframe = self::OSTATUS_DEFAULT_POLL_TIMEFRAME_MENTIONS; + } } @@ -626,15 +630,16 @@ class ostatus { $start = date("Y-m-d H:i:s", time() - ($poll_timeframe * 60)); - if ($mentions) + if ($mentions) { $conversations = q("SELECT `term`.`oid`, `term`.`url`, `term`.`uid` FROM `term` STRAIGHT_JOIN `thread` ON `thread`.`iid` = `term`.`oid` AND `thread`.`uid` = `term`.`uid` WHERE `term`.`type` = 7 AND `term`.`term` > '%s' AND `thread`.`mention` GROUP BY `term`.`url`, `term`.`uid` ORDER BY `term`.`term` DESC", dbesc($start)); - else + } else { $conversations = q("SELECT `oid`, `url`, `uid` FROM `term` WHERE `type` = 7 AND `term` > '%s' GROUP BY `url`, `uid` ORDER BY `term` DESC", dbesc($start)); + } foreach ($conversations AS $conversation) { self::completion($conversation['url'], $conversation['uid']); diff --git a/include/plugin.php b/include/plugin.php index 487ab57515..39cb5d5231 100644 --- a/include/plugin.php +++ b/include/plugin.php @@ -187,8 +187,9 @@ function load_hooks() { $a = get_app(); $a->hooks = array(); $r = q("SELECT * FROM `hook` WHERE 1 ORDER BY `priority` DESC, `file`"); + if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { if(! array_key_exists($rr['hook'],$a->hooks)) $a->hooks[$rr['hook']] = array(); $a->hooks[$rr['hook']][] = array($rr['file'],$rr['function']); @@ -410,13 +411,13 @@ function get_theme_info($theme){ * @return string */ function get_theme_screenshot($theme) { - $a = get_app(); $exts = array('.png','.jpg'); foreach($exts as $ext) { - if(file_exists('view/theme/' . $theme . '/screenshot' . $ext)) - return($a->get_baseurl() . '/view/theme/' . $theme . '/screenshot' . $ext); + if(file_exists('view/theme/' . $theme . '/screenshot' . $ext)) { + return(App::get_baseurl() . '/view/theme/' . $theme . '/screenshot' . $ext); + } } - return($a->get_baseurl() . '/images/blank.png'); + return(App::get_baseurl() . '/images/blank.png'); } // install and uninstall theme diff --git a/include/poller.php b/include/poller.php index 44f4895cdb..a6671f5ae3 100644 --- a/include/poller.php +++ b/include/poller.php @@ -484,7 +484,7 @@ function call_worker() { return; } - $url = get_app()->get_baseurl()."/worker"; + $url = App::get_baseurl()."/worker"; fetch_url($url, false, $redirects, 1); } diff --git a/include/profile_update.php b/include/profile_update.php index 399150f21c..7aa34d45d7 100644 --- a/include/profile_update.php +++ b/include/profile_update.php @@ -2,5 +2,5 @@ require_once('include/diaspora.php'); function profile_change() { - diaspora::send_profile(local_user()); + Diaspora::send_profile(local_user()); } diff --git a/include/pubsubpublish.php b/include/pubsubpublish.php index 85637facb2..6bd90bfc21 100644 --- a/include/pubsubpublish.php +++ b/include/pubsubpublish.php @@ -21,7 +21,7 @@ function handle_pubsubhubbub($id) { $headers = array("Content-type: application/atom+xml", sprintf("Link: <%s>;rel=hub,<%s>;rel=self", - $a->get_baseurl().'/pubsubhubbub', + App::get_baseurl().'/pubsubhubbub', $rr['topic']), "X-Hub-Signature: sha1=".$hmac_sig); @@ -76,16 +76,19 @@ function pubsubpublish_run(&$argv, &$argc){ load_config('system'); // Don't check this stuff if the function is called by the poller - if (App::callstack() != "poller_run") - if (App::is_already_running("pubsubpublish", "include/pubsubpublish.php", 540)) + if (App::callstack() != "poller_run") { + if (App::is_already_running("pubsubpublish", "include/pubsubpublish.php", 540)) { return; + } + } $a->set_baseurl(get_config('system','url')); load_hooks(); - if($argc > 1) + if ($argc > 1) { $pubsubpublish_id = intval($argv[1]); + } else { // We'll push to each subscriber that has push > 0, // i.e. there has been an update (set in notifier.php). @@ -95,10 +98,11 @@ function pubsubpublish_run(&$argv, &$argc){ $interval = Config::get("system", "delivery_interval", 2); // If we are using the worker we don't need a delivery interval - if (get_config("system", "worker")) + if (get_config("system", "worker")) { $interval = false; + } - foreach($r as $rr) { + foreach ($r as $rr) { logger("Publish feed to ".$rr["callback_url"], LOGGER_DEBUG); proc_run(PRIORITY_HIGH, 'include/pubsubpublish.php', $rr["id"]); diff --git a/include/queue.php b/include/queue.php index ad7079e959..2e0b19bfae 100644 --- a/include/queue.php +++ b/include/queue.php @@ -58,20 +58,21 @@ function queue_run(&$argv, &$argc){ $interval = false; $r = q("select * from deliverq where 1"); - if($r) { - foreach($r as $rr) { + if ($r) { + foreach ($r as $rr) { logger('queue: deliverq'); proc_run(PRIORITY_HIGH,'include/delivery.php',$rr['cmd'],$rr['item'],$rr['contact']); - if($interval) - @time_sleep_until(microtime(true) + (float) $interval); + if($interval) { + time_sleep_until(microtime(true) + (float) $interval); + } } } $r = q("SELECT `queue`.*, `contact`.`name`, `contact`.`uid` FROM `queue` INNER JOIN `contact` ON `queue`.`cid` = `contact`.`id` WHERE `queue`.`created` < UTC_TIMESTAMP() - INTERVAL 3 DAY"); - if($r) { - foreach($r as $rr) { + if ($r) { + foreach ($r as $rr) { logger('Removing expired queue item for ' . $rr['name'] . ', uid=' . $rr['uid']); logger('Expired queue data :' . $rr['content'], LOGGER_DATA); } @@ -195,7 +196,7 @@ function queue_run(&$argv, &$argc){ case NETWORK_DIASPORA: if($contact['notify']) { logger('queue: diaspora_delivery: item '.$q_item['id'].' for '.$contact['name'].' <'.$contact['url'].'>'); - $deliver_status = diaspora::transmit($owner,$contact,$data,$public,true); + $deliver_status = Diaspora::transmit($owner,$contact,$data,$public,true); if($deliver_status == (-1)) { update_queue_time($q_item['id']); diff --git a/include/redir.php b/include/redir.php index 8d8a035f1d..d8bb764396 100644 --- a/include/redir.php +++ b/include/redir.php @@ -20,7 +20,7 @@ function auto_redir(&$a, $contact_nick) { // // We also have to make sure that I'm a legitimate contact--I'm not blocked or pending. - $baseurl = $a->get_baseurl(); + $baseurl = App::get_baseurl(); $domain_st = strpos($baseurl, "://"); if($domain_st === false) return; @@ -36,9 +36,9 @@ function auto_redir(&$a, $contact_nick) { dbesc($nurl) ); - if((! dbm::is_result($r)) || $r[0]['id'] == remote_user()) + if ((! dbm::is_result($r)) || $r[0]['id'] == remote_user()) { return; - + } $r = q("SELECT * FROM contact WHERE nick = '%s' AND network = '%s' AND uid = %d AND url LIKE '%%%s%%' LIMIT 1", @@ -48,8 +48,9 @@ function auto_redir(&$a, $contact_nick) { dbesc($baseurl) ); - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { return; + } $cid = $r[0]['id']; diff --git a/include/salmon.php b/include/salmon.php index 5e9c4fa616..2b58334704 100644 --- a/include/salmon.php +++ b/include/salmon.php @@ -24,22 +24,24 @@ function get_salmon_key($uri,$keyhash) { // We have found at least one key URL // If it's inline, parse it - otherwise get the key - if(count($ret)) { - for($x = 0; $x < count($ret); $x ++) { - if(substr($ret[$x],0,5) === 'data:') { - if(strstr($ret[$x],',')) + if (count($ret) > 0) { + for ($x = 0; $x < count($ret); $x ++) { + if (substr($ret[$x],0,5) === 'data:') { + if (strstr($ret[$x],',')) { $ret[$x] = substr($ret[$x],strpos($ret[$x],',')+1); - else + } else { $ret[$x] = substr($ret[$x],5); - } elseif (normalise_link($ret[$x]) == 'http://') + } + } elseif (normalise_link($ret[$x]) == 'http://') { $ret[$x] = fetch_url($ret[$x]); + } } } logger('Key located: ' . print_r($ret,true)); - if(count($ret) == 1) { + if (count($ret) == 1) { // We only found one one key so we don't care if the hash matches. // If it's the wrong key we'll find out soon enough because @@ -50,10 +52,11 @@ function get_salmon_key($uri,$keyhash) { return $ret[0]; } else { - foreach($ret as $a) { + foreach ($ret as $a) { $hash = base64url_encode(hash('sha256',$a)); - if($hash == $keyhash) + if ($hash == $keyhash) { return $a; + } } } diff --git a/include/security.php b/include/security.php index fa698c1b1a..cd00b5f7b0 100644 --- a/include/security.php +++ b/include/security.php @@ -9,8 +9,8 @@ function authenticate_success($user_record, $login_initial = false, $interactive $_SESSION['mobile-theme'] = get_pconfig($user_record['uid'], 'system', 'mobile_theme'); $_SESSION['authenticated'] = 1; $_SESSION['page_flags'] = $user_record['page-flags']; - $_SESSION['my_url'] = $a->get_baseurl() . '/profile/' . $user_record['nickname']; - $_SESSION['my_address'] = $user_record['nickname'] . '@' . substr($a->get_baseurl(),strpos($a->get_baseurl(),'://')+3); + $_SESSION['my_url'] = App::get_baseurl() . '/profile/' . $user_record['nickname']; + $_SESSION['my_address'] = $user_record['nickname'] . '@' . substr(App::get_baseurl(),strpos(App::get_baseurl(),'://')+3); $_SESSION['addr'] = $_SERVER['REMOTE_ADDR']; $a->user = $user_record; @@ -94,11 +94,12 @@ function authenticate_success($user_record, $login_initial = false, $interactive } - if($login_initial) { + if ($login_initial) { call_hooks('logged_in', $a->user); - if(($a->module !== 'home') && isset($_SESSION['return_url'])) - goaway($a->get_baseurl() . '/' . $_SESSION['return_url']); + if (($a->module !== 'home') && isset($_SESSION['return_url'])) { + goaway(App::get_baseurl() . '/' . $_SESSION['return_url']); + } } } @@ -109,16 +110,17 @@ function can_write_wall(&$a,$owner) { static $verified = 0; - if((! (local_user())) && (! (remote_user()))) + if ((! (local_user())) && (! (remote_user()))) { return false; + } $uid = local_user(); - if(($uid) && ($uid == $owner)) { + if (($uid) && ($uid == $owner)) { return true; } - if(remote_user()) { + if (remote_user()) { // use remembered decision and avoid a DB lookup for each and every display item // DO NOT use this function if there are going to be multiple owners @@ -126,25 +128,25 @@ function can_write_wall(&$a,$owner) { // We have a contact-id for an authenticated remote user, this block determines if the contact // belongs to this page owner, and has the necessary permissions to post content - if($verified === 2) + if ($verified === 2) { return true; - elseif($verified === 1) + } elseif ($verified === 1) { return false; - else { + } else { $cid = 0; - if(is_array($_SESSION['remote'])) { - foreach($_SESSION['remote'] as $visitor) { - if($visitor['uid'] == $owner) { + if (is_array($_SESSION['remote'])) { + foreach ($_SESSION['remote'] as $visitor) { + if ($visitor['uid'] == $owner) { $cid = $visitor['cid']; break; } } } - if(! $cid) + if (! $cid) { return false; - + } $r = q("SELECT `contact`.*, `user`.`page-flags` FROM `contact` INNER JOIN `user` on `user`.`uid` = `contact`.`uid` WHERE `contact`.`uid` = %d AND `contact`.`id` = %d AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 @@ -378,7 +380,7 @@ function check_form_security_token_redirectOnErr($err_redirect, $typename = '', logger('check_form_security_token failed: user ' . $a->user['guid'] . ' - form element ' . $typename); logger('check_form_security_token failed: _REQUEST data: ' . print_r($_REQUEST, true), LOGGER_DATA); notice( check_form_security_std_err_msg() ); - goaway($a->get_baseurl() . $err_redirect ); + goaway(App::get_baseurl() . $err_redirect ); } } function check_form_security_token_ForbiddenOnErr($typename = '', $formname = 'form_security_token') { diff --git a/include/socgraph.php b/include/socgraph.php index 349fd0b2ca..64f78b4585 100644 --- a/include/socgraph.php +++ b/include/socgraph.php @@ -91,50 +91,58 @@ function poco_load($cid,$uid = 0,$zcid = 0,$url = null) { $name = $entry->displayName; - if(isset($entry->urls)) { - foreach($entry->urls as $url) { - if($url->type == 'profile') { + if (isset($entry->urls)) { + foreach ($entry->urls as $url) { + if ($url->type == 'profile') { $profile_url = $url->value; continue; } - if($url->type == 'webfinger') { + if ($url->type == 'webfinger') { $connect_url = str_replace('acct:' , '', $url->value); continue; } } } - if(isset($entry->photos)) { - foreach($entry->photos as $photo) { - if($photo->type == 'profile') { + if (isset($entry->photos)) { + foreach ($entry->photos as $photo) { + if ($photo->type == 'profile') { $profile_photo = $photo->value; continue; } } } - if(isset($entry->updated)) + if (isset($entry->updated)) { $updated = date("Y-m-d H:i:s", strtotime($entry->updated)); + } - if(isset($entry->network)) + if (isset($entry->network)) { $network = $entry->network; + } - if(isset($entry->currentLocation)) + if (isset($entry->currentLocation)) { $location = $entry->currentLocation; + } - if(isset($entry->aboutMe)) + if (isset($entry->aboutMe)) { $about = html2bbcode($entry->aboutMe); + } - if(isset($entry->gender)) + if (isset($entry->gender)) { $gender = $entry->gender; + } - if(isset($entry->generation) AND ($entry->generation > 0)) + if (isset($entry->generation) AND ($entry->generation > 0)) { $generation = ++$entry->generation; + } - if(isset($entry->tags)) - foreach($entry->tags as $tag) + if (isset($entry->tags)) { + foreach($entry->tags as $tag) { $keywords = implode(", ", $tag); + } + } - if(isset($entry->contactType) AND ($entry->contactType >= 0)) + if (isset($entry->contactType) AND ($entry->contactType >= 0)) $contact_type = $entry->contactType; // If you query a Friendica server for its profiles, the network has to be Friendica @@ -171,8 +179,6 @@ function poco_load($cid,$uid = 0,$zcid = 0,$url = null) { function poco_check($profile_url, $name, $network, $profile_photo, $about, $location, $gender, $keywords, $connect_url, $updated, $generation, $cid = 0, $uid = 0, $zcid = 0) { - $a = get_app(); - // Generation: // 0: No definition // 1: Profiles on this server @@ -207,8 +213,9 @@ function poco_check($profile_url, $name, $network, $profile_photo, $about, $loca $orig_updated = $updated; // The global contacts should contain the original picture, not the cached one - if (($generation != 1) AND stristr(normalise_link($profile_photo), normalise_link($a->get_baseurl()."/photo/"))) + if (($generation != 1) AND stristr(normalise_link($profile_photo), normalise_link(App::get_baseurl()."/photo/"))) { $profile_photo = ""; + } $r = q("SELECT `network` FROM `contact` WHERE `nurl` = '%s' AND `network` != '' AND `network` != '%s' LIMIT 1", dbesc(normalise_link($profile_url)), dbesc(NETWORK_STATUSNET) @@ -330,7 +337,7 @@ function poco_check($profile_url, $name, $network, $profile_photo, $about, $loca intval($gcid), intval($zcid) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { q("INSERT INTO `glink` (`cid`,`uid`,`gcid`,`zcid`, `updated`) VALUES (%d,%d,%d,%d, '%s') ", intval($cid), intval($uid), @@ -1180,23 +1187,24 @@ function update_suggestions() { $done = array(); - /// TODO Check if it is really neccessary to poll the own server - poco_load(0,0,0,$a->get_baseurl() . '/poco'); + /// @TODO Check if it is really neccessary to poll the own server + poco_load(0,0,0,App::get_baseurl() . '/poco'); - $done[] = $a->get_baseurl() . '/poco'; + $done[] = App::get_baseurl() . '/poco'; - if(strlen(get_config('system','directory'))) { + if (strlen(get_config('system','directory'))) { $x = fetch_url(get_server()."/pubsites"); - if($x) { + if ($x) { $j = json_decode($x); - if($j->entries) { - foreach($j->entries as $entry) { + if ($j->entries) { + foreach ($j->entries as $entry) { poco_check_server($entry->url); $url = $entry->url . '/poco'; - if(! in_array($url,$done)) + if (! in_array($url,$done)) { poco_load(0,0,0,$entry->url . '/poco'); + } } } } @@ -1208,7 +1216,7 @@ function update_suggestions() { ); if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { $base = substr($rr['poco'],0,strrpos($rr['poco'],'/')); if(! in_array($base,$done)) poco_load(0,0,0,$base); @@ -1219,7 +1227,7 @@ function update_suggestions() { function poco_discover_federation() { $last = get_config('poco','last_federation_discovery'); - if($last) { + if ($last) { $next = $last + (24 * 60 * 60); if($next > time()) return; @@ -1333,7 +1341,7 @@ function poco_discover_server_users($data, $server) { $username = ""; if (isset($entry->urls)) { foreach($entry->urls as $url) - if($url->type == 'profile') { + if ($url->type == 'profile') { $profile_url = $url->value; $urlparts = parse_url($profile_url); $username = end(explode("/", $urlparts["path"])); @@ -1375,52 +1383,61 @@ function poco_discover_server($data, $default_generation = 0) { $name = $entry->displayName; - if(isset($entry->urls)) { + if (isset($entry->urls)) { foreach($entry->urls as $url) { - if($url->type == 'profile') { + if ($url->type == 'profile') { $profile_url = $url->value; continue; } - if($url->type == 'webfinger') { + if ($url->type == 'webfinger') { $connect_url = str_replace('acct:' , '', $url->value); continue; } } } - if(isset($entry->photos)) { - foreach($entry->photos as $photo) { - if($photo->type == 'profile') { + if (isset($entry->photos)) { + foreach ($entry->photos as $photo) { + if ($photo->type == 'profile') { $profile_photo = $photo->value; continue; } } } - if(isset($entry->updated)) + if (isset($entry->updated)) { $updated = date("Y-m-d H:i:s", strtotime($entry->updated)); + } - if(isset($entry->network)) + if(isset($entry->network)) { $network = $entry->network; + } - if(isset($entry->currentLocation)) + if(isset($entry->currentLocation)) { $location = $entry->currentLocation; + } - if(isset($entry->aboutMe)) + if(isset($entry->aboutMe)) { $about = html2bbcode($entry->aboutMe); + } - if(isset($entry->gender)) + if(isset($entry->gender)) { $gender = $entry->gender; + } - if(isset($entry->generation) AND ($entry->generation > 0)) + if(isset($entry->generation) AND ($entry->generation > 0)) { $generation = ++$entry->generation; + } - if(isset($entry->contactType) AND ($entry->contactType >= 0)) + if(isset($entry->contactType) AND ($entry->contactType >= 0)) { $contact_type = $entry->contactType; + } - if(isset($entry->tags)) - foreach($entry->tags as $tag) + if(isset($entry->tags)) { + foreach ($entry->tags as $tag) { $keywords = implode(", ", $tag); + } + } if ($generation > 0) { $success = true; @@ -1771,8 +1788,6 @@ function gs_fetch_users($server) { logger("Fetching users from GNU Social server ".$server, LOGGER_DEBUG); - $a = get_app(); - $url = $server."/main/statistics"; $result = z_fetch_url($url); @@ -1811,7 +1826,7 @@ function gs_fetch_users($server) { "nick" => $user->nickname, "about" => $user->bio, "network" => NETWORK_OSTATUS, - "photo" => $a->get_baseurl()."/images/person-175.jpg"); + "photo" => App::get_baseurl()."/images/person-175.jpg"); get_gcontact_id($contact); } } diff --git a/include/tags.php b/include/tags.php index 6c1d01d74d..0a09438478 100644 --- a/include/tags.php +++ b/include/tags.php @@ -1,13 +1,11 @@ get_baseurl(); + $profile_base = App::get_baseurl(); $profile_data = parse_url($profile_base); $profile_base_friendica = $profile_data['host'].$profile_data['path']."/profile/"; $profile_base_diaspora = $profile_data['host'].$profile_data['path']."/u/"; - $searchpath = $a->get_baseurl()."/search?tag="; + $searchpath = App::get_baseurl()."/search?tag="; $messages = q("SELECT `guid`, `uid`, `id`, `edited`, `deleted`, `created`, `received`, `title`, `body`, `tag`, `parent` FROM `item` WHERE `id` = %d LIMIT 1", intval($itemid)); diff --git a/include/text.php b/include/text.php index 5856226c37..4f71ab8e60 100644 --- a/include/text.php +++ b/include/text.php @@ -23,7 +23,7 @@ function replace_macros($s,$r) { $a = get_app(); // pass $baseurl to all templates - $r['$baseurl'] = $a->get_baseurl(); + $r['$baseurl'] = App::get_baseurl(); $t = $a->template_engine(); @@ -912,7 +912,7 @@ function contact_block() { if (dbm::is_result($r)) { $contacts = sprintf( tt('%d Contact','%d Contacts', $total),$total); $micropro = Array(); - foreach($r as $rr) { + foreach ($r as $rr) { $micropro[] = micropro($rr,true,'mpfriend'); } } @@ -1367,7 +1367,7 @@ function prepare_body(&$item,$attach = false, $preview = false) { // map if(strpos($s,'
') !== false && $item['coord']) { $x = generate_map(trim($item['coord'])); - if($x) { + if ($x) { $s = preg_replace('/\
/','$0' . $x,$s); } } @@ -1717,7 +1717,7 @@ function bb_translate_video($s) { $matches = null; $r = preg_match_all("/\[video\](.*?)\[\/video\]/ism",$s,$matches,PREG_SET_ORDER); - if($r) { + if ($r) { foreach($matches as $mtch) { if((stristr($mtch[1],'youtube')) || (stristr($mtch[1],'youtu.be'))) $s = str_replace($mtch[0],'[youtube]' . $mtch[1] . '[/youtube]',$s); @@ -2000,8 +2000,9 @@ function file_tag_unsave_file($uid,$item,$file,$cat = false) { intval($item), intval($uid) ); - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { return false; + } q("UPDATE `item` SET `file` = '%s' WHERE `id` = %d AND `uid` = %d", dbesc(str_replace($pattern,'',$r[0]['file'])), @@ -2020,11 +2021,11 @@ function file_tag_unsave_file($uid,$item,$file,$cat = false) { //$r = q("select file from item where uid = %d and deleted = 0 " . file_tag_file_query('item',$file,(($cat) ? 'category' : 'file')), //); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { $saved = get_pconfig($uid,'system','filetags'); set_pconfig($uid,'system','filetags',str_replace($pattern,'',$saved)); - } + return true; } diff --git a/include/threads.php b/include/threads.php index 48391174ec..c214cf2644 100644 --- a/include/threads.php +++ b/include/threads.php @@ -267,12 +267,10 @@ function update_threads() { } function update_threads_mention() { - $a = get_app(); - $users = q("SELECT `uid`, `nickname` FROM `user` ORDER BY `uid`"); foreach ($users AS $user) { - $self = normalise_link($a->get_baseurl() . '/profile/' . $user['nickname']); + $self = normalise_link(App::get_baseurl() . '/profile/' . $user['nickname']); $selfhttps = str_replace("http://", "https://", $self); $parents = q("SELECT DISTINCT(`parent`) FROM `item` WHERE `uid` = %d AND ((`owner-link` IN ('%s', '%s')) OR (`author-link` IN ('%s', '%s')))", diff --git a/include/uimport.php b/include/uimport.php index 51672d92b6..0d9ffc35fc 100644 --- a/include/uimport.php +++ b/include/uimport.php @@ -133,7 +133,7 @@ function import_account(&$a, $file) { } $oldbaseurl = $account['baseurl']; - $newbaseurl = $a->get_baseurl(); + $newbaseurl = App::get_baseurl(); $olduid = $account['user']['uid']; unset($account['user']['uid']); @@ -290,5 +290,5 @@ function import_account(&$a, $file) { proc_run(PRIORITY_HIGH, 'include/notifier.php', 'relocate', $newuid); info(t("Done. You can now login with your username and password")); - goaway($a->get_baseurl() . "/login"); + goaway(App::get_baseurl() . "/login"); } diff --git a/include/user.php b/include/user.php index ec15d5b134..983c4a416b 100644 --- a/include/user.php +++ b/include/user.php @@ -216,7 +216,7 @@ function create_user($arr) { dbesc($default_service_class) ); - if($r) { + if ($r) { $r = q("SELECT * FROM `user` WHERE `username` = '%s' AND `password` = '%s' LIMIT 1", dbesc($username), diff --git a/index.php b/index.php index 08f24af60f..f05151757b 100644 --- a/index.php +++ b/index.php @@ -60,15 +60,15 @@ if(!$install) { if ($a->max_processes_reached() OR $a->maxload_reached()) { header($_SERVER["SERVER_PROTOCOL"].' 503 Service Temporarily Unavailable'); header('Retry-After: 120'); - header('Refresh: 120; url='.$a->get_baseurl()."/".$a->query_string); + header('Refresh: 120; url='.App::get_baseurl()."/".$a->query_string); die("System is currently unavailable. Please try again later"); } if (get_config('system','force_ssl') AND ($a->get_scheme() == "http") AND (intval(get_config('system','ssl_policy')) == SSL_POLICY_FULL) AND - (substr($a->get_baseurl(), 0, 8) == "https://")) { + (substr(App::get_baseurl(), 0, 8) == "https://")) { header("HTTP/1.1 302 Moved Temporarily"); - header("Location: ".$a->get_baseurl()."/".$a->query_string); + header("Location: ".App::get_baseurl()."/".$a->query_string); exit(); } @@ -150,24 +150,28 @@ if((x($_GET,'zrl')) && (!$install && !$maintenance)) { * */ -// header('Link: <' . $a->get_baseurl() . '/amcd>; rel="acct-mgmt";'); +// header('Link: <' . App::get_baseurl() . '/amcd>; rel="acct-mgmt";'); -if(x($_COOKIE["Friendica"]) || (x($_SESSION,'authenticated')) || (x($_POST,'auth-params')) || ($a->module === 'login')) +if (x($_COOKIE["Friendica"]) || (x($_SESSION,'authenticated')) || (x($_POST,'auth-params')) || ($a->module === 'login')) { require("include/auth.php"); +} -if(! x($_SESSION,'authenticated')) +if (! x($_SESSION,'authenticated')) { header('X-Account-Management-Status: none'); +} /* set up page['htmlhead'] and page['end'] for the modules to use */ $a->page['htmlhead'] = ''; $a->page['end'] = ''; -if(! x($_SESSION,'sysmsg')) +if (! x($_SESSION,'sysmsg')) { $_SESSION['sysmsg'] = array(); +} -if(! x($_SESSION,'sysmsg_info')) +if (! x($_SESSION,'sysmsg_info')) { $_SESSION['sysmsg_info'] = array(); +} /* * check_config() is responsible for running update scripts. These automatically @@ -177,11 +181,11 @@ if(! x($_SESSION,'sysmsg_info')) // in install mode, any url loads install module // but we need "view" module for stylesheet -if($install && $a->module!="view") +if ($install && $a->module!="view") { $a->module = 'install'; -elseif($maintenance && $a->module!="view") +} elseif ($maintenance && $a->module!="view") { $a->module = 'maintenance'; -else { +} else { check_url($a); check_db(); check_plugins($a); @@ -191,8 +195,7 @@ nav_set_selected('nothing'); //Don't populate apps_menu if apps are private $privateapps = get_config('config','private_addons'); -if((local_user()) || (! $privateapps === "1")) -{ +if ((local_user()) || (! $privateapps === "1")) { $arr = array('app_menu' => $a->apps); call_hooks('app_menu', $arr); @@ -238,9 +241,9 @@ if(strlen($a->module)) { $privateapps = get_config('config','private_addons'); - if(is_array($a->plugins) && in_array($a->module,$a->plugins) && file_exists("addon/{$a->module}/{$a->module}.php")) { + if (is_array($a->plugins) && in_array($a->module,$a->plugins) && file_exists("addon/{$a->module}/{$a->module}.php")) { //Check if module is an app and if public access to apps is allowed or not - if((!local_user()) && plugin_is_app($a->module) && $privateapps === "1") { + if ((!local_user()) && plugin_is_app($a->module) && $privateapps === "1") { info( t("You must be logged in to use addons. ")); } else { @@ -254,7 +257,7 @@ if(strlen($a->module)) { * If not, next look for a 'standard' program module in the 'mod' directory */ - if((! $a->module_loaded) && (file_exists("mod/{$a->module}.php"))) { + if ((! $a->module_loaded) && (file_exists("mod/{$a->module}.php"))) { include_once("mod/{$a->module}.php"); $a->module_loaded = true; } @@ -272,16 +275,16 @@ if(strlen($a->module)) { * */ - if(! $a->module_loaded) { + if (! $a->module_loaded) { // Stupid browser tried to pre-fetch our Javascript img template. Don't log the event or return anything - just quietly exit. - if((x($_SERVER,'QUERY_STRING')) && preg_match('/{[0-9]}/',$_SERVER['QUERY_STRING']) !== 0) { + if ((x($_SERVER,'QUERY_STRING')) && preg_match('/{[0-9]}/',$_SERVER['QUERY_STRING']) !== 0) { killme(); } - if((x($_SERVER,'QUERY_STRING')) && ($_SERVER['QUERY_STRING'] === 'q=internal_error.html') && isset($dreamhost_error_hack)) { + if ((x($_SERVER,'QUERY_STRING')) && ($_SERVER['QUERY_STRING'] === 'q=internal_error.html') && isset($dreamhost_error_hack)) { logger('index.php: dreamhost_error_hack invoked. Original URI =' . $_SERVER['REQUEST_URI']); - goaway($a->get_baseurl() . $_SERVER['REQUEST_URI']); + goaway(App::get_baseurl() . $_SERVER['REQUEST_URI']); } logger('index.php: page not found: ' . $_SERVER['REQUEST_URI'] . ' ADDRESS: ' . $_SERVER['REMOTE_ADDR'] . ' QUERY: ' . $_SERVER['QUERY_STRING'], LOGGER_DEBUG); @@ -304,11 +307,13 @@ if (file_exists($theme_info_file)){ /* initialise content region */ -if(! x($a->page,'content')) +if (! x($a->page,'content')) { $a->page['content'] = ''; +} -if(!$install && !$maintenance) +if (!$install && !$maintenance) { call_hooks('page_content_top',$a->page['content']); +} /** * Call module functions diff --git a/js/main.js b/js/main.js index b2a4dfe35c..1b7b304a24 100644 --- a/js/main.js +++ b/js/main.js @@ -161,10 +161,12 @@ // fancyboxes $("a.popupbox").colorbox({ 'inline' : true, - 'transition' : 'elastic' + 'transition' : 'elastic', + 'maxWidth' : '100%' }); $("a.ajax-popupbox").colorbox({ - 'transition' : 'elastic' + 'transition' : 'elastic', + 'maxWidth' : '100%' }); /* notifications template */ diff --git a/library/perfect-scrollbar/README.md b/library/perfect-scrollbar/README.md index b0e732827d..b05f5c2956 100644 --- a/library/perfect-scrollbar/README.md +++ b/library/perfect-scrollbar/README.md @@ -52,16 +52,26 @@ It's cool, isn't it? ## Install +#### NPM + The best way to install and use perfect-scrollbar is with NPM. -It's registered on [npm](https://www.npmjs.org/package/perfect-scrollbar) as `perfect-scrollbar`. +It's registered on [npm](https://www.npmjs.com/package/perfect-scrollbar) as `perfect-scrollbar`. ``` $ npm install perfect-scrollbar ``` +#### Rails + +In the case you would like to have perfect-scrollbar in your Rails application, there is the [perfect-scrollbar-rails gem](https://github.com/YourCursus/perfect-scrollbar-rails). + +#### Manually + You can download the latest stable version with download links [here](http://noraesae.github.io/perfect-scrollbar/). You also can find all releases on [Releases](https://github.com/noraesae/perfect-scrollbar/releases). +#### From sources + If you want to use the development version of the plugin, use the source files which are not minified. They're in the `src` directory. The development version may be unstable, but some known bugs may @@ -74,6 +84,7 @@ $ npm install $ gulp # will lint and build the source code. ``` +#### Bower There is a Bower package for perfect-scrollbar as well. It is managed under the [perfect-scrollbar-bower](https://github.com/noraesae/perfect-scrollbar-bower) @@ -83,26 +94,38 @@ repository. The plugin is registered as `perfect-scrollbar`. $ bower install perfect-scrollbar ``` +#### CDNs -You can also load it from [cdnjs](http://cdnjs.com/). -It is registered as [`jquery.perfect-scrollbar`](http://www.cdnjs.com/libraries/jquery.perfect-scrollbar). +* [cdnjs](http://www.cdnjs.com/libraries/jquery.perfect-scrollbar) +* [JSDelivr](https://www.jsdelivr.com/projects/perfect-scrollbar) -## Requirements +#### JSFiddle -To make this plugin *perfect*, some requirements were unavoidable. -But, they're all very trivial and there is nothing to worry about. +You can fork the following JSFiddles for testing and experimenting purposes: + +* [Perfect Scrollbar](https://jsfiddle.net/DanielApt/xv0rrxv3/) +* [Perfect Scrollbar (jQuery)](https://jsfiddle.net/DanielApt/gbfLazpx/) + +## Before using perfect-scrollbar The following requirements should meet. * the container must have a 'position' css style. +* the container must be a normal container element. + * PS may not work well in `body`, `textarea`, `iframe` or flexbox. The following requirements are included in the basic CSS, but please keep in mind when you'd like to change the CSS files. -* the container must have an 'overflow:hidden' css style. +* the container must have an 'overflow: hidden' css style. * the scrollbar's position must be 'absolute'. * the scrollbar-x must have a 'bottom' css style, and the scrollbar-y must have a 'right' css style. + +Please keep in mind that perfect-scrollbar won't completely emulate native +scrolls. Scroll hooking is generally considered as bad practice, and +perfect-scrollbar should be used with care. Unless custom scroll is really needed, +please consider using native scrolls. ## How to use @@ -155,7 +178,7 @@ If the size of your container or content changes, call `update`. Ps.update(container); ``` -If you want to destory the scrollbar, use `destroy`. +If you want to destroy the scrollbar, use `destroy`. ```javascript Ps.destroy(container); @@ -238,12 +261,12 @@ define([ 'perfectScrollbarJquery' ], function (angular) { - var myApp = angular.module('myApp', []) - .run(function() { + var app = angular.module('myApp', []); + app.run(function () { window.Ps = require('perfectScrollbar'); require('perfectScrollbarJQuery'); - }) - return myApp; + }); + return app; }); ``` @@ -256,7 +279,7 @@ Ps.initialize(container); Ps.update(container); // or by jQuery: -var imgLoader = $("#imgLoader") +var imgLoader = $('#imgLoader') imgLoader.perfectScrollbar(); ``` @@ -264,57 +287,80 @@ imgLoader.perfectScrollbar(); perfect-scrollbar supports optional parameters. +### handlers +It is a list of handlers to use to scroll the element. +**Default**: `['click-rail', 'drag-scrollbar', 'keyboard', 'wheel', 'touch']` +**Disabled by default**: `'selection'` + ### wheelSpeed The scroll speed applied to mousewheel event. -**Default: 1** +**Default**: `1` ### wheelPropagation If this option is true, when the scroll reaches the end of the side, mousewheel event will be propagated to parent element. -**Default: false** +**Default**: `false` ### swipePropagation If this option is true, when the scroll reaches the end of the side, touch scrolling will be propagated to parent element. -**Default: true** +**Default**: `true` ### minScrollbarLength When set to an integer value, the thumb part of the scrollbar will not shrink below that number of pixels. -**Default: null** +**Default**: `null` ### maxScrollbarLength When set to an integer value, the thumb part of the scrollbar will not expand over that number of pixels. -**Default: null** +**Default**: `null` ### useBothWheelAxes When set to true, and only one (vertical or horizontal) scrollbar is visible then both vertical and horizontal scrolling will affect the scrollbar. -**Default: false** - -### useKeyboard -When set to true, the scroll works with arrow keys on the keyboard. The element is scrolled only when the mouse cursor hovers the element. -**Default: true** +**Default**: `false` ### suppressScrollX When set to true, the scroll bar in X axis will not be available, regardless of the content width. -**Default: false** +**Default**: `false` ### suppressScrollY When set to true, the scroll bar in Y axis will not be available, regardless of the content height. -**Default: false** +**Default**: `false` ### scrollXMarginOffset The number of pixels the content width can surpass the container width without enabling the X axis scroll bar. Allows some "wiggle room" or "offset break", so that X axis scroll bar is not enabled just because of a few pixels. -**Default: 0** +**Default**: `0` ### scrollYMarginOffset The number of pixels the content height can surpass the container height without enabling the Y axis scroll bar. Allows some "wiggle room" or "offset break", so that Y axis scroll bar is not enabled just because of a few pixels. -**Default: 0** +**Default**: `0` -### stopPropagationOnClick -When set to false, when clicking on a rail, the click event will be allowed to propagate. -**Default: true** +### theme +A string. It's a class name added to the container element. The class name is prepended with `ps-theme-`. So default theme class name is `ps-theme-default`. In order to create custom themes with scss use `ps-container($theme)` mixin, where `$theme` is a scss map. +**Default**: `'default'` + +**Example 1:** + +Add `theme` parameter: +```javascript +Ps.initialize(container, { + theme: 'my-theme-name' +}); +``` +Create a class name prefixed with `.ps-theme-`. Include `ps-container()` mixin. It's recommended to use `map-merge()` to extend `$ps-theme-default` map with your custom styles. +```scss +.ps-theme-my-theme-name { + @include ps-container(map-merge($ps-theme-default, ( + border-radius: 0, + scrollbar-x-rail-height: 20px, + scrollbar-x-height: 20px, + scrollbar-y-rail-width: 20px, + scrollbar-y-width: 20px + ))); +} +``` + +**Example 2:** + +Alternatively, if you don't want to create your own themes, but only modify the default one, you could simply overwrite `$ps-*` variables with your own values. In this case `theme` parameter is not required when calling `.initialize()` method. Remember do define your own variables before the `theme.scss` file is imported. -### useSelectionScroll -When set to true, you can scroll the container by selecting text and move the cursor. -**Default: false** ## Events @@ -363,24 +409,20 @@ $(document).on('ps-scroll-x', function () { }) ``` -## Contribution +## Tips -#### Please read [Contributing](https://github.com/noraesae/perfect-scrollbar/wiki/Contributing) in the wiki before making any contribution. +### Scrolling children inside perfect-scrollbar - -I *really* welcome contributions! Please feel free to fork and issue pull requests when... - -* You have a very nice idea to improve this plugin! -* You found a bug! -* You're good at English and can help my bad English! - -For IE problems, please refer to [IE Support](https://github.com/noraesae/perfect-scrollbar#ie-support). +You can natively scroll children inside `perfect-scrollbar` with the mouse-wheel. Scrolling automatically works if +the child is a `textarea`. All other elements need to have the `ps-child` class. This is demonstrated in [`/examples/children-native-scroll.html`](examples/children-native-scroll.html) ## IE Support -The plugin would work in IEs >= IE9 (not well, though). +The plugin is designed to work in modern browsers, including the very latest +version of IE and Edge. Specifically, it should work in IEs >= IE10. If there +is any issue in the browsers, please [file it](https://github.com/noraesae/perfect-scrollbar/issues). -**The patches to fix problems in IE<=8 won't be accepted.** +**The patches to fix problems in IE<=9 won't be accepted.** When old IEs should be supported, please fork the project and make patches personally. @@ -396,7 +438,7 @@ For common problems there is a ## License -The MIT License (MIT) Copyright (c) 2015 Hyunje Alex Jun and other contributors. +The MIT License (MIT) Copyright (c) 2016 Hyunje Alex Jun and other contributors. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/library/perfect-scrollbar/perfect-scrollbar.css b/library/perfect-scrollbar/perfect-scrollbar.css index 354705dd57..735219ce76 100644 --- a/library/perfect-scrollbar/perfect-scrollbar.css +++ b/library/perfect-scrollbar/perfect-scrollbar.css @@ -1,7 +1,7 @@ -/* perfect-scrollbar v0.6.10 */ +/* perfect-scrollbar v0.6.15 */ .ps-container { - -ms-touch-action: none; - touch-action: none; + -ms-touch-action: auto; + touch-action: auto; overflow: hidden !important; -ms-overflow-style: none; } @supports (-ms-overflow-style: none) { @@ -14,88 +14,90 @@ .ps-container.ps-active-y > .ps-scrollbar-y-rail { display: block; background-color: transparent; } - .ps-container.ps-in-scrolling { - pointer-events: none; } - .ps-container.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail { - background-color: #eee; - opacity: 0.9; } - .ps-container.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail > .ps-scrollbar-x { - background-color: #999; } - .ps-container.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail { - background-color: #eee; - opacity: 0.9; } - .ps-container.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail > .ps-scrollbar-y { - background-color: #999; } + .ps-container.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail { + background-color: #eee; + opacity: 0.9; } + .ps-container.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail > .ps-scrollbar-x { + background-color: #999; + height: 11px; } + .ps-container.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail { + background-color: #eee; + opacity: 0.9; } + .ps-container.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail > .ps-scrollbar-y { + background-color: #999; + width: 11px; } .ps-container > .ps-scrollbar-x-rail { display: none; position: absolute; /* please don't change 'position' */ - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; opacity: 0; -webkit-transition: background-color .2s linear, opacity .2s linear; - -moz-transition: background-color .2s linear, opacity .2s linear; -o-transition: background-color .2s linear, opacity .2s linear; + -moz-transition: background-color .2s linear, opacity .2s linear; transition: background-color .2s linear, opacity .2s linear; - bottom: 3px; + bottom: 0px; /* there must be 'bottom' for ps-scrollbar-x-rail */ - height: 8px; } + height: 15px; } .ps-container > .ps-scrollbar-x-rail > .ps-scrollbar-x { position: absolute; /* please don't change 'position' */ background-color: #aaa; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-transition: background-color .2s linear; - -moz-transition: background-color .2s linear; - -o-transition: background-color .2s linear; - transition: background-color .2s linear; - bottom: 0; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out; + transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out; + -o-transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out; + -moz-transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out; + transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out; + transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -webkit-border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out; + bottom: 2px; /* there must be 'bottom' for ps-scrollbar-x */ - height: 8px; } + height: 6px; } + .ps-container > .ps-scrollbar-x-rail:hover > .ps-scrollbar-x, .ps-container > .ps-scrollbar-x-rail:active > .ps-scrollbar-x { + height: 11px; } .ps-container > .ps-scrollbar-y-rail { display: none; position: absolute; /* please don't change 'position' */ - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; opacity: 0; -webkit-transition: background-color .2s linear, opacity .2s linear; - -moz-transition: background-color .2s linear, opacity .2s linear; -o-transition: background-color .2s linear, opacity .2s linear; + -moz-transition: background-color .2s linear, opacity .2s linear; transition: background-color .2s linear, opacity .2s linear; - right: 3px; + right: 0; /* there must be 'right' for ps-scrollbar-y-rail */ - width: 8px; } + width: 15px; } .ps-container > .ps-scrollbar-y-rail > .ps-scrollbar-y { position: absolute; /* please don't change 'position' */ background-color: #aaa; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-transition: background-color .2s linear; - -moz-transition: background-color .2s linear; - -o-transition: background-color .2s linear; - transition: background-color .2s linear; - right: 0; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out; + transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out; + -o-transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out; + -moz-transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out; + transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out; + transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -webkit-border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out; + right: 2px; /* there must be 'right' for ps-scrollbar-y */ - width: 8px; } - .ps-container:hover.ps-in-scrolling { - pointer-events: none; } - .ps-container:hover.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail { - background-color: #eee; - opacity: 0.9; } - .ps-container:hover.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail > .ps-scrollbar-x { - background-color: #999; } - .ps-container:hover.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail { - background-color: #eee; - opacity: 0.9; } - .ps-container:hover.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail > .ps-scrollbar-y { - background-color: #999; } + width: 6px; } + .ps-container > .ps-scrollbar-y-rail:hover > .ps-scrollbar-y, .ps-container > .ps-scrollbar-y-rail:active > .ps-scrollbar-y { + width: 11px; } + .ps-container:hover.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail { + background-color: #eee; + opacity: 0.9; } + .ps-container:hover.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail > .ps-scrollbar-x { + background-color: #999; + height: 11px; } + .ps-container:hover.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail { + background-color: #eee; + opacity: 0.9; } + .ps-container:hover.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail > .ps-scrollbar-y { + background-color: #999; + width: 11px; } .ps-container:hover > .ps-scrollbar-x-rail, .ps-container:hover > .ps-scrollbar-y-rail { opacity: 0.6; } diff --git a/library/perfect-scrollbar/perfect-scrollbar.jquery.js b/library/perfect-scrollbar/perfect-scrollbar.jquery.js index d94ed91bcd..5872325b73 100644 --- a/library/perfect-scrollbar/perfect-scrollbar.jquery.js +++ b/library/perfect-scrollbar/perfect-scrollbar.jquery.js @@ -1,16 +1,9 @@ -/* perfect-scrollbar v0.6.10 - * - * Copyright (c) 2015 Hyunje Alex Jun and other contributors - * Licensed under the MIT License - * - * Source: https://github.com/noraesae/perfect-scrollbar - */ - +/* perfect-scrollbar v0.6.15 */ (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o i.scrollbarYTop ? 1 : -1; - if (positionRatio < 0) { - positionRatio = 0; - } else if (positionRatio > 1) { - positionRatio = 1; - } - - updateScroll(element, 'top', (i.contentHeight - i.containerHeight) * positionRatio); + updateScroll(element, 'top', element.scrollTop + direction * i.containerHeight); updateGeometry(element); e.stopPropagation(); }); - if (i.settings.stopPropagationOnClick) { - i.event.bind(i.scrollbarX, 'click', stopPropagation); - } + i.event.bind(i.scrollbarX, 'click', stopPropagation); i.event.bind(i.scrollbarXRail, 'click', function (e) { - var halfOfScrollbarLength = h.toInt(i.scrollbarXWidth / 2); - var positionLeft = i.railXRatio * (e.pageX - window.pageXOffset - pageOffset(i.scrollbarXRail).left - halfOfScrollbarLength); - var maxPositionLeft = i.railXRatio * (i.railXWidth - i.scrollbarXWidth); - var positionRatio = positionLeft / maxPositionLeft; + var positionLeft = e.pageX - window.pageXOffset - pageOffset(i.scrollbarXRail).left; + var direction = positionLeft > i.scrollbarXLeft ? 1 : -1; - if (positionRatio < 0) { - positionRatio = 0; - } else if (positionRatio > 1) { - positionRatio = 1; - } - - updateScroll(element, 'left', ((i.contentWidth - i.containerWidth) * positionRatio) - i.negativeScrollAdjustment); + updateScroll(element, 'left', element.scrollLeft + direction * i.containerWidth); updateGeometry(element); e.stopPropagation(); @@ -471,14 +441,14 @@ module.exports = function (element) { bindClickRailHandler(element, i); }; -},{"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],11:[function(require,module,exports){ +},{"../instances":18,"../update-geometry":19,"../update-scroll":20}],11:[function(require,module,exports){ 'use strict'; -var d = require('../../lib/dom') - , h = require('../../lib/helper') - , instances = require('../instances') - , updateGeometry = require('../update-geometry') - , updateScroll = require('../update-scroll'); +var _ = require('../../lib/helper'); +var dom = require('../../lib/dom'); +var instances = require('../instances'); +var updateGeometry = require('../update-geometry'); +var updateScroll = require('../update-scroll'); function bindMouseScrollXHandler(element, i) { var currentLeft = null; @@ -496,7 +466,7 @@ function bindMouseScrollXHandler(element, i) { i.scrollbarXLeft = newLeft; } - var scrollLeft = h.toInt(i.scrollbarXLeft * (i.contentWidth - i.containerWidth) / (i.containerWidth - (i.railXRatio * i.scrollbarXWidth))) - i.negativeScrollAdjustment; + var scrollLeft = _.toInt(i.scrollbarXLeft * (i.contentWidth - i.containerWidth) / (i.containerWidth - (i.railXRatio * i.scrollbarXWidth))) - i.negativeScrollAdjustment; updateScroll(element, 'left', scrollLeft); } @@ -508,14 +478,14 @@ function bindMouseScrollXHandler(element, i) { }; var mouseUpHandler = function () { - h.stopScrolling(element, 'x'); + _.stopScrolling(element, 'x'); i.event.unbind(i.ownerDocument, 'mousemove', mouseMoveHandler); }; i.event.bind(i.scrollbarX, 'mousedown', function (e) { currentPageX = e.pageX; - currentLeft = h.toInt(d.css(i.scrollbarX, 'left')) * i.railXRatio; - h.startScrolling(element, 'x'); + currentLeft = _.toInt(dom.css(i.scrollbarX, 'left')) * i.railXRatio; + _.startScrolling(element, 'x'); i.event.bind(i.ownerDocument, 'mousemove', mouseMoveHandler); i.event.once(i.ownerDocument, 'mouseup', mouseUpHandler); @@ -541,7 +511,7 @@ function bindMouseScrollYHandler(element, i) { i.scrollbarYTop = newTop; } - var scrollTop = h.toInt(i.scrollbarYTop * (i.contentHeight - i.containerHeight) / (i.containerHeight - (i.railYRatio * i.scrollbarYHeight))); + var scrollTop = _.toInt(i.scrollbarYTop * (i.contentHeight - i.containerHeight) / (i.containerHeight - (i.railYRatio * i.scrollbarYHeight))); updateScroll(element, 'top', scrollTop); } @@ -553,14 +523,14 @@ function bindMouseScrollYHandler(element, i) { }; var mouseUpHandler = function () { - h.stopScrolling(element, 'y'); + _.stopScrolling(element, 'y'); i.event.unbind(i.ownerDocument, 'mousemove', mouseMoveHandler); }; i.event.bind(i.scrollbarY, 'mousedown', function (e) { currentPageY = e.pageY; - currentTop = h.toInt(d.css(i.scrollbarY, 'top')) * i.railYRatio; - h.startScrolling(element, 'y'); + currentTop = _.toInt(dom.css(i.scrollbarY, 'top')) * i.railYRatio; + _.startScrolling(element, 'y'); i.event.bind(i.ownerDocument, 'mousemove', mouseMoveHandler); i.event.once(i.ownerDocument, 'mouseup', mouseUpHandler); @@ -579,11 +549,11 @@ module.exports = function (element) { },{"../../lib/dom":3,"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],12:[function(require,module,exports){ 'use strict'; -var h = require('../../lib/helper') - , d = require('../../lib/dom') - , instances = require('../instances') - , updateGeometry = require('../update-geometry') - , updateScroll = require('../update-scroll'); +var _ = require('../../lib/helper'); +var dom = require('../../lib/dom'); +var instances = require('../instances'); +var updateGeometry = require('../update-geometry'); +var updateScroll = require('../update-scroll'); function bindKeyboardHandler(element, i) { var hovered = false; @@ -619,12 +589,12 @@ function bindKeyboardHandler(element, i) { } i.event.bind(i.ownerDocument, 'keydown', function (e) { - if (e.isDefaultPrevented && e.isDefaultPrevented()) { + if ((e.isDefaultPrevented && e.isDefaultPrevented()) || e.defaultPrevented) { return; } - var focused = d.matches(i.scrollbarX, ':focus') || - d.matches(i.scrollbarY, ':focus'); + var focused = dom.matches(i.scrollbarX, ':focus') || + dom.matches(i.scrollbarY, ':focus'); if (!hovered && !focused) { return; @@ -632,11 +602,15 @@ function bindKeyboardHandler(element, i) { var activeElement = document.activeElement ? document.activeElement : i.ownerDocument.activeElement; if (activeElement) { - // go deeper if element is a webcomponent - while (activeElement.shadowRoot) { - activeElement = activeElement.shadowRoot.activeElement; + if (activeElement.tagName === 'IFRAME') { + activeElement = activeElement.contentDocument.activeElement; + } else { + // go deeper if element is a webcomponent + while (activeElement.shadowRoot) { + activeElement = activeElement.shadowRoot.activeElement; + } } - if (h.isEditable(activeElement)) { + if (_.isEditable(activeElement)) { return; } } @@ -646,16 +620,40 @@ function bindKeyboardHandler(element, i) { switch (e.which) { case 37: // left - deltaX = -30; + if (e.metaKey) { + deltaX = -i.contentWidth; + } else if (e.altKey) { + deltaX = -i.containerWidth; + } else { + deltaX = -30; + } break; case 38: // up - deltaY = 30; + if (e.metaKey) { + deltaY = i.contentHeight; + } else if (e.altKey) { + deltaY = i.containerHeight; + } else { + deltaY = 30; + } break; case 39: // right - deltaX = 30; + if (e.metaKey) { + deltaX = i.contentWidth; + } else if (e.altKey) { + deltaX = i.containerWidth; + } else { + deltaX = 30; + } break; case 40: // down - deltaY = -30; + if (e.metaKey) { + deltaY = -i.contentHeight; + } else if (e.altKey) { + deltaY = -i.containerHeight; + } else { + deltaY = -30; + } break; case 33: // page up deltaY = 90; @@ -707,9 +705,9 @@ module.exports = function (element) { },{"../../lib/dom":3,"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],13:[function(require,module,exports){ 'use strict'; -var instances = require('../instances') - , updateGeometry = require('../update-geometry') - , updateScroll = require('../update-scroll'); +var instances = require('../instances'); +var updateGeometry = require('../update-geometry'); +var updateScroll = require('../update-scroll'); function bindMouseWheelHandler(element, i) { var shouldPrevent = false; @@ -759,23 +757,30 @@ function bindMouseWheelHandler(element, i) { deltaY = e.wheelDelta; } + if (e.shiftKey) { + // reverse axis with shift key + return [-deltaY, -deltaX]; + } return [deltaX, deltaY]; } - function shouldBeConsumedByTextarea(deltaX, deltaY) { - var hoveredTextarea = element.querySelector('textarea:hover'); - if (hoveredTextarea) { - var maxScrollTop = hoveredTextarea.scrollHeight - hoveredTextarea.clientHeight; + function shouldBeConsumedByChild(deltaX, deltaY) { + var child = element.querySelector('textarea:hover, select[multiple]:hover, .ps-child:hover'); + if (child) { + if (!window.getComputedStyle(child).overflow.match(/(scroll|auto)/)) { + // if not scrollable + return false; + } + + var maxScrollTop = child.scrollHeight - child.clientHeight; if (maxScrollTop > 0) { - if (!(hoveredTextarea.scrollTop === 0 && deltaY > 0) && - !(hoveredTextarea.scrollTop === maxScrollTop && deltaY < 0)) { + if (!(child.scrollTop === 0 && deltaY > 0) && !(child.scrollTop === maxScrollTop && deltaY < 0)) { return true; } } - var maxScrollLeft = hoveredTextarea.scrollLeft - hoveredTextarea.clientWidth; + var maxScrollLeft = child.scrollLeft - child.clientWidth; if (maxScrollLeft > 0) { - if (!(hoveredTextarea.scrollLeft === 0 && deltaX < 0) && - !(hoveredTextarea.scrollLeft === maxScrollLeft && deltaX > 0)) { + if (!(child.scrollLeft === 0 && deltaX < 0) && !(child.scrollLeft === maxScrollLeft && deltaX > 0)) { return true; } } @@ -789,7 +794,7 @@ function bindMouseWheelHandler(element, i) { var deltaX = delta[0]; var deltaY = delta[1]; - if (shouldBeConsumedByTextarea(deltaX, deltaY)) { + if (shouldBeConsumedByChild(deltaX, deltaY)) { return; } @@ -843,8 +848,8 @@ module.exports = function (element) { },{"../instances":18,"../update-geometry":19,"../update-scroll":20}],14:[function(require,module,exports){ 'use strict'; -var instances = require('../instances') - , updateGeometry = require('../update-geometry'); +var instances = require('../instances'); +var updateGeometry = require('../update-geometry'); function bindNativeScrollHandler(element, i) { i.event.bind(element, 'scroll', function () { @@ -860,10 +865,10 @@ module.exports = function (element) { },{"../instances":18,"../update-geometry":19}],15:[function(require,module,exports){ 'use strict'; -var h = require('../../lib/helper') - , instances = require('../instances') - , updateGeometry = require('../update-geometry') - , updateScroll = require('../update-scroll'); +var _ = require('../../lib/helper'); +var instances = require('../instances'); +var updateGeometry = require('../update-geometry'); +var updateScroll = require('../update-scroll'); function bindSelectionHandler(element, i) { function getRangeNode() { @@ -897,7 +902,7 @@ function bindSelectionHandler(element, i) { clearInterval(scrollingLoop); scrollingLoop = null; } - h.stopScrolling(element); + _.stopScrolling(element); } var isSelected = false; @@ -915,6 +920,12 @@ function bindSelectionHandler(element, i) { stopScrolling(); } }); + i.event.bind(window, 'keyup', function () { + if (isSelected) { + isSelected = false; + stopScrolling(); + } + }); i.event.bind(window, 'mousemove', function (e) { if (isSelected) { @@ -928,10 +939,10 @@ function bindSelectionHandler(element, i) { if (mousePosition.x < containerGeometry.left + 3) { scrollDiff.left = -5; - h.startScrolling(element, 'x'); + _.startScrolling(element, 'x'); } else if (mousePosition.x > containerGeometry.right - 3) { scrollDiff.left = 5; - h.startScrolling(element, 'x'); + _.startScrolling(element, 'x'); } else { scrollDiff.left = 0; } @@ -942,14 +953,14 @@ function bindSelectionHandler(element, i) { } else { scrollDiff.top = -20; } - h.startScrolling(element, 'y'); + _.startScrolling(element, 'y'); } else if (mousePosition.y > containerGeometry.bottom - 3) { if (mousePosition.y - containerGeometry.bottom + 3 < 5) { scrollDiff.top = 5; } else { scrollDiff.top = 20; } - h.startScrolling(element, 'y'); + _.startScrolling(element, 'y'); } else { scrollDiff.top = 0; } @@ -971,9 +982,10 @@ module.exports = function (element) { },{"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],16:[function(require,module,exports){ 'use strict'; -var instances = require('../instances') - , updateGeometry = require('../update-geometry') - , updateScroll = require('../update-scroll'); +var _ = require('../../lib/helper'); +var instances = require('../instances'); +var updateGeometry = require('../update-geometry'); +var updateScroll = require('../update-scroll'); function bindTouchHandler(element, i, supportsTouch, supportsIePointer) { function shouldPreventDefault(deltaX, deltaY) { @@ -1058,6 +1070,9 @@ function bindTouchHandler(element, i, supportsTouch, supportsIePointer) { } } function touchMove(e) { + if (!inLocalTouch && i.settings.swipePropagation) { + touchStart(e); + } if (!inGlobalTouch && inLocalTouch && shouldHandle(e)) { var touch = getTouch(e); @@ -1095,6 +1110,11 @@ function bindTouchHandler(element, i, supportsTouch, supportsIePointer) { return; } + if (!speed.x && !speed.y) { + clearInterval(easingLoop); + return; + } + if (Math.abs(speed.x) < 0.01 && Math.abs(speed.y) < 0.01) { clearInterval(easingLoop); return; @@ -1133,27 +1153,33 @@ function bindTouchHandler(element, i, supportsTouch, supportsIePointer) { } } -module.exports = function (element, supportsTouch, supportsIePointer) { +module.exports = function (element) { + if (!_.env.supportsTouch && !_.env.supportsIePointer) { + return; + } + var i = instances.get(element); - bindTouchHandler(element, i, supportsTouch, supportsIePointer); + bindTouchHandler(element, i, _.env.supportsTouch, _.env.supportsIePointer); }; -},{"../instances":18,"../update-geometry":19,"../update-scroll":20}],17:[function(require,module,exports){ +},{"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],17:[function(require,module,exports){ 'use strict'; -var cls = require('../lib/class') - , h = require('../lib/helper') - , instances = require('./instances') - , updateGeometry = require('./update-geometry'); +var _ = require('../lib/helper'); +var cls = require('../lib/class'); +var instances = require('./instances'); +var updateGeometry = require('./update-geometry'); // Handlers -var clickRailHandler = require('./handler/click-rail') - , dragScrollbarHandler = require('./handler/drag-scrollbar') - , keyboardHandler = require('./handler/keyboard') - , mouseWheelHandler = require('./handler/mouse-wheel') - , nativeScrollHandler = require('./handler/native-scroll') - , selectionHandler = require('./handler/selection') - , touchHandler = require('./handler/touch'); +var handlers = { + 'click-rail': require('./handler/click-rail'), + 'drag-scrollbar': require('./handler/drag-scrollbar'), + 'keyboard': require('./handler/keyboard'), + 'wheel': require('./handler/mouse-wheel'), + 'touch': require('./handler/touch'), + 'selection': require('./handler/selection') +}; +var nativeScrollHandler = require('./handler/native-scroll'); module.exports = function (element, userSettings) { userSettings = typeof userSettings === 'object' ? userSettings : {}; @@ -1163,50 +1189,40 @@ module.exports = function (element, userSettings) { // Create a plugin instance. var i = instances.add(element); - i.settings = h.extend(i.settings, userSettings); + i.settings = _.extend(i.settings, userSettings); cls.add(element, 'ps-theme-' + i.settings.theme); - clickRailHandler(element); - dragScrollbarHandler(element); - mouseWheelHandler(element); + i.settings.handlers.forEach(function (handlerName) { + handlers[handlerName](element); + }); + nativeScrollHandler(element); - if (i.settings.useSelectionScroll) { - selectionHandler(element); - } - - if (h.env.supportsTouch || h.env.supportsIePointer) { - touchHandler(element, h.env.supportsTouch, h.env.supportsIePointer); - } - if (i.settings.useKeyboard) { - keyboardHandler(element); - } - updateGeometry(element); }; },{"../lib/class":2,"../lib/helper":6,"./handler/click-rail":10,"./handler/drag-scrollbar":11,"./handler/keyboard":12,"./handler/mouse-wheel":13,"./handler/native-scroll":14,"./handler/selection":15,"./handler/touch":16,"./instances":18,"./update-geometry":19}],18:[function(require,module,exports){ 'use strict'; -var cls = require('../lib/class') - , d = require('../lib/dom') - , defaultSettings = require('./default-setting') - , EventManager = require('../lib/event-manager') - , guid = require('../lib/guid') - , h = require('../lib/helper'); +var _ = require('../lib/helper'); +var cls = require('../lib/class'); +var defaultSettings = require('./default-setting'); +var dom = require('../lib/dom'); +var EventManager = require('../lib/event-manager'); +var guid = require('../lib/guid'); var instances = {}; function Instance(element) { var i = this; - i.settings = h.clone(defaultSettings); + i.settings = _.clone(defaultSettings); i.containerWidth = null; i.containerHeight = null; i.contentWidth = null; i.contentHeight = null; - i.isRtl = d.css(element, 'direction') === "rtl"; + i.isRtl = dom.css(element, 'direction') === "rtl"; i.isNegativeScroll = (function () { var originalScrollLeft = element.scrollLeft; var result = null; @@ -1227,67 +1243,55 @@ function Instance(element) { cls.remove(element, 'ps-focus'); } - i.scrollbarXRail = d.appendTo(d.e('div', 'ps-scrollbar-x-rail'), element); - i.scrollbarX = d.appendTo(d.e('div', 'ps-scrollbar-x'), i.scrollbarXRail); + i.scrollbarXRail = dom.appendTo(dom.e('div', 'ps-scrollbar-x-rail'), element); + i.scrollbarX = dom.appendTo(dom.e('div', 'ps-scrollbar-x'), i.scrollbarXRail); i.scrollbarX.setAttribute('tabindex', 0); i.event.bind(i.scrollbarX, 'focus', focus); i.event.bind(i.scrollbarX, 'blur', blur); i.scrollbarXActive = null; i.scrollbarXWidth = null; i.scrollbarXLeft = null; - i.scrollbarXBottom = h.toInt(d.css(i.scrollbarXRail, 'bottom')); + i.scrollbarXBottom = _.toInt(dom.css(i.scrollbarXRail, 'bottom')); i.isScrollbarXUsingBottom = i.scrollbarXBottom === i.scrollbarXBottom; // !isNaN - i.scrollbarXTop = i.isScrollbarXUsingBottom ? null : h.toInt(d.css(i.scrollbarXRail, 'top')); - i.railBorderXWidth = h.toInt(d.css(i.scrollbarXRail, 'borderLeftWidth')) + h.toInt(d.css(i.scrollbarXRail, 'borderRightWidth')); + i.scrollbarXTop = i.isScrollbarXUsingBottom ? null : _.toInt(dom.css(i.scrollbarXRail, 'top')); + i.railBorderXWidth = _.toInt(dom.css(i.scrollbarXRail, 'borderLeftWidth')) + _.toInt(dom.css(i.scrollbarXRail, 'borderRightWidth')); // Set rail to display:block to calculate margins - d.css(i.scrollbarXRail, 'display', 'block'); - i.railXMarginWidth = h.toInt(d.css(i.scrollbarXRail, 'marginLeft')) + h.toInt(d.css(i.scrollbarXRail, 'marginRight')); - d.css(i.scrollbarXRail, 'display', ''); + dom.css(i.scrollbarXRail, 'display', 'block'); + i.railXMarginWidth = _.toInt(dom.css(i.scrollbarXRail, 'marginLeft')) + _.toInt(dom.css(i.scrollbarXRail, 'marginRight')); + dom.css(i.scrollbarXRail, 'display', ''); i.railXWidth = null; i.railXRatio = null; - i.scrollbarYRail = d.appendTo(d.e('div', 'ps-scrollbar-y-rail'), element); - i.scrollbarY = d.appendTo(d.e('div', 'ps-scrollbar-y'), i.scrollbarYRail); + i.scrollbarYRail = dom.appendTo(dom.e('div', 'ps-scrollbar-y-rail'), element); + i.scrollbarY = dom.appendTo(dom.e('div', 'ps-scrollbar-y'), i.scrollbarYRail); i.scrollbarY.setAttribute('tabindex', 0); i.event.bind(i.scrollbarY, 'focus', focus); i.event.bind(i.scrollbarY, 'blur', blur); i.scrollbarYActive = null; i.scrollbarYHeight = null; i.scrollbarYTop = null; - i.scrollbarYRight = h.toInt(d.css(i.scrollbarYRail, 'right')); + i.scrollbarYRight = _.toInt(dom.css(i.scrollbarYRail, 'right')); i.isScrollbarYUsingRight = i.scrollbarYRight === i.scrollbarYRight; // !isNaN - i.scrollbarYLeft = i.isScrollbarYUsingRight ? null : h.toInt(d.css(i.scrollbarYRail, 'left')); - i.scrollbarYOuterWidth = i.isRtl ? h.outerWidth(i.scrollbarY) : null; - i.railBorderYWidth = h.toInt(d.css(i.scrollbarYRail, 'borderTopWidth')) + h.toInt(d.css(i.scrollbarYRail, 'borderBottomWidth')); - d.css(i.scrollbarYRail, 'display', 'block'); - i.railYMarginHeight = h.toInt(d.css(i.scrollbarYRail, 'marginTop')) + h.toInt(d.css(i.scrollbarYRail, 'marginBottom')); - d.css(i.scrollbarYRail, 'display', ''); + i.scrollbarYLeft = i.isScrollbarYUsingRight ? null : _.toInt(dom.css(i.scrollbarYRail, 'left')); + i.scrollbarYOuterWidth = i.isRtl ? _.outerWidth(i.scrollbarY) : null; + i.railBorderYWidth = _.toInt(dom.css(i.scrollbarYRail, 'borderTopWidth')) + _.toInt(dom.css(i.scrollbarYRail, 'borderBottomWidth')); + dom.css(i.scrollbarYRail, 'display', 'block'); + i.railYMarginHeight = _.toInt(dom.css(i.scrollbarYRail, 'marginTop')) + _.toInt(dom.css(i.scrollbarYRail, 'marginBottom')); + dom.css(i.scrollbarYRail, 'display', ''); i.railYHeight = null; i.railYRatio = null; } function getId(element) { - if (typeof element.dataset === 'undefined') { - return element.getAttribute('data-ps-id'); - } else { - return element.dataset.psId; - } + return element.getAttribute('data-ps-id'); } function setId(element, id) { - if (typeof element.dataset === 'undefined') { - element.setAttribute('data-ps-id', id); - } else { - element.dataset.psId = id; - } + element.setAttribute('data-ps-id', id); } function removeId(element) { - if (typeof element.dataset === 'undefined') { - element.removeAttribute('data-ps-id'); - } else { - delete element.dataset.psId; - } + element.removeAttribute('data-ps-id'); } exports.add = function (element) { @@ -1309,11 +1313,11 @@ exports.get = function (element) { },{"../lib/class":2,"../lib/dom":3,"../lib/event-manager":4,"../lib/guid":5,"../lib/helper":6,"./default-setting":8}],19:[function(require,module,exports){ 'use strict'; -var cls = require('../lib/class') - , d = require('../lib/dom') - , h = require('../lib/helper') - , instances = require('./instances') - , updateScroll = require('./update-scroll'); +var _ = require('../lib/helper'); +var cls = require('../lib/class'); +var dom = require('../lib/dom'); +var instances = require('./instances'); +var updateScroll = require('./update-scroll'); function getThumbSize(i, thumbSize) { if (i.settings.minScrollbarLength) { @@ -1337,7 +1341,7 @@ function updateCss(element, i) { } else { xRailOffset.top = i.scrollbarXTop + element.scrollTop; } - d.css(i.scrollbarXRail, xRailOffset); + dom.css(i.scrollbarXRail, xRailOffset); var yRailOffset = {top: element.scrollTop, height: i.railYHeight}; if (i.isScrollbarYUsingRight) { @@ -1353,10 +1357,10 @@ function updateCss(element, i) { yRailOffset.left = i.scrollbarYLeft + element.scrollLeft; } } - d.css(i.scrollbarYRail, yRailOffset); + dom.css(i.scrollbarYRail, yRailOffset); - d.css(i.scrollbarX, {left: i.scrollbarXLeft, width: i.scrollbarXWidth - i.railBorderXWidth}); - d.css(i.scrollbarY, {top: i.scrollbarYTop, height: i.scrollbarYHeight - i.railBorderYWidth}); + dom.css(i.scrollbarX, {left: i.scrollbarXLeft, width: i.scrollbarXWidth - i.railBorderXWidth}); + dom.css(i.scrollbarY, {top: i.scrollbarYTop, height: i.scrollbarYHeight - i.railBorderYWidth}); } module.exports = function (element) { @@ -1369,30 +1373,30 @@ module.exports = function (element) { var existingRails; if (!element.contains(i.scrollbarXRail)) { - existingRails = d.queryChildren(element, '.ps-scrollbar-x-rail'); + existingRails = dom.queryChildren(element, '.ps-scrollbar-x-rail'); if (existingRails.length > 0) { existingRails.forEach(function (rail) { - d.remove(rail); + dom.remove(rail); }); } - d.appendTo(i.scrollbarXRail, element); + dom.appendTo(i.scrollbarXRail, element); } if (!element.contains(i.scrollbarYRail)) { - existingRails = d.queryChildren(element, '.ps-scrollbar-y-rail'); + existingRails = dom.queryChildren(element, '.ps-scrollbar-y-rail'); if (existingRails.length > 0) { existingRails.forEach(function (rail) { - d.remove(rail); + dom.remove(rail); }); } - d.appendTo(i.scrollbarYRail, element); + dom.appendTo(i.scrollbarYRail, element); } if (!i.settings.suppressScrollX && i.containerWidth + i.settings.scrollXMarginOffset < i.contentWidth) { i.scrollbarXActive = true; i.railXWidth = i.containerWidth - i.railXMarginWidth; i.railXRatio = i.containerWidth / i.railXWidth; - i.scrollbarXWidth = getThumbSize(i, h.toInt(i.railXWidth * i.containerWidth / i.contentWidth)); - i.scrollbarXLeft = h.toInt((i.negativeScrollAdjustment + element.scrollLeft) * (i.railXWidth - i.scrollbarXWidth) / (i.contentWidth - i.containerWidth)); + i.scrollbarXWidth = getThumbSize(i, _.toInt(i.railXWidth * i.containerWidth / i.contentWidth)); + i.scrollbarXLeft = _.toInt((i.negativeScrollAdjustment + element.scrollLeft) * (i.railXWidth - i.scrollbarXWidth) / (i.contentWidth - i.containerWidth)); } else { i.scrollbarXActive = false; } @@ -1401,8 +1405,8 @@ module.exports = function (element) { i.scrollbarYActive = true; i.railYHeight = i.containerHeight - i.railYMarginHeight; i.railYRatio = i.containerHeight / i.railYHeight; - i.scrollbarYHeight = getThumbSize(i, h.toInt(i.railYHeight * i.containerHeight / i.contentHeight)); - i.scrollbarYTop = h.toInt(element.scrollTop * (i.railYHeight - i.scrollbarYHeight) / (i.contentHeight - i.containerHeight)); + i.scrollbarYHeight = getThumbSize(i, _.toInt(i.railYHeight * i.containerHeight / i.contentHeight)); + i.scrollbarYTop = _.toInt(element.scrollTop * (i.railYHeight - i.scrollbarYHeight) / (i.contentHeight - i.containerHeight)); } else { i.scrollbarYActive = false; } @@ -1439,29 +1443,14 @@ module.exports = function (element) { var instances = require('./instances'); -var upEvent = document.createEvent('Event') - , downEvent = document.createEvent('Event') - , leftEvent = document.createEvent('Event') - , rightEvent = document.createEvent('Event') - , yEvent = document.createEvent('Event') - , xEvent = document.createEvent('Event') - , xStartEvent = document.createEvent('Event') - , xEndEvent = document.createEvent('Event') - , yStartEvent = document.createEvent('Event') - , yEndEvent = document.createEvent('Event') - , lastTop - , lastLeft; +var lastTop; +var lastLeft; -upEvent.initEvent('ps-scroll-up', true, true); -downEvent.initEvent('ps-scroll-down', true, true); -leftEvent.initEvent('ps-scroll-left', true, true); -rightEvent.initEvent('ps-scroll-right', true, true); -yEvent.initEvent('ps-scroll-y', true, true); -xEvent.initEvent('ps-scroll-x', true, true); -xStartEvent.initEvent('ps-x-reach-start', true, true); -xEndEvent.initEvent('ps-x-reach-end', true, true); -yStartEvent.initEvent('ps-y-reach-start', true, true); -yEndEvent.initEvent('ps-y-reach-end', true, true); +var createDOMEvent = function (name) { + var event = document.createEvent("Event"); + event.initEvent(name, true, true); + return event; +}; module.exports = function (element, axis, value) { if (typeof element === 'undefined') { @@ -1478,24 +1467,38 @@ module.exports = function (element, axis, value) { if (axis === 'top' && value <= 0) { element.scrollTop = value = 0; // don't allow negative scroll - element.dispatchEvent(yStartEvent); + element.dispatchEvent(createDOMEvent('ps-y-reach-start')); } if (axis === 'left' && value <= 0) { element.scrollLeft = value = 0; // don't allow negative scroll - element.dispatchEvent(xStartEvent); + element.dispatchEvent(createDOMEvent('ps-x-reach-start')); } var i = instances.get(element); if (axis === 'top' && value >= i.contentHeight - i.containerHeight) { - element.scrollTop = value = i.contentHeight - i.containerHeight; // don't allow scroll past container - element.dispatchEvent(yEndEvent); + // don't allow scroll past container + value = i.contentHeight - i.containerHeight; + if (value - element.scrollTop <= 1) { + // mitigates rounding errors on non-subpixel scroll values + value = element.scrollTop; + } else { + element.scrollTop = value; + } + element.dispatchEvent(createDOMEvent('ps-y-reach-end')); } if (axis === 'left' && value >= i.contentWidth - i.containerWidth) { - element.scrollLeft = value = i.contentWidth - i.containerWidth; // don't allow scroll past container - element.dispatchEvent(xEndEvent); + // don't allow scroll past container + value = i.contentWidth - i.containerWidth; + if (value - element.scrollLeft <= 1) { + // mitigates rounding errors on non-subpixel scroll values + value = element.scrollLeft; + } else { + element.scrollLeft = value; + } + element.dispatchEvent(createDOMEvent('ps-x-reach-end')); } if (!lastTop) { @@ -1507,29 +1510,29 @@ module.exports = function (element, axis, value) { } if (axis === 'top' && value < lastTop) { - element.dispatchEvent(upEvent); + element.dispatchEvent(createDOMEvent('ps-scroll-up')); } if (axis === 'top' && value > lastTop) { - element.dispatchEvent(downEvent); + element.dispatchEvent(createDOMEvent('ps-scroll-down')); } if (axis === 'left' && value < lastLeft) { - element.dispatchEvent(leftEvent); + element.dispatchEvent(createDOMEvent('ps-scroll-left')); } if (axis === 'left' && value > lastLeft) { - element.dispatchEvent(rightEvent); + element.dispatchEvent(createDOMEvent('ps-scroll-right')); } if (axis === 'top') { element.scrollTop = lastTop = value; - element.dispatchEvent(yEvent); + element.dispatchEvent(createDOMEvent('ps-scroll-y')); } if (axis === 'left') { element.scrollLeft = lastLeft = value; - element.dispatchEvent(xEvent); + element.dispatchEvent(createDOMEvent('ps-scroll-x')); } }; @@ -1537,11 +1540,11 @@ module.exports = function (element, axis, value) { },{"./instances":18}],21:[function(require,module,exports){ 'use strict'; -var d = require('../lib/dom') - , h = require('../lib/helper') - , instances = require('./instances') - , updateGeometry = require('./update-geometry') - , updateScroll = require('./update-scroll'); +var _ = require('../lib/helper'); +var dom = require('../lib/dom'); +var instances = require('./instances'); +var updateGeometry = require('./update-geometry'); +var updateScroll = require('./update-scroll'); module.exports = function (element) { var i = instances.get(element); @@ -1554,14 +1557,14 @@ module.exports = function (element) { i.negativeScrollAdjustment = i.isNegativeScroll ? element.scrollWidth - element.clientWidth : 0; // Recalculate rail margins - d.css(i.scrollbarXRail, 'display', 'block'); - d.css(i.scrollbarYRail, 'display', 'block'); - i.railXMarginWidth = h.toInt(d.css(i.scrollbarXRail, 'marginLeft')) + h.toInt(d.css(i.scrollbarXRail, 'marginRight')); - i.railYMarginHeight = h.toInt(d.css(i.scrollbarYRail, 'marginTop')) + h.toInt(d.css(i.scrollbarYRail, 'marginBottom')); + dom.css(i.scrollbarXRail, 'display', 'block'); + dom.css(i.scrollbarYRail, 'display', 'block'); + i.railXMarginWidth = _.toInt(dom.css(i.scrollbarXRail, 'marginLeft')) + _.toInt(dom.css(i.scrollbarXRail, 'marginRight')); + i.railYMarginHeight = _.toInt(dom.css(i.scrollbarYRail, 'marginTop')) + _.toInt(dom.css(i.scrollbarYRail, 'marginBottom')); // Hide scrollbars not to affect scrollWidth and scrollHeight - d.css(i.scrollbarXRail, 'display', 'none'); - d.css(i.scrollbarYRail, 'display', 'none'); + dom.css(i.scrollbarXRail, 'display', 'none'); + dom.css(i.scrollbarYRail, 'display', 'none'); updateGeometry(element); @@ -1569,8 +1572,8 @@ module.exports = function (element) { updateScroll(element, 'top', element.scrollTop); updateScroll(element, 'left', element.scrollLeft); - d.css(i.scrollbarXRail, 'display', ''); - d.css(i.scrollbarYRail, 'display', ''); + dom.css(i.scrollbarXRail, 'display', ''); + dom.css(i.scrollbarYRail, 'display', ''); }; },{"../lib/dom":3,"../lib/helper":6,"./instances":18,"./update-geometry":19,"./update-scroll":20}]},{},[1]); diff --git a/library/perfect-scrollbar/perfect-scrollbar.jquery.min.js b/library/perfect-scrollbar/perfect-scrollbar.jquery.min.js new file mode 100644 index 0000000000..acb198df5a --- /dev/null +++ b/library/perfect-scrollbar/perfect-scrollbar.jquery.min.js @@ -0,0 +1,2 @@ +/* perfect-scrollbar v0.6.15 */ +!function t(e,n,r){function o(i,s){if(!n[i]){if(!e[i]){var a="function"==typeof require&&require;if(!s&&a)return a(i,!0);if(l)return l(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var u=n[i]={exports:{}};e[i][0].call(u.exports,function(t){var n=e[i][1][t];return o(n?n:t)},u,u.exports,t,e,n,r)}return n[i].exports}for(var l="function"==typeof require&&require,i=0;i=0&&n.splice(r,1),t.className=n.join(" ")}n.add=function(t,e){t.classList?t.classList.add(e):r(t,e)},n.remove=function(t,e){t.classList?t.classList.remove(e):o(t,e)},n.list=function(t){return t.classList?Array.prototype.slice.apply(t.classList):t.className.split(" ")}},{}],3:[function(t,e,n){"use strict";function r(t,e){return window.getComputedStyle(t)[e]}function o(t,e,n){return"number"==typeof n&&(n=n.toString()+"px"),t.style[e]=n,t}function l(t,e){for(var n in e){var r=e[n];"number"==typeof r&&(r=r.toString()+"px"),t.style[n]=r}return t}var i={};i.e=function(t,e){var n=document.createElement(t);return n.className=e,n},i.appendTo=function(t,e){return e.appendChild(t),t},i.css=function(t,e,n){return"object"==typeof e?l(t,e):"undefined"==typeof n?r(t,e):o(t,e,n)},i.matches=function(t,e){return"undefined"!=typeof t.matches?t.matches(e):"undefined"!=typeof t.matchesSelector?t.matchesSelector(e):"undefined"!=typeof t.webkitMatchesSelector?t.webkitMatchesSelector(e):"undefined"!=typeof t.mozMatchesSelector?t.mozMatchesSelector(e):"undefined"!=typeof t.msMatchesSelector?t.msMatchesSelector(e):void 0},i.remove=function(t){"undefined"!=typeof t.remove?t.remove():t.parentNode&&t.parentNode.removeChild(t)},i.queryChildren=function(t,e){return Array.prototype.filter.call(t.childNodes,function(t){return i.matches(t,e)})},e.exports=i},{}],4:[function(t,e,n){"use strict";var r=function(t){this.element=t,this.events={}};r.prototype.bind=function(t,e){"undefined"==typeof this.events[t]&&(this.events[t]=[]),this.events[t].push(e),this.element.addEventListener(t,e,!1)},r.prototype.unbind=function(t,e){var n="undefined"!=typeof e;this.events[t]=this.events[t].filter(function(r){return!(!n||r===e)||(this.element.removeEventListener(t,r,!1),!1)},this)},r.prototype.unbindAll=function(){for(var t in this.events)this.unbind(t)};var o=function(){this.eventElements=[]};o.prototype.eventElement=function(t){var e=this.eventElements.filter(function(e){return e.element===t})[0];return"undefined"==typeof e&&(e=new r(t),this.eventElements.push(e)),e},o.prototype.bind=function(t,e,n){this.eventElement(t).bind(e,n)},o.prototype.unbind=function(t,e,n){this.eventElement(t).unbind(e,n)},o.prototype.unbindAll=function(){for(var t=0;te.scrollbarYTop?1:-1;i(t,"top",t.scrollTop+s*e.containerHeight),l(t),r.stopPropagation()}),e.event.bind(e.scrollbarX,"click",r),e.event.bind(e.scrollbarXRail,"click",function(r){var o=r.pageX-window.pageXOffset-n(e.scrollbarXRail).left,s=o>e.scrollbarXLeft?1:-1;i(t,"left",t.scrollLeft+s*e.containerWidth),l(t),r.stopPropagation()})}var o=t("../instances"),l=t("../update-geometry"),i=t("../update-scroll");e.exports=function(t){var e=o.get(t);r(t,e)}},{"../instances":18,"../update-geometry":19,"../update-scroll":20}],11:[function(t,e,n){"use strict";function r(t,e){function n(n){var o=r+n*e.railXRatio,i=Math.max(0,e.scrollbarXRail.getBoundingClientRect().left)+e.railXRatio*(e.railXWidth-e.scrollbarXWidth);o<0?e.scrollbarXLeft=0:o>i?e.scrollbarXLeft=i:e.scrollbarXLeft=o;var s=l.toInt(e.scrollbarXLeft*(e.contentWidth-e.containerWidth)/(e.containerWidth-e.railXRatio*e.scrollbarXWidth))-e.negativeScrollAdjustment;c(t,"left",s)}var r=null,o=null,s=function(e){n(e.pageX-o),a(t),e.stopPropagation(),e.preventDefault()},u=function(){l.stopScrolling(t,"x"),e.event.unbind(e.ownerDocument,"mousemove",s)};e.event.bind(e.scrollbarX,"mousedown",function(n){o=n.pageX,r=l.toInt(i.css(e.scrollbarX,"left"))*e.railXRatio,l.startScrolling(t,"x"),e.event.bind(e.ownerDocument,"mousemove",s),e.event.once(e.ownerDocument,"mouseup",u),n.stopPropagation(),n.preventDefault()})}function o(t,e){function n(n){var o=r+n*e.railYRatio,i=Math.max(0,e.scrollbarYRail.getBoundingClientRect().top)+e.railYRatio*(e.railYHeight-e.scrollbarYHeight);o<0?e.scrollbarYTop=0:o>i?e.scrollbarYTop=i:e.scrollbarYTop=o;var s=l.toInt(e.scrollbarYTop*(e.contentHeight-e.containerHeight)/(e.containerHeight-e.railYRatio*e.scrollbarYHeight));c(t,"top",s)}var r=null,o=null,s=function(e){n(e.pageY-o),a(t),e.stopPropagation(),e.preventDefault()},u=function(){l.stopScrolling(t,"y"),e.event.unbind(e.ownerDocument,"mousemove",s)};e.event.bind(e.scrollbarY,"mousedown",function(n){o=n.pageY,r=l.toInt(i.css(e.scrollbarY,"top"))*e.railYRatio,l.startScrolling(t,"y"),e.event.bind(e.ownerDocument,"mousemove",s),e.event.once(e.ownerDocument,"mouseup",u),n.stopPropagation(),n.preventDefault()})}var l=t("../../lib/helper"),i=t("../../lib/dom"),s=t("../instances"),a=t("../update-geometry"),c=t("../update-scroll");e.exports=function(t){var e=s.get(t);r(t,e),o(t,e)}},{"../../lib/dom":3,"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],12:[function(t,e,n){"use strict";function r(t,e){function n(n,r){var o=t.scrollTop;if(0===n){if(!e.scrollbarYActive)return!1;if(0===o&&r>0||o>=e.contentHeight-e.containerHeight&&r<0)return!e.settings.wheelPropagation}var l=t.scrollLeft;if(0===r){if(!e.scrollbarXActive)return!1;if(0===l&&n<0||l>=e.contentWidth-e.containerWidth&&n>0)return!e.settings.wheelPropagation}return!0}var r=!1;e.event.bind(t,"mouseenter",function(){r=!0}),e.event.bind(t,"mouseleave",function(){r=!1});var i=!1;e.event.bind(e.ownerDocument,"keydown",function(c){if(!(c.isDefaultPrevented&&c.isDefaultPrevented()||c.defaultPrevented)){var u=l.matches(e.scrollbarX,":focus")||l.matches(e.scrollbarY,":focus");if(r||u){var d=document.activeElement?document.activeElement:e.ownerDocument.activeElement;if(d){if("IFRAME"===d.tagName)d=d.contentDocument.activeElement;else for(;d.shadowRoot;)d=d.shadowRoot.activeElement;if(o.isEditable(d))return}var p=0,f=0;switch(c.which){case 37:p=c.metaKey?-e.contentWidth:c.altKey?-e.containerWidth:-30;break;case 38:f=c.metaKey?e.contentHeight:c.altKey?e.containerHeight:30;break;case 39:p=c.metaKey?e.contentWidth:c.altKey?e.containerWidth:30;break;case 40:f=c.metaKey?-e.contentHeight:c.altKey?-e.containerHeight:-30;break;case 33:f=90;break;case 32:f=c.shiftKey?90:-90;break;case 34:f=-90;break;case 35:f=c.ctrlKey?-e.contentHeight:-e.containerHeight;break;case 36:f=c.ctrlKey?t.scrollTop:e.containerHeight;break;default:return}a(t,"top",t.scrollTop-f),a(t,"left",t.scrollLeft+p),s(t),i=n(p,f),i&&c.preventDefault()}}})}var o=t("../../lib/helper"),l=t("../../lib/dom"),i=t("../instances"),s=t("../update-geometry"),a=t("../update-scroll");e.exports=function(t){var e=i.get(t);r(t,e)}},{"../../lib/dom":3,"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],13:[function(t,e,n){"use strict";function r(t,e){function n(n,r){var o=t.scrollTop;if(0===n){if(!e.scrollbarYActive)return!1;if(0===o&&r>0||o>=e.contentHeight-e.containerHeight&&r<0)return!e.settings.wheelPropagation}var l=t.scrollLeft;if(0===r){if(!e.scrollbarXActive)return!1;if(0===l&&n<0||l>=e.contentWidth-e.containerWidth&&n>0)return!e.settings.wheelPropagation}return!0}function r(t){var e=t.deltaX,n=-1*t.deltaY;return"undefined"!=typeof e&&"undefined"!=typeof n||(e=-1*t.wheelDeltaX/6,n=t.wheelDeltaY/6),t.deltaMode&&1===t.deltaMode&&(e*=10,n*=10),e!==e&&n!==n&&(e=0,n=t.wheelDelta),t.shiftKey?[-n,-e]:[e,n]}function o(e,n){var r=t.querySelector("textarea:hover, select[multiple]:hover, .ps-child:hover");if(r){if(!window.getComputedStyle(r).overflow.match(/(scroll|auto)/))return!1;var o=r.scrollHeight-r.clientHeight;if(o>0&&!(0===r.scrollTop&&n>0||r.scrollTop===o&&n<0))return!0;var l=r.scrollLeft-r.clientWidth;if(l>0&&!(0===r.scrollLeft&&e<0||r.scrollLeft===l&&e>0))return!0}return!1}function s(s){var c=r(s),u=c[0],d=c[1];o(u,d)||(a=!1,e.settings.useBothWheelAxes?e.scrollbarYActive&&!e.scrollbarXActive?(d?i(t,"top",t.scrollTop-d*e.settings.wheelSpeed):i(t,"top",t.scrollTop+u*e.settings.wheelSpeed),a=!0):e.scrollbarXActive&&!e.scrollbarYActive&&(u?i(t,"left",t.scrollLeft+u*e.settings.wheelSpeed):i(t,"left",t.scrollLeft-d*e.settings.wheelSpeed),a=!0):(i(t,"top",t.scrollTop-d*e.settings.wheelSpeed),i(t,"left",t.scrollLeft+u*e.settings.wheelSpeed)),l(t),a=a||n(u,d),a&&(s.stopPropagation(),s.preventDefault()))}var a=!1;"undefined"!=typeof window.onwheel?e.event.bind(t,"wheel",s):"undefined"!=typeof window.onmousewheel&&e.event.bind(t,"mousewheel",s)}var o=t("../instances"),l=t("../update-geometry"),i=t("../update-scroll");e.exports=function(t){var e=o.get(t);r(t,e)}},{"../instances":18,"../update-geometry":19,"../update-scroll":20}],14:[function(t,e,n){"use strict";function r(t,e){e.event.bind(t,"scroll",function(){l(t)})}var o=t("../instances"),l=t("../update-geometry");e.exports=function(t){var e=o.get(t);r(t,e)}},{"../instances":18,"../update-geometry":19}],15:[function(t,e,n){"use strict";function r(t,e){function n(){var t=window.getSelection?window.getSelection():document.getSelection?document.getSelection():"";return 0===t.toString().length?null:t.getRangeAt(0).commonAncestorContainer}function r(){c||(c=setInterval(function(){return l.get(t)?(s(t,"top",t.scrollTop+u.top),s(t,"left",t.scrollLeft+u.left),void i(t)):void clearInterval(c)},50))}function a(){c&&(clearInterval(c),c=null),o.stopScrolling(t)}var c=null,u={top:0,left:0},d=!1;e.event.bind(e.ownerDocument,"selectionchange",function(){t.contains(n())?d=!0:(d=!1,a())}),e.event.bind(window,"mouseup",function(){d&&(d=!1,a())}),e.event.bind(window,"keyup",function(){d&&(d=!1,a())}),e.event.bind(window,"mousemove",function(e){if(d){var n={x:e.pageX,y:e.pageY},l={left:t.offsetLeft,right:t.offsetLeft+t.offsetWidth,top:t.offsetTop,bottom:t.offsetTop+t.offsetHeight};n.xl.right-3?(u.left=5,o.startScrolling(t,"x")):u.left=0,n.yl.bottom-3?(n.y-l.bottom+3<5?u.top=5:u.top=20,o.startScrolling(t,"y")):u.top=0,0===u.top&&0===u.left?a():r()}})}var o=t("../../lib/helper"),l=t("../instances"),i=t("../update-geometry"),s=t("../update-scroll");e.exports=function(t){var e=l.get(t);r(t,e)}},{"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],16:[function(t,e,n){"use strict";function r(t,e,n,r){function o(n,r){var o=t.scrollTop,l=t.scrollLeft,i=Math.abs(n),s=Math.abs(r);if(s>i){if(r<0&&o===e.contentHeight-e.containerHeight||r>0&&0===o)return!e.settings.swipePropagation}else if(i>s&&(n<0&&l===e.contentWidth-e.containerWidth||n>0&&0===l))return!e.settings.swipePropagation;return!0}function a(e,n){s(t,"top",t.scrollTop-n),s(t,"left",t.scrollLeft-e),i(t)}function c(){w=!0}function u(){w=!1}function d(t){return t.targetTouches?t.targetTouches[0]:t}function p(t){return!(!t.targetTouches||1!==t.targetTouches.length)||!(!t.pointerType||"mouse"===t.pointerType||t.pointerType===t.MSPOINTER_TYPE_MOUSE)}function f(t){if(p(t)){Y=!0;var e=d(t);g.pageX=e.pageX,g.pageY=e.pageY,v=(new Date).getTime(),null!==y&&clearInterval(y),t.stopPropagation()}}function h(t){if(!Y&&e.settings.swipePropagation&&f(t),!w&&Y&&p(t)){var n=d(t),r={pageX:n.pageX,pageY:n.pageY},l=r.pageX-g.pageX,i=r.pageY-g.pageY;a(l,i),g=r;var s=(new Date).getTime(),c=s-v;c>0&&(m.x=l/c,m.y=i/c,v=s),o(l,i)&&(t.stopPropagation(),t.preventDefault())}}function b(){!w&&Y&&(Y=!1,clearInterval(y),y=setInterval(function(){return l.get(t)&&(m.x||m.y)?Math.abs(m.x)<.01&&Math.abs(m.y)<.01?void clearInterval(y):(a(30*m.x,30*m.y),m.x*=.8,void(m.y*=.8)):void clearInterval(y)},10))}var g={},v=0,m={},y=null,w=!1,Y=!1;n&&(e.event.bind(window,"touchstart",c),e.event.bind(window,"touchend",u),e.event.bind(t,"touchstart",f),e.event.bind(t,"touchmove",h),e.event.bind(t,"touchend",b)),r&&(window.PointerEvent?(e.event.bind(window,"pointerdown",c),e.event.bind(window,"pointerup",u),e.event.bind(t,"pointerdown",f),e.event.bind(t,"pointermove",h),e.event.bind(t,"pointerup",b)):window.MSPointerEvent&&(e.event.bind(window,"MSPointerDown",c),e.event.bind(window,"MSPointerUp",u),e.event.bind(t,"MSPointerDown",f),e.event.bind(t,"MSPointerMove",h),e.event.bind(t,"MSPointerUp",b)))}var o=t("../../lib/helper"),l=t("../instances"),i=t("../update-geometry"),s=t("../update-scroll");e.exports=function(t){if(o.env.supportsTouch||o.env.supportsIePointer){var e=l.get(t);r(t,e,o.env.supportsTouch,o.env.supportsIePointer)}}},{"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],17:[function(t,e,n){"use strict";var r=t("../lib/helper"),o=t("../lib/class"),l=t("./instances"),i=t("./update-geometry"),s={"click-rail":t("./handler/click-rail"),"drag-scrollbar":t("./handler/drag-scrollbar"),keyboard:t("./handler/keyboard"),wheel:t("./handler/mouse-wheel"),touch:t("./handler/touch"),selection:t("./handler/selection")},a=t("./handler/native-scroll");e.exports=function(t,e){e="object"==typeof e?e:{},o.add(t,"ps-container");var n=l.add(t);n.settings=r.extend(n.settings,e),o.add(t,"ps-theme-"+n.settings.theme),n.settings.handlers.forEach(function(e){s[e](t)}),a(t),i(t)}},{"../lib/class":2,"../lib/helper":6,"./handler/click-rail":10,"./handler/drag-scrollbar":11,"./handler/keyboard":12,"./handler/mouse-wheel":13,"./handler/native-scroll":14,"./handler/selection":15,"./handler/touch":16,"./instances":18,"./update-geometry":19}],18:[function(t,e,n){"use strict";function r(t){function e(){a.add(t,"ps-focus")}function n(){a.remove(t,"ps-focus")}var r=this;r.settings=s.clone(c),r.containerWidth=null,r.containerHeight=null,r.contentWidth=null,r.contentHeight=null,r.isRtl="rtl"===u.css(t,"direction"),r.isNegativeScroll=function(){var e=t.scrollLeft,n=null;return t.scrollLeft=-1,n=t.scrollLeft<0,t.scrollLeft=e,n}(),r.negativeScrollAdjustment=r.isNegativeScroll?t.scrollWidth-t.clientWidth:0,r.event=new d,r.ownerDocument=t.ownerDocument||document,r.scrollbarXRail=u.appendTo(u.e("div","ps-scrollbar-x-rail"),t),r.scrollbarX=u.appendTo(u.e("div","ps-scrollbar-x"),r.scrollbarXRail),r.scrollbarX.setAttribute("tabindex",0),r.event.bind(r.scrollbarX,"focus",e),r.event.bind(r.scrollbarX,"blur",n),r.scrollbarXActive=null,r.scrollbarXWidth=null,r.scrollbarXLeft=null,r.scrollbarXBottom=s.toInt(u.css(r.scrollbarXRail,"bottom")),r.isScrollbarXUsingBottom=r.scrollbarXBottom===r.scrollbarXBottom,r.scrollbarXTop=r.isScrollbarXUsingBottom?null:s.toInt(u.css(r.scrollbarXRail,"top")),r.railBorderXWidth=s.toInt(u.css(r.scrollbarXRail,"borderLeftWidth"))+s.toInt(u.css(r.scrollbarXRail,"borderRightWidth")),u.css(r.scrollbarXRail,"display","block"),r.railXMarginWidth=s.toInt(u.css(r.scrollbarXRail,"marginLeft"))+s.toInt(u.css(r.scrollbarXRail,"marginRight")),u.css(r.scrollbarXRail,"display",""),r.railXWidth=null,r.railXRatio=null,r.scrollbarYRail=u.appendTo(u.e("div","ps-scrollbar-y-rail"),t),r.scrollbarY=u.appendTo(u.e("div","ps-scrollbar-y"),r.scrollbarYRail),r.scrollbarY.setAttribute("tabindex",0),r.event.bind(r.scrollbarY,"focus",e),r.event.bind(r.scrollbarY,"blur",n),r.scrollbarYActive=null,r.scrollbarYHeight=null,r.scrollbarYTop=null,r.scrollbarYRight=s.toInt(u.css(r.scrollbarYRail,"right")),r.isScrollbarYUsingRight=r.scrollbarYRight===r.scrollbarYRight,r.scrollbarYLeft=r.isScrollbarYUsingRight?null:s.toInt(u.css(r.scrollbarYRail,"left")),r.scrollbarYOuterWidth=r.isRtl?s.outerWidth(r.scrollbarY):null,r.railBorderYWidth=s.toInt(u.css(r.scrollbarYRail,"borderTopWidth"))+s.toInt(u.css(r.scrollbarYRail,"borderBottomWidth")),u.css(r.scrollbarYRail,"display","block"),r.railYMarginHeight=s.toInt(u.css(r.scrollbarYRail,"marginTop"))+s.toInt(u.css(r.scrollbarYRail,"marginBottom")),u.css(r.scrollbarYRail,"display",""),r.railYHeight=null,r.railYRatio=null}function o(t){return t.getAttribute("data-ps-id")}function l(t,e){t.setAttribute("data-ps-id",e)}function i(t){t.removeAttribute("data-ps-id")}var s=t("../lib/helper"),a=t("../lib/class"),c=t("./default-setting"),u=t("../lib/dom"),d=t("../lib/event-manager"),p=t("../lib/guid"),f={};n.add=function(t){var e=p();return l(t,e),f[e]=new r(t),f[e]},n.remove=function(t){delete f[o(t)],i(t)},n.get=function(t){return f[o(t)]}},{"../lib/class":2,"../lib/dom":3,"../lib/event-manager":4,"../lib/guid":5,"../lib/helper":6,"./default-setting":8}],19:[function(t,e,n){"use strict";function r(t,e){return t.settings.minScrollbarLength&&(e=Math.max(e,t.settings.minScrollbarLength)),t.settings.maxScrollbarLength&&(e=Math.min(e,t.settings.maxScrollbarLength)),e}function o(t,e){var n={width:e.railXWidth};e.isRtl?n.left=e.negativeScrollAdjustment+t.scrollLeft+e.containerWidth-e.contentWidth:n.left=t.scrollLeft,e.isScrollbarXUsingBottom?n.bottom=e.scrollbarXBottom-t.scrollTop:n.top=e.scrollbarXTop+t.scrollTop,s.css(e.scrollbarXRail,n);var r={top:t.scrollTop,height:e.railYHeight};e.isScrollbarYUsingRight?e.isRtl?r.right=e.contentWidth-(e.negativeScrollAdjustment+t.scrollLeft)-e.scrollbarYRight-e.scrollbarYOuterWidth:r.right=e.scrollbarYRight-t.scrollLeft:e.isRtl?r.left=e.negativeScrollAdjustment+t.scrollLeft+2*e.containerWidth-e.contentWidth-e.scrollbarYLeft-e.scrollbarYOuterWidth:r.left=e.scrollbarYLeft+t.scrollLeft,s.css(e.scrollbarYRail,r),s.css(e.scrollbarX,{left:e.scrollbarXLeft,width:e.scrollbarXWidth-e.railBorderXWidth}),s.css(e.scrollbarY,{top:e.scrollbarYTop,height:e.scrollbarYHeight-e.railBorderYWidth})}var l=t("../lib/helper"),i=t("../lib/class"),s=t("../lib/dom"),a=t("./instances"),c=t("./update-scroll");e.exports=function(t){var e=a.get(t);e.containerWidth=t.clientWidth,e.containerHeight=t.clientHeight,e.contentWidth=t.scrollWidth,e.contentHeight=t.scrollHeight;var n;t.contains(e.scrollbarXRail)||(n=s.queryChildren(t,".ps-scrollbar-x-rail"),n.length>0&&n.forEach(function(t){s.remove(t)}),s.appendTo(e.scrollbarXRail,t)),t.contains(e.scrollbarYRail)||(n=s.queryChildren(t,".ps-scrollbar-y-rail"),n.length>0&&n.forEach(function(t){s.remove(t)}),s.appendTo(e.scrollbarYRail,t)),!e.settings.suppressScrollX&&e.containerWidth+e.settings.scrollXMarginOffset=e.railXWidth-e.scrollbarXWidth&&(e.scrollbarXLeft=e.railXWidth-e.scrollbarXWidth),e.scrollbarYTop>=e.railYHeight-e.scrollbarYHeight&&(e.scrollbarYTop=e.railYHeight-e.scrollbarYHeight),o(t,e),e.scrollbarXActive?i.add(t,"ps-active-x"):(i.remove(t,"ps-active-x"),e.scrollbarXWidth=0,e.scrollbarXLeft=0,c(t,"left",0)),e.scrollbarYActive?i.add(t,"ps-active-y"):(i.remove(t,"ps-active-y"),e.scrollbarYHeight=0,e.scrollbarYTop=0,c(t,"top",0))}},{"../lib/class":2,"../lib/dom":3,"../lib/helper":6,"./instances":18,"./update-scroll":20}],20:[function(t,e,n){"use strict";var r,o,l=t("./instances"),i=function(t){var e=document.createEvent("Event");return e.initEvent(t,!0,!0),e};e.exports=function(t,e,n){if("undefined"==typeof t)throw"You must provide an element to the update-scroll function";if("undefined"==typeof e)throw"You must provide an axis to the update-scroll function";if("undefined"==typeof n)throw"You must provide a value to the update-scroll function";"top"===e&&n<=0&&(t.scrollTop=n=0,t.dispatchEvent(i("ps-y-reach-start"))),"left"===e&&n<=0&&(t.scrollLeft=n=0,t.dispatchEvent(i("ps-x-reach-start")));var s=l.get(t);"top"===e&&n>=s.contentHeight-s.containerHeight&&(n=s.contentHeight-s.containerHeight,n-t.scrollTop<=1?n=t.scrollTop:t.scrollTop=n,t.dispatchEvent(i("ps-y-reach-end"))),"left"===e&&n>=s.contentWidth-s.containerWidth&&(n=s.contentWidth-s.containerWidth,n-t.scrollLeft<=1?n=t.scrollLeft:t.scrollLeft=n,t.dispatchEvent(i("ps-x-reach-end"))),r||(r=t.scrollTop),o||(o=t.scrollLeft),"top"===e&&nr&&t.dispatchEvent(i("ps-scroll-down")),"left"===e&&no&&t.dispatchEvent(i("ps-scroll-right")),"top"===e&&(t.scrollTop=r=n,t.dispatchEvent(i("ps-scroll-y"))),"left"===e&&(t.scrollLeft=o=n,t.dispatchEvent(i("ps-scroll-x")))}},{"./instances":18}],21:[function(t,e,n){"use strict";var r=t("../lib/helper"),o=t("../lib/dom"),l=t("./instances"),i=t("./update-geometry"),s=t("./update-scroll");e.exports=function(t){var e=l.get(t);e&&(e.negativeScrollAdjustment=e.isNegativeScroll?t.scrollWidth-t.clientWidth:0,o.css(e.scrollbarXRail,"display","block"),o.css(e.scrollbarYRail,"display","block"),e.railXMarginWidth=r.toInt(o.css(e.scrollbarXRail,"marginLeft"))+r.toInt(o.css(e.scrollbarXRail,"marginRight")),e.railYMarginHeight=r.toInt(o.css(e.scrollbarYRail,"marginTop"))+r.toInt(o.css(e.scrollbarYRail,"marginBottom")),o.css(e.scrollbarXRail,"display","none"),o.css(e.scrollbarYRail,"display","none"),i(t),s(t,"top",t.scrollTop),s(t,"left",t.scrollLeft),o.css(e.scrollbarXRail,"display",""),o.css(e.scrollbarYRail,"display",""))}},{"../lib/dom":3,"../lib/helper":6,"./instances":18,"./update-geometry":19,"./update-scroll":20}]},{},[1]); \ No newline at end of file diff --git a/library/perfect-scrollbar/perfect-scrollbar.min.css b/library/perfect-scrollbar/perfect-scrollbar.min.css index e8d2f37d9c..3eb93c4ba2 100644 --- a/library/perfect-scrollbar/perfect-scrollbar.min.css +++ b/library/perfect-scrollbar/perfect-scrollbar.min.css @@ -1,2 +1,2 @@ -/* perfect-scrollbar v0.6.10 */ -.ps-container{-ms-touch-action:none;touch-action:none;overflow:hidden !important;-ms-overflow-style:none}@supports (-ms-overflow-style: none){.ps-container{overflow:auto !important}}@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none){.ps-container{overflow:auto !important}}.ps-container.ps-active-x>.ps-scrollbar-x-rail,.ps-container.ps-active-y>.ps-scrollbar-y-rail{display:block;background-color:transparent}.ps-container.ps-in-scrolling{pointer-events:none}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:0.9}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:0.9}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999}.ps-container>.ps-scrollbar-x-rail{display:none;position:absolute;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;opacity:0;-webkit-transition:background-color .2s linear, opacity .2s linear;-moz-transition:background-color .2s linear, opacity .2s linear;-o-transition:background-color .2s linear, opacity .2s linear;transition:background-color .2s linear, opacity .2s linear;bottom:3px;height:8px}.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{position:absolute;background-color:#aaa;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-transition:background-color .2s linear;-moz-transition:background-color .2s linear;-o-transition:background-color .2s linear;transition:background-color .2s linear;bottom:0;height:8px}.ps-container>.ps-scrollbar-y-rail{display:none;position:absolute;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;opacity:0;-webkit-transition:background-color .2s linear, opacity .2s linear;-moz-transition:background-color .2s linear, opacity .2s linear;-o-transition:background-color .2s linear, opacity .2s linear;transition:background-color .2s linear, opacity .2s linear;right:3px;width:8px}.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{position:absolute;background-color:#aaa;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-transition:background-color .2s linear;-moz-transition:background-color .2s linear;-o-transition:background-color .2s linear;transition:background-color .2s linear;right:0;width:8px}.ps-container:hover.ps-in-scrolling{pointer-events:none}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:0.9}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:0.9}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999}.ps-container:hover>.ps-scrollbar-x-rail,.ps-container:hover>.ps-scrollbar-y-rail{opacity:0.6}.ps-container:hover>.ps-scrollbar-x-rail:hover{background-color:#eee;opacity:0.9}.ps-container:hover>.ps-scrollbar-x-rail:hover>.ps-scrollbar-x{background-color:#999}.ps-container:hover>.ps-scrollbar-y-rail:hover{background-color:#eee;opacity:0.9}.ps-container:hover>.ps-scrollbar-y-rail:hover>.ps-scrollbar-y{background-color:#999} +/* perfect-scrollbar v0.6.15 */ +.ps-container{-ms-touch-action:auto;touch-action:auto;overflow:hidden !important;-ms-overflow-style:none}@supports (-ms-overflow-style: none){.ps-container{overflow:auto !important}}@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none){.ps-container{overflow:auto !important}}.ps-container.ps-active-x>.ps-scrollbar-x-rail,.ps-container.ps-active-y>.ps-scrollbar-y-rail{display:block;background-color:transparent}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:.9}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999;height:11px}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:.9}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999;width:11px}.ps-container>.ps-scrollbar-x-rail{display:none;position:absolute;opacity:0;-webkit-transition:background-color .2s linear, opacity .2s linear;-o-transition:background-color .2s linear, opacity .2s linear;-moz-transition:background-color .2s linear, opacity .2s linear;transition:background-color .2s linear, opacity .2s linear;bottom:0px;height:15px}.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{position:absolute;background-color:#aaa;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;-o-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;-moz-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -webkit-border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;bottom:2px;height:6px}.ps-container>.ps-scrollbar-x-rail:hover>.ps-scrollbar-x,.ps-container>.ps-scrollbar-x-rail:active>.ps-scrollbar-x{height:11px}.ps-container>.ps-scrollbar-y-rail{display:none;position:absolute;opacity:0;-webkit-transition:background-color .2s linear, opacity .2s linear;-o-transition:background-color .2s linear, opacity .2s linear;-moz-transition:background-color .2s linear, opacity .2s linear;transition:background-color .2s linear, opacity .2s linear;right:0;width:15px}.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{position:absolute;background-color:#aaa;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;-o-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;-moz-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -webkit-border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;right:2px;width:6px}.ps-container>.ps-scrollbar-y-rail:hover>.ps-scrollbar-y,.ps-container>.ps-scrollbar-y-rail:active>.ps-scrollbar-y{width:11px}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:.9}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999;height:11px}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:.9}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999;width:11px}.ps-container:hover>.ps-scrollbar-x-rail,.ps-container:hover>.ps-scrollbar-y-rail{opacity:.6}.ps-container:hover>.ps-scrollbar-x-rail:hover{background-color:#eee;opacity:.9}.ps-container:hover>.ps-scrollbar-x-rail:hover>.ps-scrollbar-x{background-color:#999}.ps-container:hover>.ps-scrollbar-y-rail:hover{background-color:#eee;opacity:.9}.ps-container:hover>.ps-scrollbar-y-rail:hover>.ps-scrollbar-y{background-color:#999} diff --git a/mod/admin.php b/mod/admin.php index cf0d8d9ac6..841aaa7871 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -32,13 +32,12 @@ function admin_post(&$a){ // do not allow a page manager to access the admin panel at all. - if(x($_SESSION,'submanage') && intval($_SESSION['submanage'])) + if (x($_SESSION,'submanage') && intval($_SESSION['submanage'])) { return; - - + } // urls - if($a->argc > 1) { + if ($a->argc > 1) { switch ($a->argv[1]){ case 'site': admin_page_site_post($a); @@ -134,8 +133,9 @@ function admin_content(&$a) { return login(false); } - if(x($_SESSION,'submanage') && intval($_SESSION['submanage'])) + if (x($_SESSION,'submanage') && intval($_SESSION['submanage'])) { return ""; + } // APC deactivated, since there are problems with PHP 5.5 //if (function_exists("apc_delete")) { @@ -285,14 +285,14 @@ function admin_page_federation(&$a) { // get a total count for the platform, the name and version of the // highest version and the protocol tpe $c = qu('SELECT COUNT(*) AS `total`, `platform`, `network`, `version` FROM `gserver` - WHERE `platform` LIKE "%s" AND `last_contact` > `last_failure` + WHERE `platform` LIKE "%s" AND `last_contact` >= `last_failure` ORDER BY `version` ASC;', $p); $total = $total + $c[0]['total']; // what versions for that platform do we know at all? // again only the active nodes $v = qu('SELECT COUNT(*) AS `total`, `version` FROM `gserver` - WHERE `last_contact` > `last_failure` AND `platform` LIKE "%s" + WHERE `last_contact` >= `last_failure` AND `platform` LIKE "%s" GROUP BY `version` ORDER BY `version`;', $p); @@ -376,7 +376,7 @@ function admin_page_federation(&$a) { '$counts' => $counts, '$version' => FRIENDICA_VERSION, '$legendtext' => sprintf(t('Currently this node is aware of %d nodes from the following platforms:'), $total), - '$baseurl' => $a->get_baseurl(), + '$baseurl' => App::get_baseurl(), )); } @@ -489,7 +489,7 @@ function admin_page_summary(&$a) { '$accounts' => $accounts, '$pending' => array(t('Pending registrations'), $pending), '$version' => array(t('Version'), FRIENDICA_VERSION), - '$baseurl' => $a->get_baseurl(), + '$baseurl' => App::get_baseurl(), '$platform' => FRIENDICA_PLATFORM, '$codename' => FRIENDICA_CODENAME, '$build' => get_config('system','build'), @@ -527,7 +527,7 @@ function admin_page_site_post(&$a) { * send relocate for every local user * */ - $old_url = $a->get_baseurl(true); + $old_url = App::get_baseurl(true); // Generate host names for relocation the addresses in the format user@address.tld $new_host = str_replace("http://", "@", normalise_link($new_url)); @@ -961,7 +961,7 @@ function admin_page_site(&$a) { '$performance' => t('Performance'), '$worker_title' => t('Worker'), '$relocate'=> t('Relocate - WARNING: advanced function. Could make this server unreachable.'), - '$baseurl' => $a->get_baseurl(true), + '$baseurl' => App::get_baseurl(true), // name, label, value, help string, extra data... '$sitename' => array('sitename', t("Site name"), $a->config['sitename'],''), '$hostname' => array('hostname', t("Host name"), $a->config['hostname'], ""), @@ -1043,7 +1043,7 @@ function admin_page_site(&$a) { '$old_pager' => array('old_pager', t("Enable old style pager"), get_config('system','old_pager'), t("The old style pager has page numbers but slows down massively the page speed.")), '$only_tag_search' => array('only_tag_search', t("Only search in tags"), get_config('system','only_tag_search'), t("On large systems the text search can slow down the system extremely.")), - '$relocate_url' => array('relocate_url', t("New base url"), $a->get_baseurl(), t("Change base url for this server. Sends relocate message to all DFRN contacts of all users.")), + '$relocate_url' => array('relocate_url', t("New base url"), App::get_baseurl(), t("Change base url for this server. Sends relocate message to all DFRN contacts of all users.")), '$rino' => array('rino', t("RINO Encryption"), intval(get_config('system','rino_encrypt')), t("Encryption layer between nodes."), array("Disabled", "RINO1 (deprecated)", "RINO2")), '$embedly' => array('embedly', t("Embedly API key"), get_config('system','embedly'), t("Embedly is used to fetch additional data for web pages. This is an optional parameter.")), @@ -1122,26 +1122,26 @@ function admin_page_dbsync(&$a) { $failed = array(); $r = q("SELECT `k`, `v` FROM `config` WHERE `cat` = 'database' "); if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { $upd = intval(substr($rr['k'],7)); if($upd < 1139 || $rr['v'] === 'success') continue; $failed[] = $upd; } } - if(! count($failed)) { + if (! count($failed)) { $o = replace_macros(get_markup_template('structure_check.tpl'),array( - '$base' => $a->get_baseurl(true), + '$base' => App::get_baseurl(true), '$banner' => t('No failed updates.'), - '$check' => t('Check database structure'), + '$check' => t('Check database structure'), )); } else { $o = replace_macros(get_markup_template('failed_updates.tpl'),array( - '$base' => $a->get_baseurl(true), + '$base' => App::get_baseurl(true), '$banner' => t('Failed Updates'), - '$desc' => t('This does not include updates prior to 1139, which did not return a status.'), - '$mark' => t('Mark success (if update was manually applied)'), - '$apply' => t('Attempt to execute this update step automatically'), + '$desc' => t('This does not include updates prior to 1139, which did not return a status.'), + '$mark' => t('Mark success (if update was manually applied)'), + '$apply' => t('Attempt to execute this update step automatically'), '$failed' => $failed )); } @@ -1156,11 +1156,11 @@ function admin_page_dbsync(&$a) { * @param App $a */ function admin_page_users_post(&$a){ - $pending = (x($_POST, 'pending') ? $_POST['pending'] : array()); - $users = (x($_POST, 'user') ? $_POST['user'] : array()); - $nu_name = (x($_POST, 'new_user_name') ? $_POST['new_user_name'] : ''); - $nu_nickname = (x($_POST, 'new_user_nickname') ? $_POST['new_user_nickname'] : ''); - $nu_email = (x($_POST, 'new_user_email') ? $_POST['new_user_email'] : ''); + $pending = (x($_POST, 'pending') ? $_POST['pending'] : array()); + $users = (x($_POST, 'user') ? $_POST['user'] : array()); + $nu_name = (x($_POST, 'new_user_name') ? $_POST['new_user_name'] : ''); + $nu_nickname = (x($_POST, 'new_user_nickname') ? $_POST['new_user_nickname'] : ''); + $nu_email = (x($_POST, 'new_user_email') ? $_POST['new_user_email'] : ''); $nu_language = get_config('system', 'language'); check_form_security_token_redirectOnErr('/admin/users', 'admin_users'); @@ -1205,7 +1205,7 @@ function admin_page_users_post(&$a){ Thank you and welcome to %4$s.')); $preamble = sprintf($preamble, $nu['username'], $a->config['sitename']); - $body = sprintf($body, $a->get_baseurl(), $nu['email'], $result['password'], $a->config['sitename']); + $body = sprintf($body, App::get_baseurl(), $nu['email'], $result['password'], $a->config['sitename']); notification(array( 'type' => "SYSTEM_EMAIL", @@ -1430,7 +1430,7 @@ function admin_page_users(&$a){ '$form_security_token' => get_form_security_token("admin_users"), // values // - '$baseurl' => $a->get_baseurl(true), + '$baseurl' => App::get_baseurl(true), '$pending' => $pending, 'deleted' => $deleted, @@ -1522,7 +1522,7 @@ function admin_page_plugins(&$a){ '$page' => t('Plugins'), '$toggle' => t('Toggle'), '$settings' => t('Settings'), - '$baseurl' => $a->get_baseurl(true), + '$baseurl' => App::get_baseurl(true), '$plugin' => $plugin, '$status' => $status, @@ -1546,32 +1546,35 @@ function admin_page_plugins(&$a){ * List plugins */ - if(x($_GET,"a") && $_GET['a']=="r") { - check_form_security_token_redirectOnErr($a->get_baseurl().'/admin/plugins', 'admin_themes', 't'); + if (x($_GET,"a") && $_GET['a']=="r") { + check_form_security_token_redirectOnErr(App::get_baseurl().'/admin/plugins', 'admin_themes', 't'); reload_plugins(); info("Plugins reloaded"); - goaway($a->get_baseurl().'/admin/plugins'); + goaway(App::get_baseurl().'/admin/plugins'); } $plugins = array(); $files = glob("addon/*/"); - if($files) { - foreach($files as $file) { - if(is_dir($file)) { + if ($files) { + foreach ($files as $file) { + if (is_dir($file)) { list($tmp, $id)=array_map("trim", explode("/",$file)); $info = get_plugin_info($id); $show_plugin = true; // If the addon is unsupported, then only show it, when it is enabled - if((strtolower($info["status"]) == "unsupported") AND !in_array($id, $a->plugins)) + if ((strtolower($info["status"]) == "unsupported") AND !in_array($id, $a->plugins)) { $show_plugin = false; + } // Override the above szenario, when the admin really wants to see outdated stuff - if(get_config("system", "show_unsupported_addons")) + if (get_config("system", "show_unsupported_addons")) { $show_plugin = true; + } - if($show_plugin) + if ($show_plugin) { $plugins[] = array($id, (in_array($id, $a->plugins)?"on":"off") , $info); + } } } } @@ -1582,7 +1585,7 @@ function admin_page_plugins(&$a){ '$page' => t('Plugins'), '$submit' => t('Save Settings'), '$reload' => t('Reload active plugins'), - '$baseurl' => $a->get_baseurl(true), + '$baseurl' => App::get_baseurl(true), '$function' => 'plugins', '$plugins' => $plugins, '$pcount' => count($plugins), @@ -1780,7 +1783,7 @@ function admin_page_themes(&$a){ '$page' => t('Themes'), '$toggle' => t('Toggle'), '$settings' => t('Settings'), - '$baseurl' => $a->get_baseurl(true), + '$baseurl' => App::get_baseurl(true), '$plugin' => $theme, '$status' => $status, '$action' => $action, @@ -1798,18 +1801,18 @@ function admin_page_themes(&$a){ // reload active themes - if(x($_GET,"a") && $_GET['a']=="r") { - check_form_security_token_redirectOnErr($a->get_baseurl().'/admin/themes', 'admin_themes', 't'); - if($themes) { - foreach($themes as $th) { - if($th['allowed']) { + if (x($_GET,"a") && $_GET['a']=="r") { + check_form_security_token_redirectOnErr(App::get_baseurl().'/admin/themes', 'admin_themes', 't'); + if ($themes) { + foreach ($themes as $th) { + if ($th['allowed']) { uninstall_theme($th['name']); install_theme($th['name']); } } } info("Themes reloaded"); - goaway($a->get_baseurl().'/admin/themes'); + goaway(App::get_baseurl().'/admin/themes'); } /* @@ -1817,7 +1820,7 @@ function admin_page_themes(&$a){ */ $xthemes = array(); - if($themes) { + if ($themes) { foreach($themes as $th) { $xthemes[] = array($th['name'],(($th['allowed']) ? "on" : "off"), get_theme_info($th['name'])); } @@ -1826,17 +1829,17 @@ function admin_page_themes(&$a){ $t = get_markup_template("admin_plugins.tpl"); return replace_macros($t, array( - '$title' => t('Administration'), - '$page' => t('Themes'), - '$submit' => t('Save Settings'), - '$reload' => t('Reload active themes'), - '$baseurl' => $a->get_baseurl(true), - '$function' => 'themes', - '$plugins' => $xthemes, - '$pcount' => count($themes), - '$noplugshint' => sprintf(t('No themes found on the system. They should be paced in %1$s'),'/view/themes'), - '$experimental' => t('[Experimental]'), - '$unsupported' => t('[Unsupported]'), + '$title' => t('Administration'), + '$page' => t('Themes'), + '$submit' => t('Save Settings'), + '$reload' => t('Reload active themes'), + '$baseurl' => App::get_baseurl(true), + '$function' => 'themes', + '$plugins' => $xthemes, + '$pcount' => count($themes), + '$noplugshint' => sprintf(t('No themes found on the system. They should be paced in %1$s'),'/view/themes'), + '$experimental' => t('[Experimental]'), + '$unsupported' => t('[Unsupported]'), '$form_security_token' => get_form_security_token("admin_themes"), )); } @@ -1904,7 +1907,7 @@ function admin_page_logs(&$a){ '$page' => t('Logs'), '$submit' => t('Save Settings'), '$clear' => t('Clear'), - '$baseurl' => $a->get_baseurl(true), + '$baseurl' => App::get_baseurl(true), '$logname' => get_config('system','logfile'), // name, label, value, help string, extra data... diff --git a/mod/allfriends.php b/mod/allfriends.php index 240aa524be..d7f4073b7e 100644 --- a/mod/allfriends.php +++ b/mod/allfriends.php @@ -8,16 +8,18 @@ require_once('mod/contacts.php'); function allfriends_content(&$a) { $o = ''; - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL); return; } - if($a->argc > 1) + if ($a->argc > 1) { $cid = intval($a->argv[1]); + } - if(! $cid) + if (! $cid) { return; + } $uid = $a->user[uid]; @@ -26,8 +28,9 @@ function allfriends_content(&$a) { intval(local_user()) ); - if(! count($c)) + if (! count($c)) { return; + } $a->page['aside'] = ""; profile_load($a, "", 0, get_contact_details_by_url($c[0]["url"])); @@ -39,14 +42,14 @@ function allfriends_content(&$a) { $r = all_friends(local_user(), $cid, $a->pager['start'], $a->pager['itemspage']); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { $o .= t('No friends to display.'); return $o; } $id = 0; - foreach($r as $rr) { + foreach ($r as $rr) { //get further details of the contact $contact_details = get_contact_details_by_url($rr['url'], $uid, $rr); @@ -60,7 +63,7 @@ function allfriends_content(&$a) { $photo_menu = contact_photo_menu ($rr); } else { - $connlnk = $a->get_baseurl() . '/follow/?url=' . $rr['url']; + $connlnk = App::get_baseurl() . '/follow/?url=' . $rr['url']; $photo_menu = array( 'profile' => array(t("View Profile"), zrl($rr['url'])), 'follow' => array(t("Connect/Follow"), $connlnk) diff --git a/mod/api.php b/mod/api.php index 406ef26c1c..caa1cba2a6 100644 --- a/mod/api.php +++ b/mod/api.php @@ -22,7 +22,7 @@ function oauth_get_client($request){ function api_post(&$a) { - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL); return; } @@ -84,7 +84,7 @@ function api_content(&$a) { } - if(! local_user()) { + if (! local_user()) { /// @TODO We need login form to redirect to this page notice( t('Please login to continue.') . EOL ); return login(false,$request->get_parameters()); diff --git a/mod/attach.php b/mod/attach.php index 274acfc2be..94cb75a386 100644 --- a/mod/attach.php +++ b/mod/attach.php @@ -16,7 +16,7 @@ function attach_init(&$a) { $r = q("SELECT * FROM `attach` WHERE `id` = %d LIMIT 1", intval($item_id) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { notice( t('Item was not found.'). EOL); return; } @@ -29,7 +29,7 @@ function attach_init(&$a) { dbesc($item_id) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { notice( t('Permission denied.') . EOL); return; } diff --git a/mod/bookmarklet.php b/mod/bookmarklet.php index be8645c1fd..86a73a7884 100644 --- a/mod/bookmarklet.php +++ b/mod/bookmarklet.php @@ -8,14 +8,14 @@ function bookmarklet_init(&$a) { } function bookmarklet_content(&$a) { - if(!local_user()) { + if (!local_user()) { $o = '

'.t('Login').'

'; $o .= login(($a->config['register_policy'] == REGISTER_CLOSED) ? false : true); return $o; } $referer = normalise_link($_SERVER["HTTP_REFERER"]); - $page = normalise_link($a->get_baseurl()."/bookmarklet"); + $page = normalise_link(App::get_baseurl()."/bookmarklet"); if (!strstr($referer, $page)) { $content = add_page_info($_REQUEST["url"]); diff --git a/mod/cal.php b/mod/cal.php index ba43393284..d49e8f7649 100644 --- a/mod/cal.php +++ b/mod/cal.php @@ -80,7 +80,7 @@ function cal_content(&$a) { $htpl = get_markup_template('event_head.tpl'); $a->page['htmlhead'] .= replace_macros($htpl,array( - '$baseurl' => $a->get_baseurl(), + '$baseurl' => App::get_baseurl(), '$module_url' => '/cal/' . $a->data['user']['nickname'], '$modparams' => 2, '$i18n' => $i18n, @@ -89,7 +89,7 @@ function cal_content(&$a) { $etpl = get_markup_template('event_end.tpl'); $a->page['end'] .= replace_macros($etpl,array( - '$baseurl' => $a->get_baseurl(), + '$baseurl' => App::get_baseurl(), '$editselect' => $editselect )); @@ -229,10 +229,11 @@ function cal_content(&$a) { if (dbm::is_result($r)) { $r = sort_by_date($r); - foreach($r as $rr) { + foreach ($r as $rr) { $j = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['start'], 'j') : datetime_convert('UTC','UTC',$rr['start'],'j')); - if(! x($links,$j)) - $links[$j] = $a->get_baseurl() . '/' . $a->cmd . '#link-' . $j; + if (! x($links,$j)) { + $links[$j] = App::get_baseurl() . '/' . $a->cmd . '#link-' . $j; + } } } @@ -270,12 +271,12 @@ function cal_content(&$a) { } $o = replace_macros($tpl, array( - '$baseurl' => $a->get_baseurl(), + '$baseurl' => App::get_baseurl(), '$tabs' => $tabs, '$title' => t('Events'), '$view' => t('View'), - '$previus' => array($a->get_baseurl()."/events/$prevyear/$prevmonth",t('Previous'),'',''), - '$next' => array($a->get_baseurl()."/events/$nextyear/$nextmonth",t('Next'),'',''), + '$previus' => array(App::get_baseurl()."/events/$prevyear/$prevmonth",t('Previous'),'',''), + '$next' => array(App::get_baseurl()."/events/$nextyear/$nextmonth",t('Next'),'',''), '$calendar' => cal($y,$m,$links, ' eventcal'), '$events' => $events, diff --git a/mod/common.php b/mod/common.php index 9f9379be57..9657ac36d8 100644 --- a/mod/common.php +++ b/mod/common.php @@ -19,23 +19,27 @@ function common_content(&$a) { return; } - if($cmd !== 'loc' && $cmd != 'rem') + if ($cmd !== 'loc' && $cmd != 'rem') { return; + } - if(! $uid) + if (! $uid) { return; + } - if($cmd === 'loc' && $cid) { + if ($cmd === 'loc' && $cid) { $c = q("SELECT `name`, `url`, `photo` FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1", intval($cid), intval($uid) ); + /// @TODO Handle $c with dbm::is_result() $a->page['aside'] = ""; profile_load($a, "", 0, get_contact_details_by_url($c[0]["url"])); } else { $c = q("SELECT `name`, `url`, `photo` FROM `contact` WHERE `self` = 1 AND `uid` = %d LIMIT 1", intval($uid) ); + /// @TODO Handle $c with dbm::is_result() $vcard_widget .= replace_macros(get_markup_template("vcard-widget.tpl"),array( '$name' => htmlentities($c[0]['name']), @@ -43,8 +47,9 @@ function common_content(&$a) { 'url' => 'contacts/' . $cid )); - if(! x($a->page,'aside')) + if (! x($a->page,'aside')) { $a->page['aside'] = ''; + } $a->page['aside'] .= $vcard_widget; } @@ -69,75 +74,77 @@ function common_content(&$a) { } } - - - if($cid == 0 && $zcid == 0) + if ($cid == 0 && $zcid == 0) { return; + } - - if($cid) + if ($cid) { $t = count_common_friends($uid, $cid); - else + } else { $t = count_common_friends_zcid($uid, $zcid); + } - if(count($t)) + if (count($t)) { $a->set_pager_total($t); - else { + } else { notice( t('No contacts in common.') . EOL); return $o; } - if($cid) + if ($cid) { $r = common_friends($uid, $cid, $a->pager['start'], $a->pager['itemspage']); - else + } else { $r = common_friends_zcid($uid, $zcid, $a->pager['start'], $a->pager['itemspage']); + } - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { return $o; } $id = 0; - foreach($r as $rr) { + foreach ($r as $rr) { //get further details of the contact $contact_details = get_contact_details_by_url($rr['url'], $uid); - // $rr[id] is needed to use contact_photo_menu() - $rr[id] = $rr[cid]; + // $rr['id'] is needed to use contact_photo_menu() + /// @TODO Adding '/" here avoids E_NOTICE on missing constants + $rr['id'] = $rr['cid']; $photo_menu = ''; $photo_menu = contact_photo_menu($rr); $entry = array( - 'url' => $rr['url'], - 'itemurl' => (($contact_details['addr'] != "") ? $contact_details['addr'] : $rr['url']), - 'name' => $contact_details['name'], - 'thumb' => proxy_url($contact_details['thumb'], false, PROXY_SIZE_THUMB), - 'img_hover' => htmlentities($contact_details['name']), - 'details' => $contact_details['location'], - 'tags' => $contact_details['keywords'], - 'about' => $contact_details['about'], - 'account_type' => account_type($contact_details), - 'network' => network_to_name($contact_details['network'], $contact_details['url']), - 'photo_menu' => $photo_menu, - 'id' => ++$id, + 'url' => $rr['url'], + 'itemurl' => (($contact_details['addr'] != "") ? $contact_details['addr'] : $rr['url']), + 'name' => $contact_details['name'], + 'thumb' => proxy_url($contact_details['thumb'], false, PROXY_SIZE_THUMB), + 'img_hover' => htmlentities($contact_details['name']), + 'details' => $contact_details['location'], + 'tags' => $contact_details['keywords'], + 'about' => $contact_details['about'], + 'account_type' => account_type($contact_details), + 'network' => network_to_name($contact_details['network'], $contact_details['url']), + 'photo_menu' => $photo_menu, + 'id' => ++$id, ); $entries[] = $entry; } - if($cmd === 'loc' && $cid && $uid == local_user()) { + if ($cmd === 'loc' && $cid && $uid == local_user()) { $tab_str = contacts_tab($a, $cid, 4); - } else + } else { $title = t('Common Friends'); + } $tpl = get_markup_template('viewcontact_template.tpl'); $o .= replace_macros($tpl,array( - '$title' => $title, - '$tab_str' => $tab_str, + '$title' => $title, + '$tab_str' => $tab_str, '$contacts' => $entries, '$paginate' => paginate($a), )); diff --git a/mod/community.php b/mod/community.php index 40d4016f33..d7fd2bb933 100644 --- a/mod/community.php +++ b/mod/community.php @@ -1,7 +1,7 @@ pager['start'], $a->pager['itemspage']); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { info( t('No results.') . EOL); return $o; } diff --git a/mod/contactgroup.php b/mod/contactgroup.php index 4456db2f53..856b01dd50 100644 --- a/mod/contactgroup.php +++ b/mod/contactgroup.php @@ -5,7 +5,7 @@ require_once('include/group.php'); function contactgroup_content(&$a) { - if(! local_user()) { + if (! local_user()) { killme(); } @@ -24,7 +24,7 @@ function contactgroup_content(&$a) { intval($a->argv[1]), intval(local_user()) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { killme(); } diff --git a/mod/contacts.php b/mod/contacts.php index 735ccec727..b1553393e2 100644 --- a/mod/contacts.php +++ b/mod/contacts.php @@ -8,8 +8,9 @@ require_once('mod/proxy.php'); require_once('include/Photo.php'); function contacts_init(&$a) { - if(! local_user()) + if (! local_user()) { return; + } $contact_id = 0; @@ -19,7 +20,7 @@ function contacts_init(&$a) { intval(local_user()), intval($contact_id) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { $contact_id = 0; } } @@ -78,13 +79,13 @@ function contacts_init(&$a) { $base = z_root(); $tpl = get_markup_template("contacts-head.tpl"); $a->page['htmlhead'] .= replace_macros($tpl,array( - '$baseurl' => $a->get_baseurl(true), + '$baseurl' => App::get_baseurl(true), '$base' => $base )); $tpl = get_markup_template("contacts-end.tpl"); $a->page['end'] .= replace_macros($tpl,array( - '$baseurl' => $a->get_baseurl(true), + '$baseurl' => App::get_baseurl(true), '$base' => $base )); @@ -128,18 +129,21 @@ function contacts_batch_actions(&$a){ info ( sprintf( tt("%d contact edited.", "%d contacts edited.", $count_actions), $count_actions) ); } - if(x($_SESSION,'return_url')) + if (x($_SESSION,'return_url')) { goaway('' . $_SESSION['return_url']); - else + } + else { goaway('contacts'); + } } function contacts_post(&$a) { - if(! local_user()) + if (! local_user()) { return; + } if ($a->argv[1]==="batch") { contacts_batch_actions($a); @@ -147,15 +151,16 @@ function contacts_post(&$a) { } $contact_id = intval($a->argv[1]); - if(! $contact_id) + if (! $contact_id) { return; + } $orig_record = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1", intval($contact_id), intval(local_user()) ); - if(! count($orig_record)) { + if (! count($orig_record)) { notice( t('Could not access contact record.') . EOL); goaway('contacts'); return; // NOTREACHED @@ -164,12 +169,12 @@ function contacts_post(&$a) { call_hooks('contact_edit_post', $_POST); $profile_id = intval($_POST['profile-assign']); - if($profile_id) { + if ($profile_id) { $r = q("SELECT `id` FROM `profile` WHERE `id` = %d AND `uid` = %d LIMIT 1", intval($profile_id), intval(local_user()) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { notice( t('Could not locate selected profile.') . EOL); return; } @@ -346,7 +351,7 @@ function contacts_content(&$a) { nav_set_selected('contacts'); - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL); return; } @@ -384,7 +389,7 @@ function contacts_content(&$a) { if($cmd === 'block') { $r = _contact_block($contact_id, $orig_record[0]); - if($r) { + if ($r) { $blocked = (($orig_record[0]['blocked']) ? 0 : 1); info((($blocked) ? t('Contact has been blocked') : t('Contact has been unblocked')).EOL); } @@ -395,7 +400,7 @@ function contacts_content(&$a) { if($cmd === 'ignore') { $r = _contact_ignore($contact_id, $orig_record[0]); - if($r) { + if ($r) { $readonly = (($orig_record[0]['readonly']) ? 0 : 1); info((($readonly) ? t('Contact has been ignored') : t('Contact has been unignored')).EOL); } @@ -407,7 +412,7 @@ function contacts_content(&$a) { if($cmd === 'archive') { $r = _contact_archive($contact_id, $orig_record[0]); - if($r) { + if ($r) { $archived = (($orig_record[0]['archive']) ? 0 : 1); info((($archived) ? t('Contact has been archived') : t('Contact has been unarchived')).EOL); } @@ -446,22 +451,26 @@ function contacts_content(&$a) { )); } // Now check how the user responded to the confirmation query - if($_REQUEST['canceled']) { - if(x($_SESSION,'return_url')) + if ($_REQUEST['canceled']) { + if (x($_SESSION,'return_url')) { goaway('' . $_SESSION['return_url']); - else + } + else { goaway('contacts'); + } } _contact_drop($contact_id, $orig_record[0]); info( t('Contact has been removed.') . EOL ); - if(x($_SESSION,'return_url')) + if (x($_SESSION,'return_url')) { goaway('' . $_SESSION['return_url']); - else + } + else { goaway('contacts'); + } return; // NOTREACHED } - if($cmd === 'posts') { + if ($cmd === 'posts') { return contact_posts($a, $contact_id); } } @@ -480,11 +489,11 @@ function contacts_content(&$a) { $editselect = 'exact'; $a->page['htmlhead'] .= replace_macros(get_markup_template('contact_head.tpl'), array( - '$baseurl' => $a->get_baseurl(true), + '$baseurl' => App::get_baseurl(true), '$editselect' => $editselect, )); $a->page['end'] .= replace_macros(get_markup_template('contact_end.tpl'), array( - '$baseurl' => $a->get_baseurl(true), + '$baseurl' => App::get_baseurl(true), '$editselect' => $editselect, )); @@ -564,7 +573,7 @@ function contacts_content(&$a) { if (in_array($contact['network'], array(NETWORK_DIASPORA, NETWORK_OSTATUS)) AND ($contact['rel'] == CONTACT_IS_FOLLOWER)) - $follow = $a->get_baseurl(true)."/follow?url=".urlencode($contact["url"]); + $follow = App::get_baseurl(true)."/follow?url=".urlencode($contact["url"]); // Load contactact related actions like hide, suggest, delete and others $contact_actions = contact_actions($contact); diff --git a/mod/content.php b/mod/content.php index 1e2307f553..2377032a79 100644 --- a/mod/content.php +++ b/mod/content.php @@ -23,7 +23,7 @@ function content_content(&$a, $update = 0) { // Currently security is based on the logged in user - if(! local_user()) { + if (! local_user()) { return; } @@ -113,11 +113,11 @@ function content_content(&$a, $update = 0) { intval($group), intval($_SESSION['uid']) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { if($update) killme(); notice( t('No such group') . EOL ); - goaway($a->get_baseurl(true) . '/network'); + goaway(App::get_baseurl(true) . '/network'); // NOTREACHED } @@ -509,8 +509,8 @@ function render_content(&$a, $items, $mode, $update, $preview = false) { 'like' => '', 'dislike' => '', 'comment' => '', - //'conv' => (($preview) ? '' : array('href'=> $a->get_baseurl($ssl_state) . '/display/' . $nickname . '/' . $item['id'], 'title'=> t('View in context'))), - 'conv' => (($preview) ? '' : array('href'=> $a->get_baseurl($ssl_state).'/display/'.$item['guid'], 'title'=> t('View in context'))), + //'conv' => (($preview) ? '' : array('href'=> App::get_baseurl($ssl_state) . '/display/' . $nickname . '/' . $item['id'], 'title'=> t('View in context'))), + 'conv' => (($preview) ? '' : array('href'=> App::get_baseurl($ssl_state).'/display/'.$item['guid'], 'title'=> t('View in context'))), 'previewing' => $previewing, 'wait' => t('Please wait'), ); @@ -742,10 +742,11 @@ function render_content(&$a, $items, $mode, $update, $preview = false) { } } - if(local_user() && link_compare($a->contact['url'],$item['author-link'])) - $edpost = array($a->get_baseurl($ssl_state)."/editpost/".$item['id'], t("Edit")); - else + if (local_user() && link_compare($a->contact['url'],$item['author-link'])) { + $edpost = array(App::get_baseurl($ssl_state)."/editpost/".$item['id'], t("Edit")); + } else { $edpost = false; + } $drop = ''; $dropping = false; @@ -764,7 +765,7 @@ function render_content(&$a, $items, $mode, $update, $preview = false) { $isstarred = "unstarred"; if ($profile_owner == local_user()) { - if($toplevelpost) { + if ($toplevelpost) { $isstarred = (($item['starred']) ? "starred" : "unstarred"); $star = array( @@ -782,6 +783,7 @@ function render_content(&$a, $items, $mode, $update, $preview = false) { intval($item['uid']), intval($item['id']) ); + if (dbm::is_result($r)) { $ignore = array( 'do' => t("ignore thread"), @@ -793,7 +795,7 @@ function render_content(&$a, $items, $mode, $update, $preview = false) { ); } $tagger = ''; - if(feature_enabled($profile_owner,'commtag')) { + if (feature_enabled($profile_owner,'commtag')) { $tagger = array( 'add' => t("add tag"), 'class' => "", @@ -818,19 +820,22 @@ function render_content(&$a, $items, $mode, $update, $preview = false) { $sp = false; $profile_link = best_link_url($item,$sp); - if($profile_link === 'mailbox') + if ($profile_link === 'mailbox') { $profile_link = ''; - if($sp) + } + if ($sp) { $sparkle = ' sparkle'; - else + } else { $profile_link = zrl($profile_link); + } // Don't rely on the author-avatar. It is better to use the data from the contact table $author_contact = get_contact_details_by_url($item['author-link'], $profile_owner); - if ($author_contact["thumb"]) + if ($author_contact["thumb"]) { $profile_avatar = $author_contact["thumb"]; - else + } else { $profile_avatar = $item['author-avatar']; + } $like = ((x($conv_responses['like'],$item['uri'])) ? format_like($conv_responses['like'][$item['uri']],$conv_responses['like'][$item['uri'] . '-l'],'like',$item['uri']) : ''); $dislike = ((x($conv_responses['dislike'],$item['uri'])) ? format_like($conv_responses['dislike'][$item['uri']],$conv_responses['dislike'][$item['uri'] . '-l'],'dislike',$item['uri']) : ''); diff --git a/mod/crepair.php b/mod/crepair.php index b4275f6baa..59b92df0a7 100644 --- a/mod/crepair.php +++ b/mod/crepair.php @@ -3,8 +3,9 @@ require_once("include/contact_selectors.php"); require_once("mod/contacts.php"); function crepair_init(&$a) { - if(! local_user()) + if (! local_user()) { return; + } $contact_id = 0; @@ -14,7 +15,7 @@ function crepair_init(&$a) { intval(local_user()), intval($contact_id) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { $contact_id = 0; } } @@ -29,10 +30,10 @@ function crepair_init(&$a) { } } - function crepair_post(&$a) { - if(! local_user()) + if (! local_user()) { return; + } $cid = (($a->argc > 1) ? intval($a->argv[1]) : 0); @@ -43,8 +44,9 @@ function crepair_post(&$a) { ); } - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { return; + } $contact = $r[0]; @@ -96,7 +98,7 @@ function crepair_post(&$a) { function crepair_content(&$a) { - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL); return; } @@ -110,7 +112,7 @@ function crepair_content(&$a) { ); } - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { notice( t('Contact not found.') . EOL); return; } diff --git a/mod/delegate.php b/mod/delegate.php index 71628aed0e..1a3f13c763 100644 --- a/mod/delegate.php +++ b/mod/delegate.php @@ -8,17 +8,18 @@ function delegate_init(&$a) { function delegate_content(&$a) { - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL); return; } - if($a->argc > 2 && $a->argv[1] === 'add' && intval($a->argv[2])) { + if ($a->argc > 2 && $a->argv[1] === 'add' && intval($a->argv[2])) { // delegated admins can view but not change delegation permissions - if(x($_SESSION,'submanage') && intval($_SESSION['submanage'])) - goaway($a->get_baseurl() . '/delegate'); + if (x($_SESSION,'submanage') && intval($_SESSION['submanage'])) { + goaway(App::get_baseurl() . '/delegate'); + } $id = $a->argv[2]; @@ -29,7 +30,7 @@ function delegate_content(&$a) { if (dbm::is_result($r)) { $r = q("select id from contact where uid = %d and nurl = '%s' limit 1", intval(local_user()), - dbesc(normalise_link($a->get_baseurl() . '/profile/' . $r[0]['nickname'])) + dbesc(normalise_link(App::get_baseurl() . '/profile/' . $r[0]['nickname'])) ); if (dbm::is_result($r)) { q("insert into manage ( uid, mid ) values ( %d , %d ) ", @@ -38,21 +39,22 @@ function delegate_content(&$a) { ); } } - goaway($a->get_baseurl() . '/delegate'); + goaway(App::get_baseurl() . '/delegate'); } - if($a->argc > 2 && $a->argv[1] === 'remove' && intval($a->argv[2])) { + if ($a->argc > 2 && $a->argv[1] === 'remove' && intval($a->argv[2])) { // delegated admins can view but not change delegation permissions - if(x($_SESSION,'submanage') && intval($_SESSION['submanage'])) - goaway($a->get_baseurl() . '/delegate'); + if (x($_SESSION,'submanage') && intval($_SESSION['submanage'])) { + goaway(App::get_baseurl() . '/delegate'); + } q("delete from manage where uid = %d and mid = %d limit 1", intval($a->argv[2]), intval(local_user()) ); - goaway($a->get_baseurl() . '/delegate'); + goaway(App::get_baseurl() . '/delegate'); } @@ -92,12 +94,12 @@ function delegate_content(&$a) { $r = q("select nurl from contact where substring_index(contact.nurl,'/',3) = '%s' and contact.uid = %d and contact.self = 0 and network = '%s' ", - dbesc(normalise_link($a->get_baseurl())), + dbesc(normalise_link(App::get_baseurl())), intval(local_user()), dbesc(NETWORK_DFRN) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { notice( t('No potential page delegates located.') . EOL); return; } @@ -105,7 +107,7 @@ function delegate_content(&$a) { $nicknames = array(); if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { $nicknames[] = "'" . dbesc(basename($rr['nurl'])) . "'"; } } @@ -128,7 +130,7 @@ function delegate_content(&$a) { $o = replace_macros(get_markup_template('delegate.tpl'),array( '$header' => t('Delegate Page Management'), - '$base' => $a->get_baseurl(), + '$base' => App::get_baseurl(), '$desc' => t('Delegates are able to manage all aspects of this account/page except for basic account settings. Please do not delegate your personal account to anybody that you do not trust completely.'), '$head_managers' => t('Existing Page Managers'), '$managers' => $full_managers, diff --git a/mod/dfrn_confirm.php b/mod/dfrn_confirm.php index 23c62cb0ab..684cd341e7 100644 --- a/mod/dfrn_confirm.php +++ b/mod/dfrn_confirm.php @@ -121,7 +121,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { intval($uid) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { logger('Contact not found in DB.'); notice( t('Contact not found.') . EOL ); notice( t('This may occasionally happen if contact was requested by both persons and it has already been approved.') . EOL ); @@ -194,7 +194,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { $params['public_key'] = $public_key; - $my_url = $a->get_baseurl() . '/profile/' . $user[0]['nickname']; + $my_url = App::get_baseurl() . '/profile/' . $user[0]['nickname']; openssl_public_encrypt($my_url, $params['source_url'], $site_pubkey); $params['source_url'] = bin2hex($params['source_url']); @@ -433,7 +433,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { if(($contact) && ($contact['network'] === NETWORK_DIASPORA)) { require_once('include/diaspora.php'); - $ret = diaspora::send_share($user[0],$r[0]); + $ret = Diaspora::send_share($user[0],$r[0]); logger('share returns: ' . $ret); } @@ -503,10 +503,11 @@ function dfrn_confirm_post(&$a,$handsfree = null) { // Let's send our user to the contact editor in case they want to // do anything special with this new friend. - if($handsfree === null) - goaway($a->get_baseurl() . '/contacts/' . intval($contact_id)); - else + if ($handsfree === null) { + goaway(App::get_baseurl() . '/contacts/' . intval($contact_id)); + } else { return; + } //NOTREACHED } @@ -522,7 +523,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { * */ - if(x($_POST,'source_url')) { + if (x($_POST,'source_url')) { // We are processing an external confirmation to an introduction created by our user. @@ -543,7 +544,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { // If $aes_key is set, both of these items require unpacking from the hex transport encoding. - if(x($aes_key)) { + if (x($aes_key)) { $aes_key = hex2bin($aes_key); $public_key = hex2bin($public_key); } @@ -553,7 +554,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { $r = q("SELECT * FROM `user` WHERE `nickname` = '%s' LIMIT 1", dbesc($node)); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { $message = sprintf(t('No user record found for \'%s\' '), $node); xml_status(3,$message); // failure // NOTREACHED @@ -640,7 +641,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { dbesc($dfrn_pubkey), intval($dfrn_record) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { $message = t('Unable to set your contact credentials on our system.'); xml_status(3,$message); } @@ -661,10 +662,11 @@ function dfrn_confirm_post(&$a,$handsfree = null) { $r = q("SELECT `photo` FROM `contact` WHERE `id` = %d LIMIT 1", intval($dfrn_record)); - if (dbm::is_result($r)) + if (dbm::is_result($r)) { $photo = $r[0]['photo']; - else - $photo = $a->get_baseurl() . '/images/person-175.jpg'; + } else { + $photo = App::get_baseurl() . '/images/person-175.jpg'; + } require_once("include/Photo.php"); @@ -673,11 +675,13 @@ function dfrn_confirm_post(&$a,$handsfree = null) { logger('dfrn_confirm: request - photos imported'); $new_relation = CONTACT_IS_SHARING; - if(($relation == CONTACT_IS_FOLLOWER) || ($duplex)) + if (($relation == CONTACT_IS_FOLLOWER) || ($duplex)) { $new_relation = CONTACT_IS_FRIEND; + } - if(($relation == CONTACT_IS_FOLLOWER) && ($duplex)) + if (($relation == CONTACT_IS_FOLLOWER) && ($duplex)) { $duplex = 0; + } $r = q("UPDATE `contact` SET `rel` = %d, @@ -699,7 +703,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { dbesc(NETWORK_DFRN), intval($dfrn_record) ); - if($r === false) { // indicates schema is messed up or total db failure + if ($r === false) { // indicates schema is messed up or total db failure $message = t('Unable to update your contact profile details on our system'); xml_status(3,$message); } @@ -726,7 +730,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { 'to_name' => $r[0]['username'], 'to_email' => $r[0]['email'], 'uid' => $r[0]['uid'], - 'link' => $a->get_baseurl() . '/contacts/' . $dfrn_record, + 'link' => App::get_baseurl() . '/contacts/' . $dfrn_record, 'source_name' => ((strlen(stripslashes($r[0]['name']))) ? stripslashes($r[0]['name']) : t('[Name Withheld]')), 'source_link' => $r[0]['url'], 'source_photo' => $r[0]['photo'], diff --git a/mod/dfrn_notify.php b/mod/dfrn_notify.php index dfa2af18ce..ca12211583 100644 --- a/mod/dfrn_notify.php +++ b/mod/dfrn_notify.php @@ -42,7 +42,7 @@ function dfrn_notify_post(&$a) { dbesc($dfrn_id), dbesc($challenge) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { logger('dfrn_notify: could not match challenge to dfrn_id ' . $dfrn_id . ' challenge=' . $challenge); xml_status(3); } @@ -88,7 +88,7 @@ function dfrn_notify_post(&$a) { dbesc($a->argv[1]) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { logger('dfrn_notify: contact not found for dfrn_id ' . $dfrn_id); xml_status(3); //NOTREACHED @@ -284,8 +284,9 @@ function dfrn_notify_content(&$a) { dbesc($a->argv[1]) ); - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { $status = 1; + } logger("Remote rino version: ".$rino_remote." for ".$r[0]["url"], LOGGER_DEBUG); diff --git a/mod/dfrn_poll.php b/mod/dfrn_poll.php index 91cd33f49a..0c55af2a89 100644 --- a/mod/dfrn_poll.php +++ b/mod/dfrn_poll.php @@ -112,7 +112,7 @@ function dfrn_poll_init(&$a) { } } $profile = $r[0]['nickname']; - goaway((strlen($destination_url)) ? $destination_url : $a->get_baseurl() . '/profile/' . $profile); + goaway((strlen($destination_url)) ? $destination_url : App::get_baseurl() . '/profile/' . $profile); } goaway(z_root()); @@ -126,7 +126,7 @@ function dfrn_poll_init(&$a) { $r = q("SELECT * FROM `profile_check` WHERE `sec` = '%s' ORDER BY `expire` DESC LIMIT 1", dbesc($sec) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { xml_status(3, 'No ticket'); // NOTREACHED } @@ -223,7 +223,7 @@ function dfrn_poll_post(&$a) { $r = q("SELECT * FROM `profile_check` WHERE `sec` = '%s' ORDER BY `expire` DESC LIMIT 1", dbesc($sec) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { xml_status(3, 'No ticket'); // NOTREACHED } @@ -284,8 +284,9 @@ function dfrn_poll_post(&$a) { dbesc($challenge) ); - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { killme(); + } $type = $r[0]['type']; $last_update = $r[0]['last_update']; @@ -319,8 +320,9 @@ function dfrn_poll_post(&$a) { $r = q("SELECT * FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 $sql_extra LIMIT 1"); - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { killme(); + } $contact = $r[0]; $owner_uid = $r[0]['uid']; @@ -499,14 +501,14 @@ function dfrn_poll_content(&$a) { switch($destination_url) { case 'profile': - $dest = $a->get_baseurl() . '/profile/' . $profile . '?f=&tab=profile'; + $dest = App::get_baseurl() . '/profile/' . $profile . '?f=&tab=profile'; break; case 'photos': - $dest = $a->get_baseurl() . '/photos/' . $profile; + $dest = App::get_baseurl() . '/photos/' . $profile; break; case 'status': case '': - $dest = $a->get_baseurl() . '/profile/' . $profile; + $dest = App::get_baseurl() . '/profile/' . $profile; break; default: $dest = $destination_url . '?f=&redir=1'; diff --git a/mod/dfrn_request.php b/mod/dfrn_request.php index 236970a2e9..68ef4971b4 100644 --- a/mod/dfrn_request.php +++ b/mod/dfrn_request.php @@ -120,17 +120,19 @@ function dfrn_request_post(&$a) { $parms = Probe::profile($dfrn_url); - if(! count($parms)) { + if (! count($parms)) { notice( t('Profile location is not valid or does not contain profile information.') . EOL ); return; } else { - if(! x($parms,'fn')) + if (! x($parms,'fn')) { notice( t('Warning: profile location has no identifiable owner name.') . EOL ); - if(! x($parms,'photo')) + } + if (! x($parms,'photo')) { notice( t('Warning: profile location has no profile photo.') . EOL ); + } $invalid = Probe::valid_dfrn($parms); - if($invalid) { + if ($invalid) { notice( sprintf( tt("%d required parameter was not found at the given location", "%d required parameters were not found at the given location", $invalid), $invalid) . EOL ); @@ -176,7 +178,7 @@ function dfrn_request_post(&$a) { ); } - if($r) { + if ($r) { info( t("Introduction complete.") . EOL); } @@ -193,19 +195,22 @@ function dfrn_request_post(&$a) { if (isset($photo)) update_contact_avatar($photo, local_user(), $r[0]["id"], true); - $forwardurl = $a->get_baseurl()."/contacts/".$r[0]['id']; - } else - $forwardurl = $a->get_baseurl()."/contacts"; + $forwardurl = App::get_baseurl()."/contacts/".$r[0]['id']; + } else { + $forwardurl = App::get_baseurl()."/contacts"; + } /* * Allow the blocked remote notification to complete */ - if(is_array($contact_record)) + if (is_array($contact_record)) { $dfrn_request = $contact_record['request']; + } - if(strlen($dfrn_request) && strlen($confirm_key)) + if (strlen($dfrn_request) && strlen($confirm_key)) { $s = fetch_url($dfrn_request . '?confirm_key=' . $confirm_key); + } // (ignore reply, nothing we can do it failed) @@ -296,7 +301,7 @@ function dfrn_request_post(&$a) { dbesc(NETWORK_MAIL2) ); if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { if(! $rr['rel']) { q("DELETE FROM `contact` WHERE `id` = %d", intval($rr['cid']) @@ -321,7 +326,7 @@ function dfrn_request_post(&$a) { dbesc(NETWORK_MAIL2) ); if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { if(! $rr['rel']) { q("DELETE FROM `contact` WHERE `id` = %d", intval($rr['cid']) @@ -371,7 +376,7 @@ function dfrn_request_post(&$a) { intval($uid) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { notice( t('This account has not been configured for email. Request failed.') . EOL); return; } @@ -499,15 +504,15 @@ function dfrn_request_post(&$a) { ); } else { - if(! validate_url($url)) { + if (! validate_url($url)) { notice( t('Invalid profile URL.') . EOL); - goaway($a->get_baseurl() . '/' . $a->cmd); + goaway(App::get_baseurl() . '/' . $a->cmd); return; // NOTREACHED } - if(! allowed_url($url)) { + if (! allowed_url($url)) { notice( t('Disallowed profile URL.') . EOL); - goaway($a->get_baseurl() . '/' . $a->cmd); + goaway(App::get_baseurl() . '/' . $a->cmd); return; // NOTREACHED } @@ -516,17 +521,19 @@ function dfrn_request_post(&$a) { $parms = Probe::profile(($hcard) ? $hcard : $url); - if(! count($parms)) { + if (! count($parms)) { notice( t('Profile location is not valid or does not contain profile information.') . EOL ); - goaway($a->get_baseurl() . '/' . $a->cmd); + goaway(App::get_baseurl() . '/' . $a->cmd); } else { - if(! x($parms,'fn')) + if (! x($parms,'fn')) { notice( t('Warning: profile location has no identifiable owner name.') . EOL ); - if(! x($parms,'photo')) + } + if (! x($parms,'photo')) { notice( t('Warning: profile location has no profile photo.') . EOL ); + } $invalid = Probe::valid_dfrn($parms); - if($invalid) { + if ($invalid) { notice( sprintf( tt("%d required parameter was not found at the given location", "%d required parameters were not found at the given location", $invalid), $invalid) . EOL ); @@ -565,7 +572,7 @@ function dfrn_request_post(&$a) { ); // find the contact record we just created - if($r) { + if ($r) { $r = q("SELECT `id` FROM `contact` WHERE `uid` = %d AND `url` = '%s' AND `issued-id` = '%s' LIMIT 1", intval($uid), @@ -579,14 +586,14 @@ function dfrn_request_post(&$a) { } } - if($r === false) { + if ($r === false) { notice( t('Failed to update contact record.') . EOL ); return; } $hash = random_string() . (string) time(); // Generate a confirm_key - if(is_array($contact_record)) { + if (is_array($contact_record)) { $ret = q("INSERT INTO `intro` ( `uid`, `contact-id`, `blocked`, `knowyou`, `note`, `hash`, `datetime`) VALUES ( %d, %d, 1, %d, '%s', '%s', '%s' )", intval($uid), @@ -600,12 +607,13 @@ function dfrn_request_post(&$a) { // This notice will only be seen by the requestor if the requestor and requestee are on the same server. - if(! $failed) + if (! $failed) { info( t('Your introduction has been sent.') . EOL ); + } // "Homecoming" - send the requestor back to their site to record the introduction. - $dfrn_url = bin2hex($a->get_baseurl() . '/profile/' . $nickname); + $dfrn_url = bin2hex(App::get_baseurl() . '/profile/' . $nickname); $aes_allow = ((function_exists('openssl_encrypt')) ? 1 : 0); goaway($parms['dfrn-request'] . "?dfrn_url=$dfrn_url" @@ -633,8 +641,9 @@ function dfrn_request_post(&$a) { $uri .= '/'.$a->get_path(); $uri = urlencode($uri); - } else - $uri = $a->get_baseurl().'/profile/'.$nickname; + } else { + $uri = App::get_baseurl().'/profile/'.$nickname; + } $url = str_replace('{uri}', $uri, $url); goaway($url); @@ -651,16 +660,17 @@ function dfrn_request_post(&$a) { function dfrn_request_content(&$a) { - if(($a->argc != 2) || (! count($a->profile))) + if (($a->argc != 2) || (! count($a->profile))) { return ""; + } // "Homecoming". Make sure we're logged in to this site as the correct user. Then offer a confirm button // to send us to the post section to record the introduction. - if(x($_GET,'dfrn_url')) { + if (x($_GET,'dfrn_url')) { - if(! local_user()) { + if (! local_user()) { info( t("Please login to confirm introduction.") . EOL ); /* setup the return URL to come back to this page if they use openid */ $_SESSION['return_url'] = $a->query_string; @@ -742,7 +752,7 @@ function dfrn_request_content(&$a) { 'to_name' => $r[0]['username'], 'to_email' => $r[0]['email'], 'uid' => $r[0]['uid'], - 'link' => $a->get_baseurl() . '/notifications/intros', + 'link' => App::get_baseurl() . '/notifications/intros', 'source_name' => ((strlen(stripslashes($r[0]['name']))) ? stripslashes($r[0]['name']) : t('[Name Withheld]')), 'source_link' => $r[0]['url'], 'source_photo' => $r[0]['photo'], @@ -804,15 +814,18 @@ function dfrn_request_content(&$a) { $myaddr = hex2bin($_GET['addr']); elseif (x($_GET,'address') AND ($_GET['address'] != "")) $myaddr = $_GET['address']; - elseif(local_user()) { - if(strlen($a->path)) { - $myaddr = $a->get_baseurl() . '/profile/' . $a->user['nickname']; + elseif (local_user()) { + if (strlen($a->path)) { + $myaddr = App::get_baseurl() . '/profile/' . $a->user['nickname']; } else { $myaddr = $a->user['nickname'] . '@' . substr(z_root(), strpos(z_root(),'://') + 3 ); } - } else // last, try a zrl + } + else { + // last, try a zrl $myaddr = get_my_url(); + } $target_addr = $a->profile['nickname'] . '@' . substr(z_root(), strpos(z_root(),'://') + 3 ); @@ -825,10 +838,12 @@ function dfrn_request_content(&$a) { * */ - if($a->profile['page-flags'] == PAGE_NORMAL) + if ($a->profile['page-flags'] == PAGE_NORMAL) { $tpl = get_markup_template('dfrn_request.tpl'); - else + } + else { $tpl = get_markup_template('auto_request.tpl'); + } $page_desc = t("Please enter your 'Identity Address' from one of the following supported communications networks:"); @@ -842,8 +857,9 @@ function dfrn_request_content(&$a) { $r = q("SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1", intval($a->profile['uid']) ); - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { $mail_disabled = 1; + } } // "coming soon" is disabled for now diff --git a/mod/directory.php b/mod/directory.php index ddea650de2..50a0a93b9c 100644 --- a/mod/directory.php +++ b/mod/directory.php @@ -92,12 +92,14 @@ function directory_content(&$a) { WHERE `is-default` = 1 $publish AND `user`.`blocked` = 0 AND `contact`.`self` $sql_extra $order LIMIT ".$limit); if (dbm::is_result($r)) { - if(in_array('small', $a->argv)) + if (in_array('small', $a->argv)) { $photo = 'thumb'; - else + } + else { $photo = 'photo'; + } - foreach($r as $rr) { + foreach ($r as $rr) { $itemurl= ''; diff --git a/mod/dirfind.php b/mod/dirfind.php index 215731978c..0ac82f2817 100644 --- a/mod/dirfind.php +++ b/mod/dirfind.php @@ -7,13 +7,14 @@ require_once('mod/contacts.php'); function dirfind_init(&$a) { - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL ); return; } - if(! x($a->page,'aside')) + if (! x($a->page,'aside')) { $a->page['aside'] = ''; + } $a->page['aside'] .= findpeople_widget(); @@ -31,7 +32,7 @@ function dirfind_content(&$a, $prefix = "") { $search = $prefix.notags(trim($_REQUEST['search'])); - if(strpos($search,'@') === 0) { + if (strpos($search,'@') === 0) { $search = substr($search,1); $header = sprintf( t('People Search - %s'), $search); if ((valid_email($search) AND validate_email($search)) OR @@ -41,7 +42,7 @@ function dirfind_content(&$a, $prefix = "") { } } - if(strpos($search,'!') === 0) { + if (strpos($search,'!') === 0) { $search = substr($search,1); $community = true; $header = sprintf( t('Forum Search - %s'), $search); @@ -49,7 +50,7 @@ function dirfind_content(&$a, $prefix = "") { $o = ''; - if($search) { + if ($search) { if ($discover_user) { $j = new stdClass(); @@ -85,18 +86,21 @@ function dirfind_content(&$a, $prefix = "") { $perpage = 80; $startrec = (($a->pager['page']) * $perpage) - $perpage; - if (get_config('system','diaspora_enabled')) + if (get_config('system','diaspora_enabled')) { $diaspora = NETWORK_DIASPORA; - else + } else { $diaspora = NETWORK_DFRN; + } - if (!get_config('system','ostatus_disabled')) + if (!get_config('system','ostatus_disabled')) { $ostatus = NETWORK_OSTATUS; - else + } else { $ostatus = NETWORK_DFRN; + } $search2 = "%".$search."%"; + /// @TODO These 2 SELECTs are not checked on validity with dbm::is_result() $count = q("SELECT count(*) AS `total` FROM `gcontact` LEFT JOIN `contact` ON `contact`.`nurl` = `gcontact`.`nurl` AND `contact`.`network` = `gcontact`.`network` @@ -133,8 +137,9 @@ function dirfind_content(&$a, $prefix = "") { $j->items_page = $perpage; $j->page = $a->pager['page']; foreach ($results AS $result) { - if (poco_alternate_ostatus_url($result["url"])) - continue; + if (poco_alternate_ostatus_url($result["url"])) { + continue; + } $result = get_contact_details_by_url($result["url"], local_user(), $result); @@ -167,16 +172,16 @@ function dirfind_content(&$a, $prefix = "") { $j = json_decode($x); } - if($j->total) { + if ($j->total) { $a->set_pager_total($j->total); $a->set_pager_itemspage($j->items_page); } - if(count($j->results)) { + if (count($j->results)) { $id = 0; - foreach($j->results as $jj) { + foreach ($j->results as $jj) { $alt_text = ""; @@ -194,10 +199,11 @@ function dirfind_content(&$a, $prefix = "") { $photo_menu = contact_photo_menu($contact[0]); $details = _contact_detail_for_template($contact[0]); $alt_text = $details['alt_text']; - } else + } else { $photo_menu = array(); + } } else { - $connlnk = $a->get_baseurl().'/follow/?url='.(($jj->connect) ? $jj->connect : $jj->url); + $connlnk = App::get_baseurl().'/follow/?url='.(($jj->connect) ? $jj->connect : $jj->url); $conntxt = t('Connect'); $photo_menu = array( 'profile' => array(t("View Profile"), zrl($jj->url)), @@ -235,8 +241,7 @@ function dirfind_content(&$a, $prefix = "") { '$paginate' => paginate($a), )); - } - else { + } else { info( t('No matches') . EOL); } diff --git a/mod/display.php b/mod/display.php index 293156cf19..6ebe16ae8a 100644 --- a/mod/display.php +++ b/mod/display.php @@ -81,8 +81,8 @@ function display_init(&$a) { $profiledata = display_fetchauthor($a, $r[0]); - if (strstr(normalise_link($profiledata["url"]), normalise_link($a->get_baseurl()))) { - $nickname = str_replace(normalise_link($a->get_baseurl())."/profile/", "", normalise_link($profiledata["url"])); + if (strstr(normalise_link($profiledata["url"]), normalise_link(App::get_baseurl()))) { + $nickname = str_replace(normalise_link(App::get_baseurl())."/profile/", "", normalise_link($profiledata["url"])); if (($nickname != $a->user["nickname"])) { $r = qu("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `profile` @@ -184,7 +184,7 @@ function display_fetchauthor($a, $item) { if (local_user()) { if (in_array($profiledata["network"], array(NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS))) { - $profiledata["remoteconnect"] = $a->get_baseurl()."/follow?url=".urlencode($profiledata["url"]); + $profiledata["remoteconnect"] = App::get_baseurl()."/follow?url=".urlencode($profiledata["url"]); } } elseif ($profiledata["network"] == NETWORK_DFRN) { $connect = str_replace("/profile/", "/dfrn_request/", $profiledata["url"]); diff --git a/mod/editpost.php b/mod/editpost.php index 217d793f52..54b50bc36d 100644 --- a/mod/editpost.php +++ b/mod/editpost.php @@ -6,14 +6,14 @@ function editpost_content(&$a) { $o = ''; - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL); return; } $post_id = (($a->argc > 1) ? intval($a->argv[1]) : 0); - if(! $post_id) { + if (! $post_id) { notice( t('Item not found') . EOL); return; } @@ -23,7 +23,7 @@ function editpost_content(&$a) { intval(local_user()) ); - if(! count($itm)) { + if (! count($itm)) { notice( t('Item not found') . EOL); return; } @@ -42,7 +42,7 @@ function editpost_content(&$a) { $tpl = get_markup_template('jot-header.tpl'); $a->page['htmlhead'] .= replace_macros($tpl, array( - '$baseurl' => $a->get_baseurl(), + '$baseurl' => App::get_baseurl(), '$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'), '$ispublic' => ' ', // t('Visible to everybody'), '$geotag' => $geotag, @@ -51,7 +51,7 @@ function editpost_content(&$a) { $tpl = get_markup_template('jot-end.tpl'); $a->page['end'] .= replace_macros($tpl, array( - '$baseurl' => $a->get_baseurl(), + '$baseurl' => App::get_baseurl(), '$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'), '$ispublic' => ' ', // t('Visible to everybody'), '$geotag' => $geotag, @@ -126,7 +126,7 @@ function editpost_content(&$a) { '$ptyp' => $itm[0]['type'], '$content' => undo_post_tagging($itm[0]['body']), '$post_id' => $post_id, - '$baseurl' => $a->get_baseurl(), + '$baseurl' => App::get_baseurl(), '$defloc' => $a->user['default-location'], '$visitor' => 'none', '$pvisit' => 'none', diff --git a/mod/events.php b/mod/events.php index 7cb171f9e5..36d8f0cf71 100644 --- a/mod/events.php +++ b/mod/events.php @@ -9,18 +9,19 @@ require_once('include/event.php'); require_once('include/items.php'); function events_init(&$a) { - if(! local_user()) + if (! local_user()) { return; + } - if($a->argc == 1) { + if ($a->argc == 1) { // if it's a json request abort here becaus we don't // need the widget data - if($a->argv[1] === 'json') + if ($a->argv[1] === 'json') return; $cal_widget = widget_events(); - if(! x($a->page,'aside')) + if (! x($a->page,'aside')) $a->page['aside'] = ''; $a->page['aside'] .= $cal_widget; @@ -33,8 +34,9 @@ function events_post(&$a) { logger('post: ' . print_r($_REQUEST,true)); - if(! local_user()) + if (! local_user()) { return; + } $event_id = ((x($_POST,'event_id')) ? intval($_POST['event_id']) : 0); $cid = ((x($_POST,'cid')) ? intval($_POST['cid']) : 0); @@ -49,33 +51,35 @@ function events_post(&$a) { // The default setting for the `private` field in event_store() is false, so mirror that $private_event = false; - if($start_text) { + if ($start_text) { $start = $start_text; } else { $start = sprintf('%d-%d-%d %d:%d:0',$startyear,$startmonth,$startday,$starthour,$startminute); } - if($nofinish) { + if ($nofinish) { $finish = '0000-00-00 00:00:00'; } - if($finish_text) { + if ($finish_text) { $finish = $finish_text; } else { $finish = sprintf('%d-%d-%d %d:%d:0',$finishyear,$finishmonth,$finishday,$finishhour,$finishminute); } - if($adjust) { + if ($adjust) { $start = datetime_convert(date_default_timezone_get(),'UTC',$start); - if(! $nofinish) + if (! $nofinish) { $finish = datetime_convert(date_default_timezone_get(),'UTC',$finish); + } } else { $start = datetime_convert('UTC','UTC',$start); - if(! $nofinish) + if (! $nofinish) { $finish = datetime_convert('UTC','UTC',$finish); + } } // Don't allow the event to finish before it begins. @@ -89,11 +93,11 @@ function events_post(&$a) { $type = 'event'; $action = ($event_id == '') ? 'new' : "event/" . $event_id; - $onerror_url = $a->get_baseurl() . "/events/" . $action . "?summary=$summary&description=$desc&location=$location&start=$start_text&finish=$finish_text&adjust=$adjust&nofinish=$nofinish"; + $onerror_url = App::get_baseurl() . "/events/" . $action . "?summary=$summary&description=$desc&location=$location&start=$start_text&finish=$finish_text&adjust=$adjust&nofinish=$nofinish"; - if(strcmp($finish,$start) < 0 && !$nofinish) { + if (strcmp($finish,$start) < 0 && !$nofinish) { notice( t('Event can not end before it has started.') . EOL); - if(intval($_REQUEST['preview'])) { + if (intval($_REQUEST['preview'])) { echo( t('Event can not end before it has started.')); killme(); } @@ -186,43 +190,46 @@ function events_post(&$a) { function events_content(&$a) { - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL); return; } - if($a->argc == 1) - $_SESSION['return_url'] = $a->get_baseurl() . '/' . $a->cmd; + if ($a->argc == 1) { + $_SESSION['return_url'] = App::get_baseurl() . '/' . $a->cmd; + } - if(($a->argc > 2) && ($a->argv[1] === 'ignore') && intval($a->argv[2])) { + if (($a->argc > 2) && ($a->argv[1] === 'ignore') && intval($a->argv[2])) { $r = q("update event set ignore = 1 where id = %d and uid = %d", intval($a->argv[2]), intval(local_user()) ); } - if(($a->argc > 2) && ($a->argv[1] === 'unignore') && intval($a->argv[2])) { + if (($a->argc > 2) && ($a->argv[1] === 'unignore') && intval($a->argv[2])) { $r = q("update event set ignore = 0 where id = %d and uid = %d", intval($a->argv[2]), intval(local_user()) ); } - if ($a->theme_events_in_profile) + if ($a->theme_events_in_profile) { nav_set_selected('home'); - else + } else { nav_set_selected('events'); + } $editselect = 'none'; - if( feature_enabled(local_user(), 'richtext') ) + if ( feature_enabled(local_user(), 'richtext') ) { $editselect = 'textareas'; + } // get the translation strings for the callendar $i18n = get_event_strings(); $htpl = get_markup_template('event_head.tpl'); $a->page['htmlhead'] .= replace_macros($htpl,array( - '$baseurl' => $a->get_baseurl(), + '$baseurl' => App::get_baseurl(), '$module_url' => '/events', '$modparams' => 1, '$i18n' => $i18n, @@ -231,7 +238,7 @@ function events_content(&$a) { $etpl = get_markup_template('event_end.tpl'); $a->page['end'] .= replace_macros($etpl,array( - '$baseurl' => $a->get_baseurl(), + '$baseurl' => App::get_baseurl(), '$editselect' => $editselect )); @@ -248,15 +255,15 @@ function events_content(&$a) { $ignored = ((x($_REQUEST,'ignored')) ? intval($_REQUEST['ignored']) : 0); if($a->argc > 1) { - if($a->argc > 2 && $a->argv[1] == 'event') { + if ($a->argc > 2 && $a->argv[1] == 'event') { $mode = 'edit'; $event_id = intval($a->argv[2]); } - if($a->argv[1] === 'new') { + if ($a->argv[1] === 'new') { $mode = 'new'; $event_id = 0; } - if($a->argc > 2 && intval($a->argv[1]) && intval($a->argv[2])) { + if ($a->argc > 2 && intval($a->argv[1]) && intval($a->argv[2])) { $mode = 'view'; $y = intval($a->argv[1]); $m = intval($a->argv[2]); @@ -264,23 +271,27 @@ function events_content(&$a) { } // The view mode part is similiar to /mod/cal.php - if($mode == 'view') { + if ($mode == 'view') { $thisyear = datetime_convert('UTC',date_default_timezone_get(),'now','Y'); $thismonth = datetime_convert('UTC',date_default_timezone_get(),'now','m'); - if(! $y) + if (! $y) { $y = intval($thisyear); - if(! $m) + } + if (! $m) { $m = intval($thismonth); + } // Put some limits on dates. The PHP date functions don't seem to do so well before 1900. // An upper limit was chosen to keep search engines from exploring links millions of years in the future. - if($y < 1901) + if ($y < 1901) { $y = 1900; - if($y > 2099) + } + if ($y > 2099) { $y = 2100; + } $nextyear = $y; $nextmonth = $m + 1; @@ -334,10 +345,11 @@ function events_content(&$a) { if (dbm::is_result($r)) { $r = sort_by_date($r); - foreach($r as $rr) { + foreach ($r as $rr) { $j = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['start'], 'j') : datetime_convert('UTC','UTC',$rr['start'],'j')); - if(! x($links,$j)) - $links[$j] = $a->get_baseurl() . '/' . $a->cmd . '#link-' . $j; + if (! x($links,$j)) { + $links[$j] = App::get_baseurl() . '/' . $a->cmd . '#link-' . $j; + } } } @@ -375,13 +387,13 @@ function events_content(&$a) { } $o = replace_macros($tpl, array( - '$baseurl' => $a->get_baseurl(), + '$baseurl' => App::get_baseurl(), '$tabs' => $tabs, '$title' => t('Events'), '$view' => t('View'), - '$new_event' => array($a->get_baseurl().'/events/new',t('Create New Event'),'',''), - '$previus' => array($a->get_baseurl()."/events/$prevyear/$prevmonth",t('Previous'),'',''), - '$next' => array($a->get_baseurl()."/events/$nextyear/$nextmonth",t('Next'),'',''), + '$new_event' => array(App::get_baseurl().'/events/new',t('Create New Event'),'',''), + '$previus' => array(App::get_baseurl()."/events/$prevyear/$prevmonth",t('Previous'),'',''), + '$next' => array(App::get_baseurl()."/events/$nextyear/$nextmonth",t('Next'),'',''), '$calendar' => cal($y,$m,$links, ' eventcal'), '$events' => $events, @@ -475,7 +487,7 @@ function events_content(&$a) { $tpl = get_markup_template('event_form.tpl'); $o .= replace_macros($tpl,array( - '$post' => $a->get_baseurl() . '/events', + '$post' => App::get_baseurl() . '/events', '$eid' => $eid, '$cid' => $cid, '$uri' => $uri, diff --git a/mod/fbrowser.php b/mod/fbrowser.php index 11ac2d8253..9c1d43cd8b 100644 --- a/mod/fbrowser.php +++ b/mod/fbrowser.php @@ -10,6 +10,7 @@ require_once('include/Photo.php'); /** * @param App $a */ +/// @TODO & is missing or App ? function fbrowser_content($a){ if (!local_user()) @@ -83,9 +84,9 @@ function fbrowser_content($a){ $scale = $rr['loq']; return array( - $a->get_baseurl() . '/photos/' . $a->user['nickname'] . '/image/' . $rr['resource-id'], + App::get_baseurl() . '/photos/' . $a->user['nickname'] . '/image/' . $rr['resource-id'], $filename_e, - $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $scale . '.'. $ext + App::get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $scale . '.'. $ext ); } $files = array_map("_map_files1", $r); @@ -93,19 +94,19 @@ function fbrowser_content($a){ $tpl = get_markup_template($template_file); $o = replace_macros($tpl, array( - '$type' => 'image', - '$baseurl' => $a->get_baseurl(), - '$path' => $path, - '$folders' => $albums, - '$files' =>$files, - '$cancel' => t('Cancel'), + '$type' => 'image', + '$baseurl' => App::get_baseurl(), + '$path' => $path, + '$folders' => $albums, + '$files' => $files, + '$cancel' => t('Cancel'), '$nickname' => $a->user['nickname'], )); break; case "file": - if ($a->argc==2){ + if ($a->argc==2) { $files = q("SELECT `id`, `filename`, `filetype` FROM `attach` WHERE `uid` = %d ", intval(local_user()) ); @@ -115,26 +116,25 @@ function fbrowser_content($a){ list($m1,$m2) = explode("/",$rr['filetype']); $filetype = ( (file_exists("images/icons/$m1.png"))?$m1:"zip"); - if($a->theme['template_engine'] === 'internal') { + if ($a->theme['template_engine'] === 'internal') { $filename_e = template_escape($rr['filename']); - } - else { + } else { $filename_e = $rr['filename']; } - return array( $a->get_baseurl() . '/attach/' . $rr['id'], $filename_e, $a->get_baseurl() . '/images/icons/16/' . $filetype . '.png'); + return array( App::get_baseurl() . '/attach/' . $rr['id'], $filename_e, App::get_baseurl() . '/images/icons/16/' . $filetype . '.png'); } $files = array_map("_map_files2", $files); $tpl = get_markup_template($template_file); $o = replace_macros($tpl, array( - '$type' => 'file', - '$baseurl' => $a->get_baseurl(), - '$path' => array( array( "", t("Files")) ), - '$folders' => false, - '$files' =>$files, - '$cancel' => t('Cancel'), + '$type' => 'file', + '$baseurl' => App::get_baseurl(), + '$path' => array( array( "", t("Files")) ), + '$folders' => false, + '$files' =>$files, + '$cancel' => t('Cancel'), '$nickname' => $a->user['nickname'], )); diff --git a/mod/fetch.php b/mod/fetch.php index 04bdf51880..afb5b88af3 100644 --- a/mod/fetch.php +++ b/mod/fetch.php @@ -52,12 +52,12 @@ function fetch_init(&$a){ } $user = $r[0]; - $status = diaspora::build_status($item[0], $user); - $xml = diaspora::build_post_xml($status["type"], $status["message"]); + $status = Diaspora::build_status($item[0], $user); + $xml = Diaspora::build_post_xml($status["type"], $status["message"]); // Send the envelope header("Content-Type: application/magic-envelope+xml; charset=utf-8"); - echo diaspora::build_magic_envelope($xml, $user); + echo Diaspora::build_magic_envelope($xml, $user); killme(); } diff --git a/mod/filer.php b/mod/filer.php index 4e79f337dc..eac3260591 100644 --- a/mod/filer.php +++ b/mod/filer.php @@ -7,7 +7,7 @@ require_once('include/items.php'); function filer_content(&$a) { - if(! local_user()) { + if (! local_user()) { killme(); } diff --git a/mod/filerm.php b/mod/filerm.php index c266082c8f..d3d74a4c2f 100644 --- a/mod/filerm.php +++ b/mod/filerm.php @@ -2,7 +2,7 @@ function filerm_content(&$a) { - if(! local_user()) { + if (! local_user()) { killme(); } @@ -10,18 +10,21 @@ function filerm_content(&$a) { $cat = unxmlify(trim($_GET['cat'])); $category = (($cat) ? true : false); - if($category) + if ($category) { $term = $cat; + } $item_id = (($a->argc > 1) ? intval($a->argv[1]) : 0); logger('filerm: tag ' . $term . ' item ' . $item_id); - if($item_id && strlen($term)) + if ($item_id && strlen($term)) { file_tag_unsave_file(local_user(),$item_id,$term, $category); + } - if(x($_SESSION,'return_url')) - goaway($a->get_baseurl() . '/' . $_SESSION['return_url']); + if (x($_SESSION,'return_url')) { + goaway(App::get_baseurl() . '/' . $_SESSION['return_url']); + } killme(); } diff --git a/mod/follow.php b/mod/follow.php index 1f56caea50..2e970ad0cb 100644 --- a/mod/follow.php +++ b/mod/follow.php @@ -7,7 +7,7 @@ require_once('include/contact_selectors.php'); function follow_content(&$a) { - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL); goaway($_SESSION['return_url']); // NOTREACHED @@ -56,14 +56,15 @@ function follow_content(&$a) { // NOTREACHED } - if ($ret["network"] == NETWORK_MAIL) + if ($ret["network"] == NETWORK_MAIL) { $ret["url"] = $ret["addr"]; + } - if($ret['network'] === NETWORK_DFRN) { + if ($ret['network'] === NETWORK_DFRN) { $request = $ret["request"]; $tpl = get_markup_template('dfrn_request.tpl'); } else { - $request = $a->get_baseurl()."/follow"; + $request = App::get_baseurl()."/follow"; $tpl = get_markup_template('auto_request.tpl'); } @@ -84,20 +85,22 @@ function follow_content(&$a) { $r = q("SELECT `id`, `location`, `about`, `keywords` FROM `gcontact` WHERE `nurl` = '%s'", normalise_link($ret["url"])); - if (!$r) + if (!$r) { $r = array(array("location" => "", "about" => "", "keywords" => "")); - else + } else { $gcontact_id = $r[0]["id"]; + } - if($ret['network'] === NETWORK_DIASPORA) { + if ($ret['network'] === NETWORK_DIASPORA) { $r[0]["location"] = ""; $r[0]["about"] = ""; } $header = $ret["name"]; - if ($ret["addr"] != "") + if ($ret["addr"] != "") { $header .= " <".$ret["addr"].">"; + } //$header .= " (".network_to_name($ret['network'], $ret['url']).")"; $header = t("Connect/Follow"); @@ -151,14 +154,15 @@ function follow_content(&$a) { function follow_post(&$a) { - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL); goaway($_SESSION['return_url']); // NOTREACHED } - if ($_REQUEST['cancel']) + if ($_REQUEST['cancel']) { goaway($_SESSION['return_url']); + } $uid = local_user(); $url = notags(trim($_REQUEST['url'])); @@ -170,17 +174,20 @@ function follow_post(&$a) { $result = new_contact($uid,$url,true); - if($result['success'] == false) { - if($result['message']) + if ($result['success'] == false) { + if ($result['message']) { notice($result['message']); + } goaway($return_url); - } elseif ($result['cid']) - goaway($a->get_baseurl().'/contacts/'.$result['cid']); + } elseif ($result['cid']) { + goaway(App::get_baseurl().'/contacts/'.$result['cid']); + } info( t('Contact added').EOL); - if(strstr($return_url,'contacts')) - goaway($a->get_baseurl().'/contacts/'.$contact_id); + if (strstr($return_url,'contacts')) { + goaway(App::get_baseurl().'/contacts/'.$contact_id); + } goaway($return_url); // NOTREACHED diff --git a/mod/friendica.php b/mod/friendica.php index fb25f40e45..5d8e43e6cb 100644 --- a/mod/friendica.php +++ b/mod/friendica.php @@ -15,7 +15,7 @@ function friendica_init(&$a) { $r = q("SELECT username, nickname FROM user WHERE email='%s' $sql_extra", dbesc($adminlist[0])); $admin = array( 'name' => $r[0]['username'], - 'profile'=> $a->get_baseurl().'/profile/'.$r[0]['nickname'], + 'profile'=> App::get_baseurl().'/profile/'.$r[0]['nickname'], ); } else { $admin = false; @@ -49,7 +49,7 @@ function friendica_init(&$a) { 'site_name' => $a->config['sitename'], 'platform' => FRIENDICA_PLATFORM, 'info' => ((x($a->config,'info')) ? $a->config['info'] : ''), - 'no_scrape_url' => $a->get_baseurl().'/noscrape' + 'no_scrape_url' => App::get_baseurl().'/noscrape' ); echo json_encode($data); diff --git a/mod/fsuggest.php b/mod/fsuggest.php index 1d56f45736..66871653dd 100644 --- a/mod/fsuggest.php +++ b/mod/fsuggest.php @@ -3,12 +3,13 @@ function fsuggest_post(&$a) { - if(! local_user()) { + if (! local_user()) { return; } - if($a->argc != 2) + if ($a->argc != 2) { return; + } $contact_id = intval($a->argv[1]); @@ -16,7 +17,7 @@ function fsuggest_post(&$a) { intval($contact_id), intval(local_user()) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { notice( t('Contact not found.') . EOL); return; } @@ -74,7 +75,7 @@ function fsuggest_content(&$a) { require_once('include/acl_selectors.php'); - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL); return; } @@ -88,7 +89,7 @@ function fsuggest_content(&$a) { intval($contact_id), intval(local_user()) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { notice( t('Contact not found.') . EOL); return; } diff --git a/mod/group.php b/mod/group.php index db92ed7de6..75ccc8f6d9 100644 --- a/mod/group.php +++ b/mod/group.php @@ -15,7 +15,7 @@ function group_init(&$a) { function group_post(&$a) { - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL); return; } @@ -25,39 +25,44 @@ function group_post(&$a) { $name = notags(trim($_POST['groupname'])); $r = group_add(local_user(),$name); - if($r) { + if ($r) { info( t('Group created.') . EOL ); $r = group_byname(local_user(),$name); - if($r) - goaway($a->get_baseurl() . '/group/' . $r); + if ($r) { + goaway(App::get_baseurl() . '/group/' . $r); + } } - else + else { notice( t('Could not create group.') . EOL ); - goaway($a->get_baseurl() . '/group'); + } + goaway(App::get_baseurl() . '/group'); return; // NOTREACHED } - if(($a->argc == 2) && (intval($a->argv[1]))) { + + if (($a->argc == 2) && (intval($a->argv[1]))) { check_form_security_token_redirectOnErr('/group', 'group_edit'); $r = q("SELECT * FROM `group` WHERE `id` = %d AND `uid` = %d LIMIT 1", intval($a->argv[1]), intval(local_user()) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { notice( t('Group not found.') . EOL ); - goaway($a->get_baseurl() . '/contacts'); + goaway(App::get_baseurl() . '/contacts'); return; // NOTREACHED } $group = $r[0]; $groupname = notags(trim($_POST['groupname'])); - if((strlen($groupname)) && ($groupname != $group['name'])) { + if ((strlen($groupname)) && ($groupname != $group['name'])) { $r = q("UPDATE `group` SET `name` = '%s' WHERE `uid` = %d AND `id` = %d", dbesc($groupname), intval(local_user()), intval($group['id']) ); - if($r) + + if ($r) { info( t('Group name changed.') . EOL ); + } } $a->page['aside'] = group_side(); @@ -68,7 +73,7 @@ function group_post(&$a) { function group_content(&$a) { $change = false; - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied') . EOL); return; } @@ -99,26 +104,32 @@ function group_content(&$a) { } - if(($a->argc == 3) && ($a->argv[1] === 'drop')) { + if (($a->argc == 3) && ($a->argv[1] === 'drop')) { check_form_security_token_redirectOnErr('/group', 'group_drop', 't'); - if(intval($a->argv[2])) { + if (intval($a->argv[2])) { $r = q("SELECT `name` FROM `group` WHERE `id` = %d AND `uid` = %d LIMIT 1", intval($a->argv[2]), intval(local_user()) ); - if (dbm::is_result($r)) + + $result = null; + + if (dbm::is_result($r)) { $result = group_rmv(local_user(),$r[0]['name']); - if($result) + } + + if ($result) { info( t('Group removed.') . EOL); - else + } else { notice( t('Unable to remove group.') . EOL); + } } - goaway($a->get_baseurl() . '/group'); + goaway(App::get_baseurl() . '/group'); // NOTREACHED } - if(($a->argc > 2) && intval($a->argv[1]) && intval($a->argv[2])) { + if (($a->argc > 2) && intval($a->argv[1]) && intval($a->argv[2])) { check_form_security_token_ForbiddenOnErr('group_member_change', 't'); $r = q("SELECT `id` FROM `contact` WHERE `id` = %d AND `uid` = %d and `self` = 0 and `blocked` = 0 AND `pending` = 0 LIMIT 1", @@ -129,16 +140,16 @@ function group_content(&$a) { $change = intval($a->argv[2]); } - if(($a->argc > 1) && (intval($a->argv[1]))) { + if (($a->argc > 1) && (intval($a->argv[1]))) { require_once('include/acl_selectors.php'); $r = q("SELECT * FROM `group` WHERE `id` = %d AND `uid` = %d AND `deleted` = 0 LIMIT 1", intval($a->argv[1]), intval(local_user()) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { notice( t('Group not found.') . EOL ); - goaway($a->get_baseurl() . '/contacts'); + goaway(App::get_baseurl() . '/contacts'); } $group = $r[0]; $members = group_get_members($group['id']); diff --git a/mod/hcard.php b/mod/hcard.php index 6d2d9e2ebf..512949f1a3 100644 --- a/mod/hcard.php +++ b/mod/hcard.php @@ -4,8 +4,9 @@ function hcard_init(&$a) { $blocked = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false); - if($a->argc > 1) + if ($a->argc > 1) { $which = $a->argv[1]; + } else { notice( t('No profile') . EOL ); $a->error = 404; @@ -13,39 +14,42 @@ function hcard_init(&$a) { } $profile = 0; - if((local_user()) && ($a->argc > 2) && ($a->argv[2] === 'view')) { - $which = $a->user['nickname']; - $profile = $a->argv[1]; + if ((local_user()) && ($a->argc > 2) && ($a->argv[2] === 'view')) { + $which = $a->user['nickname']; + $profile = $a->argv[1]; } profile_load($a,$which,$profile); - if((x($a->profile,'page-flags')) && ($a->profile['page-flags'] == PAGE_COMMUNITY)) { + if ((x($a->profile,'page-flags')) && ($a->profile['page-flags'] == PAGE_COMMUNITY)) { $a->page['htmlhead'] .= ''; } - if(x($a->profile,'openidserver')) + if (x($a->profile,'openidserver')) { $a->page['htmlhead'] .= '' . "\r\n"; - if(x($a->profile,'openid')) { + } + if (x($a->profile,'openid')) { $delegate = ((strstr($a->profile['openid'],'://')) ? $a->profile['openid'] : 'http://' . $a->profile['openid']); $a->page['htmlhead'] .= '' . "\r\n"; } - if(! $blocked) { + if (! $blocked) { $keywords = ((x($a->profile,'pub_keywords')) ? $a->profile['pub_keywords'] : ''); $keywords = str_replace(array(',',' ',',,'),array(' ',',',','),$keywords); - if(strlen($keywords)) + if (strlen($keywords)) { $a->page['htmlhead'] .= '' . "\r\n" ; + } } $a->page['htmlhead'] .= '' . "\r\n" ; - $a->page['htmlhead'] .= '' . "\r\n" ; + $a->page['htmlhead'] .= '' . "\r\n" ; $uri = urlencode('acct:' . $a->profile['nickname'] . '@' . $a->get_hostname() . (($a->path) ? '/' . $a->path : '')); - $a->page['htmlhead'] .= '' . "\r\n"; - header('Link: <' . $a->get_baseurl() . '/xrd/?uri=' . $uri . '>; rel="lrdd"; type="application/xrd+xml"', false); - + $a->page['htmlhead'] .= '' . "\r\n"; + header('Link: <' . App::get_baseurl() . '/xrd/?uri=' . $uri . '>; rel="lrdd"; type="application/xrd+xml"', false); + $dfrn_pages = array('request', 'confirm', 'notify', 'poll'); - foreach($dfrn_pages as $dfrn) - $a->page['htmlhead'] .= "get_baseurl()."/dfrn_{$dfrn}/{$which}\" />\r\n"; + foreach ($dfrn_pages as $dfrn) { + $a->page['htmlhead'] .= "\r\n"; + } } diff --git a/mod/help.php b/mod/help.php index 7222569279..0512e0f2e0 100644 --- a/mod/help.php +++ b/mod/help.php @@ -77,7 +77,7 @@ function help_content(&$a) { if ($level>$lastlevel) $toc.="
    "; $idnum[$level]++; $id = implode("_", array_slice($idnum,1,$level)); - $href = $a->get_baseurl()."/help/{$filename}#{$id}"; + $href = App::get_baseurl()."/help/{$filename}#{$id}"; $toc .= "
  • ".strip_tags($line)."
  • "; $line = "".$line; $lastlevel = $level; diff --git a/mod/home.php b/mod/home.php index cdf4b37158..eb5d1e90b0 100644 --- a/mod/home.php +++ b/mod/home.php @@ -6,33 +6,38 @@ function home_init(&$a) { $ret = array(); call_hooks('home_init',$ret); - if(local_user() && ($a->user['nickname'])) - goaway($a->get_baseurl()."/network"); - //goaway($a->get_baseurl()."/profile/".$a->user['nickname']); + if (local_user() && ($a->user['nickname'])) { + goaway(App::get_baseurl()."/network"); + } - if(strlen(get_config('system','singleuser'))) - goaway($a->get_baseurl()."/profile/" . get_config('system','singleuser')); + if (strlen(get_config('system','singleuser'))) { + goaway(App::get_baseurl()."/profile/" . get_config('system','singleuser')); + } }} - if(! function_exists('home_content')) { function home_content(&$a) { $o = ''; - if(x($_SESSION,'theme')) + if (x($_SESSION,'theme')) { unset($_SESSION['theme']); - if(x($_SESSION,'mobile-theme')) + } + if (x($_SESSION,'mobile-theme')) { unset($_SESSION['mobile-theme']); + } - if(file_exists('home.html')){ - if(file_exists('home.css')){ - $a->page['htmlhead'] .= '';} + /// @TODO No absolute path used, maybe risky (security) + if (file_exists('home.html')) { + if (file_exists('home.css')) { + $a->page['htmlhead'] .= ''; + } - $o .= file_get_contents('home.html');} - - else $o .= '

    '.((x($a->config,'sitename')) ? sprintf(t("Welcome to %s"), $a->config['sitename']) : "").'

    '; + $o .= file_get_contents('home.html'); + } else { + $o .= '

    '.((x($a->config,'sitename')) ? sprintf(t("Welcome to %s"), $a->config['sitename']) : "").'

    '; + } $o .= login(($a->config['register_policy'] == REGISTER_CLOSED) ? 0 : 1); @@ -41,5 +46,4 @@ function home_content(&$a) { return $o; - }} diff --git a/mod/ignored.php b/mod/ignored.php index ba55c55e36..5e8411e376 100644 --- a/mod/ignored.php +++ b/mod/ignored.php @@ -5,22 +5,27 @@ function ignored_init(&$a) { $ignored = 0; - if(! local_user()) + if (! local_user()) { killme(); - if($a->argc > 1) + } + if ($a->argc > 1) { $message_id = intval($a->argv[1]); - if(! $message_id) + } + if (! $message_id) { killme(); + } $r = q("SELECT `ignored` FROM `thread` WHERE `uid` = %d AND `iid` = %d LIMIT 1", intval(local_user()), intval($message_id) ); - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { killme(); + } - if(! intval($r[0]['ignored'])) + if (! intval($r[0]['ignored'])) { $ignored = 1; + } $r = q("UPDATE `thread` SET `ignored` = %d WHERE `uid` = %d and `iid` = %d", intval($ignored), @@ -30,12 +35,12 @@ function ignored_init(&$a) { // See if we've been passed a return path to redirect to $return_path = ((x($_REQUEST,'return')) ? $_REQUEST['return'] : ''); - if($return_path) { + if ($return_path) { $rand = '_=' . time(); if(strpos($return_path, '?')) $rand = "&$rand"; else $rand = "?$rand"; - goaway($a->get_baseurl() . "/" . $return_path . $rand); + goaway(App::get_baseurl() . "/" . $return_path . $rand); } // the json doesn't really matter, it will either be 0 or 1 diff --git a/mod/install.php b/mod/install.php index b5af1373a4..b13da8c28f 100755 --- a/mod/install.php +++ b/mod/install.php @@ -11,17 +11,16 @@ function install_init(&$a){ echo "ok"; killme(); } - + // We overwrite current theme css, because during install we could not have a working mod_rewrite // so we could not have a css at all. Here we set a static css file for the install procedure pages $a->config['system']['theme'] = "../install"; - $a->theme['stylesheet'] = $a->get_baseurl()."/view/install/style.css"; - - - + $a->theme['stylesheet'] = App::get_baseurl()."/view/install/style.css"; + global $install_wizard_pass; - if (x($_POST,'pass')) + if (x($_POST,'pass')) { $install_wizard_pass = intval($_POST['pass']); + } } @@ -52,7 +51,7 @@ function install_post(&$a) { $r = q("CREATE DATABASE '%s'", dbesc($dbdata) ); - if($r) { + if ($r) { unset($db); $db = new dba($dbhost, $dbuser, $dbpass, $dbdata, true); } else { @@ -63,7 +62,7 @@ function install_post(&$a) { return; } }*/ - if(get_db_errno()) { + if (get_db_errno()) { $a->data['db_conn_failed']=true; } @@ -107,17 +106,18 @@ function install_post(&$a) { $result = file_put_contents('.htconfig.php', $txt); - if(! $result) { + if (! $result) { $a->data['txt'] = $txt; } $errors = load_database($db); - if($errors) + if ($errors) { $a->data['db_failed'] = $errors; - else + } else { $a->data['db_installed'] = true; + } return; break; @@ -125,10 +125,11 @@ function install_post(&$a) { } function get_db_errno() { - if(class_exists('mysqli')) + if (class_exists('mysqli')) { return mysqli_connect_errno(); - else + } else { return mysql_errno(); + } } function install_content(&$a) { @@ -140,23 +141,23 @@ function install_content(&$a) { - if(x($a->data,'db_conn_failed')) { + if (x($a->data,'db_conn_failed')) { $install_wizard_pass = 2; $wizard_status = t('Could not connect to database.'); } - if(x($a->data,'db_create_failed')) { + if (x($a->data,'db_create_failed')) { $install_wizard_pass = 2; $wizard_status = t('Could not create table.'); } $db_return_text=""; - if(x($a->data,'db_installed')) { + if (x($a->data,'db_installed')) { $txt = '

    '; $txt .= t('Your Friendica site database has been installed.') . EOL; $db_return_text .= $txt; } - if(x($a->data,'db_failed')) { + if (x($a->data,'db_failed')) { $txt = t('You may need to import the file "database.sql" manually using phpmyadmin or mysql.') . EOL; $txt .= t('Please see the file "INSTALL.txt".') . EOL ."


    " ; $txt .= "
    ".$a->data['db_failed'] . "
    ". EOL ; @@ -176,7 +177,7 @@ function install_content(&$a) { } } - if(x($a->data,'txt') && strlen($a->data['txt'])) { + if (x($a->data,'txt') && strlen($a->data['txt'])) { $db_return_text .= manual_config($a); } @@ -205,16 +206,19 @@ function install_content(&$a) { check_keys($checks); - if(x($_POST,'phpath')) + if (x($_POST,'phpath')) { $phpath = notags(trim($_POST['phpath'])); + } check_php($phpath, $checks); - check_htaccess($checks); + check_htaccess($checks); + /// @TODO Maybe move this out? function check_passed($v, $c){ - if ($c['required']) + if ($c['required']) { $v = $v && $c['status']; + } return $v; } $checkspassed = array_reduce($checks, "check_passed", true); @@ -231,7 +235,7 @@ function install_content(&$a) { '$next' => t('Next'), '$reload' => t('Check again'), '$phpath' => $phpath, - '$baseurl' => $a->get_baseurl(), + '$baseurl' => App::get_baseurl(), )); return $o; }; break; @@ -265,7 +269,7 @@ function install_content(&$a) { '$lbl_10' => t('Please select a default timezone for your website'), - '$baseurl' => $a->get_baseurl(), + '$baseurl' => App::get_baseurl(), '$phpath' => $phpath, @@ -305,7 +309,7 @@ function install_content(&$a) { '$timezone' => field_timezone('timezone', t('Please select a default timezone for your website'), $timezone, ''), '$language' => array('language', t('System Language:'), 'en', t('Set the default language for your Friendica installation interface and to send emails.'), $lang_choices), - '$baseurl' => $a->get_baseurl(), + '$baseurl' => App::get_baseurl(), @@ -343,7 +347,7 @@ function check_php(&$phpath, &$checks) { $passed = strlen($phpath); } $help = ""; - if(!$passed) { + if (!$passed) { $help .= t('Could not find a command line version of PHP in the web server PATH.'). EOL; $help .= t("If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron. See 'Setup the poller'") . EOL ; $help .= EOL . EOL ; @@ -370,7 +374,7 @@ function check_php(&$phpath, &$checks) { } - if($passed2) { + if ($passed2) { $str = autoname(8); $cmd = "$phpath testargs.php $str"; $result = trim(shell_exec($cmd)); @@ -392,15 +396,17 @@ function check_keys(&$checks) { $res = false; - if(function_exists('openssl_pkey_new')) - $res=openssl_pkey_new(array( - 'digest_alg' => 'sha1', - 'private_key_bits' => 4096, - 'encrypt_key' => false )); + if (function_exists('openssl_pkey_new')) { + $res = openssl_pkey_new(array( + 'digest_alg' => 'sha1', + 'private_key_bits' => 4096, + 'encrypt_key' => false + )); + } // Get private key - if(! $res) { + if (! $res) { $help .= t('Error: the "openssl_pkey_new" function on this system is not able to generate encryption keys'). EOL; $help .= t('If running under Windows, please see "http://www.php.net/manual/en/openssl.installation.php".'); } @@ -420,7 +426,7 @@ function check_funcs(&$checks) { check_add($ck_funcs, t('XML PHP module'), true, true, ""); check_add($ck_funcs, t('iconv module'), true, true, ""); - if(function_exists('apache_get_modules')){ + if (function_exists('apache_get_modules')){ if (! in_array('mod_rewrite',apache_get_modules())) { check_add($ck_funcs, t('Apache mod_rewrite module'), false, true, t('Error: Apache webserver mod-rewrite module is required but not installed.')); } else { @@ -428,31 +434,31 @@ function check_funcs(&$checks) { } } - if(! function_exists('curl_init')){ + if (! function_exists('curl_init')){ $ck_funcs[0]['status']= false; $ck_funcs[0]['help']= t('Error: libCURL PHP module required but not installed.'); } - if(! function_exists('imagecreatefromjpeg')){ + if (! function_exists('imagecreatefromjpeg')){ $ck_funcs[1]['status']= false; $ck_funcs[1]['help']= t('Error: GD graphics PHP module with JPEG support required but not installed.'); } - if(! function_exists('openssl_public_encrypt')) { + if (! function_exists('openssl_public_encrypt')) { $ck_funcs[2]['status']= false; $ck_funcs[2]['help']= t('Error: openssl PHP module required but not installed.'); } - if(! function_exists('mysqli_connect')){ + if (! function_exists('mysqli_connect')){ $ck_funcs[3]['status']= false; $ck_funcs[3]['help']= t('Error: mysqli PHP module required but not installed.'); } - if(! function_exists('mb_strlen')){ + if (! function_exists('mb_strlen')){ $ck_funcs[4]['status']= false; $ck_funcs[4]['help']= t('Error: mb_string PHP module required but not installed.'); } - if(! function_exists('mcrypt_create_iv')){ + if (! function_exists('mcrypt_create_iv')){ $ck_funcs[5]['status']= false; $ck_funcs[5]['help']= t('Error: mcrypt PHP module required but not installed.'); } - if(! function_exists('iconv_strlen')){ + if (! function_exists('iconv_strlen')){ $ck_funcs[7]['status']= false; $ck_funcs[7]['help']= t('Error: iconv PHP module required but not installed.'); } @@ -487,7 +493,7 @@ function check_funcs(&$checks) { function check_htconfig(&$checks) { $status = true; $help = ""; - if( (file_exists('.htconfig.php') && !is_writable('.htconfig.php')) || + if ((file_exists('.htconfig.php') && !is_writable('.htconfig.php')) || (!file_exists('.htconfig.php') && !is_writable('.')) ) { $status=false; @@ -504,7 +510,7 @@ function check_htconfig(&$checks) { function check_smarty3(&$checks) { $status = true; $help = ""; - if( !is_writable('view/smarty3') ) { + if (!is_writable('view/smarty3') ) { $status=false; $help = t('Friendica uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering.') .EOL; @@ -518,14 +524,14 @@ function check_smarty3(&$checks) { } function check_htaccess(&$checks) { - $a = get_app(); $status = true; $help = ""; - if (function_exists('curl_init')){ - $test = fetch_url($a->get_baseurl()."/install/testrewrite"); + if (function_exists('curl_init')) { + $test = fetch_url(App::get_baseurl()."/install/testrewrite"); - if ($test!="ok") - $test = fetch_url(normalise_link($a->get_baseurl()."/install/testrewrite")); + if ($test!="ok") { + $test = fetch_url(normalise_link(App::get_baseurl()."/install/testrewrite")); + } if ($test!="ok") { $status = false; @@ -534,6 +540,7 @@ function check_htaccess(&$checks) { check_add($checks, t('Url rewrite is working'), $status, true, $help); } else { // cannot check modrewrite if libcurl is not installed + /// @TODO Maybe issue warning here? } } @@ -550,8 +557,7 @@ function check_imagik(&$checks) { } if ($imagick == false) { check_add($checks, t('ImageMagick PHP extension is not installed'), $imagick, false, ""); - } - else { + } else { check_add($checks, t('ImageMagick PHP extension is installed'), $imagick, false, ""); if ($imagick) { check_add($checks, t('ImageMagick supports GIF'), $gif, false, ""); @@ -559,8 +565,6 @@ function check_imagik(&$checks) { } } - - function manual_config(&$a) { $data = htmlentities($a->data['txt'],ENT_COMPAT,'UTF-8'); $o = t('The database configuration file ".htconfig.php" could not be written. Please use the enclosed text to create a configuration file in your web server root.'); @@ -599,8 +603,7 @@ function load_database($db) { } function what_next() { - $a = get_app(); - $baseurl = $a->get_baseurl(); + $baseurl = App::get_baseurl(); return t('

    What next

    ') ."

    ".t('IMPORTANT: You will need to [manually] setup a scheduled task for the poller.') diff --git a/mod/invite.php b/mod/invite.php index ccf876c7c0..441d39e6e0 100644 --- a/mod/invite.php +++ b/mod/invite.php @@ -11,7 +11,7 @@ require_once('include/email.php'); function invite_post(&$a) { - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL); return; } @@ -19,14 +19,15 @@ function invite_post(&$a) { check_form_security_token_redirectOnErr('/', 'send_invite'); $max_invites = intval(get_config('system','max_invites')); - if(! $max_invites) + if (! $max_invites) { $max_invites = 50; + } $current_invites = intval(get_pconfig(local_user(),'system','sent_invites')); - if($current_invites > $max_invites) { + if ($current_invites > $max_invites) { notice( t('Total invitation limit exceeded.') . EOL); return; - }; + } $recips = ((x($_POST,'recipients')) ? explode("\n",$_POST['recipients']) : array()); @@ -34,23 +35,24 @@ function invite_post(&$a) { $total = 0; - if(get_config('system','invitation_only')) { + if (get_config('system','invitation_only')) { $invonly = true; $x = get_pconfig(local_user(),'system','invites_remaining'); - if((! $x) && (! is_site_admin())) + if ((! $x) && (! is_site_admin())) { return; + } } - foreach($recips as $recip) { + foreach ($recips as $recip) { $recip = trim($recip); - if(! valid_email($recip)) { + if (! valid_email($recip)) { notice( sprintf( t('%s : Not a valid email address.'), $recip) . EOL); continue; } - - if($invonly && ($x || is_site_admin())) { + + if ($invonly && ($x || is_site_admin())) { $code = autoname(8) . srand(1000,9999); $nmessage = str_replace('$invite_code',$code,$message); @@ -59,16 +61,17 @@ function invite_post(&$a) { dbesc(datetime_convert()) ); - if(! is_site_admin()) { + if (! is_site_admin()) { $x --; - if($x >= 0) + if ($x >= 0) { set_pconfig(local_user(),'system','invites_remaining',$x); - else + } else { return; + } } - } - else + } else { $nmessage = $message; + } $res = mail($recip, email_header_encode( t('Please join us on Friendica'),'UTF-8'), $nmessage, @@ -76,7 +79,7 @@ function invite_post(&$a) { . 'Content-type: text/plain; charset=UTF-8' . "\n" . 'Content-transfer-encoding: 8bit' ); - if($res) { + if ($res) { $total ++; $current_invites ++; set_pconfig(local_user(),'system','sent_invites',$current_invites); @@ -84,8 +87,7 @@ function invite_post(&$a) { notice( t('Invitation limit exceeded. Please contact your site administrator.') . EOL); return; } - } - else { + } else { notice( sprintf( t('%s : Message delivery failed.'), $recip) . EOL); } @@ -97,7 +99,7 @@ function invite_post(&$a) { function invite_content(&$a) { - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL); return; } @@ -105,39 +107,39 @@ function invite_content(&$a) { $tpl = get_markup_template('invite.tpl'); $invonly = false; - if(get_config('system','invitation_only')) { + if (get_config('system','invitation_only')) { $invonly = true; $x = get_pconfig(local_user(),'system','invites_remaining'); - if((! $x) && (! is_site_admin())) { + if ((! $x) && (! is_site_admin())) { notice( t('You have no more invitations available') . EOL); return ''; } } $dirloc = get_config('system','directory'); - if(strlen($dirloc)) { - if($a->config['register_policy'] == REGISTER_CLOSED) + if (strlen($dirloc)) { + if ($a->config['register_policy'] == REGISTER_CLOSED) { $linktxt = sprintf( t('Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks.'), $dirloc . '/siteinfo'); - elseif($a->config['register_policy'] != REGISTER_CLOSED) - $linktxt = sprintf( t('To accept this invitation, please visit and register at %s or any other public Friendica website.'), $a->get_baseurl()) + } elseif($a->config['register_policy'] != REGISTER_CLOSED) { + $linktxt = sprintf( t('To accept this invitation, please visit and register at %s or any other public Friendica website.'), App::get_baseurl()) . "\r\n" . "\r\n" . sprintf( t('Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join.'),$dirloc . '/siteinfo'); - } - else { + } + } else { $o = t('Our apologies. This system is not currently configured to connect with other public sites or invite members.'); return $o; } $o = replace_macros($tpl, array( '$form_security_token' => get_form_security_token("send_invite"), - '$invite' => t('Send invitations'), - '$addr_text' => t('Enter email addresses, one per line:'), - '$msg_text' => t('Your message:'), - '$default_message' => t('You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web.') . "\r\n" . "\r\n" + '$invite' => t('Send invitations'), + '$addr_text' => t('Enter email addresses, one per line:'), + '$msg_text' => t('Your message:'), + '$default_message' => t('You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web.') . "\r\n" . "\r\n" . $linktxt . "\r\n" . "\r\n" . (($invonly) ? t('You will need to supply this invitation code: $invite_code') . "\r\n" . "\r\n" : '') .t('Once you have registered, please connect with me via my profile page at:') - . "\r\n" . "\r\n" . $a->get_baseurl() . '/profile/' . $a->user['nickname'] + . "\r\n" . "\r\n" . App::get_baseurl() . '/profile/' . $a->user['nickname'] . "\r\n" . "\r\n" . t('For more information about the Friendica project and why we feel it is important, please visit http://friendica.com') . "\r\n" . "\r\n" , - '$submit' => t('Submit') + '$submit' => t('Submit') )); return $o; diff --git a/mod/item.php b/mod/item.php index 9ef82616c3..9e38382cc3 100644 --- a/mod/item.php +++ b/mod/item.php @@ -59,13 +59,14 @@ function item_post(&$a) { // Check for doubly-submitted posts, and reject duplicates // Note that we have to ignore previews, otherwise nothing will post // after it's been previewed - if(!$preview && x($_REQUEST['post_id_random'])) { - if(x($_SESSION['post-random']) && $_SESSION['post-random'] == $_REQUEST['post_id_random']) { + if (!$preview && x($_REQUEST['post_id_random'])) { + if (x($_SESSION['post-random']) && $_SESSION['post-random'] == $_REQUEST['post_id_random']) { logger("item post: duplicate post", LOGGER_DEBUG); - item_post_return($a->get_baseurl(), $api_source, $return_path); + item_post_return(App::get_baseurl(), $api_source, $return_path); } - else + else { $_SESSION['post-random'] = $_REQUEST['post_id_random']; + } } /** @@ -82,18 +83,19 @@ function item_post(&$a) { $r = false; $objecttype = null; - if($parent || $parent_uri) { + if ($parent || $parent_uri) { $objecttype = ACTIVITY_OBJ_COMMENT; - if(! x($_REQUEST,'type')) + if (! x($_REQUEST,'type')) { $_REQUEST['type'] = 'net-comment'; + } - if($parent) { + if ($parent) { $r = q("SELECT * FROM `item` WHERE `id` = %d LIMIT 1", intval($parent) ); - } elseif($parent_uri && local_user()) { + } elseif ($parent_uri && local_user()) { // This is coming from an API source, and we are logged in $r = q("SELECT * FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1", dbesc($parent_uri), @@ -105,17 +107,18 @@ function item_post(&$a) { if (dbm::is_result($r)) { $parid = $r[0]['parent']; $parent_uri = $r[0]['uri']; - if($r[0]['id'] != $r[0]['parent']) { + if ($r[0]['id'] != $r[0]['parent']) { $r = q("SELECT * FROM `item` WHERE `id` = `parent` AND `parent` = %d LIMIT 1", intval($parid) ); } } - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { notice( t('Unable to locate original post.') . EOL); - if(x($_REQUEST,'return')) + if (x($_REQUEST,'return')) { goaway($return_path); + } killme(); } $parent_item = $r[0]; @@ -125,7 +128,7 @@ function item_post(&$a) { //if(($parid) && ($parid != $parent)) $thr_parent = $parent_uri; - if($parent_item['contact-id'] && $uid) { + if ($parent_item['contact-id'] && $uid) { $r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1", intval($parent_item['contact-id']), intval($uid) @@ -137,16 +140,7 @@ function item_post(&$a) { $thrparent = q("SELECT `author-link`, `network` FROM `item` WHERE `uri` = '%s' LIMIT 1", dbesc($thr_parent)); if (count($thrparent) AND ($thrparent[0]["network"] === NETWORK_OSTATUS) AND (normalise_link($parent_contact["url"]) != normalise_link($thrparent[0]["author-link"]))) { - $parent_contact = null; - - $r = q("SELECT * FROM `gcontact` WHERE `nurl` = '%s' LIMIT 1", - dbesc(normalise_link($thrparent[0]["author-link"]))); - if (dbm::is_result($r)) { - $parent_contact = $r[0]; - $parent_contact["thumb"] = $parent_contact["photo"]; - $parent_contact["micro"] = $parent_contact["photo"]; - unset($parent_contact["id"]); - } + $parent_contact = get_contact_details_by_url($thrparent[0]["author-link"]); if (!isset($parent_contact["nick"])) { require_once("include/Scrape.php"); @@ -448,13 +442,15 @@ function item_post(&$a) { $objecttype = ACTIVITY_OBJ_IMAGE; - foreach($images as $image) { - if(! stristr($image,$a->get_baseurl() . '/photo/')) + foreach ($images as $image) { + if (! stristr($image,App::get_baseurl() . '/photo/')) { continue; + } $image_uri = substr($image,strrpos($image,'/') + 1); $image_uri = substr($image_uri,0, strpos($image_uri,'-')); - if(! strlen($image_uri)) + if (! strlen($image_uri)) { continue; + } $srch = '<' . intval($contact_id) . '>'; $r = q("SELECT `id` FROM `photo` WHERE `allow_cid` = '%s' AND `allow_gid` = '' AND `deny_cid` = '' AND `deny_gid` = '' @@ -464,8 +460,9 @@ function item_post(&$a) { intval($profile_uid) ); - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { continue; + } $r = q("UPDATE `photo` SET `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s' WHERE `resource-id` = '%s' AND `uid` = %d AND `album` = '%s' ", @@ -561,12 +558,8 @@ function item_post(&$a) { * add a statusnet style reply tag if the original post was from there * and we are replying, and there isn't one already */ - - if($parent AND ($parent_contact['network'] === NETWORK_OSTATUS)) { - if ($parent_contact['id'] != "") - $contact = '@'.$parent_contact['nick'].'+'.$parent_contact['id']; - else - $contact = '@[url='.$parent_contact['url'].']'.$parent_contact['nick'].'[/url]'; + if ($parent AND ($parent_contact['network'] == NETWORK_OSTATUS)) { + $contact = '@[url='.$parent_contact['url'].']'.$parent_contact['nick'].'[/url]'; if (!in_array($contact,$tags)) { $body = $contact.' '.$body; @@ -638,9 +631,10 @@ function item_post(&$a) { intval($mtch) ); if (dbm::is_result($r)) { - if(strlen($attachments)) + if (strlen($attachments)) { $attachments .= ','; - $attachments .= '[attach]href="' . $a->get_baseurl() . '/attach/' . $r[0]['id'] . '" length="' . $r[0]['filesize'] . '" type="' . $r[0]['filetype'] . '" title="' . (($r[0]['filename']) ? $r[0]['filename'] : '') . '"[/attach]'; + } + $attachments .= '[attach]href="' . App::get_baseurl() . '/attach/' . $r[0]['id'] . '" length="' . $r[0]['filesize'] . '" type="' . $r[0]['filetype'] . '" title="' . (($r[0]['filename']) ? $r[0]['filename'] : '') . '"[/attach]'; } $body = str_replace($match[1],'',$body); } @@ -648,14 +642,17 @@ function item_post(&$a) { $wall = 0; - if($post_type === 'wall' || $post_type === 'wall-comment') + if ($post_type === 'wall' || $post_type === 'wall-comment') { $wall = 1; + } - if(! strlen($verb)) + if (! strlen($verb)) { $verb = ACTIVITY_POST ; + } - if ($network == "") + if ($network == "") { $network = NETWORK_DFRN; + } $gravity = (($parent) ? 6 : 0 ); @@ -669,8 +666,9 @@ function item_post(&$a) { $uri = (($message_id) ? $message_id : item_new_uri($a->get_hostname(),$profile_uid, $guid)); // Fallback so that we alway have a thr-parent - if(!$thr_parent) + if (!$thr_parent) { $thr_parent = $uri; + } $datarray = array(); $datarray['uid'] = $profile_uid; @@ -732,7 +730,7 @@ function item_post(&$a) { // $datarray['prvnets'] = $user['prvnets']; $datarray['parent-uri'] = ($parent == 0) ? $uri : $parent_item['uri']; - $datarray['plink'] = $a->get_baseurl().'/display/'.urlencode($datarray['guid']); + $datarray['plink'] = App::get_baseurl().'/display/'.urlencode($datarray['guid']); $datarray['last-child'] = 1; $datarray['visible'] = 1; @@ -765,8 +763,9 @@ function item_post(&$a) { } $json = array('cancel' => 1); - if(x($_REQUEST,'jsreload') && strlen($_REQUEST['jsreload'])) - $json['reload'] = $a->get_baseurl() . '/' . $_REQUEST['jsreload']; + if (x($_REQUEST,'jsreload') && strlen($_REQUEST['jsreload'])) { + $json['reload'] = App::get_baseurl() . '/' . $_REQUEST['jsreload']; + } echo json_encode($json); killme(); @@ -938,7 +937,7 @@ function item_post(&$a) { 'to_email' => $user['email'], 'uid' => $user['uid'], 'item' => $datarray, - 'link' => $a->get_baseurl().'/display/'.urlencode($datarray['guid']), + 'link' => App::get_baseurl().'/display/'.urlencode($datarray['guid']), 'source_name' => $datarray['author-name'], 'source_link' => $datarray['author-link'], 'source_photo' => $datarray['author-avatar'], @@ -952,7 +951,7 @@ function item_post(&$a) { // Store the comment signature information in case we need to relay to Diaspora - diaspora::store_comment_signature($datarray, $author, ($self ? $user['prvkey'] : false), $post_id); + Diaspora::store_comment_signature($datarray, $author, ($self ? $user['prvkey'] : false), $post_id); } else { $parent = $post_id; @@ -970,7 +969,7 @@ function item_post(&$a) { 'to_email' => $user['email'], 'uid' => $user['uid'], 'item' => $datarray, - 'link' => $a->get_baseurl().'/display/'.urlencode($datarray['guid']), + 'link' => App::get_baseurl().'/display/'.urlencode($datarray['guid']), 'source_name' => $datarray['author-name'], 'source_link' => $datarray['author-link'], 'source_photo' => $datarray['author-avatar'], @@ -991,14 +990,14 @@ function item_post(&$a) { continue; $disclaimer = '


    ' . sprintf( t('This message was sent to you by %s, a member of the Friendica social network.'),$a->user['username']) . '
    '; - $disclaimer .= sprintf( t('You may visit them online at %s'), $a->get_baseurl() . '/profile/' . $a->user['nickname']) . EOL; + $disclaimer .= sprintf( t('You may visit them online at %s'), App::get_baseurl() . '/profile/' . $a->user['nickname']) . EOL; $disclaimer .= t('Please contact the sender by replying to this post if you do not wish to receive these messages.') . EOL; if (!$datarray['title']=='') { $subject = email_header_encode($datarray['title'],'UTF-8'); } else { $subject = email_header_encode('[Friendica]' . ' ' . sprintf( t('%s posted an update.'),$a->user['username']),'UTF-8'); } - $link = '' . $a->user['username'] . '

    '; + $link = '' . $a->user['username'] . '

    '; $html = prepare_body($datarray); $message = '' . $link . $html . $disclaimer . ''; include_once('include/html2plain.php'); @@ -1038,7 +1037,7 @@ function item_post(&$a) { logger('post_complete'); - item_post_return($a->get_baseurl(), $api_source, $return_path); + item_post_return(App::get_baseurl(), $api_source, $return_path); // NOTREACHED } @@ -1048,13 +1047,14 @@ function item_post_return($baseurl, $api_source, $return_path) { if($api_source) return; - if($return_path) { + if ($return_path) { goaway($return_path); } $json = array('success' => 1); - if(x($_REQUEST,'jsreload') && strlen($_REQUEST['jsreload'])) + if (x($_REQUEST,'jsreload') && strlen($_REQUEST['jsreload'])) { $json['reload'] = $baseurl . '/' . $_REQUEST['jsreload']; + } logger('post_json: ' . print_r($json,true), LOGGER_DEBUG); @@ -1066,15 +1066,16 @@ function item_post_return($baseurl, $api_source, $return_path) { function item_content(&$a) { - if((! local_user()) && (! remote_user())) + if ((! local_user()) && (! remote_user())) { return; + } require_once('include/security.php'); $o = ''; - if(($a->argc == 3) && ($a->argv[1] === 'drop') && intval($a->argv[2])) { + if (($a->argc == 3) && ($a->argv[1] === 'drop') && intval($a->argv[2])) { $o = drop_item($a->argv[2], !is_ajax()); - if (is_ajax()){ + if (is_ajax()) { // ajax return: [, 0 (no perm) | ] echo json_encode(array(intval($a->argv[2]), intval($o))); killme(); @@ -1087,6 +1088,7 @@ function item_content(&$a) { * This function removes the tag $tag from the text $body and replaces it with * the appropiate link. * + * @param App $a Application instance @TODO is unused in this function's scope (excluding included files) * @param unknown_type $body the text to replace the tag in * @param string $inform a comma-seperated string containing everybody to inform * @param string $str_tags string to add the tag to @@ -1104,13 +1106,14 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag, $netwo $r = null; //is it a person tag? - if(strpos($tag,'@') === 0) { + if (strpos($tag,'@') === 0) { //is it already replaced? - if(strpos($tag,'[url=')) { + if (strpos($tag,'[url=')) { //append tag to str_tags - if(!stristr($str_tags,$tag)) { - if(strlen($str_tags)) + if (!stristr($str_tags,$tag)) { + if (strlen($str_tags)) { $str_tags .= ','; + } $str_tags .= $tag; } diff --git a/mod/like.php b/mod/like.php index 8d383b9abe..cbab9185e4 100755 --- a/mod/like.php +++ b/mod/like.php @@ -24,7 +24,7 @@ function like_content(&$a) { // See if we've been passed a return path to redirect to $return_path = ((x($_REQUEST,'return')) ? $_REQUEST['return'] : ''); - like_content_return($a->get_baseurl(), $return_path); + like_content_return(App::get_baseurl(), $return_path); killme(); // NOTREACHED // return; // NOTREACHED } diff --git a/mod/localtime.php b/mod/localtime.php index d1453bc527..ce6bf84a12 100644 --- a/mod/localtime.php +++ b/mod/localtime.php @@ -36,7 +36,7 @@ function localtime_content(&$a) { $o .= '

    ' . sprintf( t('Converted localtime: %s'),$a->data['mod-localtime']) . '

    '; - $o .= '
    '; + $o .= ''; $o .= '

    ' . t('Please select your timezone:') . '

    '; diff --git a/mod/lockview.php b/mod/lockview.php index c806fc3175..68b5d30cfe 100644 --- a/mod/lockview.php +++ b/mod/lockview.php @@ -21,8 +21,9 @@ function lockview_content(&$a) { dbesc($type), intval($item_id) ); - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { killme(); + } $item = $r[0]; call_hooks('lockview_content', $item); diff --git a/mod/lostpass.php b/mod/lostpass.php index 3dca3a8b81..a5ef739cd1 100644 --- a/mod/lostpass.php +++ b/mod/lostpass.php @@ -15,7 +15,7 @@ function lostpass_post(&$a) { dbesc($loginame) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { notice( t('No valid account found.') . EOL); goaway(z_root()); } @@ -36,8 +36,7 @@ function lostpass_post(&$a) { $sitename = $a->config['sitename']; - $siteurl = $a->get_baseurl(); - $resetlink = $a->get_baseurl() . '/lostpass?verify=' . $new_password; + $resetlink = App::get_baseurl() . '/lostpass?verify=' . $new_password; $preamble = deindent(t(' Dear %1$s, @@ -64,7 +63,7 @@ function lostpass_post(&$a) { Login Name: %3$s')); $preamble = sprintf($preamble, $username, $sitename); - $body = sprintf($body, $resetlink, $siteurl, $email); + $body = sprintf($body, $resetlink, App::get_baseurl(), $email); notification(array( 'type' => "SYSTEM_EMAIL", @@ -88,7 +87,7 @@ function lostpass_content(&$a) { $r = q("SELECT * FROM `user` WHERE `pwdreset` = '%s' LIMIT 1", dbesc($hash) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { $o = t("Request could not be verified. \x28You may have previously submitted it.\x29 Password reset failed."); return $o; } @@ -103,24 +102,23 @@ function lostpass_content(&$a) { dbesc($new_password_encoded), intval($uid) ); - if($r) { + if ($r) { $tpl = get_markup_template('pwdreset.tpl'); $o .= replace_macros($tpl,array( '$lbl1' => t('Password Reset'), '$lbl2' => t('Your password has been reset as requested.'), '$lbl3' => t('Your new password is'), '$lbl4' => t('Save or copy your new password - and then'), - '$lbl5' => '' . t('click here to login') . '.', + '$lbl5' => '' . t('click here to login') . '.', '$lbl6' => t('Your password may be changed from the Settings page after successful login.'), '$newpass' => $new_password, - '$baseurl' => $a->get_baseurl() + '$baseurl' => App::get_baseurl() )); info("Your password has been reset." . EOL); $sitename = $a->config['sitename']; - $siteurl = $a->get_baseurl(); // $username, $email, $new_password $preamble = deindent(t(' Dear %1$s, @@ -139,7 +137,7 @@ function lostpass_content(&$a) { ')); $preamble = sprintf($preamble, $username); - $body = sprintf($body, $siteurl, $email, $new_password); + $body = sprintf($body, App::get_baseurl(), $email, $new_password); notification(array( 'type' => "SYSTEM_EMAIL", diff --git a/mod/manage.php b/mod/manage.php index 66891db720..bb9dfc313c 100644 --- a/mod/manage.php +++ b/mod/manage.php @@ -5,8 +5,9 @@ require_once("include/text.php"); function manage_post(&$a) { - if(! local_user()) + if (! local_user()) { return; + } $uid = local_user(); $orig_record = $a->user; @@ -56,8 +57,9 @@ function manage_post(&$a) { ); } - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { return; + } unset($_SESSION['authenticated']); unset($_SESSION['uid']); @@ -84,7 +86,7 @@ function manage_post(&$a) { $ret = array(); call_hooks('home_init',$ret); - goaway( $a->get_baseurl() . "/profile/" . $a->user['nickname'] ); + goaway( App::get_baseurl() . "/profile/" . $a->user['nickname'] ); // NOTREACHED } @@ -92,7 +94,7 @@ function manage_post(&$a) { function manage_content(&$a) { - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL); return; } diff --git a/mod/match.php b/mod/match.php index f7fe325b38..a9535d2d66 100644 --- a/mod/match.php +++ b/mod/match.php @@ -16,19 +16,21 @@ require_once('mod/proxy.php'); function match_content(&$a) { $o = ''; - if(! local_user()) + if (! local_user()) { return; + } $a->page['aside'] .= findpeople_widget(); $a->page['aside'] .= follow_widget(); - $_SESSION['return_url'] = $a->get_baseurl() . '/' . $a->cmd; + $_SESSION['return_url'] = App::get_baseurl() . '/' . $a->cmd; $r = q("SELECT `pub_keywords`, `prv_keywords` FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1", intval(local_user()) ); - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { return; + } if(! $r[0]['pub_keywords'] && (! $r[0]['prv_keywords'])) { notice( t('No keywords to match. Please add keywords to your default profile.') . EOL); return; @@ -45,7 +47,7 @@ function match_content(&$a) { if(strlen(get_config('system','directory'))) $x = post_url(get_server().'/msearch', $params); else - $x = post_url($a->get_baseurl() . '/msearch', $params); + $x = post_url(App::get_baseurl() . '/msearch', $params); $j = json_decode($x); @@ -66,7 +68,7 @@ function match_content(&$a) { if (!count($match)) { $jj->photo = str_replace("http:///photo/", get_server()."/photo/", $jj->photo); - $connlnk = $a->get_baseurl() . '/follow/?url=' . $jj->url; + $connlnk = App::get_baseurl() . '/follow/?url=' . $jj->url; $photo_menu = array( 'profile' => array(t("View Profile"), zrl($jj->url)), 'follow' => array(t("Connect/Follow"), $connlnk) diff --git a/mod/message.php b/mod/message.php index 9bd5b0d722..fcf0989ae0 100644 --- a/mod/message.php +++ b/mod/message.php @@ -24,17 +24,17 @@ function message_init(&$a) { '$tabs'=>$tabs, '$new'=>$new, )); - $base = $a->get_baseurl(); + $base = App::get_baseurl(); $head_tpl = get_markup_template('message-head.tpl'); $a->page['htmlhead'] .= replace_macros($head_tpl,array( - '$baseurl' => $a->get_baseurl(true), + '$baseurl' => App::get_baseurl(true), '$base' => $base )); $end_tpl = get_markup_template('message-end.tpl'); $a->page['end'] .= replace_macros($end_tpl,array( - '$baseurl' => $a->get_baseurl(true), + '$baseurl' => App::get_baseurl(true), '$base' => $base )); @@ -42,7 +42,7 @@ function message_init(&$a) { function message_post(&$a) { - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL); return; } @@ -160,7 +160,7 @@ function item_redir_and_replace_images($body, $images, $cid) { $newbody = $newbody . $origbody; $cnt = 0; - foreach($images as $image) { + foreach ($images as $image) { // We're depending on the property of 'foreach' (specified on the PHP website) that // it loops over the array starting from the first element and going sequentially // to the last element @@ -178,12 +178,12 @@ function message_content(&$a) { $o = ''; nav_set_selected('messages'); - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL); return; } - $myprofile = $a->get_baseurl().'/profile/' . $a->user['nickname']; + $myprofile = App::get_baseurl().'/profile/' . $a->user['nickname']; $tpl = get_markup_template('mail_head.tpl'); $header = replace_macros($tpl, array( @@ -231,10 +231,10 @@ function message_content(&$a) { intval($a->argv[2]), intval(local_user()) ); - if($r) { + if ($r) { info( t('Message deleted.') . EOL ); } - //goaway($a->get_baseurl(true) . '/message' ); + //goaway(App::get_baseurl(true) . '/message' ); goaway($_SESSION['return_url']); } else { @@ -265,7 +265,7 @@ function message_content(&$a) { if($r) info( t('Conversation removed.') . EOL ); } - //goaway($a->get_baseurl(true) . '/message' ); + //goaway(App::get_baseurl(true) . '/message' ); goaway($_SESSION['return_url']); } @@ -285,7 +285,7 @@ function message_content(&$a) { $tpl = get_markup_template('msg-header.tpl'); $a->page['htmlhead'] .= replace_macros($tpl, array( - '$baseurl' => $a->get_baseurl(true), + '$baseurl' => App::get_baseurl(true), '$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'), '$nickname' => $a->user['nickname'], '$linkurl' => t('Please enter a link URL:') @@ -293,7 +293,7 @@ function message_content(&$a) { $tpl = get_markup_template('msg-end.tpl'); $a->page['end'] .= replace_macros($tpl, array( - '$baseurl' => $a->get_baseurl(true), + '$baseurl' => App::get_baseurl(true), '$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'), '$nickname' => $a->user['nickname'], '$linkurl' => t('Please enter a link URL:') @@ -381,7 +381,7 @@ function message_content(&$a) { $r = get_messages(local_user(), $a->pager['start'], $a->pager['itemspage']); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { info( t('No messages.') . EOL); return $o; } @@ -438,7 +438,7 @@ function message_content(&$a) { $tpl = get_markup_template('msg-header.tpl'); $a->page['htmlhead'] .= replace_macros($tpl, array( - '$baseurl' => $a->get_baseurl(true), + '$baseurl' => App::get_baseurl(true), '$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'), '$nickname' => $a->user['nickname'], '$linkurl' => t('Please enter a link URL:') @@ -446,7 +446,7 @@ function message_content(&$a) { $tpl = get_markup_template('msg-end.tpl'); $a->page['end'] .= replace_macros($tpl, array( - '$baseurl' => $a->get_baseurl(true), + '$baseurl' => App::get_baseurl(true), '$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'), '$nickname' => $a->user['nickname'], '$linkurl' => t('Please enter a link URL:') @@ -573,7 +573,7 @@ function render_messages(array $msg, $t) { $tpl = get_markup_template($t); $rslt = ''; - $myprofile = $a->get_baseurl().'/profile/' . $a->user['nickname']; + $myprofile = App::get_baseurl().'/profile/' . $a->user['nickname']; foreach($msg as $rr) { diff --git a/mod/modexp.php b/mod/modexp.php index d1dabb101b..3729e3236c 100644 --- a/mod/modexp.php +++ b/mod/modexp.php @@ -12,8 +12,9 @@ function modexp_init(&$a) { dbesc($nick) ); - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { killme(); + } $lines = explode("\n",$r[0]['spubkey']); unset($lines[0]); diff --git a/mod/mood.php b/mod/mood.php index c64dd0d9ef..ec318f85fd 100644 --- a/mod/mood.php +++ b/mod/mood.php @@ -7,8 +7,9 @@ require_once('include/items.php'); function mood_init(&$a) { - if(! local_user()) + if (! local_user()) { return; + } $uid = local_user(); $verb = notags(trim($_GET['verb'])); @@ -91,7 +92,7 @@ function mood_init(&$a) { $item_id = item_store($arr); if($item_id) { q("UPDATE `item` SET `plink` = '%s' WHERE `uid` = %d AND `id` = %d", - dbesc($a->get_baseurl() . '/display/' . $poster['nickname'] . '/' . $item_id), + dbesc(App::get_baseurl() . '/display/' . $poster['nickname'] . '/' . $item_id), intval($uid), intval($item_id) ); @@ -110,7 +111,7 @@ function mood_init(&$a) { function mood_content(&$a) { - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL); return; } diff --git a/mod/msearch.php b/mod/msearch.php index 43b200ddf8..ba7a92d64e 100644 --- a/mod/msearch.php +++ b/mod/msearch.php @@ -29,8 +29,8 @@ function msearch_post(&$a) { foreach($r as $rr) $results[] = array( 'name' => $rr['name'], - 'url' => $a->get_baseurl() . '/profile/' . $rr['nickname'], - 'photo' => $a->get_baseurl() . '/photo/avatar/' . $rr['uid'] . '.jpg', + 'url' => App::get_baseurl() . '/profile/' . $rr['nickname'], + 'photo' => App::get_baseurl() . '/photo/avatar/' . $rr['uid'] . '.jpg', 'tags' => str_replace(array(',',' '),array(' ',' '),$rr['pub_keywords']) ); } diff --git a/mod/navigation.php b/mod/navigation.php index 5db69b171e..cba950a431 100644 --- a/mod/navigation.php +++ b/mod/navigation.php @@ -12,7 +12,7 @@ function navigation_content(&$a) { $tpl = get_markup_template('navigation.tpl'); return replace_macros($tpl, array( - '$baseurl' => $a->get_baseurl(), + '$baseurl' => App::get_baseurl(), '$sitelocation' => $nav_info['sitelocation'], '$nav' => $nav_info['nav'], '$banner' => $nav_info['banner'], diff --git a/mod/network.php b/mod/network.php index 9cfeda1026..cce511ae19 100644 --- a/mod/network.php +++ b/mod/network.php @@ -1,6 +1,6 @@ get_baseurl() . $redir_url); + goaway(App::get_baseurl() . $redir_url); } } @@ -126,7 +126,7 @@ function network_init(&$a) { intval(local_user()), dbesc($search) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { q("INSERT INTO `search` ( `uid`,`term` ) VALUES ( %d, '%s') ", intval(local_user()), dbesc($search) @@ -183,13 +183,13 @@ function saved_searches($search) { $saved = array(); if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { $saved[] = array( - 'id' => $rr['id'], - 'term' => $rr['term'], - 'encodedterm' => urlencode($rr['term']), - 'delete' => t('Remove term'), - 'selected' => ($search==$rr['term']), + 'id' => $rr['id'], + 'term' => $rr['term'], + 'encodedterm' => urlencode($rr['term']), + 'delete' => t('Remove term'), + 'selected' => ($search==$rr['term']), ); } } @@ -197,10 +197,10 @@ function saved_searches($search) { $tpl = get_markup_template("saved_searches_aside.tpl"); $o = replace_macros($tpl, array( - '$title' => t('Saved Searches'), - '$add' => t('add'), - '$searchbox' => search($search,'netsearch-box',$srchurl,true), - '$saved' => $saved, + '$title' => t('Saved Searches'), + '$add' => t('add'), + '$searchbox' => search($search,'netsearch-box',$srchurl,true), + '$saved' => $saved, )); return $o; @@ -308,7 +308,7 @@ function network_content(&$a, $update = 0) { require_once('include/conversation.php'); - if(! local_user()) { + if (! local_user()) { $_SESSION['return_url'] = $a->query_string; return login(false); } @@ -463,7 +463,7 @@ function network_content(&$a, $update = 0) { intval($group), intval($_SESSION['uid']) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { if($update) killme(); notice( t('No such group') . EOL ); diff --git a/mod/nodeinfo.php b/mod/nodeinfo.php index 5c70603468..e55dba128f 100644 --- a/mod/nodeinfo.php +++ b/mod/nodeinfo.php @@ -13,7 +13,7 @@ function nodeinfo_wellknown(&$a) { killme(); } $nodeinfo = array("links" => array(array("rel" => "http://nodeinfo.diaspora.software/ns/schema/1.0", - "href" => $a->get_baseurl()."/nodeinfo/1.0"))); + "href" => App::get_baseurl()."/nodeinfo/1.0"))); header('Content-type: application/json; charset=utf-8'); echo json_encode($nodeinfo, JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES); diff --git a/mod/nogroup.php b/mod/nogroup.php index 0a014c0676..c75b595c36 100644 --- a/mod/nogroup.php +++ b/mod/nogroup.php @@ -6,14 +6,16 @@ require_once('include/contact_selectors.php'); function nogroup_init(&$a) { - if(! local_user()) + if (! local_user()) { return; + } require_once('include/group.php'); require_once('include/contact_widgets.php'); - if(! x($a->page,'aside')) + if (! x($a->page,'aside')) { $a->page['aside'] = ''; + } $a->page['aside'] .= group_side('contacts','group','extended',0,$contact_id); } @@ -21,7 +23,7 @@ function nogroup_init(&$a) { function nogroup_content(&$a) { - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL); return ''; } @@ -33,7 +35,7 @@ function nogroup_content(&$a) { } $r = contacts_not_grouped(local_user(),$a->pager['start'],$a->pager['itemspage']); if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { $contact_details = get_contact_details_by_url($rr['url'], local_user(), $rr); diff --git a/mod/noscrape.php b/mod/noscrape.php index 537aff878f..3d298cfe39 100644 --- a/mod/noscrape.php +++ b/mod/noscrape.php @@ -30,21 +30,22 @@ function noscrape_init(&$a) { intval($a->profile['uid'])); $json_info = array( - 'fn' => $a->profile['name'], - 'addr' => $a->profile['addr'], - 'nick' => $which, - 'key' => $a->profile['pubkey'], - 'homepage' => $a->get_baseurl()."/profile/{$which}", - 'comm' => (x($a->profile,'page-flags')) && ($a->profile['page-flags'] == PAGE_COMMUNITY), - 'photo' => $r[0]["photo"], - 'tags' => $keywords + 'fn' => $a->profile['name'], + 'addr' => $a->profile['addr'], + 'nick' => $which, + 'key' => $a->profile['pubkey'], + 'homepage' => App::get_baseurl()."/profile/{$which}", + 'comm' => (x($a->profile,'page-flags')) && ($a->profile['page-flags'] == PAGE_COMMUNITY), + 'photo' => $r[0]["photo"], + 'tags' => $keywords ); - if(is_array($a->profile) AND !$a->profile['hide-friends']) { + if (is_array($a->profile) AND !$a->profile['hide-friends']) { $r = q("SELECT `gcontact`.`updated` FROM `contact` INNER JOIN `gcontact` WHERE `gcontact`.`nurl` = `contact`.`nurl` AND `self` AND `uid` = %d LIMIT 1", intval($a->profile['uid'])); - if (dbm::is_result($r)) + if (dbm::is_result($r)) { $json_info["updated"] = date("c", strtotime($r[0]['updated'])); + } $r = q("SELECT COUNT(*) AS `total` FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 and `pending` = 0 AND `hidden` = 0 AND `archive` = 0 AND `network` IN ('%s', '%s', '%s', '')", @@ -53,18 +54,23 @@ function noscrape_init(&$a) { dbesc(NETWORK_DIASPORA), dbesc(NETWORK_OSTATUS) ); - if (dbm::is_result($r)) + if (dbm::is_result($r)) { $json_info["contacts"] = intval($r[0]['total']); + } } //These are optional fields. $profile_fields = array('pdesc', 'locality', 'region', 'postal-code', 'country-name', 'gender', 'marital', 'about'); - foreach($profile_fields as $field) - if(!empty($a->profile[$field])) $json_info["$field"] = $a->profile[$field]; + foreach ($profile_fields as $field) { + if (!empty($a->profile[$field])) { + $json_info["$field"] = $a->profile[$field]; + } + } $dfrn_pages = array('request', 'confirm', 'notify', 'poll'); - foreach($dfrn_pages as $dfrn) - $json_info["dfrn-{$dfrn}"] = $a->get_baseurl()."/dfrn_{$dfrn}/{$which}"; + foreach ($dfrn_pages as $dfrn) { + $json_info["dfrn-{$dfrn}"] = App::get_baseurl()."/dfrn_{$dfrn}/{$which}"; + } //Output all the JSON! header('Content-type: application/json; charset=utf-8'); diff --git a/mod/notes.php b/mod/notes.php index 74ab18a6f9..d9222dca51 100644 --- a/mod/notes.php +++ b/mod/notes.php @@ -2,8 +2,9 @@ function notes_init(&$a) { - if(! local_user()) + if (! local_user()) { return; + } $profile = 0; @@ -18,7 +19,7 @@ function notes_init(&$a) { function notes_content(&$a,$update = false) { - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL); return; } diff --git a/mod/notice.php b/mod/notice.php index 7fdf4493a4..71c4977be9 100644 --- a/mod/notice.php +++ b/mod/notice.php @@ -8,7 +8,7 @@ ); if (dbm::is_result($r)){ $nick = $r[0]['nickname']; - $url = $a->get_baseurl()."/display/$nick/$id"; + $url = App::get_baseurl()."/display/$nick/$id"; goaway($url); } else { $a->error = 404; diff --git a/mod/notifications.php b/mod/notifications.php index 3e0bd9cc47..ed15f14177 100644 --- a/mod/notifications.php +++ b/mod/notifications.php @@ -11,7 +11,7 @@ require_once("include/network.php"); function notifications_post(&$a) { - if(! local_user()) { + if (! local_user()) { goaway(z_root()); } @@ -67,7 +67,7 @@ function notifications_post(&$a) { function notifications_content(&$a) { - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL); return; } @@ -285,8 +285,10 @@ function notifications_content(&$a) { '$item_label' => $it['label'], '$item_link' => $it['link'], '$item_image' => $it['image'], + '$item_url' => $it['url'], '$item_text' => htmlentities($it['text']), '$item_when' => $it['when'], + '$item_ago' => $it['ago'], '$item_seen' => $it['seen'], )); } diff --git a/mod/notify.php b/mod/notify.php index dceb326a4b..88f5fa5429 100644 --- a/mod/notify.php +++ b/mod/notify.php @@ -3,10 +3,13 @@ require_once('include/NotificationsManager.php'); function notify_init(&$a) { - if(! local_user()) return; + if (! local_user()) { + return; + } + $nm = new NotificationsManager(); - - if($a->argc > 2 && $a->argv[1] === 'view' && intval($a->argv[2])) { + + if ($a->argc > 2 && $a->argv[1] === 'view' && intval($a->argv[2])) { $note = $nm->getByID($a->argv[2]); if ($note) { $nm->setSeen($note); @@ -17,17 +20,18 @@ function notify_init(&$a) { $urldata = parse_url($note['link']); $guid = basename($urldata["path"]); $itemdata = get_item_id($guid, local_user()); - if ($itemdata["id"] != 0) - $note['link'] = $a->get_baseurl().'/display/'.$itemdata["nick"].'/'.$itemdata["id"]; + if ($itemdata["id"] != 0) { + $note['link'] = App::get_baseurl().'/display/'.$itemdata["nick"].'/'.$itemdata["id"]; + } } goaway($note['link']); } - goaway($a->get_baseurl(true)); + goaway(App::get_baseurl(true)); } - if($a->argc > 2 && $a->argv[1] === 'mark' && $a->argv[2] === 'all' ) { + if ($a->argc > 2 && $a->argv[1] === 'mark' && $a->argv[2] === 'all' ) { $r = $nm->setAllSeen(); $j = json_encode(array('result' => ($r) ? 'success' : 'fail')); echo $j; @@ -37,7 +41,9 @@ function notify_init(&$a) { } function notify_content(&$a) { - if(! local_user()) return login(); + if (! local_user()) { + return login(); + } $nm = new NotificationsManager(); @@ -50,7 +56,7 @@ function notify_content(&$a) { if (dbm::is_result($r) > 0) { foreach ($r as $it) { $notif_content .= replace_macros($not_tpl,array( - '$item_link' => $a->get_baseurl(true).'/notify/view/'. $it['id'], + '$item_link' => App::get_baseurl(true).'/notify/view/'. $it['id'], '$item_image' => $it['photo'], '$item_text' => strip_tags(bbcode($it['msg'])), '$item_when' => relative_date($it['date']) diff --git a/mod/oexchange.php b/mod/oexchange.php index bbb436e702..6eb380dff4 100644 --- a/mod/oexchange.php +++ b/mod/oexchange.php @@ -6,7 +6,7 @@ function oexchange_init(&$a) { if(($a->argc > 1) && ($a->argv[1] === 'xrd')) { $tpl = get_markup_template('oexchange_xrd.tpl'); - $o = replace_macros($tpl, array('$base' => $a->get_baseurl())); + $o = replace_macros($tpl, array('$base' => App::get_baseurl())); echo $o; killme(); } @@ -16,12 +16,12 @@ function oexchange_init(&$a) { function oexchange_content(&$a) { - if(! local_user()) { + if (! local_user()) { $o = login(false); return $o; } - if(($a->argc > 1) && $a->argv[1] === 'done') { + if (($a->argc > 1) && $a->argv[1] === 'done') { info( t('Post successful.') . EOL); return; } @@ -35,7 +35,7 @@ function oexchange_content(&$a) { $tags = (((x($_REQUEST,'tags')) && strlen($_REQUEST['tags'])) ? '&tags=' . urlencode(notags(trim($_REQUEST['tags']))) : ''); - $s = fetch_url($a->get_baseurl() . '/parse_url?f=&url=' . $url . $title . $description . $tags); + $s = fetch_url(App::get_baseurl() . '/parse_url?f=&url=' . $url . $title . $description . $tags); if(! strlen($s)) return; diff --git a/mod/openid.php b/mod/openid.php index 60a9c1381b..09905198c9 100644 --- a/mod/openid.php +++ b/mod/openid.php @@ -56,7 +56,7 @@ function openid_content(&$a) { // Successful OpenID login - but we can't match it to an existing account. // New registration? - if($a->config['register_policy'] == REGISTER_CLOSED) { + if ($a->config['register_policy'] == REGISTER_CLOSED) { notice( t('Account not found and OpenID registration is not permitted on this site.') . EOL); goaway(z_root()); } @@ -64,35 +64,45 @@ function openid_content(&$a) { unset($_SESSION['register']); $args = ''; $attr = $openid->getAttributes(); - if(is_array($attr) && count($attr)) { - foreach($attr as $k => $v) { - if($k === 'namePerson/friendly') + if (is_array($attr) && count($attr)) { + foreach ($attr as $k => $v) { + if ($k === 'namePerson/friendly') { $nick = notags(trim($v)); - if($k === 'namePerson/first') + } + if($k === 'namePerson/first') { $first = notags(trim($v)); - if($k === 'namePerson') + } + if($k === 'namePerson') { $args .= '&username=' . notags(trim($v)); - if($k === 'contact/email') + } + if ($k === 'contact/email') { $args .= '&email=' . notags(trim($v)); - if($k === 'media/image/aspect11') + } + if ($k === 'media/image/aspect11') { $photosq = bin2hex(trim($v)); - if($k === 'media/image/default') + } + if ($k === 'media/image/default') { $photo = bin2hex(trim($v)); + } } } - if($nick) + if ($nick) { $args .= '&nickname=' . $nick; - elseif($first) + } + elseif ($first) { $args .= '&nickname=' . $first; + } - if($photosq) + if ($photosq) { $args .= '&photo=' . $photosq; - elseif($photo) + } + elseif ($photo) { $args .= '&photo=' . $photo; + } $args .= '&openid_url=' . notags(trim($authid)); - goaway($a->get_baseurl() . '/register' . $args); + goaway(App::get_baseurl() . '/register' . $args); // NOTREACHED } diff --git a/mod/opensearch.php b/mod/opensearch.php index ff748d1c53..50ecc4e69e 100644 --- a/mod/opensearch.php +++ b/mod/opensearch.php @@ -6,7 +6,7 @@ header("Content-type: application/opensearchdescription+xml"); $o = replace_macros($tpl, array( - '$baseurl' => $a->get_baseurl(), + '$baseurl' => App::get_baseurl(), '$nodename' => $a->get_hostname(), )); diff --git a/mod/ostatus_subscribe.php b/mod/ostatus_subscribe.php index 6cca0bf679..04c8d7bde7 100644 --- a/mod/ostatus_subscribe.php +++ b/mod/ostatus_subscribe.php @@ -5,7 +5,7 @@ require_once('include/follow.php'); function ostatus_subscribe_content(&$a) { - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL); goaway($_SESSION['return_url']); // NOTREACHED @@ -21,21 +21,24 @@ function ostatus_subscribe_content(&$a) { if (get_pconfig($uid, "ostatus", "legacy_friends") == "") { - if ($_REQUEST["url"] == "") + if ($_REQUEST["url"] == "") { return $o.t("No contact provided."); + } $contact = probe_url($_REQUEST["url"]); - if (!$contact) + if (!$contact) { return $o.t("Couldn't fetch information for contact."); + } $api = $contact["baseurl"]."/api/"; // Fetching friends $data = z_fetch_url($api."statuses/friends.json?screen_name=".$contact["nick"]); - if (!$data["success"]) + if (!$data["success"]) { return $o.t("Couldn't fetch friends for contact."); + } set_pconfig($uid, "ostatus", "legacy_friends", $data["body"]); } @@ -45,7 +48,7 @@ function ostatus_subscribe_content(&$a) { $total = sizeof($friends); if ($counter >= $total) { - $a->page['htmlhead'] = ''; + $a->page['htmlhead'] = ''; del_pconfig($uid, "ostatus", "legacy_friends"); del_pconfig($uid, "ostatus", "legacy_contact"); $o .= t("Done"); @@ -61,18 +64,20 @@ function ostatus_subscribe_content(&$a) { $data = probe_url($url); if ($data["network"] == NETWORK_OSTATUS) { $result = new_contact($uid,$url,true); - if ($result["success"]) + if ($result["success"]) { $o .= " - ".t("success"); - else + } else { $o .= " - ".t("failed"); - } else + } + } else { $o .= " - ".t("ignored"); + } $o .= "

    "; $o .= "

    ".t("Keep this window open until done.")."

    "; - $a->page['htmlhead'] = ''; + $a->page['htmlhead'] = ''; return $o; } diff --git a/mod/p.php b/mod/p.php index 4db8f55296..8755464519 100644 --- a/mod/p.php +++ b/mod/p.php @@ -54,8 +54,8 @@ function p_init($a){ } $user = $r[0]; - $status = diaspora::build_status($item[0], $user); - $xml = diaspora::build_post_xml($status["type"], $status["message"]); + $status = Diaspora::build_status($item[0], $user); + $xml = Diaspora::build_post_xml($status["type"], $status["message"]); header("Content-Type: application/xml; charset=utf-8"); echo $xml; diff --git a/mod/photos.php b/mod/photos.php index 1ef43f423a..e026944423 100644 --- a/mod/photos.php +++ b/mod/photos.php @@ -208,6 +208,9 @@ function photos_post(&$a) { dbesc($album), intval($page_owner_uid) ); + // Update the photo albums cache + photo_albums($page_owner_uid, true); + $newurl = str_replace(bin2hex($album),bin2hex($newalbum),$_SESSION['photo_return']); goaway($newurl); return; // NOTREACHED @@ -255,7 +258,7 @@ function photos_post(&$a) { ); } if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { $res[] = "'" . dbesc($rr['rid']) . "'" ; } } else { @@ -277,7 +280,7 @@ function photos_post(&$a) { intval($page_owner_uid) ); if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { q("UPDATE `item` SET `deleted` = 1, `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d", dbesc(datetime_convert()), dbesc($rr['parent-uri']), @@ -294,7 +297,11 @@ function photos_post(&$a) { proc_run(PRIORITY_HIGH, "include/notifier.php", "drop", $drop_id); } } + + // Update the photo albums cache + photo_albums($page_owner_uid, true); } + goaway('photos/' . $a->data['user']['nickname']); return; // NOTREACHED } @@ -356,9 +363,12 @@ function photos_post(&$a) { create_tags_from_itemuri($i[0]['uri'], $page_owner_uid); delete_thread_uri($i[0]['uri'], $page_owner_uid); - $url = $a->get_baseurl(); + $url = App::get_baseurl(); $drop_id = intval($i[0]['id']); + // Update the photo albums cache + photo_albums($page_owner_uid, true); + if ($i[0]['visible']) proc_run(PRIORITY_HIGH, "include/notifier.php", "drop", $drop_id); } @@ -370,10 +380,11 @@ function photos_post(&$a) { if (($a->argc > 2) && ((x($_POST,'desc') !== false) || (x($_POST,'newtag') !== false)) || (x($_POST,'albname') !== false)) { - $desc = ((x($_POST,'desc')) ? notags(trim($_POST['desc'])) : ''); - $rawtags = ((x($_POST,'newtag')) ? notags(trim($_POST['newtag'])) : ''); - $item_id = ((x($_POST,'item_id')) ? intval($_POST['item_id']) : 0); - $albname = ((x($_POST,'albname')) ? notags(trim($_POST['albname'])) : ''); + $desc = ((x($_POST,'desc')) ? notags(trim($_POST['desc'])) : ''); + $rawtags = ((x($_POST,'newtag')) ? notags(trim($_POST['newtag'])) : ''); + $item_id = ((x($_POST,'item_id')) ? intval($_POST['item_id']) : 0); + $albname = ((x($_POST,'albname')) ? notags(trim($_POST['albname'])) : ''); + $origaname = ((x($_POST,'origaname')) ? notags(trim($_POST['origaname'])) : ''); $str_group_allow = perms2str($_POST['group_allow']); $str_contact_allow = perms2str($_POST['contact_allow']); $str_group_deny = perms2str($_POST['group_deny']); @@ -457,6 +468,10 @@ function photos_post(&$a) { dbesc($resource_id), intval($page_owner_uid) ); + // Update the photo albums cache if album name was changed + if ($albname !== $origaname) { + photo_albums($page_owner_uid, true); + } } /* Don't make the item visible if the only change was the album name */ @@ -496,8 +511,8 @@ function photos_post(&$a) { $arr['visible'] = $visibility; $arr['origin'] = 1; - $arr['body'] = '[url=' . $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/image/' . $p[0]['resource-id'] . ']' - . '[img]' . $a->get_baseurl() . '/photo/' . $p[0]['resource-id'] . '-' . $p[0]['scale'] . '.'. $ext . '[/img]' + $arr['body'] = '[url=' . App::get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/image/' . $p[0]['resource-id'] . ']' + . '[img]' . App::get_baseurl() . '/photo/' . $p[0]['resource-id'] . '-' . $p[0]['scale'] . '.'. $ext . '[/img]' . '[/url]'; $item_id = item_store($arr); @@ -615,7 +630,7 @@ function photos_post(&$a) { } } elseif (strpos($tag,'#') === 0) { $tagname = substr($tag, 1); - $str_tags .= '#[url='.$a->get_baseurl()."/search?tag=".$tagname.']'.$tagname.'[/url]'; + $str_tags .= '#[url='.App::get_baseurl()."/search?tag=".$tagname.']'.$tagname.'[/url]'; } } } @@ -685,8 +700,8 @@ function photos_post(&$a) { $arr['tag'] = $tagged[4]; $arr['inform'] = $tagged[2]; $arr['origin'] = 1; - $arr['body'] = sprintf( t('%1$s was tagged in %2$s by %3$s'), '[url=' . $tagged[1] . ']' . $tagged[0] . '[/url]', '[url=' . $a->get_baseurl() . '/photos/' . $owner_record['nickname'] . '/image/' . $p[0]['resource-id'] . ']' . t('a photo') . '[/url]', '[url=' . $owner_record['url'] . ']' . $owner_record['name'] . '[/url]') ; - $arr['body'] .= "\n\n" . '[url=' . $a->get_baseurl() . '/photos/' . $owner_record['nickname'] . '/image/' . $p[0]['resource-id'] . ']' . '[img]' . $a->get_baseurl() . "/photo/" . $p[0]['resource-id'] . '-' . $best . '.' . $ext . '[/img][/url]' . "\n" ; + $arr['body'] = sprintf( t('%1$s was tagged in %2$s by %3$s'), '[url=' . $tagged[1] . ']' . $tagged[0] . '[/url]', '[url=' . App::get_baseurl() . '/photos/' . $owner_record['nickname'] . '/image/' . $p[0]['resource-id'] . ']' . t('a photo') . '[/url]', '[url=' . $owner_record['url'] . ']' . $owner_record['name'] . '[/url]') ; + $arr['body'] .= "\n\n" . '[url=' . App::get_baseurl() . '/photos/' . $owner_record['nickname'] . '/image/' . $p[0]['resource-id'] . ']' . '[img]' . App::get_baseurl() . "/photo/" . $p[0]['resource-id'] . '-' . $best . '.' . $ext . '[/img][/url]' . "\n" ; $arr['object'] = '' . ACTIVITY_OBJ_PERSON . '' . $tagged[0] . '' . $tagged[1] . '/' . $tagged[0] . ''; $arr['object'] .= '' . xmlify('' . "\n"); @@ -695,8 +710,8 @@ function photos_post(&$a) { $arr['object'] .= '' . "\n"; $arr['target'] = '' . ACTIVITY_OBJ_IMAGE . '' . $p[0]['desc'] . '' - . $a->get_baseurl() . '/photos/' . $owner_record['nickname'] . '/image/' . $p[0]['resource-id'] . ''; - $arr['target'] .= '' . xmlify('' . "\n" . '') . ''; + . App::get_baseurl() . '/photos/' . $owner_record['nickname'] . '/image/' . $p[0]['resource-id'] . ''; + $arr['target'] .= '' . xmlify('' . "\n" . '') . ''; $item_id = item_store($arr); if ($item_id) { @@ -908,11 +923,13 @@ function photos_post(&$a) { $arr['visible'] = $visible; $arr['origin'] = 1; - $arr['body'] = '[url=' . $a->get_baseurl() . '/photos/' . $owner_record['nickname'] . '/image/' . $photo_hash . ']' - . '[img]' . $a->get_baseurl() . "/photo/{$photo_hash}-{$smallest}.".$ph->getExt() . '[/img]' + $arr['body'] = '[url=' . App::get_baseurl() . '/photos/' . $owner_record['nickname'] . '/image/' . $photo_hash . ']' + . '[img]' . App::get_baseurl() . "/photo/{$photo_hash}-{$smallest}.".$ph->getExt() . '[/img]' . '[/url]'; $item_id = item_store($arr); + // Update the photo albums cache + photo_albums($page_owner_uid, true); if ($visible) proc_run(PRIORITY_HIGH, "include/notifier.php", 'wall-new', $item_id); diff --git a/mod/ping.php b/mod/ping.php index 1ef3cc5b47..cde03969f4 100644 --- a/mod/ping.php +++ b/mod/ping.php @@ -177,7 +177,7 @@ function ping_init(App $a) $intro_count = count($intros1) + count($intros2); $intros = $intros1 + $intros2; - $myurl = $a->get_baseurl() . '/profile/' . $a->user['nickname'] ; + $myurl = App::get_baseurl() . '/profile/' . $a->user['nickname'] ; $mails = qu("SELECT `id`, `from-name`, `from-url`, `from-photo`, `created` FROM `mail` WHERE `uid` = %d AND `seen` = 0 AND `from-url` != '%s' ", intval(local_user()), @@ -253,7 +253,7 @@ function ping_init(App $a) if (dbm::is_result($intros)) { foreach ($intros as $intro) { $notif = array( - 'href' => $a->get_baseurl() . '/notifications/intros/' . $intro['id'], + 'href' => App::get_baseurl() . '/notifications/intros/' . $intro['id'], 'name' => $intro['name'], 'url' => $intro['url'], 'photo' => $intro['photo'], @@ -268,7 +268,7 @@ function ping_init(App $a) if (dbm::is_result($mails)) { foreach ($mails as $mail) { $notif = array( - 'href' => $a->get_baseurl() . '/message/' . $mail['id'], + 'href' => App::get_baseurl() . '/message/' . $mail['id'], 'name' => $mail['from-name'], 'url' => $mail['from-url'], 'photo' => $mail['from-photo'], @@ -283,7 +283,7 @@ function ping_init(App $a) if (dbm::is_result($regs)) { foreach ($regs as $reg) { $notif = array( - 'href' => $a->get_baseurl() . '/admin/users/', + 'href' => App::get_baseurl() . '/admin/users/', 'name' => $reg['name'], 'url' => $reg['url'], 'photo' => $reg['micro'], @@ -450,7 +450,7 @@ function ping_get_notifications($uid) ); } - $notification["href"] = $a->get_baseurl() . "/notify/view/" . $notification["id"]; + $notification["href"] = App::get_baseurl() . "/notify/view/" . $notification["id"]; if ($notification["visible"] AND !$notification["spam"] AND !$notification["deleted"] AND !is_array($result[$notification["parent"]])) { diff --git a/mod/poco.php b/mod/poco.php index e454d1e668..a97ca64e33 100644 --- a/mod/poco.php +++ b/mod/poco.php @@ -174,7 +174,7 @@ function poco_init(&$a) { if(is_array($r)) { if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { if (!isset($rr['generation'])) { if ($global) $rr['generation'] = 3; diff --git a/mod/poke.php b/mod/poke.php index 8102c3697d..af8eed35a0 100644 --- a/mod/poke.php +++ b/mod/poke.php @@ -21,25 +21,29 @@ require_once('include/items.php'); function poke_init(&$a) { - if(! local_user()) + if (! local_user()) { return; + } $uid = local_user(); $verb = notags(trim($_GET['verb'])); - if(! $verb) + if (! $verb) { return; + } $verbs = get_poke_verbs(); - if(! array_key_exists($verb,$verbs)) + if (! array_key_exists($verb,$verbs)) { return; + } $activity = ACTIVITY_POKE . '#' . urlencode($verbs[$verb][0]); $contact_id = intval($_GET['cid']); - if(! $contact_id) + if (! $contact_id) { return; + } $parent = ((x($_GET,'parent')) ? intval($_GET['parent']) : 0); @@ -52,7 +56,7 @@ function poke_init(&$a) { intval($uid) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { logger('poke: no contact ' . $contact_id); return; } @@ -118,7 +122,7 @@ function poke_init(&$a) { $arr['origin'] = 1; $arr['body'] = '[url=' . $poster['url'] . ']' . $poster['name'] . '[/url]' . ' ' . t($verbs[$verb][0]) . ' ' . '[url=' . $target['url'] . ']' . $target['name'] . '[/url]'; - $arr['object'] = '' . ACTIVITY_OBJ_PERSON . '' . $target['name'] . '' . $a->get_baseurl() . '/contact/' . $target['id'] . ''; + $arr['object'] = '' . ACTIVITY_OBJ_PERSON . '' . $target['name'] . '' . App::get_baseurl() . '/contact/' . $target['id'] . ''; $arr['object'] .= '' . xmlify('' . "\n"); $arr['object'] .= xmlify('' . "\n"); @@ -127,7 +131,7 @@ function poke_init(&$a) { $item_id = item_store($arr); if($item_id) { //q("UPDATE `item` SET `plink` = '%s' WHERE `uid` = %d AND `id` = %d", - // dbesc($a->get_baseurl() . '/display/' . $poster['nickname'] . '/' . $item_id), + // dbesc(App::get_baseurl() . '/display/' . $poster['nickname'] . '/' . $item_id), // intval($uid), // intval($item_id) //); @@ -146,7 +150,7 @@ function poke_init(&$a) { function poke_content(&$a) { - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL); return; } @@ -166,11 +170,11 @@ function poke_content(&$a) { } - $base = $a->get_baseurl(); + $base = App::get_baseurl(); $head_tpl = get_markup_template('poke_head.tpl'); $a->page['htmlhead'] .= replace_macros($head_tpl,array( - '$baseurl' => $a->get_baseurl(true), + '$baseurl' => App::get_baseurl(true), '$base' => $base )); diff --git a/mod/post.php b/mod/post.php index 76282d29a5..a8d345ecb6 100644 --- a/mod/post.php +++ b/mod/post.php @@ -23,8 +23,9 @@ function post_post(&$a) { AND `account_expired` = 0 AND `account_removed` = 0 LIMIT 1", dbesc($nickname) ); - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { http_status_exit(500); + } $importer = $r[0]; } diff --git a/mod/profile.php b/mod/profile.php index 5ab675dd0d..ae8f2fa720 100644 --- a/mod/profile.php +++ b/mod/profile.php @@ -14,7 +14,7 @@ function profile_init(&$a) { else { $r = q("select nickname from user where blocked = 0 and account_expired = 0 and account_removed = 0 and verified = 1 order by rand() limit 1"); if (dbm::is_result($r)) { - goaway($a->get_baseurl() . '/profile/' . $r[0]['nickname']); + goaway(App::get_baseurl() . '/profile/' . $r[0]['nickname']); } else { logger('profile error: mod_profile ' . $a->query_string, LOGGER_DEBUG); @@ -56,15 +56,16 @@ function profile_init(&$a) { } $a->page['htmlhead'] .= '' . "\r\n" ; - $a->page['htmlhead'] .= '' . "\r\n" ; + $a->page['htmlhead'] .= '' . "\r\n" ; $uri = urlencode('acct:' . $a->profile['nickname'] . '@' . $a->get_hostname() . (($a->path) ? '/' . $a->path : '')); - $a->page['htmlhead'] .= '' . "\r\n"; - header('Link: <' . $a->get_baseurl() . '/xrd/?uri=' . $uri . '>; rel="lrdd"; type="application/xrd+xml"', false); + $a->page['htmlhead'] .= '' . "\r\n"; + header('Link: <' . App::get_baseurl() . '/xrd/?uri=' . $uri . '>; rel="lrdd"; type="application/xrd+xml"', false); $dfrn_pages = array('request', 'confirm', 'notify', 'poll'); - foreach($dfrn_pages as $dfrn) - $a->page['htmlhead'] .= "get_baseurl()."/dfrn_{$dfrn}/{$which}\" />\r\n"; - $a->page['htmlhead'] .= "get_baseurl()."/poco/{$which}\" />\r\n"; + foreach ($dfrn_pages as $dfrn) { + $a->page['htmlhead'] .= "\r\n"; + } + $a->page['htmlhead'] .= "\r\n"; } @@ -181,8 +182,8 @@ function profile_content(&$a, $update = 0) { $commpage = (($a->profile['page-flags'] == PAGE_COMMUNITY) ? true : false); $commvisitor = (($commpage && $remote_contact == true) ? true : false); - $a->page['aside'] .= posted_date_widget($a->get_baseurl(true) . '/profile/' . $a->profile['nickname'],$a->profile['profile_uid'],true); - $a->page['aside'] .= categories_widget($a->get_baseurl(true) . '/profile/' . $a->profile['nickname'],(x($category) ? xmlify($category) : '')); + $a->page['aside'] .= posted_date_widget(App::get_baseurl(true) . '/profile/' . $a->profile['nickname'],$a->profile['profile_uid'],true); + $a->page['aside'] .= categories_widget(App::get_baseurl(true) . '/profile/' . $a->profile['nickname'],(x($category) ? xmlify($category) : '')); if(can_write_wall($a,$a->profile['profile_uid'])) { diff --git a/mod/profile_photo.php b/mod/profile_photo.php index 20bbbbcbd4..eee15c2af2 100644 --- a/mod/profile_photo.php +++ b/mod/profile_photo.php @@ -4,7 +4,7 @@ require_once("include/Photo.php"); function profile_photo_init(&$a) { - if(! local_user()) { + if (! local_user()) { return; } @@ -15,7 +15,7 @@ function profile_photo_init(&$a) { function profile_photo_post(&$a) { - if(! local_user()) { + if (! local_user()) { notice ( t('Permission denied.') . EOL ); return; } @@ -99,15 +99,15 @@ function profile_photo_post(&$a) { ); $r = q("UPDATE `contact` SET `photo` = '%s', `thumb` = '%s', `micro` = '%s' WHERE `self` AND `uid` = %d", - dbesc($a->get_baseurl() . '/photo/' . $base_image['resource-id'] . '-4.' . $im->getExt()), - dbesc($a->get_baseurl() . '/photo/' . $base_image['resource-id'] . '-5.' . $im->getExt()), - dbesc($a->get_baseurl() . '/photo/' . $base_image['resource-id'] . '-6.' . $im->getExt()), + dbesc(App::get_baseurl() . '/photo/' . $base_image['resource-id'] . '-4.' . $im->getExt()), + dbesc(App::get_baseurl() . '/photo/' . $base_image['resource-id'] . '-5.' . $im->getExt()), + dbesc(App::get_baseurl() . '/photo/' . $base_image['resource-id'] . '-6.' . $im->getExt()), intval(local_user()) ); } else { $r = q("update profile set photo = '%s', thumb = '%s' where id = %d and uid = %d", - dbesc($a->get_baseurl() . '/photo/' . $base_image['resource-id'] . '-4.' . $im->getExt()), - dbesc($a->get_baseurl() . '/photo/' . $base_image['resource-id'] . '-5.' . $im->getExt()), + dbesc(App::get_baseurl() . '/photo/' . $base_image['resource-id'] . '-4.' . $im->getExt()), + dbesc(App::get_baseurl() . '/photo/' . $base_image['resource-id'] . '-5.' . $im->getExt()), intval($_REQUEST['profile']), intval(local_user()) ); @@ -123,9 +123,10 @@ function profile_photo_post(&$a) { info( t('Shift-reload the page or clear browser cache if the new photo does not display immediately.') . EOL); // Update global directory in background - $url = $a->get_baseurl() . '/profile/' . $a->user['nickname']; - if($url && strlen(get_config('system','directory'))) + $url = App::get_baseurl() . '/profile/' . $a->user['nickname']; + if ($url && strlen(get_config('system','directory'))) { proc_run(PRIORITY_LOW, "include/directory.php", $url); + } require_once('include/profile_update.php'); profile_change(); @@ -134,7 +135,7 @@ function profile_photo_post(&$a) { notice( t('Unable to process image') . EOL); } - goaway($a->get_baseurl() . '/profiles'); + goaway(App::get_baseurl() . '/profiles'); return; // NOTREACHED } @@ -171,7 +172,7 @@ function profile_photo_post(&$a) { if(! function_exists('profile_photo_content')) { function profile_photo_content(&$a) { - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL ); return; } @@ -200,7 +201,7 @@ function profile_photo_content(&$a) { return; } $havescale = false; - foreach($r as $rr) { + foreach ($r as $rr) { if($rr['scale'] == 5) $havescale = true; } @@ -223,10 +224,11 @@ function profile_photo_content(&$a) { // Update global directory in background $url = $_SESSION['my_url']; - if($url && strlen(get_config('system','directory'))) + if ($url && strlen(get_config('system','directory'))) { proc_run(PRIORITY_LOW, "include/directory.php", $url); + } - goaway($a->get_baseurl() . '/profiles'); + goaway(App::get_baseurl() . '/profiles'); return; // NOTREACHED } $ph = new Photo($r[0]['data'], $r[0]['type']); @@ -251,7 +253,7 @@ function profile_photo_content(&$a) { '$submit' => t('Upload'), '$profiles' => $profiles, '$form_security_token' => get_form_security_token("profile_photo"), - '$select' => sprintf('%s %s', t('or'), ($newuser) ? '' . t('skip this step') . '' : '' . t('select a photo from your photo albums') . '') + '$select' => sprintf('%s %s', t('or'), ($newuser) ? '' . t('skip this step') . '' : '' . t('select a photo from your photo albums') . '') )); return $o; @@ -264,7 +266,7 @@ function profile_photo_content(&$a) { '$filename' => $filename, '$profile' => intval($_REQUEST['profile']), '$resource' => $a->config['imagecrop'] . '-' . $a->config['imagecrop_resolution'], - '$image_url' => $a->get_baseurl() . '/photo/' . $filename, + '$image_url' => App::get_baseurl() . '/photo/' . $filename, '$title' => t('Crop Image'), '$desc' => t('Please adjust the image cropping for optimum viewing.'), '$form_security_token' => get_form_security_token("profile_photo"), diff --git a/mod/profiles.php b/mod/profiles.php index f9fde658d2..9321aacb59 100644 --- a/mod/profiles.php +++ b/mod/profiles.php @@ -6,7 +6,7 @@ function profiles_init(&$a) { nav_set_selected('profiles'); - if(! local_user()) { + if (! local_user()) { return; } @@ -15,7 +15,7 @@ function profiles_init(&$a) { intval($a->argv[2]), intval(local_user()) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { notice( t('Profile not found.') . EOL); goaway('profiles'); return; // NOTREACHED @@ -130,7 +130,7 @@ function profiles_init(&$a) { intval($a->argv[1]), intval(local_user()) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { notice( t('Profile not found.') . EOL); killme(); return; @@ -162,7 +162,7 @@ function profile_clean_keywords($keywords) { function profiles_post(&$a) { - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL); return; } @@ -502,8 +502,9 @@ function profiles_post(&$a) { // Update global directory in background $url = $_SESSION['my_url']; - if($url && strlen(get_config('system','directory'))) + if ($url && strlen(get_config('system','directory'))) { proc_run(PRIORITY_LOW, "include/directory.php", $url); + } require_once('include/profile_update.php'); profile_change(); @@ -594,14 +595,15 @@ function profile_activity($changed, $value) { $arr['deny_gid'] = $a->user['deny_gid']; $i = item_store($arr); - if($i) + if ($i) { proc_run(PRIORITY_HIGH, "include/notifier.php", "activity", $i); + } } function profiles_content(&$a) { - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL); return; } @@ -613,7 +615,7 @@ function profiles_content(&$a) { intval($a->argv[1]), intval(local_user()) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { notice( t('Profile not found.') . EOL); return; } @@ -629,11 +631,11 @@ function profiles_content(&$a) { $editselect = 'textareas'; $a->page['htmlhead'] .= replace_macros(get_markup_template('profed_head.tpl'), array( - '$baseurl' => $a->get_baseurl(true), + '$baseurl' => App::get_baseurl(true), '$editselect' => $editselect, )); $a->page['end'] .= replace_macros(get_markup_template('profed_end.tpl'), array( - '$baseurl' => $a->get_baseurl(true), + '$baseurl' => App::get_baseurl(true), '$editselect' => $editselect, )); @@ -711,7 +713,7 @@ function profiles_content(&$a) { '$lbl_ex2' => t('Example: fishing photography software'), '$disabled' => (($is_default) ? 'onclick="return false;" style="color: #BBBBFF;"' : ''), - '$baseurl' => $a->get_baseurl(true), + '$baseurl' => App::get_baseurl(true), '$profile_id' => $r[0]['id'], '$profile_name' => array('profile_name', t('Profile Name:'), $r[0]['profile-name'], t('Required'), '*'), '$is_default' => $is_default, @@ -778,24 +780,26 @@ function profiles_content(&$a) { if (dbm::is_result($r)) { $tpl = get_markup_template('profile_entry.tpl'); - foreach($r as $rr) { + + $profiles = ''; + foreach ($r as $rr) { $profiles .= replace_macros($tpl, array( - '$photo' => $a->remove_baseurl($rr['thumb']), - '$id' => $rr['id'], - '$alt' => t('Profile Image'), + '$photo' => $a->remove_baseurl($rr['thumb']), + '$id' => $rr['id'], + '$alt' => t('Profile Image'), '$profile_name' => $rr['profile-name'], - '$visible' => (($rr['is-default']) ? '' . t('visible to everybody') . '' + '$visible' => (($rr['is-default']) ? '' . t('visible to everybody') . '' : '' . t('Edit visibility') . '') )); } $tpl_header = get_markup_template('profile_listing_header.tpl'); $o .= replace_macros($tpl_header,array( - '$header' => t('Edit/Manage Profiles'), - '$chg_photo' => t('Change profile photo'), - '$cr_new' => t('Create New Profile'), + '$header' => t('Edit/Manage Profiles'), + '$chg_photo' => t('Change profile photo'), + '$cr_new' => t('Create New Profile'), '$cr_new_link' => 'profiles/new?t=' . get_form_security_token("profile_new"), - '$profiles' => $profiles + '$profiles' => $profiles )); } return $o; diff --git a/mod/profperm.php b/mod/profperm.php index 1c37f84ab2..0a4b3e9a47 100644 --- a/mod/profperm.php +++ b/mod/profperm.php @@ -2,8 +2,9 @@ function profperm_init(&$a) { - if(! local_user()) + if (! local_user()) { return; + } $which = $a->user['nickname']; $profile = $a->argv[1]; @@ -15,7 +16,7 @@ function profperm_init(&$a) { function profperm_content(&$a) { - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied') . EOL); return; } @@ -52,7 +53,7 @@ function profperm_content(&$a) { intval($a->argv[1]), intval(local_user()) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { notice( t('Invalid profile identifier.') . EOL ); return; } diff --git a/mod/proxy.php b/mod/proxy.php index 612dc910a0..8046e4e963 100644 --- a/mod/proxy.php +++ b/mod/proxy.php @@ -1,20 +1,18 @@ -define("PROXY_DEFAULT_TIME", 86400); // 1 Day +define('PROXY_DEFAULT_TIME', 86400); // 1 Day -define("PROXY_SIZE_MICRO", "micro"); -define("PROXY_SIZE_THUMB", "thumb"); -define("PROXY_SIZE_SMALL", "small"); -define("PROXY_SIZE_MEDIUM", "medium"); -define("PROXY_SIZE_LARGE", "large"); +define('PROXY_SIZE_MICRO', 'micro'); +define('PROXY_SIZE_THUMB', 'thumb'); +define('PROXY_SIZE_SMALL', 'small'); +define('PROXY_SIZE_MEDIUM', 'medium'); +define('PROXY_SIZE_LARGE', 'large'); -require_once('include/security.php'); -require_once("include/Photo.php"); - -function proxy_init() { - global $a, $_SERVER; +require_once 'include/security.php'; +require_once 'include/Photo.php'; +function proxy_init(App $a) { // Pictures are stored in one of the following ways: // 1. If a folder "proxy" exists and is writeable, then use this for caching // 2. If a cache path is defined, use this @@ -24,11 +22,12 @@ function proxy_init() { if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) { header('HTTP/1.1 304 Not Modified'); - header("Last-Modified: " . gmdate("D, d M Y H:i:s", time()) . " GMT"); - header('Etag: '.$_SERVER['HTTP_IF_NONE_MATCH']); - header("Expires: " . gmdate("D, d M Y H:i:s", time() + (31536000)) . " GMT"); - header("Cache-Control: max-age=31536000"); - if(function_exists('header_remove')) { + header('Last-Modified: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT'); + header('Etag: ' . $_SERVER['HTTP_IF_NONE_MATCH']); + header('Expires: ' . gmdate('D, d M Y H:i:s', time() + (31536000)) . ' GMT'); + header('Cache-Control: max-age=31536000'); + + if (function_exists('header_remove')) { header_remove('Last-Modified'); header_remove('Expires'); header_remove('Cache-Control'); @@ -36,140 +35,148 @@ function proxy_init() { exit; } - if(function_exists('header_remove')) { + if (function_exists('header_remove')) { header_remove('Pragma'); header_remove('pragma'); } $thumb = false; $size = 1024; - $sizetype = ""; + $sizetype = ''; $basepath = $a->get_basepath(); // If the cache path isn't there, try to create it - if (!is_dir($basepath."/proxy")) - if (is_writable($basepath)) - mkdir($basepath."/proxy"); + if (!is_dir($basepath . '/proxy') AND is_writable($basepath)) { + mkdir($basepath . '/proxy'); + } // Checking if caching into a folder in the webroot is activated and working - $direct_cache = (is_dir($basepath."/proxy") AND is_writable($basepath."/proxy")); + $direct_cache = (is_dir($basepath . '/proxy') AND is_writable($basepath . '/proxy')); // Look for filename in the arguments - if ((isset($a->argv[1]) OR isset($a->argv[2]) OR isset($a->argv[3])) AND !isset($_REQUEST["url"])) { - if (isset($a->argv[3])) + if ((isset($a->argv[1]) OR isset($a->argv[2]) OR isset($a->argv[3])) AND !isset($_REQUEST['url'])) { + if (isset($a->argv[3])) { $url = $a->argv[3]; - elseif (isset($a->argv[2])) + } elseif (isset($a->argv[2])) { $url = $a->argv[2]; - else + } else { $url = $a->argv[1]; - - if (isset($a->argv[3]) and ($a->argv[3] == "thumb")) - $size = 200; - - // thumb, small, medium and large. - if (substr($url, -6) == ":micro") { - $size = 48; - $sizetype = ":micro"; - $url = substr($url, 0, -6); - } elseif (substr($url, -6) == ":thumb") { - $size = 80; - $sizetype = ":thumb"; - $url = substr($url, 0, -6); - } elseif (substr($url, -6) == ":small") { - $size = 175; - $url = substr($url, 0, -6); - $sizetype = ":small"; - } elseif (substr($url, -7) == ":medium") { - $size = 600; - $url = substr($url, 0, -7); - $sizetype = ":medium"; - } elseif (substr($url, -6) == ":large") { - $size = 1024; - $url = substr($url, 0, -6); - $sizetype = ":large"; } - $pos = strrpos($url, "=."); - if ($pos) - $url = substr($url, 0, $pos+1); + if (isset($a->argv[3]) AND ($a->argv[3] == 'thumb')) { + $size = 200; + } - $url = str_replace(array(".jpg", ".jpeg", ".gif", ".png"), array("","","",""), $url); + // thumb, small, medium and large. + if (substr($url, -6) == ':micro') { + $size = 48; + $sizetype = ':micro'; + $url = substr($url, 0, -6); + } elseif (substr($url, -6) == ':thumb') { + $size = 80; + $sizetype = ':thumb'; + $url = substr($url, 0, -6); + } elseif (substr($url, -6) == ':small') { + $size = 175; + $url = substr($url, 0, -6); + $sizetype = ':small'; + } elseif (substr($url, -7) == ':medium') { + $size = 600; + $url = substr($url, 0, -7); + $sizetype = ':medium'; + } elseif (substr($url, -6) == ':large') { + $size = 1024; + $url = substr($url, 0, -6); + $sizetype = ':large'; + } + + $pos = strrpos($url, '=.'); + if ($pos) { + $url = substr($url, 0, $pos + 1); + } + + $url = str_replace(array('.jpg', '.jpeg', '.gif', '.png'), array('','','',''), $url); $url = base64_decode(strtr($url, '-_', '+/'), true); - if ($url) + if ($url) { $_REQUEST['url'] = $url; - } else + } + } else { $direct_cache = false; + } if (!$direct_cache) { $urlhash = 'pic:' . sha1($_REQUEST['url']); - $cachefile = get_cachefile(hash("md5", $_REQUEST['url'])); - if ($cachefile != '') { - if (file_exists($cachefile)) { - $img_str = file_get_contents($cachefile); - $mime = image_type_to_mime_type(exif_imagetype($cachefile)); + $cachefile = get_cachefile(hash('md5', $_REQUEST['url'])); + if ($cachefile != '' AND file_exists($cachefile)) { + $img_str = file_get_contents($cachefile); + $mime = image_type_to_mime_type(exif_imagetype($cachefile)); - header("Content-type: $mime"); - header("Last-Modified: " . gmdate("D, d M Y H:i:s", time()) . " GMT"); - header('Etag: "'.md5($img_str).'"'); - header("Expires: " . gmdate("D, d M Y H:i:s", time() + (31536000)) . " GMT"); - header("Cache-Control: max-age=31536000"); + header('Content-type: ' . $mime); + header('Last-Modified: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT'); + header('Etag: "' . md5($img_str) . '"'); + header('Expires: ' . gmdate('D, d M Y H:i:s', time() + (31536000)) . ' GMT'); + header('Cache-Control: max-age=31536000'); - // reduce quality - if it isn't a GIF - if ($mime != "image/gif") { - $img = new Photo($img_str, $mime); - if($img->is_valid()) { - $img_str = $img->imageString(); - } + // reduce quality - if it isn't a GIF + if ($mime != 'image/gif') { + $img = new Photo($img_str, $mime); + if ($img->is_valid()) { + $img_str = $img->imageString(); } - - echo $img_str; - killme(); } + + echo $img_str; + killme(); } - } else - $cachefile = ""; + } else { + $cachefile = ''; + } $valid = true; + $r = array(); - if (!$direct_cache AND ($cachefile == "")) { + if (!$direct_cache AND ($cachefile == '')) { $r = qu("SELECT * FROM `photo` WHERE `resource-id` = '%s' LIMIT 1", $urlhash); if (dbm::is_result($r)) { - $img_str = $r[0]['data']; - $mime = $r[0]["desc"]; - if ($mime == "") $mime = "image/jpeg"; + $img_str = $r[0]['data']; + $mime = $r[0]['desc']; + if ($mime == '') { + $mime = 'image/jpeg'; + } } - } else - $r = array(); + } if (!dbm::is_result($r)) { // It shouldn't happen but it does - spaces in URL - $_REQUEST['url'] = str_replace(" ", "+", $_REQUEST['url']); + $_REQUEST['url'] = str_replace(' ', '+', $_REQUEST['url']); $redirects = 0; - $img_str = fetch_url($_REQUEST['url'],true, $redirects, 10); + $img_str = fetch_url($_REQUEST['url'], true, $redirects, 10); - $tempfile = tempnam(get_temppath(), "cache"); + $tempfile = tempnam(get_temppath(), 'cache'); file_put_contents($tempfile, $img_str); $mime = image_type_to_mime_type(exif_imagetype($tempfile)); unlink($tempfile); // If there is an error then return a blank image - if ((substr($a->get_curl_code(), 0, 1) == "4") or (!$img_str)) { - $img_str = file_get_contents("images/blank.png"); - $mime = "image/png"; - $cachefile = ""; // Clear the cachefile so that the dummy isn't stored + if ((substr($a->get_curl_code(), 0, 1) == '4') OR (!$img_str)) { + $img_str = file_get_contents('images/blank.png'); + $mime = 'image/png'; + $cachefile = ''; // Clear the cachefile so that the dummy isn't stored $valid = false; - $img = new Photo($img_str, "image/png"); - if($img->is_valid()) { + $img = new Photo($img_str, 'image/png'); + if ($img->is_valid()) { $img->scaleImage(10); $img_str = $img->imageString(); } - } else if (($mime != "image/jpeg") AND !$direct_cache AND ($cachefile == "")) { + } elseif ($mime != 'image/jpeg' AND !$direct_cache AND $cachefile == '') { $image = @imagecreatefromstring($img_str); - if($image === FALSE) die(); + if ($image === FALSE) { + die(); + } q("INSERT INTO `photo` ( `uid`, `contact-id`, `guid`, `resource-id`, `created`, `edited`, `filename`, `album`, `height`, `width`, `desc`, `data`, `scale`, `profile`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid` ) @@ -177,7 +184,7 @@ function proxy_init() { 0, 0, get_guid(), dbesc($urlhash), dbesc(datetime_convert()), dbesc(datetime_convert()), - dbesc(basename(dbesc($_REQUEST["url"]))), + dbesc(basename(dbesc($_REQUEST['url']))), dbesc(''), intval(imagesy($image)), intval(imagesx($image)), @@ -190,9 +197,8 @@ function proxy_init() { } else { $img = new Photo($img_str, $mime); - if($img->is_valid()) { - if (!$direct_cache AND ($cachefile == "")) - $img->store(0, 0, $urlhash, $_REQUEST['url'], '', 100); + if ($img->is_valid() AND !$direct_cache AND ($cachefile == '')) { + $img->store(0, 0, $urlhash, $_REQUEST['url'], '', 100); } } } @@ -200,9 +206,9 @@ function proxy_init() { $img_str_orig = $img_str; // reduce quality - if it isn't a GIF - if ($mime != "image/gif") { + if ($mime != 'image/gif') { $img = new Photo($img_str, $mime); - if($img->is_valid()) { + if ($img->is_valid()) { $img->scaleImage($size); $img_str = $img->imageString(); } @@ -212,20 +218,22 @@ function proxy_init() { // advantage: real file access is really fast // Otherwise write in cachefile if ($valid AND $direct_cache) { - file_put_contents($basepath."/proxy/".proxy_url($_REQUEST['url'], true), $img_str_orig); - if ($sizetype <> '') - file_put_contents($basepath."/proxy/".proxy_url($_REQUEST['url'], true).$sizetype, $img_str); - } elseif ($cachefile != '') + file_put_contents($basepath . '/proxy/' . proxy_url($_REQUEST['url'], true), $img_str_orig); + if ($sizetype != '') { + file_put_contents($basepath . '/proxy/' . proxy_url($_REQUEST['url'], true) . $sizetype, $img_str); + } + } elseif ($cachefile != '') { file_put_contents($cachefile, $img_str_orig); + } - header("Content-type: $mime"); + header('Content-type: ' . $mime); // Only output the cache headers when the file is valid if ($valid) { - header("Last-Modified: " . gmdate("D, d M Y H:i:s", time()) . " GMT"); - header('Etag: "'.md5($img_str).'"'); - header("Expires: " . gmdate("D, d M Y H:i:s", time() + (31536000)) . " GMT"); - header("Cache-Control: max-age=31536000"); + header('Last-Modified: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT'); + header('Etag: "' . md5($img_str) . '"'); + header('Expires: ' . gmdate('D, d M Y H:i:s', time() + (31536000)) . ' GMT'); + header('Cache-Control: max-age=31536000'); } echo $img_str; @@ -255,7 +263,7 @@ function proxy_url($url, $writemode = false, $size = '') { // Only continue if it isn't a local image and the isn't deactivated if (proxy_is_local_image($url)) { - $url = str_replace(normalise_link($a->get_baseurl()) . '/', $a->get_baseurl() . '/', $url); + $url = str_replace(normalise_link(App::get_baseurl()) . '/', App::get_baseurl() . '/', $url); return $url; } @@ -272,24 +280,15 @@ function proxy_url($url, $writemode = false, $size = '') { $shortpath = hash('md5', $url); $longpath = substr($shortpath, 0, 2); - if (is_dir($basepath) and $writemode) { - if (!is_dir($basepath . '/' . $longpath)) { - mkdir($basepath . '/' . $longpath); - chmod($basepath . '/' . $longpath, 0777); - } + if (is_dir($basepath) AND $writemode AND !is_dir($basepath . '/' . $longpath)) { + mkdir($basepath . '/' . $longpath); + chmod($basepath . '/' . $longpath, 0777); } $longpath .= '/' . strtr(base64_encode($url), '+/', '-_'); - // Checking for valid extensions. Only add them if they are safe - $pos = strrpos($url, '.'); - if ($pos) { - $extension = strtolower(substr($url, $pos + 1)); - $pos = strpos($extension, '?'); - if ($pos) { - $extension = substr($extension, 0, $pos); - } - } + // Extract the URL extension + $extension = pathinfo(parse_url($url, PHP_URL_PATH), PATHINFO_EXTENSION); $extensions = array('jpg', 'jpeg', 'gif', 'png'); if (in_array($extension, $extensions)) { @@ -297,7 +296,7 @@ function proxy_url($url, $writemode = false, $size = '') { $longpath .= '.' . $extension; } - $proxypath = $a->get_baseurl() . '/proxy/' . $longpath; + $proxypath = App::get_baseurl() . '/proxy/' . $longpath; if ($size != '') { $size = ':' . $size; @@ -308,7 +307,7 @@ function proxy_url($url, $writemode = false, $size = '') { if ((strlen($proxypath) > 250) AND $writemode) { return $shortpath; } elseif (strlen($proxypath) > 250) { - return $a->get_baseurl() . '/proxy/' . $shortpath . '?url=' . urlencode($url); + return App::get_baseurl() . '/proxy/' . $shortpath . '?url=' . urlencode($url); } elseif ($writemode) { return $longpath; } else { @@ -321,52 +320,58 @@ function proxy_url($url, $writemode = false, $size = '') { * @return boolean */ function proxy_is_local_image($url) { - if ($url[0] == '/') return true; + if ($url[0] == '/') { + return true; + } - if (strtolower(substr($url, 0, 5)) == "data:") return true; + if (strtolower(substr($url, 0, 5)) == 'data:') { + return true; + } // links normalised - bug #431 - $baseurl = normalise_link(get_app()->get_baseurl()); + $baseurl = normalise_link(App::get_baseurl()); $url = normalise_link($url); return (substr($url, 0, strlen($baseurl)) == $baseurl); } -function proxy_parse_query($var) { - /** - * Use this function to parse out the query array element from - * the output of parse_url(). - */ - $var = parse_url($var, PHP_URL_QUERY); - $var = html_entity_decode($var); - $var = explode('&', $var); - $arr = array(); +/** + * @brief Return the array of query string parameters from a URL + * + * @param string $url + * @return array Associative array of query string parameters + */ +function proxy_parse_query($url) { + $query = parse_url($url, PHP_URL_QUERY); + $query = html_entity_decode($query); + $query_list = explode('&', $query); + $arr = array(); - foreach($var as $val) { - $x = explode('=', $val); - $arr[$x[0]] = $x[1]; - } + foreach ($query_list as $key_value) { + $key_value_list = explode('=', $key_value); + $arr[$key_value_list[0]] = $key_value_list[1]; + } - unset($val, $x, $var); - return $arr; + unset($url, $query_list, $url); + return $arr; } function proxy_img_cb($matches) { - // if the picture seems to be from another picture cache then take the original source $queryvar = proxy_parse_query($matches[2]); - if (($queryvar['url'] != "") AND (substr($queryvar['url'], 0, 4) == "http")) + if (($queryvar['url'] != '') AND (substr($queryvar['url'], 0, 4) == 'http')) { $matches[2] = urldecode($queryvar['url']); + } // following line changed per bug #431 - if (proxy_is_local_image($matches[2])) + if (proxy_is_local_image($matches[2])) { return $matches[1] . $matches[2] . $matches[3]; + } - return $matches[1].proxy_url(htmlspecialchars_decode($matches[2])).$matches[3]; + return $matches[1] . proxy_url(htmlspecialchars_decode($matches[2])) . $matches[3]; } function proxy_parse_html($html) { - $a = get_app(); - $html = str_replace(normalise_link($a->get_baseurl())."/", $a->get_baseurl()."/", $html); + $html = str_replace(normalise_link(App::get_baseurl()) . '/', App::get_baseurl() . '/', $html); - return preg_replace_callback("/(]*src *= *[\"'])([^\"']+)([\"'][^>]*>)/siU", "proxy_img_cb", $html); + return preg_replace_callback('/(]*src *= *["\'])([^"\']+)(["\'][^>]*>)/siU', 'proxy_img_cb', $html); } diff --git a/mod/pubsub.php b/mod/pubsub.php index ddda7ec228..ea7e1000ba 100644 --- a/mod/pubsub.php +++ b/mod/pubsub.php @@ -47,7 +47,7 @@ function pubsub_init(&$a) { $r = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `account_expired` = 0 AND `account_removed` = 0 LIMIT 1", dbesc($nick) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { logger('pubsub: local account not found: ' . $nick); hub_return(false, ''); } @@ -62,7 +62,7 @@ function pubsub_init(&$a) { intval($contact_id), intval($owner['uid']) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { logger('pubsub: contact '.$contact_id.' not found.'); hub_return(false, ''); } @@ -117,8 +117,9 @@ function pubsub_post(&$a) { $r = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `account_expired` = 0 AND `account_removed` = 0 LIMIT 1", dbesc($nick) ); - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { hub_post_return(); + } $importer = $r[0]; @@ -131,7 +132,7 @@ function pubsub_post(&$a) { dbesc(NETWORK_FEED) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { logger('pubsub: no contact record for "'.$nick.' ('.$contact_id.')" - ignored. '.$xml); hub_post_return(); } diff --git a/mod/qsearch.php b/mod/qsearch.php index a440ea708f..b976e1a585 100644 --- a/mod/qsearch.php +++ b/mod/qsearch.php @@ -2,8 +2,9 @@ function qsearch_init(&$a) { - if(! local_user()) + if (! local_user()) { killme(); + } $limit = (get_config('system','qsearch_limit') ? intval(get_config('system','qsearch_limit')) : 100); diff --git a/mod/randprof.php b/mod/randprof.php index 6713a81d9e..b208eeef29 100644 --- a/mod/randprof.php +++ b/mod/randprof.php @@ -3,8 +3,12 @@ function randprof_init(&$a) { require_once('include/Contact.php'); + $x = random_profile(); - if($x) + + if ($x) { goaway(zrl($x)); - goaway($a->get_baseurl() . '/profile'); + } + + goaway(App::get_baseurl() . '/profile'); } diff --git a/mod/receive.php b/mod/receive.php index dd4e61ae4f..87fd793635 100644 --- a/mod/receive.php +++ b/mod/receive.php @@ -34,8 +34,9 @@ function receive_post(&$a) { $r = q("SELECT * FROM `user` WHERE `guid` = '%s' AND `account_expired` = 0 AND `account_removed` = 0 LIMIT 1", dbesc($guid) ); - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { http_status_exit(500); + } $importer = $r[0]; } @@ -53,7 +54,7 @@ function receive_post(&$a) { logger('mod-diaspora: message is okay', LOGGER_DEBUG); - $msg = diaspora::decode($importer,$xml); + $msg = Diaspora::decode($importer,$xml); logger('mod-diaspora: decoded', LOGGER_DEBUG); @@ -66,9 +67,9 @@ function receive_post(&$a) { $ret = 0; if($public) { - diaspora::dispatch_public($msg); + Diaspora::dispatch_public($msg); } else { - $ret = diaspora::dispatch($importer,$msg); + $ret = Diaspora::dispatch($importer,$msg); } http_status_exit(($ret) ? $ret : 200); diff --git a/mod/redir.php b/mod/redir.php index 5dc5ad3724..be5e0c5933 100644 --- a/mod/redir.php +++ b/mod/redir.php @@ -63,12 +63,14 @@ function redir_init(&$a) { . '&dfrn_version=' . DFRN_PROTOCOL_VERSION . '&type=profile&sec=' . $sec . $dest . $quiet ); } - if(local_user()) - $handle = $a->user['nickname'] . '@' . substr($a->get_baseurl(),strpos($a->get_baseurl(),'://')+3); - if(remote_user()) + if (local_user()) { + $handle = $a->user['nickname'] . '@' . substr(App::get_baseurl(),strpos(App::get_baseurl(),'://')+3); + } + if (remote_user()) { $handle = $_SESSION['handle']; + } - if($url) { + if ($url) { $url = str_replace('{zid}','&zid=' . $handle,$url); goaway($url); } diff --git a/mod/register.php b/mod/register.php index f0348ef4e5..36ca189484 100644 --- a/mod/register.php +++ b/mod/register.php @@ -64,7 +64,7 @@ function register_post(&$a) { $user = $result['user']; if($netpublish && $a->config['register_policy'] != REGISTER_APPROVE) { - $url = $a->get_baseurl() . '/profile/' . $user['nickname']; + $url = App::get_baseurl() . '/profile/' . $user['nickname']; proc_run(PRIORITY_LOW, "include/directory.php", $url); } @@ -85,7 +85,7 @@ function register_post(&$a) { $res = send_register_open_eml( $user['email'], $a->config['sitename'], - $a->get_baseurl(), + App::get_baseurl(), $user['username'], $result['password']); @@ -142,9 +142,9 @@ function register_post(&$a) { 'source_name' => $user['username'], 'source_mail' => $user['email'], 'source_nick' => $user['nickname'], - 'source_link' => $a->get_baseurl()."/admin/users/", - 'link' => $a->get_baseurl()."/admin/users/", - 'source_photo' => $a->get_baseurl() . "/photo/avatar/".$user['uid'].".jpg", + 'source_link' => App::get_baseurl()."/admin/users/", + 'link' => App::get_baseurl()."/admin/users/", + 'source_photo' => App::get_baseurl() . "/photo/avatar/".$user['uid'].".jpg", 'to_email' => $admin['email'], 'uid' => $admin['uid'], 'language' => ($admin['language']?$admin['language']:'en'), diff --git a/mod/regmod.php b/mod/regmod.php index 0120017b00..34d29a77ce 100644 --- a/mod/regmod.php +++ b/mod/regmod.php @@ -35,9 +35,10 @@ function user_allow($hash) { intval($user[0]['uid']) ); if (dbm::is_result($r) && $r[0]['net-publish']) { - $url = $a->get_baseurl() . '/profile/' . $user[0]['nickname']; - if($url && strlen(get_config('system','directory'))) + $url = App::get_baseurl() . '/profile/' . $user[0]['nickname']; + if ($url && strlen(get_config('system','directory'))) { proc_run(PRIORITY_LOW, "include/directory.php", $url); + } } push_lang($register[0]['language']); @@ -45,7 +46,7 @@ function user_allow($hash) { send_register_open_eml( $user[0]['email'], $a->config['sitename'], - $a->get_baseurl(), + App::get_baseurl(), $user[0]['username'], $register[0]['password']); @@ -100,34 +101,35 @@ function regmod_content(&$a) { $_SESSION['return_url'] = $a->cmd; - if(! local_user()) { + if (! local_user()) { info( t('Please login.') . EOL); $o .= '

    ' . login(($a->config['register_policy'] == REGISTER_CLOSED) ? 0 : 1); return $o; } - if((!is_site_admin()) || (x($_SESSION,'submanage') && intval($_SESSION['submanage']))) { + if ((!is_site_admin()) || (x($_SESSION,'submanage') && intval($_SESSION['submanage']))) { notice( t('Permission denied.') . EOL); return ''; } - if($a->argc != 3) + if ($a->argc != 3) { killme(); + } $cmd = $a->argv[1]; $hash = $a->argv[2]; - if($cmd === 'deny') { + if ($cmd === 'deny') { user_deny($hash); - goaway($a->get_baseurl()."/admin/users/"); + goaway(App::get_baseurl()."/admin/users/"); killme(); } - if($cmd === 'allow') { + if ($cmd === 'allow') { user_allow($hash); - goaway($a->get_baseurl()."/admin/users/"); + goaway(App::get_baseurl()."/admin/users/"); killme(); } } diff --git a/mod/removeme.php b/mod/removeme.php index 904606fd57..6920cbc187 100644 --- a/mod/removeme.php +++ b/mod/removeme.php @@ -2,24 +2,29 @@ function removeme_post(&$a) { - if(! local_user()) + if (! local_user()) { return; + } - if(x($_SESSION,'submanage') && intval($_SESSION['submanage'])) + if (x($_SESSION,'submanage') && intval($_SESSION['submanage'])) { return; + } - if((! x($_POST,'qxz_password')) || (! strlen(trim($_POST['qxz_password'])))) + if ((! x($_POST,'qxz_password')) || (! strlen(trim($_POST['qxz_password'])))) { return; + } - if((! x($_POST,'verify')) || (! strlen(trim($_POST['verify'])))) + if ((! x($_POST,'verify')) || (! strlen(trim($_POST['verify'])))) { return; + } - if($_POST['verify'] !== $_SESSION['remove_account_verify']) + if ($_POST['verify'] !== $_SESSION['remove_account_verify']) { return; + } $encrypted = hash('whirlpool',trim($_POST['qxz_password'])); - if((strlen($a->user['password'])) && ($encrypted === $a->user['password'])) { + if ((strlen($a->user['password'])) && ($encrypted === $a->user['password'])) { require_once('include/Contact.php'); user_remove($a->user['uid']); // NOTREACHED @@ -29,19 +34,20 @@ function removeme_post(&$a) { function removeme_content(&$a) { - if(! local_user()) + if (! local_user()) { goaway(z_root()); + } $hash = random_string(); - require_once("mod/settings.php"); - settings_init($a); + require_once("mod/settings.php"); + settings_init($a); $_SESSION['remove_account_verify'] = $hash; $tpl = get_markup_template('removeme.tpl'); $o .= replace_macros($tpl, array( - '$basedir' => $a->get_baseurl(), + '$basedir' => App::get_baseurl(), '$hash' => $hash, '$title' => t('Remove My Account'), '$desc' => t('This will completely remove your account. Once this has been done it is not recoverable.'), diff --git a/mod/repair_ostatus.php b/mod/repair_ostatus.php index 2b1224f423..ba8a071756 100755 --- a/mod/repair_ostatus.php +++ b/mod/repair_ostatus.php @@ -5,7 +5,7 @@ require_once('include/follow.php'); function repair_ostatus_content(&$a) { - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL); goaway($_SESSION['return_url']); // NOTREACHED @@ -51,7 +51,7 @@ function repair_ostatus_content(&$a) { $result = new_contact($uid,$r[0]["url"],true); - $a->page['htmlhead'] = ''; + $a->page['htmlhead'] = ''; return $o; } diff --git a/mod/rsd_xml.php b/mod/rsd_xml.php index f4984f0f0f..6257adc1ba 100644 --- a/mod/rsd_xml.php +++ b/mod/rsd_xml.php @@ -10,7 +10,7 @@ function rsd_xml_content(&$a) { Friendica http://friendica.com/ - + http://status.net/wiki/TwitterCompatibleAPI false diff --git a/mod/salmon.php b/mod/salmon.php index 78cdc09328..ff5856a946 100644 --- a/mod/salmon.php +++ b/mod/salmon.php @@ -31,8 +31,9 @@ function salmon_post(&$a) { $r = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `account_expired` = 0 AND `account_removed` = 0 LIMIT 1", dbesc($nick) ); - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { http_status_exit(500); + } $importer = $r[0]; @@ -150,7 +151,7 @@ function salmon_post(&$a) { dbesc(normalise_link($author_link)), intval($importer['uid']) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { logger('mod-salmon: Author unknown to us.'); if(get_pconfig($importer['uid'],'system','ostatus_autofriend')) { $result = new_contact($importer['uid'],$author_link); diff --git a/mod/search.php b/mod/search.php index d36cc8fcb7..3de77a85c4 100644 --- a/mod/search.php +++ b/mod/search.php @@ -17,7 +17,7 @@ function search_saved_searches() { if (dbm::is_result($r)) { $saved = array(); - foreach($r as $rr) { + foreach ($r as $rr) { $saved[] = array( 'id' => $rr['id'], 'term' => $rr['term'], @@ -53,7 +53,7 @@ function search_init(&$a) { intval(local_user()), dbesc($search) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { q("INSERT INTO `search` (`uid`,`term`) VALUES ( %d, '%s')", intval(local_user()), dbesc($search) @@ -219,7 +219,7 @@ function search_content(&$a) { intval($a->pager['start']), intval($a->pager['itemspage'])); } - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { info( t('No results.') . EOL); return $o; } diff --git a/mod/settings.php b/mod/settings.php index a9521db221..298b5025cd 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -18,7 +18,7 @@ function get_theme_config_file($theme){ function settings_init(&$a) { - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL ); return; } @@ -118,31 +118,33 @@ function settings_init(&$a) { function settings_post(&$a) { - if(! local_user()) + if (! local_user()) { return; + } - if(x($_SESSION,'submanage') && intval($_SESSION['submanage'])) + if (x($_SESSION,'submanage') && intval($_SESSION['submanage'])) { return; + } - if(count($a->user) && x($a->user,'uid') && $a->user['uid'] != local_user()) { + if (count($a->user) && x($a->user,'uid') && $a->user['uid'] != local_user()) { notice( t('Permission denied.') . EOL); return; } $old_page_flags = $a->user['page-flags']; - if(($a->argc > 1) && ($a->argv[1] === 'oauth') && x($_POST,'remove')){ + if (($a->argc > 1) && ($a->argv[1] === 'oauth') && x($_POST,'remove')) { check_form_security_token_redirectOnErr('/settings/oauth', 'settings_oauth'); $key = $_POST['remove']; q("DELETE FROM tokens WHERE id='%s' AND uid=%d", dbesc($key), local_user()); - goaway($a->get_baseurl(true)."/settings/oauth/"); + goaway(App::get_baseurl(true)."/settings/oauth/"); return; } - if(($a->argc > 2) && ($a->argv[1] === 'oauth') && ($a->argv[2] === 'edit'||($a->argv[2] === 'add')) && x($_POST,'submit')) { + if (($a->argc > 2) && ($a->argv[1] === 'oauth') && ($a->argv[2] === 'edit'||($a->argv[2] === 'add')) && x($_POST,'submit')) { check_form_security_token_redirectOnErr('/settings/oauth', 'settings_oauth'); @@ -183,7 +185,7 @@ function settings_post(&$a) { local_user()); } } - goaway($a->get_baseurl(true)."/settings/oauth/"); + goaway(App::get_baseurl(true)."/settings/oauth/"); return; } @@ -225,7 +227,7 @@ function settings_post(&$a) { $r = q("SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1", intval(local_user()) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { q("INSERT INTO `mailacct` (`uid`) VALUES (%d)", intval(local_user()) ); @@ -625,11 +627,12 @@ function settings_post(&$a) { ); } - if(($old_visibility != $net_publish) || ($page_flags != $old_page_flags)) { + if (($old_visibility != $net_publish) || ($page_flags != $old_page_flags)) { // Update global directory in background $url = $_SESSION['my_url']; - if($url && strlen(get_config('system','directory'))) + if ($url && strlen(get_config('system','directory'))) { proc_run(PRIORITY_LOW, "include/directory.php", $url); + } } require_once('include/profile_update.php'); @@ -639,10 +642,10 @@ function settings_post(&$a) { update_gcontact_for_user(local_user()); //$_SESSION['theme'] = $theme; - if($email_changed && $a->config['register_policy'] == REGISTER_VERIFY) { + if ($email_changed && $a->config['register_policy'] == REGISTER_VERIFY) { - // FIXME - set to un-verified, blocked and redirect to logout - // Why? Are we verifying people or email addresses? + /// @TODO set to un-verified, blocked and redirect to logout + /// @TODO Why? Are we verifying people or email addresses? } @@ -656,21 +659,21 @@ function settings_content(&$a) { $o = ''; nav_set_selected('settings'); - if(! local_user()) { + if (! local_user()) { #notice( t('Permission denied.') . EOL ); return; } - if(x($_SESSION,'submanage') && intval($_SESSION['submanage'])) { + if (x($_SESSION,'submanage') && intval($_SESSION['submanage'])) { notice( t('Permission denied.') . EOL ); return; } - if(($a->argc > 1) && ($a->argv[1] === 'oauth')) { + if (($a->argc > 1) && ($a->argv[1] === 'oauth')) { - if(($a->argc > 2) && ($a->argv[2] === 'add')) { + if (($a->argc > 2) && ($a->argv[2] === 'add')) { $tpl = get_markup_template("settings_oauth_edit.tpl"); $o .= replace_macros($tpl, array( '$form_security_token' => get_form_security_token("settings_oauth"), @@ -686,7 +689,7 @@ function settings_content(&$a) { return $o; } - if(($a->argc > 3) && ($a->argv[2] === 'edit')) { + if (($a->argc > 3) && ($a->argv[2] === 'edit')) { $r = q("SELECT * FROM clients WHERE client_id='%s' AND uid=%d", dbesc($a->argv[3]), local_user()); @@ -718,11 +721,11 @@ function settings_content(&$a) { $r = q("DELETE FROM clients WHERE client_id='%s' AND uid=%d", dbesc($a->argv[3]), local_user()); - goaway($a->get_baseurl(true)."/settings/oauth/"); + goaway(App::get_baseurl(true)."/settings/oauth/"); return; } - + /// @TODO validate result with dbm::is_result() $r = q("SELECT clients.*, tokens.id as oauth_token, (clients.uid=%d) AS my FROM clients LEFT JOIN tokens ON clients.client_id=tokens.client_id @@ -734,7 +737,7 @@ function settings_content(&$a) { $tpl = get_markup_template("settings_oauth.tpl"); $o .= replace_macros($tpl, array( '$form_security_token' => get_form_security_token("settings_oauth"), - '$baseurl' => $a->get_baseurl(true), + '$baseurl' => App::get_baseurl(true), '$title' => t('Connected Apps'), '$add' => t('Add application'), '$edit' => t('Edit'), @@ -748,12 +751,13 @@ function settings_content(&$a) { } - if(($a->argc > 1) && ($a->argv[1] === 'addon')) { + if (($a->argc > 1) && ($a->argv[1] === 'addon')) { $settings_addons = ""; $r = q("SELECT * FROM `hook` WHERE `hook` = 'plugin_settings' "); - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { $settings_addons = t('No Plugin settings configured'); + } call_hooks('plugin_settings', $settings_addons); @@ -767,14 +771,14 @@ function settings_content(&$a) { return $o; } - if(($a->argc > 1) && ($a->argv[1] === 'features')) { + if (($a->argc > 1) && ($a->argv[1] === 'features')) { $arr = array(); $features = get_features(); - foreach($features as $fname => $fdata) { + foreach ($features as $fname => $fdata) { $arr[$fname] = array(); $arr[$fname][0] = $fdata[0]; - foreach(array_slice($fdata,1) as $f) { + foreach (array_slice($fdata,1) as $f) { $arr[$fname][1][] = array('feature_' .$f[0],$f[1],((intval(feature_enabled(local_user(),$f[0]))) ? "1" : ''),$f[2],array(t('Off'),t('On'))); } } @@ -783,14 +787,14 @@ function settings_content(&$a) { $tpl = get_markup_template("settings_features.tpl"); $o .= replace_macros($tpl, array( '$form_security_token' => get_form_security_token("settings_features"), - '$title' => t('Additional Features'), - '$features' => $arr, - '$submit' => t('Save Settings'), + '$title' => t('Additional Features'), + '$features' => $arr, + '$submit' => t('Save Settings'), )); return $o; } - if(($a->argc > 1) && ($a->argv[1] === 'connectors')) { + if (($a->argc > 1) && ($a->argv[1] === 'connectors')) { $settings_connectors = ''; $settings_connectors .= '

    '. t('General Social Media Settings').'

    '; @@ -821,8 +825,10 @@ function settings_content(&$a) { $settings_connectors .= mini_group_select(local_user(), $default_group, t("Default group for OStatus contacts")); - if ($legacy_contact != "") - $a->page['htmlhead'] = ''; + /// @TODO Found to much different usage to test empty/non-empty strings (e.g. empty(), trim() == '' ) which is wanted? + if ($legacy_contact != "") { + $a->page['htmlhead'] = ''; + } $settings_connectors .= '
    '; $settings_connectors .= ''; @@ -830,7 +836,7 @@ function settings_content(&$a) { $settings_connectors .= ''.t('If you enter your old GNU Social/Statusnet account name here (in the format user@domain.tld), your contacts will be added automatically. The field will be emptied when done.').''; $settings_connectors .= '
    '; - $settings_connectors .= '

    '.t("Repair OStatus subscriptions").'

    '; + $settings_connectors .= '

    '.t("Repair OStatus subscriptions").'

    '; $settings_connectors .= '
    '; @@ -854,8 +860,7 @@ function settings_content(&$a) { $r = q("SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1", local_user() ); - } - else { + } else { $r = null; } @@ -872,10 +877,9 @@ function settings_content(&$a) { $tpl = get_markup_template("settings_connectors.tpl"); - if(! service_class_allows(local_user(),'email_connect')) { + if (! service_class_allows(local_user(),'email_connect')) { $mail_disabled_message = upgrade_bool_message(); - } - else { + } else { $mail_disabled_message = (($mail_disabled) ? t('Email access is disabled on this site.') : ''); } @@ -913,38 +917,42 @@ function settings_content(&$a) { /* * DISPLAY SETTINGS */ - if(($a->argc > 1) && ($a->argv[1] === 'display')) { + if (($a->argc > 1) && ($a->argv[1] === 'display')) { $default_theme = get_config('system','theme'); - if(! $default_theme) + if (! $default_theme) { $default_theme = 'default'; + } $default_mobile_theme = get_config('system','mobile-theme'); - if(! $mobile_default_theme) + if (! $mobile_default_theme) { $mobile_default_theme = 'none'; + } $allowed_themes_str = get_config('system','allowed_themes'); $allowed_themes_raw = explode(',',$allowed_themes_str); $allowed_themes = array(); - if(count($allowed_themes_raw)) - foreach($allowed_themes_raw as $x) - if(strlen(trim($x)) && is_dir("view/theme/$x")) + if (count($allowed_themes_raw)) { + foreach ($allowed_themes_raw as $x) { + if (strlen(trim($x)) && is_dir("view/theme/$x")) { $allowed_themes[] = trim($x); + } + } + } $themes = array(); $mobile_themes = array("---" => t('No special theme for mobile devices')); $files = glob('view/theme/*'); /* */ - if($allowed_themes) { - foreach($allowed_themes as $th) { + if ($allowed_themes) { + foreach ($allowed_themes as $th) { $f = $th; $is_experimental = file_exists('view/theme/' . $th . '/experimental'); $unsupported = file_exists('view/theme/' . $th . '/unsupported'); $is_mobile = file_exists('view/theme/' . $th . '/mobile'); if (!$is_experimental or ($is_experimental && (get_config('experimentals','exp_themes')==1 or get_config('experimentals','exp_themes')===false))){ $theme_name = (($is_experimental) ? sprintf("%s - \x28Experimental\x29", $f) : $f); - if($is_mobile) { + if ($is_mobile) { $mobile_themes[$f]=$theme_name; - } - else { + } else { $themes[$f]=$theme_name; } } @@ -956,8 +964,9 @@ function settings_content(&$a) { $nowarn_insecure = intval(get_pconfig(local_user(), 'system', 'nowarn_insecure')); $browser_update = intval(get_pconfig(local_user(), 'system','update_interval')); - if (intval($browser_update) != -1) + if (intval($browser_update) != -1) { $browser_update = (($browser_update == 0) ? 40 : $browser_update / 1000); // default if not set: 40 seconds + } $itemspage_network = intval(get_pconfig(local_user(), 'system','itemspage_network')); $itemspage_network = (($itemspage_network > 0 && $itemspage_network < 101) ? $itemspage_network : 40); // default if not set: 40 items @@ -994,7 +1003,7 @@ function settings_content(&$a) { '$ptitle' => t('Display Settings'), '$form_security_token' => get_form_security_token("settings_display"), '$submit' => t('Save Settings'), - '$baseurl' => $a->get_baseurl(true), + '$baseurl' => App::get_baseurl(true), '$uid' => local_user(), '$theme' => array('theme', t('Display Theme:'), $theme_selected, '', $themes, true), @@ -1036,8 +1045,9 @@ function settings_content(&$a) { $p = q("SELECT * FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1", intval(local_user()) ); - if(count($p)) + if (count($p)) { $profile = $p[0]; + } $username = $a->user['username']; $email = $a->user['email']; @@ -1084,8 +1094,9 @@ function settings_content(&$a) { // nowarn_insecure - if(! strlen($a->user['timezone'])) + if (! strlen($a->user['timezone'])) { $timezone = date_default_timezone_get(); + } // Set the account type to "Community" when the page is a community page but the account type doesn't fit // This is only happening on the first visit after the update @@ -1146,32 +1157,28 @@ function settings_content(&$a) { $noid = get_config('system','no_openid'); - if($noid) { + if ($noid) { $openid_field = false; - } - else { + } else { $openid_field = array('openid_url', t('OpenID:'),$openid, t("\x28Optional\x29 Allow this OpenID to login to this account."), "", "", "url"); } - $opt_tpl = get_markup_template("field_yesno.tpl"); if(get_config('system','publish_all')) { $profile_in_dir = ''; - } - else { + } else { $profile_in_dir = replace_macros($opt_tpl,array( '$field' => array('profile_in_directory', t('Publish your default profile in your local site directory?'), $profile['publish'], '', array(t('No'),t('Yes'))), )); } - if(strlen(get_config('system','directory'))) { + if (strlen(get_config('system','directory'))) { $profile_in_net_dir = replace_macros($opt_tpl,array( '$field' => array('profile_in_netdirectory', t('Publish your default profile in the global social directory?'), $profile['net-publish'], '', array(t('No'),t('Yes'))), )); - } - else + } else { $profile_in_net_dir = ''; - + } $hide_friends = replace_macros($opt_tpl,array( '$field' => array('hide-friends', t('Hide your contact/friend list from viewers of your default profile?'), $profile['hide-friends'], '', array(t('No'),t('Yes'))), @@ -1187,19 +1194,16 @@ function settings_content(&$a) { )); - $blocktags = replace_macros($opt_tpl,array( '$field' => array('blocktags', t('Allow friends to tag your posts?'), (intval($a->user['blocktags']) ? '0' : '1'), '', array(t('No'),t('Yes'))), )); - $suggestme = replace_macros($opt_tpl,array( '$field' => array('suggestme', t('Allow us to suggest you as a potential friend to new members?'), $suggestme, '', array(t('No'),t('Yes'))), )); - $unkmail = replace_macros($opt_tpl,array( '$field' => array('unkmail', t('Permit unknown people to send you private mail?'), $unkmail, '', array(t('No'),t('Yes'))), @@ -1208,16 +1212,16 @@ function settings_content(&$a) { $invisible = (((! $profile['publish']) && (! $profile['net-publish'])) ? true : false); - if($invisible) + if ($invisible) { info( t('Profile is not published.') . EOL ); - + } //$subdir = ((strlen($a->get_path())) ? '
    ' . t('or') . ' ' . 'profile/' . $nickname : ''); $tpl_addr = get_markup_template("settings_nick_set.tpl"); $prof_addr = replace_macros($tpl_addr,array( - '$desc' => sprintf(t("Your Identity Address is '%s' or '%s'."), $nickname.'@'.$a->get_hostname().$a->get_path(), $a->get_baseurl().'/profile/'.$nickname), + '$desc' => sprintf(t("Your Identity Address is '%s' or '%s'."), $nickname.'@'.$a->get_hostname().$a->get_path(), App::get_baseurl().'/profile/'.$nickname), '$basepath' => $a->get_hostname() )); @@ -1237,32 +1241,35 @@ function settings_content(&$a) { require_once('include/group.php'); $group_select = mini_group_select(local_user(),$a->user['def_gid']); - // Private/public post links for the non-JS ACL form $private_post = 1; - if($_REQUEST['public']) + if ($_REQUEST['public']) { $private_post = 0; + } $query_str = $a->query_string; - if(strpos($query_str, 'public=1') !== false) + if (strpos($query_str, 'public=1') !== false) { $query_str = str_replace(array('?public=1', '&public=1'), array('', ''), $query_str); + } // I think $a->query_string may never have ? in it, but I could be wrong // It looks like it's from the index.php?q=[etc] rewrite that the web // server does, which converts any ? to &, e.g. suggest&ignore=61 for suggest?ignore=61 - if(strpos($query_str, '?') === false) + if (strpos($query_str, '?') === false) { $public_post_link = '?public=1'; - else + } else { $public_post_link = '&public=1'; + } /* Installed langs */ $lang_choices = get_available_languages(); + /// @TODO Fix indending (or so) $o .= replace_macros($stpl, array( '$ptitle' => t('Account Settings'), '$submit' => t('Save Settings'), - '$baseurl' => $a->get_baseurl(true), + '$baseurl' => App::get_baseurl(true), '$uid' => local_user(), '$form_security_token' => get_form_security_token("settings"), '$nickname_block' => $prof_addr, diff --git a/mod/starred.php b/mod/starred.php index 27f924e44b..84baa82cea 100644 --- a/mod/starred.php +++ b/mod/starred.php @@ -7,24 +7,29 @@ function starred_init(&$a) { $starred = 0; - if(! local_user()) + if (! local_user()) { killme(); - if($a->argc > 1) + } + if ($a->argc > 1) { $message_id = intval($a->argv[1]); - if(! $message_id) + } + if (! $message_id) { killme(); + } - $r = q("SELECT starred FROM item WHERE uid = %d AND id = %d LIMIT 1", + $r = q("SELECT `starred` FROM `item` WHERE `uid` = %d AND `id` = %d LIMIT 1", intval(local_user()), intval($message_id) ); - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { killme(); + } - if(! intval($r[0]['starred'])) + if (! intval($r[0]['starred'])) { $starred = 1; + } - $r = q("UPDATE item SET starred = %d WHERE uid = %d and id = %d", + $r = q("UPDATE `item` SET `starred` = %d WHERE `uid` = %d AND `id` = %d", intval($starred), intval(local_user()), intval($message_id) @@ -34,12 +39,15 @@ function starred_init(&$a) { // See if we've been passed a return path to redirect to $return_path = ((x($_REQUEST,'return')) ? $_REQUEST['return'] : ''); - if($return_path) { + if ($return_path) { $rand = '_=' . time(); - if(strpos($return_path, '?')) $rand = "&$rand"; - else $rand = "?$rand"; + if (strpos($return_path, '?')) { + $rand = "&$rand"; + } else { + $rand = "?$rand"; + } - goaway($a->get_baseurl() . "/" . $return_path . $rand); + goaway(App::get_baseurl() . "/" . $return_path . $rand); } // the json doesn't really matter, it will either be 0 or 1 diff --git a/mod/subthread.php b/mod/subthread.php index b15b954742..c154187a69 100644 --- a/mod/subthread.php +++ b/mod/subthread.php @@ -41,10 +41,12 @@ function subthread_content(&$a) { intval($item['contact-id']), intval($item['uid']) ); - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { return; - if(! $r[0]['self']) + } + if (! $r[0]['self']) { $remote_owner = $r[0]; + } } // this represents the post owner on this system. @@ -56,18 +58,18 @@ function subthread_content(&$a) { if (dbm::is_result($r)) $owner = $r[0]; - if(! $owner) { + if (! $owner) { logger('like: no owner'); return; } - if(! $remote_owner) + if (! $remote_owner) $remote_owner = $owner; // This represents the person posting - if((local_user()) && (local_user() == $owner_uid)) { + if ((local_user()) && (local_user() == $owner_uid)) { $contact = $owner; } else { @@ -78,7 +80,7 @@ function subthread_content(&$a) { if (dbm::is_result($r)) $contact = $r[0]; } - if(! $contact) { + if (! $contact) { return; } @@ -86,7 +88,7 @@ function subthread_content(&$a) { $post_type = (($item['resource-id']) ? t('photo') : t('status')); $objtype = (($item['resource-id']) ? ACTIVITY_OBJ_IMAGE : ACTIVITY_OBJ_NOTE ); - $link = xmlify('' . "\n") ; + $link = xmlify('' . "\n") ; $body = $item['body']; $obj = <<< EOT @@ -102,8 +104,9 @@ function subthread_content(&$a) { EOT; $bodyverb = t('%1$s is following %2$s\'s %3$s'); - if(! isset($bodyverb)) - return; + if (! isset($bodyverb)) { + return; + } $arr = array(); @@ -127,7 +130,7 @@ EOT; $ulink = '[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]'; $alink = '[url=' . $item['author-link'] . ']' . $item['author-name'] . '[/url]'; - $plink = '[url=' . $a->get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['id'] . ']' . $post_type . '[/url]'; + $plink = '[url=' . App::get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['id'] . ']' . $post_type . '[/url]'; $arr['body'] = sprintf( $bodyverb, $ulink, $alink, $plink ); $arr['verb'] = $activity; @@ -143,7 +146,7 @@ EOT; $post_id = item_store($arr); - if(! $item['visible']) { + if (! $item['visible']) { $r = q("UPDATE `item` SET `visible` = 1 WHERE `id` = %d AND `uid` = %d", intval($item['id']), intval($owner_uid) diff --git a/mod/suggest.php b/mod/suggest.php index 8f4315a841..0004128a1a 100644 --- a/mod/suggest.php +++ b/mod/suggest.php @@ -5,12 +5,13 @@ require_once('include/contact_widgets.php'); function suggest_init(&$a) { - if(! local_user()) + if (! local_user()) { return; + } - if(x($_GET,'ignore') && intval($_GET['ignore'])) { + if (x($_GET,'ignore') && intval($_GET['ignore'])) { // Check if we should do HTML-based delete confirmation - if($_REQUEST['confirm']) { + if ($_REQUEST['confirm']) { // can't take arguments in its "action" parameter // so add any arguments as hidden inputs $query = explode_querystring($a->query_string); @@ -35,7 +36,7 @@ function suggest_init(&$a) { return; } // Now check how the user responded to the confirmation query - if(!$_REQUEST['canceled']) { + if (!$_REQUEST['canceled']) { q("INSERT INTO `gcign` ( `uid`, `gcid` ) VALUES ( %d, %d ) ", intval(local_user()), intval($_GET['ignore']) @@ -54,12 +55,12 @@ function suggest_content(&$a) { require_once("mod/proxy.php"); $o = ''; - if(! local_user()) { + if (! local_user()) { notice( t('Permission denied.') . EOL); return; } - $_SESSION['return_url'] = $a->get_baseurl() . '/' . $a->cmd; + $_SESSION['return_url'] = App::get_baseurl() . '/' . $a->cmd; $a->page['aside'] .= findpeople_widget(); $a->page['aside'] .= follow_widget(); @@ -67,17 +68,17 @@ function suggest_content(&$a) { $r = suggestion_query(local_user()); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { $o .= t('No suggestions available. If this is a new site, please try again in 24 hours.'); return $o; } require_once 'include/contact_selectors.php'; - foreach($r as $rr) { + foreach ($r as $rr) { - $connlnk = $a->get_baseurl() . '/follow/?url=' . (($rr['connect']) ? $rr['connect'] : $rr['url']); - $ignlnk = $a->get_baseurl() . '/suggest?ignore=' . $rr['id']; + $connlnk = App::get_baseurl() . '/follow/?url=' . (($rr['connect']) ? $rr['connect'] : $rr['url']); + $ignlnk = App::get_baseurl() . '/suggest?ignore=' . $rr['id']; $photo_menu = array( 'profile' => array(t("View Profile"), zrl($rr["url"])), 'follow' => array(t("Connect/Follow"), $connlnk), diff --git a/mod/tagger.php b/mod/tagger.php index d6f421205c..e53bc5eaf1 100644 --- a/mod/tagger.php +++ b/mod/tagger.php @@ -63,7 +63,7 @@ function tagger_content(&$a) { $targettype = (($item['resource-id']) ? ACTIVITY_OBJ_IMAGE : ACTIVITY_OBJ_NOTE ); $link = xmlify('' . "\n") ; + . App::get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['id'] . '" />' . "\n") ; $body = xmlify($item['body']); @@ -78,7 +78,7 @@ function tagger_content(&$a) { EOT; - $tagid = $a->get_baseurl() . '/search?tag=' . $term; + $tagid = App::get_baseurl() . '/search?tag=' . $term; $objtype = ACTIVITY_OBJ_TAGTERM; $obj = <<< EOT @@ -94,10 +94,11 @@ EOT; $bodyverb = t('%1$s tagged %2$s\'s %3$s with %4$s'); - if(! isset($bodyverb)) - return; + if (! isset($bodyverb)) { + return; + } - $termlink = html_entity_decode('⌗') . '[url=' . $a->get_baseurl() . '/search?tag=' . urlencode($term) . ']'. $term . '[/url]'; + $termlink = html_entity_decode('⌗') . '[url=' . App::get_baseurl() . '/search?tag=' . urlencode($term) . ']'. $term . '[/url]'; $arr = array(); @@ -140,7 +141,7 @@ EOT; $post_id = item_store($arr); // q("UPDATE `item` set plink = '%s' where id = %d", -// dbesc($a->get_baseurl() . '/display/' . $owner_nick . '/' . $post_id), +// dbesc(App::get_baseurl() . '/display/' . $owner_nick . '/' . $post_id), // intval($post_id) // ); @@ -159,7 +160,7 @@ EOT; ); if((! $blocktags) && $t[0]['tcount']==0 ) { /*q("update item set tag = '%s' where id = %d", - dbesc($item['tag'] . (strlen($item['tag']) ? ',' : '') . '#[url=' . $a->get_baseurl() . '/search?tag=' . $term . ']'. $term . '[/url]'), + dbesc($item['tag'] . (strlen($item['tag']) ? ',' : '') . '#[url=' . App::get_baseurl() . '/search?tag=' . $term . ']'. $term . '[/url]'), intval($item['id']) );*/ @@ -168,7 +169,7 @@ EOT; $term_objtype, TERM_HASHTAG, dbesc($term), - dbesc($a->get_baseurl() . '/search?tag=' . $term), + dbesc(App::get_baseurl() . '/search?tag=' . $term), intval($owner_uid) ); } @@ -192,14 +193,14 @@ EOT; $term_objtype, TERM_HASHTAG, dbesc($term), - dbesc($a->get_baseurl() . '/search?tag=' . $term), + dbesc(App::get_baseurl() . '/search?tag=' . $term), intval($owner_uid) ); } /*if(count($x) && !$x[0]['blocktags'] && (! stristr($r[0]['tag'], ']' . $term . '['))) { q("update item set tag = '%s' where id = %d", - dbesc($r[0]['tag'] . (strlen($r[0]['tag']) ? ',' : '') . '#[url=' . $a->get_baseurl() . '/search?tag=' . $term . ']'. $term . '[/url]'), + dbesc($r[0]['tag'] . (strlen($r[0]['tag']) ? ',' : '') . '#[url=' . App::get_baseurl() . '/search?tag=' . $term . ']'. $term . '[/url]'), intval($r[0]['id']) ); }*/ diff --git a/mod/tagrm.php b/mod/tagrm.php index 57024b3c3b..7a18d65d06 100644 --- a/mod/tagrm.php +++ b/mod/tagrm.php @@ -4,12 +4,13 @@ require_once('include/bbcode.php'); function tagrm_post(&$a) { - if(! local_user()) - goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']); + if (! local_user()) { + goaway(App::get_baseurl() . '/' . $_SESSION['photo_return']); + } - - if((x($_POST,'submit')) && ($_POST['submit'] === t('Cancel'))) - goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']); + if ((x($_POST,'submit')) && ($_POST['submit'] === t('Cancel'))) { + goaway(App::get_baseurl() . '/' . $_SESSION['photo_return']); + } $tag = ((x($_POST,'tag')) ? hex2bin(notags(trim($_POST['tag']))) : ''); $item = ((x($_POST,'item')) ? intval($_POST['item']) : 0 ); @@ -19,12 +20,13 @@ function tagrm_post(&$a) { intval(local_user()) ); - if(! dbm::is_result($r)) - goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']); + if (! dbm::is_result($r)) { + goaway(App::get_baseurl() . '/' . $_SESSION['photo_return']); + } $arr = explode(',', $r[0]['tag']); - for($x = 0; $x < count($arr); $x ++) { - if($arr[$x] === $tag) { + for ($x = 0; $x < count($arr); $x ++) { + if ($arr[$x] === $tag) { unset($arr[$x]); break; } @@ -39,7 +41,7 @@ function tagrm_post(&$a) { ); info( t('Tag removed') . EOL ); - goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']); + goaway(App::get_baseurl() . '/' . $_SESSION['photo_return']); // NOTREACHED @@ -51,30 +53,31 @@ function tagrm_content(&$a) { $o = ''; - if(! local_user()) { - goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']); + if (! local_user()) { + goaway(App::get_baseurl() . '/' . $_SESSION['photo_return']); // NOTREACHED } $item = (($a->argc > 1) ? intval($a->argv[1]) : 0); - if(! $item) { - goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']); + if (! $item) { + goaway(App::get_baseurl() . '/' . $_SESSION['photo_return']); // NOTREACHED } - $r = q("SELECT * FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1", intval($item), intval(local_user()) ); - if(! dbm::is_result($r)) - goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']); + if (! dbm::is_result($r)) { + goaway(App::get_baseurl() . '/' . $_SESSION['photo_return']); + } $arr = explode(',', $r[0]['tag']); - if(! count($arr)) - goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']); + if (! count($arr)) { + goaway(App::get_baseurl() . '/' . $_SESSION['photo_return']); + } $o .= '

    ' . t('Remove Item Tag') . '

    '; @@ -84,8 +87,7 @@ function tagrm_content(&$a) { $o .= ''; $o .= '
      '; - - foreach($arr as $x) { + foreach ($arr as $x) { $o .= '
    • ' . bbcode($x) . '
    • '; } @@ -95,5 +97,5 @@ function tagrm_content(&$a) { $o .= ''; return $o; - + } diff --git a/mod/toggle_mobile.php b/mod/toggle_mobile.php index 00991e44ca..8ef2b9fc4d 100644 --- a/mod/toggle_mobile.php +++ b/mod/toggle_mobile.php @@ -2,15 +2,17 @@ function toggle_mobile_init(&$a) { - if(isset($_GET['off'])) + if (isset($_GET['off'])) { $_SESSION['show-mobile'] = false; - else + } else { $_SESSION['show-mobile'] = true; + } - if(isset($_GET['address'])) + if (isset($_GET['address'])) { $address = $_GET['address']; - else - $address = $a->get_baseurl(); + } else { + $address = App::get_baseurl(); + } goaway($address); } diff --git a/mod/uexport.php b/mod/uexport.php index e0a0b071f6..140f19a59b 100644 --- a/mod/uexport.php +++ b/mod/uexport.php @@ -1,11 +1,12 @@ $a->get_baseurl(), + '$baseurl' => App::get_baseurl(), '$title' => t('Export personal data'), '$options' => $options )); @@ -104,7 +105,7 @@ function uexport_account($a){ $output = array( 'version' => FRIENDICA_VERSION, 'schema' => DB_UPDATE_VERSION, - 'baseurl' => $a->get_baseurl(), + 'baseurl' => App::get_baseurl(), 'user' => $user, 'contact' => $contact, 'profile' => $profile, diff --git a/mod/videos.php b/mod/videos.php index 1e03c5005a..dbfc044ea0 100644 --- a/mod/videos.php +++ b/mod/videos.php @@ -59,7 +59,7 @@ function videos_init(&$a) { if($albums_visible) { $o .= ''; @@ -87,12 +87,12 @@ function videos_init(&$a) { $tpl = get_markup_template("videos_head.tpl"); $a->page['htmlhead'] .= replace_macros($tpl,array( - '$baseurl' => $a->get_baseurl(), + '$baseurl' => App::get_baseurl(), )); $tpl = get_markup_template("videos_end.tpl"); $a->page['end'] .= replace_macros($tpl,array( - '$baseurl' => $a->get_baseurl(), + '$baseurl' => App::get_baseurl(), )); } @@ -106,13 +106,17 @@ function videos_post(&$a) { $owner_uid = $a->data['user']['uid']; - if (local_user() != $owner_uid) goaway($a->get_baseurl() . '/videos/' . $a->data['user']['nickname']); + if (local_user() != $owner_uid) { + goaway(App::get_baseurl() . '/videos/' . $a->data['user']['nickname']); + } - if(($a->argc == 2) && x($_POST,'delete') && x($_POST, 'id')) { + if (($a->argc == 2) && x($_POST,'delete') && x($_POST, 'id')) { // Check if we should do HTML-based delete confirmation if(!x($_REQUEST,'confirm')) { - if(x($_REQUEST,'canceled')) goaway($a->get_baseurl() . '/videos/' . $a->data['user']['nickname']); + if (x($_REQUEST,'canceled')) { + goaway(App::get_baseurl() . '/videos/' . $a->data['user']['nickname']); + } $drop_url = $a->query_string; $a->page['content'] = replace_macros(get_markup_template('confirm.tpl'), array( @@ -149,7 +153,7 @@ function videos_post(&$a) { dbesc($video_id), intval(local_user()) ); - #echo "
      "; var_dump($i); killme();
      +			//echo "
      "; var_dump($i); killme();
       			if(count($i)) {
       				q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d",
       					dbesc(datetime_convert()),
      @@ -160,7 +164,7 @@ function videos_post(&$a) {
       				create_tags_from_itemuri($i[0]['uri'], local_user());
       				delete_thread_uri($i[0]['uri'], local_user());
       
      -				$url = $a->get_baseurl();
      +				$url = App::get_baseurl();
       				$drop_id = intval($i[0]['id']);
       
       				if($i[0]['visible'])
      @@ -168,11 +172,11 @@ function videos_post(&$a) {
       			}
       		}
       
      -		goaway($a->get_baseurl() . '/videos/' . $a->data['user']['nickname']);
      +		goaway(App::get_baseurl() . '/videos/' . $a->data['user']['nickname']);
       		return; // NOTREACHED
       	}
       
      -    goaway($a->get_baseurl() . '/videos/' . $a->data['user']['nickname']);
      +	goaway(App::get_baseurl() . '/videos/' . $a->data['user']['nickname']);
       
       }
       
      @@ -364,8 +368,8 @@ function videos_content(&$a) {
       
       	$videos = array();
       	if (dbm::is_result($r)) {
      -		foreach($r as $rr) {
      -			if($a->theme['template_engine'] === 'internal') {
      +		foreach ($r as $rr) {
      +			if ($a->theme['template_engine'] === 'internal') {
       				$alt_e = template_escape($rr['filename']);
       				$name_e = template_escape($rr['album']);
       			}
      @@ -376,13 +380,13 @@ function videos_content(&$a) {
       
       			$videos[] = array(
       				'id'       => $rr['id'],
      -				'link'  	=> $a->get_baseurl() . '/videos/' . $a->data['user']['nickname'] . '/video/' . $rr['resource-id'],
      -				'title' 	=> t('View Video'),
      -				'src'     	=> $a->get_baseurl() . '/attach/' . $rr['id'] . '?attachment=0',
      -				'alt'     	=> $alt_e,
      -				'mime'		=> $rr['filetype'],
      -				'album'	=> array(
      -					'link'  => $a->get_baseurl() . '/videos/' . $a->data['user']['nickname'] . '/album/' . bin2hex($rr['album']),
      +				'link'     => App::get_baseurl() . '/videos/' . $a->data['user']['nickname'] . '/video/' . $rr['resource-id'],
      +				'title'    => t('View Video'),
      +				'src'      => App::get_baseurl() . '/attach/' . $rr['id'] . '?attachment=0',
      +				'alt'      => $alt_e,
      +				'mime'     => $rr['filetype'],
      +				'album' => array(
      +					'link'  => App::get_baseurl() . '/videos/' . $a->data['user']['nickname'] . '/album/' . bin2hex($rr['album']),
       					'name'  => $name_e,
       					'alt'   => t('View Album'),
       				),
      @@ -393,11 +397,11 @@ function videos_content(&$a) {
       
       	$tpl = get_markup_template('videos_recent.tpl');
       	$o .= replace_macros($tpl, array(
      -		'$title' => t('Recent Videos'),
      -		'$can_post' => $can_post,
      -		'$upload' => array(t('Upload New Videos'), $a->get_baseurl().'/videos/'.$a->data['user']['nickname'].'/upload'),
      -		'$videos' => $videos,
      -        '$delete_url' => (($can_post)?$a->get_baseurl().'/videos/'.$a->data['user']['nickname']:False)
      +		'$title'      => t('Recent Videos'),
      +		'$can_post'   => $can_post,
      +		'$upload'     => array(t('Upload New Videos'), App::get_baseurl().'/videos/'.$a->data['user']['nickname'].'/upload'),
      +		'$videos'     => $videos,
      +		'$delete_url' => (($can_post)?App::get_baseurl().'/videos/'.$a->data['user']['nickname']:False)
       	));
       
       
      diff --git a/mod/viewcontacts.php b/mod/viewcontacts.php
      index c9f465676c..ffb7154423 100644
      --- a/mod/viewcontacts.php
      +++ b/mod/viewcontacts.php
      @@ -16,8 +16,9 @@ function viewcontacts_init(&$a) {
       			dbesc($nick)
       		);
       
      -		if(! dbm::is_result($r))
      +		if (! dbm::is_result($r)) {
       			return;
      +		}
       
       		$a->data['user'] = $r[0];
       		$a->profile_uid = $r[0]['uid'];
      @@ -75,9 +76,11 @@ function viewcontacts_content(&$a) {
       
       	$contacts = array();
       
      -	foreach($r as $rr) {
      -		if($rr['self'])
      +	foreach ($r as $rr) {
      +		/// @TODO This triggers an E_NOTICE if 'self' is not there
      +		if ($rr['self']) {
       			continue;
      +		}
       
       		$url = $rr['url'];
       
      diff --git a/mod/viewsrc.php b/mod/viewsrc.php
      index 904b144250..94ed9b5dc2 100644
      --- a/mod/viewsrc.php
      +++ b/mod/viewsrc.php
      @@ -3,7 +3,7 @@
       
       function viewsrc_content(&$a) {
       
      -	if(! local_user()) {
      +	if (! local_user()) {
       		notice( t('Access denied.') . EOL);
       		return;
       	}
      diff --git a/mod/wall_attach.php b/mod/wall_attach.php
      index 80fc1c6e79..525d3509c1 100644
      --- a/mod/wall_attach.php
      +++ b/mod/wall_attach.php
      @@ -12,7 +12,7 @@ function wall_attach_post(&$a) {
       		$r = q("SELECT `user`.*, `contact`.`id` FROM `user` LEFT JOIN `contact` on `user`.`uid` = `contact`.`uid`  WHERE `user`.`nickname` = '%s' AND `user`.`blocked` = 0 and `contact`.`self` = 1 LIMIT 1",
       			dbesc($nick)
       		);
      -		if(! dbm::is_result($r)){
      +		if (! dbm::is_result($r)) {
       			if ($r_json) {
       				echo json_encode(array('error'=>t('Invalid request.')));
       				killme();
      @@ -168,7 +168,7 @@ function wall_attach_post(&$a) {
       		dbesc($hash)
       	);
       
      -	if(! dbm::is_result($r)) {
      +	if (! dbm::is_result($r)) {
       		$msg = t('File upload failed.');
       		if ($r_json) {
       			echo json_encode(array('error'=>$msg));
      diff --git a/mod/wall_upload.php b/mod/wall_upload.php
      index 21d9bf49cb..eb2a92323a 100644
      --- a/mod/wall_upload.php
      +++ b/mod/wall_upload.php
      @@ -15,7 +15,7 @@ function wall_upload_post(&$a, $desktopmode = true) {
       				dbesc($nick)
       			);
       
      -			if(! dbm::is_result($r)){
      +			if (! dbm::is_result($r)) {
       				if ($r_json) {
       					echo json_encode(array('error'=>t('Invalid request.')));
       					killme();
      @@ -260,9 +260,9 @@ function wall_upload_post(&$a, $desktopmode = true) {
       		$picture["width"] = $r[0]["width"];
       		$picture["height"] = $r[0]["height"];
       		$picture["type"] = $r[0]["type"];
      -		$picture["albumpage"] = $a->get_baseurl().'/photos/'.$page_owner_nick.'/image/'.$hash;
      -		$picture["picture"] = $a->get_baseurl()."/photo/{$hash}-0.".$ph->getExt();
      -		$picture["preview"] = $a->get_baseurl()."/photo/{$hash}-{$smallest}.".$ph->getExt();
      +		$picture["albumpage"] = App::get_baseurl().'/photos/'.$page_owner_nick.'/image/'.$hash;
      +		$picture["picture"] = App::get_baseurl()."/photo/{$hash}-0.".$ph->getExt();
      +		$picture["preview"] = App::get_baseurl()."/photo/{$hash}-{$smallest}.".$ph->getExt();
       
       		if ($r_json) {
       			echo json_encode(array('picture'=>$picture));
      @@ -282,14 +282,14 @@ function wall_upload_post(&$a, $desktopmode = true) {
       //if we get the signal then return the image url info in BBCODE, otherwise this outputs the info and bails (for the ajax image uploader on wall post)
       	if ($_REQUEST['hush']!='yeah') {
       		if(local_user() && (! feature_enabled(local_user(),'richtext') || x($_REQUEST['nomce'])) ) {
      -			echo  "\n\n" . '[url=' . $a->get_baseurl() . '/photos/' . $page_owner_nick . '/image/' . $hash . '][img]' . $a->get_baseurl() . "/photo/{$hash}-{$smallest}.".$ph->getExt()."[/img][/url]\n\n";
      +			echo  "\n\n" . '[url=' . App::get_baseurl() . '/photos/' . $page_owner_nick . '/image/' . $hash . '][img]' . App::get_baseurl() . "/photo/{$hash}-{$smallest}.".$ph->getExt()."[/img][/url]\n\n";
       		}
       		else {
      -			echo  '

      getExt()."\" alt=\"$basename\" />

      "; + echo '

      getExt()."\" alt=\"$basename\" />

      "; } } else { - $m = '[url='.$a->get_baseurl().'/photos/'.$page_owner_nick.'/image/'.$hash.'][img]'.$a->get_baseurl()."/photo/{$hash}-{$smallest}.".$ph->getExt()."[/img][/url]"; + $m = '[url='.App::get_baseurl().'/photos/'.$page_owner_nick.'/image/'.$hash.'][img]'.App::get_baseurl()."/photo/{$hash}-{$smallest}.".$ph->getExt()."[/img][/url]"; return($m); } /* mod Waitman Gobble NO WARRANTY */ diff --git a/mod/wallmessage.php b/mod/wallmessage.php index 03a0b7a16f..afe25cbe8b 100644 --- a/mod/wallmessage.php +++ b/mod/wallmessage.php @@ -22,7 +22,7 @@ function wallmessage_post(&$a) { dbesc($recipient) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { logger('wallmessage: no recipient'); return; } @@ -91,7 +91,7 @@ function wallmessage_content(&$a) { dbesc($recipient) ); - if(! dbm::is_result($r)) { + if (! dbm::is_result($r)) { notice( t('No recipient.') . EOL); logger('wallmessage: no recipient'); return; diff --git a/mod/xrd.php b/mod/xrd.php index 1250b0812c..e4641f5a35 100644 --- a/mod/xrd.php +++ b/mod/xrd.php @@ -21,8 +21,9 @@ function xrd_init(&$a) { $r = q("SELECT * FROM `user` WHERE `nickname` = '%s' LIMIT 1", dbesc($name) ); - if(! dbm::is_result($r)) + if (! dbm::is_result($r)) { killme(); + } $salmon_key = salmon_key($r[0]['spubkey']); @@ -31,22 +32,24 @@ function xrd_init(&$a) { $tpl = get_markup_template('xrd_diaspora.tpl'); $dspr = replace_macros($tpl,array( - '$baseurl' => $a->get_baseurl(), + '$baseurl' => App::get_baseurl(), '$dspr_guid' => $r[0]['guid'], '$dspr_key' => base64_encode(pemtorsa($r[0]['pubkey'])) )); $tpl = get_markup_template('xrd_person.tpl'); - $profile_url = $a->get_baseurl().'/profile/'.$r[0]['nickname']; + $profile_url = App::get_baseurl().'/profile/'.$r[0]['nickname']; - if ($acct) + if ($acct) { $alias = $profile_url; + } else { $alias = 'acct:'.$r[0]['nickname'].'@'.$a->get_hostname(); - if ($a->get_path()) + if ($a->get_path()) { $alias .= '/'.$a->get_path(); + } } $o = replace_macros($tpl, array( @@ -54,17 +57,17 @@ function xrd_init(&$a) { '$accturi' => $uri, '$alias' => $alias, '$profile_url' => $profile_url, - '$hcard_url' => $a->get_baseurl() . '/hcard/' . $r[0]['nickname'], - '$atom' => $a->get_baseurl() . '/dfrn_poll/' . $r[0]['nickname'], - '$zot_post' => $a->get_baseurl() . '/post/' . $r[0]['nickname'], - '$poco_url' => $a->get_baseurl() . '/poco/' . $r[0]['nickname'], - '$photo' => $a->get_baseurl() . '/photo/profile/' . $r[0]['uid'] . '.jpg', + '$hcard_url' => App::get_baseurl() . '/hcard/' . $r[0]['nickname'], + '$atom' => App::get_baseurl() . '/dfrn_poll/' . $r[0]['nickname'], + '$zot_post' => App::get_baseurl() . '/post/' . $r[0]['nickname'], + '$poco_url' => App::get_baseurl() . '/poco/' . $r[0]['nickname'], + '$photo' => App::get_baseurl() . '/photo/profile/' . $r[0]['uid'] . '.jpg', '$dspr' => $dspr, - '$salmon' => $a->get_baseurl() . '/salmon/' . $r[0]['nickname'], - '$salmen' => $a->get_baseurl() . '/salmon/' . $r[0]['nickname'] . '/mention', - '$subscribe' => $a->get_baseurl() . '/follow?url={uri}', + '$salmon' => App::get_baseurl() . '/salmon/' . $r[0]['nickname'], + '$salmen' => App::get_baseurl() . '/salmon/' . $r[0]['nickname'] . '/mention', + '$subscribe' => App::get_baseurl() . '/follow?url={uri}', '$modexp' => 'data:application/magic-public-key,' . $salmon_key, - '$bigkey' => salmon_key($r[0]['pubkey']) + '$bigkey' => salmon_key($r[0]['pubkey']), )); diff --git a/object/Item.php b/object/Item.php index 45d2dba3ed..8340009a9b 100644 --- a/object/Item.php +++ b/object/Item.php @@ -52,21 +52,22 @@ class Item extends BaseObject { $ssl_state = ((local_user()) ? true : false); $this->redirect_url = 'redir/' . $this->get_data_value('cid') ; - if(get_config('system','thread_allow') && $a->theme_thread_allow && !$this->is_toplevel()) + if (get_config('system','thread_allow') && $a->theme_thread_allow && !$this->is_toplevel()) { $this->threaded = true; + } // Prepare the children - if(count($data['children'])) { - foreach($data['children'] as $item) { + if (count($data['children'])) { + foreach ($data['children'] as $item) { /* * Only add will be displayed */ - if($item['network'] === NETWORK_MAIL && local_user() != $item['uid']) { - continue; - } - if(! visible_activity($item)) { + if ($item['network'] === NETWORK_MAIL && local_user() != $item['uid']) { + continue; + } elseif (! visible_activity($item)) { continue; } + $item['pagedrop'] = $data['pagedrop']; $child = new Item($item); $this->add_child($child); @@ -91,11 +92,11 @@ class Item extends BaseObject { $item = $this->get_data(); $edited = false; if (strcmp($item['created'], $item['edited'])<>0) { - $edited = array( - 'label' => t('This entry was edited'), - 'date' => datetime_convert('UTC', date_default_timezone_get(), $item['edited'], 'r'), - 'relative' => relative_date($item['edited']) - ); + $edited = array( + 'label' => t('This entry was edited'), + 'date' => datetime_convert('UTC', date_default_timezone_get(), $item['edited'], 'r'), + 'relative' => relative_date($item['edited']) + ); } $commentww = ''; $sparkle = ''; @@ -111,59 +112,68 @@ class Item extends BaseObject { $conv = $this->get_conversation(); - $lock = ((($item['private'] == 1) || (($item['uid'] == local_user()) && (strlen($item['allow_cid']) || strlen($item['allow_gid']) || strlen($item['deny_cid']) || strlen($item['deny_gid'])))) ? t('Private Message') : false); $shareable = ((($conv->get_profile_owner() == local_user()) && ($item['private'] != 1)) ? true : false); - if(local_user() && link_compare($a->contact['url'],$item['author-link'])) { - if ($item["event-id"] != 0) + if (local_user() && link_compare($a->contact['url'],$item['author-link'])) { + if ($item["event-id"] != 0) { $edpost = array("events/event/".$item['event-id'], t("Edit")); - else + } else { $edpost = array("editpost/".$item['id'], t("Edit")); - } else + } + } else { $edpost = false; - if(($this->get_data_value('uid') == local_user()) || $this->is_visiting()) + } + + if (($this->get_data_value('uid') == local_user()) || $this->is_visiting()) { $dropping = true; + } $drop = array( 'dropping' => $dropping, 'pagedrop' => ((feature_enabled($conv->get_profile_owner(),'multi_delete')) ? $item['pagedrop'] : ''), - 'select' => t('Select'), - 'delete' => t('Delete'), + 'select' => t('Select'), + 'delete' => t('Delete'), ); $filer = (($conv->get_profile_owner() == local_user()) ? t("save to folder") : false); $diff_author = ((link_compare($item['url'],$item['author-link'])) ? false : true); $profile_name = htmlentities(((strlen($item['author-name'])) && $diff_author) ? $item['author-name'] : $item['name']); - if($item['author-link'] && (! $item['author-name'])) + if ($item['author-link'] && (! $item['author-name'])) { $profile_name = $item['author-link']; + } $sp = false; $profile_link = best_link_url($item,$sp); - if($profile_link === 'mailbox') + if ($profile_link === 'mailbox') { $profile_link = ''; - if($sp) + } + + if ($sp) { $sparkle = ' sparkle'; - else + } else { $profile_link = zrl($profile_link); + } if (!isset($item['author-thumb']) OR ($item['author-thumb'] == "")) { $author_contact = get_contact_details_by_url($item['author-link'], $conv->get_profile_owner()); - if ($author_contact["thumb"]) + if ($author_contact["thumb"]) { $item['author-thumb'] = $author_contact["thumb"]; - else + } else { $item['author-thumb'] = $item['author-avatar']; + } } if (!isset($item['owner-thumb']) OR ($item['owner-thumb'] == "")) { $owner_contact = get_contact_details_by_url($item['owner-link'], $conv->get_profile_owner()); - if ($owner_contact["thumb"]) + if ($owner_contact["thumb"]) { $item['owner-thumb'] = $owner_contact["thumb"]; - else + } else { $item['owner-thumb'] = $item['owner-avatar']; + } } $locate = array('location' => $item['location'], 'coord' => $item['coord'], 'html' => ''); @@ -190,13 +200,14 @@ class Item extends BaseObject { // process action responses - e.g. like/dislike/attend/agree/whatever $response_verbs = array('like'); - if(feature_enabled($conv->get_profile_owner(),'dislike')) + if (feature_enabled($conv->get_profile_owner(),'dislike')) { $response_verbs[] = 'dislike'; - if($item['object-type'] === ACTIVITY_OBJ_EVENT) { + } + if ($item['object-type'] === ACTIVITY_OBJ_EVENT) { $response_verbs[] = 'attendyes'; $response_verbs[] = 'attendno'; $response_verbs[] = 'attendmaybe'; - if($conv->is_writable()) { + if ($conv->is_writable()) { $isevent = true; $attend = array( t('I will attend'), t('I will not attend'), t('I might attend')); } @@ -205,8 +216,7 @@ class Item extends BaseObject { $responses = get_responses($conv_responses,$response_verbs,$this,$item); foreach ($response_verbs as $value=>$verbs) { - $responses[$verbs][output] = ((x($conv_responses[$verbs],$item['uri'])) ? format_like($conv_responses[$verbs][$item['uri']],$conv_responses[$verbs][$item['uri'] . '-l'],$verbs,$item['uri']) : ''); - + $responses[$verbs]['output'] = ((x($conv_responses[$verbs],$item['uri'])) ? format_like($conv_responses[$verbs][$item['uri']],$conv_responses[$verbs][$item['uri'] . '-l'],$verbs,$item['uri']) : ''); } /* @@ -216,20 +226,21 @@ class Item extends BaseObject { */ $this->check_wall_to_wall(); - if($this->is_wall_to_wall() && ($this->get_owner_url() == $this->get_redirect_url())) + if ($this->is_wall_to_wall() && ($this->get_owner_url() == $this->get_redirect_url())) { $osparkle = ' sparkle'; + } - if($this->is_toplevel()) { - if($conv->get_profile_owner() == local_user()) { + if ($this->is_toplevel()) { + if ($conv->get_profile_owner() == local_user()) { $isstarred = (($item['starred']) ? "starred" : "unstarred"); $star = array( - 'do' => t("add star"), - 'undo' => t("remove star"), - 'toggle' => t("toggle star status"), - 'classdo' => (($item['starred']) ? "hidden" : ""), + 'do' => t("add star"), + 'undo' => t("remove star"), + 'toggle' => t("toggle star status"), + 'classdo' => (($item['starred']) ? "hidden" : ""), 'classundo' => (($item['starred']) ? "" : "hidden"), - 'starred' => t('starred'), + 'starred' => t('starred'), ); $r = q("SELECT `ignored` FROM `thread` WHERE `uid` = %d AND `iid` = %d LIMIT 1", intval($item['uid']), @@ -237,19 +248,19 @@ class Item extends BaseObject { ); if (dbm::is_result($r)) { $ignore = array( - 'do' => t("ignore thread"), - 'undo' => t("unignore thread"), - 'toggle' => t("toggle ignore status"), - 'classdo' => (($r[0]['ignored']) ? "hidden" : ""), + 'do' => t("ignore thread"), + 'undo' => t("unignore thread"), + 'toggle' => t("toggle ignore status"), + 'classdo' => (($r[0]['ignored']) ? "hidden" : ""), 'classundo' => (($r[0]['ignored']) ? "" : "hidden"), - 'ignored' => t('ignored'), + 'ignored' => t('ignored'), ); } $tagger = ''; if(feature_enabled($conv->get_profile_owner(),'commtag')) { $tagger = array( - 'add' => t("add tag"), + 'add' => t("add tag"), 'class' => "", ); } @@ -258,17 +269,19 @@ class Item extends BaseObject { $indent = 'comment'; } - if($conv->is_writable()) { + if ($conv->is_writable()) { $buttons = array( 'like' => array( t("I like this \x28toggle\x29"), t("like")), 'dislike' => ((feature_enabled($conv->get_profile_owner(),'dislike')) ? array( t("I don't like this \x28toggle\x29"), t("dislike")) : ''), ); - if ($shareable) $buttons['share'] = array( t('Share this'), t('share')); + if ($shareable) { + $buttons['share'] = array( t('Share this'), t('share')); + } } $comment = $this->get_comment_box($indent); - if(strcmp(datetime_convert('UTC','UTC',$item['created']),datetime_convert('UTC','UTC','now - 12 hours')) > 0){ + if (strcmp(datetime_convert('UTC','UTC',$item['created']),datetime_convert('UTC','UTC','now - 12 hours')) > 0){ $shiny = 'shiny'; } @@ -290,8 +303,9 @@ class Item extends BaseObject { foreach ($languages as $language) { $langdata = explode(";", $language); - if ($langstr != "") + if ($langstr != "") { $langstr .= ", "; + } //$langstr .= $langdata[0]." (".round($langdata[1]*100, 1)."%)"; $langstr .= round($langdata[1]*100, 1)."% ".$langdata[0]; @@ -303,112 +317,113 @@ class Item extends BaseObject { list($categories, $folders) = get_cats_and_terms($item); - if($a->theme['template_engine'] === 'internal') { - $body_e = template_escape($body); - $text_e = strip_tags(template_escape($body)); - $name_e = template_escape($profile_name); - $title_e = template_escape($item['title']); - $location_e = template_escape($location); + if ($a->theme['template_engine'] === 'internal') { + $body_e = template_escape($body); + $text_e = strip_tags(template_escape($body)); + $name_e = template_escape($profile_name); + $title_e = template_escape($item['title']); + $location_e = template_escape($location); $owner_name_e = template_escape($this->get_owner_name()); - } - else { - $body_e = $body; - $text_e = strip_tags($body); - $name_e = $profile_name; - $title_e = $item['title']; - $location_e = $location; + } else { + $body_e = $body; + $text_e = strip_tags($body); + $name_e = $profile_name; + $title_e = $item['title']; + $location_e = $location; $owner_name_e = $this->get_owner_name(); } // Disable features that aren't available in several networks - if (($item["item_network"] != NETWORK_DFRN) AND isset($buttons["dislike"])) { + + /// @todo Add NETWORK_DIASPORA when it will pass this information + if (!in_array($item["item_network"], array(NETWORK_DFRN)) AND isset($buttons["dislike"])) { unset($buttons["dislike"],$isevent); $tagger = ''; } - if (($item["item_network"] == NETWORK_FEED) AND isset($buttons["like"])) + if (($item["item_network"] == NETWORK_FEED) AND isset($buttons["like"])) { unset($buttons["like"]); + } - if (($item["item_network"] == NETWORK_MAIL) AND isset($buttons["like"])) + if (($item["item_network"] == NETWORK_MAIL) AND isset($buttons["like"])) { unset($buttons["like"]); + } - // Diaspora isn't able to do likes on comments - but red does + // Diaspora isn't able to do likes on comments - but Hubzilla does + /// @todo When Diaspora will pass this information we will remove these lines if (($item["item_network"] == NETWORK_DIASPORA) AND ($indent == 'comment') AND - !diaspora::is_redmatrix($item["owner-link"]) AND isset($buttons["like"])) + !Diaspora::is_redmatrix($item["owner-link"]) AND isset($buttons["like"])) { unset($buttons["like"]); - - // Diaspora doesn't has multithreaded comments - if (($item["item_network"] == NETWORK_DIASPORA) AND ($indent == 'comment')) - unset($comment); + } // Facebook can like comments - but it isn't programmed in the connector yet. - if (($item["item_network"] == NETWORK_FACEBOOK) AND ($indent == 'comment') AND isset($buttons["like"])) + if (($item["item_network"] == NETWORK_FACEBOOK) AND ($indent == 'comment') AND isset($buttons["like"])) { unset($buttons["like"]); + } $tmp_item = array( - 'template' => $this->get_template(), - - 'type' => implode("",array_slice(explode("/",$item['verb']),-1)), - 'tags' => $item['tags'], - 'hashtags' => $item['hashtags'], - 'mentions' => $item['mentions'], - 'txt_cats' => t('Categories:'), - 'txt_folders' => t('Filed under:'), - 'has_cats' => ((count($categories)) ? 'true' : ''), - 'has_folders' => ((count($folders)) ? 'true' : ''), - 'categories' => $categories, - 'folders' => $folders, - 'body' => $body_e, - 'text' => $text_e, - 'id' => $this->get_id(), - 'guid' => urlencode($item['guid']), - 'isevent' => $isevent, - 'attend' => $attend, - 'linktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['author-link'])) ? $item['author-link'] : $item['url'])), - 'olinktitle' => sprintf( t('View %s\'s profile @ %s'), htmlentities($this->get_owner_name()), ((strlen($item['owner-link'])) ? $item['owner-link'] : $item['url'])), - 'to' => t('to'), - 'via' => t('via'), - 'wall' => t('Wall-to-Wall'), - 'vwall' => t('via Wall-To-Wall:'), - 'profile_url' => $profile_link, + 'template' => $this->get_template(), + 'type' => implode("",array_slice(explode("/",$item['verb']),-1)), + 'tags' => $item['tags'], + 'hashtags' => $item['hashtags'], + 'mentions' => $item['mentions'], + 'txt_cats' => t('Categories:'), + 'txt_folders' => t('Filed under:'), + 'has_cats' => ((count($categories)) ? 'true' : ''), + 'has_folders' => ((count($folders)) ? 'true' : ''), + 'categories' => $categories, + 'folders' => $folders, + 'body' => $body_e, + 'text' => $text_e, + 'id' => $this->get_id(), + 'guid' => urlencode($item['guid']), + 'isevent' => $isevent, + 'attend' => $attend, + 'linktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['author-link'])) ? $item['author-link'] : $item['url'])), + 'olinktitle' => sprintf( t('View %s\'s profile @ %s'), htmlentities($this->get_owner_name()), ((strlen($item['owner-link'])) ? $item['owner-link'] : $item['url'])), + 'to' => t('to'), + 'via' => t('via'), + 'wall' => t('Wall-to-Wall'), + 'vwall' => t('via Wall-To-Wall:'), + 'profile_url' => $profile_link, 'item_photo_menu' => item_photo_menu($item), - 'name' => $name_e, - 'thumb' => $a->remove_baseurl(proxy_url($item['author-thumb'], false, PROXY_SIZE_THUMB)), - 'osparkle' => $osparkle, - 'sparkle' => $sparkle, - 'title' => $title_e, - 'localtime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'r'), - 'ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])), - 'app' => $item['app'], - 'created' => relative_date($item['created']), - 'lock' => $lock, - 'location' => $location_e, - 'indent' => $indent, - 'shiny' => $shiny, - 'owner_url' => $this->get_owner_url(), - 'owner_photo' => $a->remove_baseurl(proxy_url($item['owner-thumb'], false, PROXY_SIZE_THUMB)), - 'owner_name' => htmlentities($owner_name_e), - 'plink' => get_plink($item), - 'edpost' => ((feature_enabled($conv->get_profile_owner(),'edit_posts')) ? $edpost : ''), - 'isstarred' => $isstarred, - 'star' => ((feature_enabled($conv->get_profile_owner(),'star_posts')) ? $star : ''), - 'ignore' => ((feature_enabled($conv->get_profile_owner(),'ignore_posts')) ? $ignore : ''), - 'tagger' => $tagger, - 'filer' => ((feature_enabled($conv->get_profile_owner(),'filing')) ? $filer : ''), - 'drop' => $drop, - 'vote' => $buttons, - 'like' => $responses['like']['output'], - 'dislike' => $responses['dislike']['output'], - 'responses' => $responses, - 'switchcomment' => t('Comment'), - 'comment' => $comment, - 'previewing' => ($conv->is_preview() ? ' preview ' : ''), - 'wait' => t('Please wait'), - 'thread_level' => $thread_level, - 'postopts' => $langstr, - 'edited' => $edited, - 'network' => $item["item_network"], - 'network_name' => network_to_name($item['item_network'], $profile_link), + 'name' => $name_e, + 'thumb' => $a->remove_baseurl(proxy_url($item['author-thumb'], false, PROXY_SIZE_THUMB)), + 'osparkle' => $osparkle, + 'sparkle' => $sparkle, + 'title' => $title_e, + 'localtime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'r'), + 'ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])), + 'app' => $item['app'], + 'created' => relative_date($item['created']), + 'lock' => $lock, + 'location' => $location_e, + 'indent' => $indent, + 'shiny' => $shiny, + 'owner_url' => $this->get_owner_url(), + 'owner_photo' => $a->remove_baseurl(proxy_url($item['owner-thumb'], false, PROXY_SIZE_THUMB)), + 'owner_name' => htmlentities($owner_name_e), + 'plink' => get_plink($item), + 'edpost' => ((feature_enabled($conv->get_profile_owner(),'edit_posts')) ? $edpost : ''), + 'isstarred' => $isstarred, + 'star' => ((feature_enabled($conv->get_profile_owner(),'star_posts')) ? $star : ''), + 'ignore' => ((feature_enabled($conv->get_profile_owner(),'ignore_posts')) ? $ignore : ''), + 'tagger' => $tagger, + 'filer' => ((feature_enabled($conv->get_profile_owner(),'filing')) ? $filer : ''), + 'drop' => $drop, + 'vote' => $buttons, + 'like' => $responses['like']['output'], + 'dislike' => $responses['dislike']['output'], + 'responses' => $responses, + 'switchcomment' => t('Comment'), + 'comment' => $comment, + 'previewing' => ($conv->is_preview() ? ' preview ' : ''), + 'wait' => t('Please wait'), + 'thread_level' => $thread_level, + 'postopts' => $langstr, + 'edited' => $edited, + 'network' => $item["item_network"], + 'network_name' => network_to_name($item['item_network'], $profile_link), ); $arr = array('item' => $item, 'output' => $tmp_item); @@ -419,39 +434,37 @@ class Item extends BaseObject { $result['children'] = array(); $children = $this->get_children(); $nb_children = count($children); - if($nb_children > 0) { - foreach($children as $child) { + if ($nb_children > 0) { + foreach ($children as $child) { $result['children'][] = $child->get_template_data($conv_responses, $thread_level + 1); } // Collapse - if(($nb_children > 2) || ($thread_level > 1)) { + if (($nb_children > 2) || ($thread_level > 1)) { $result['children'][0]['comment_firstcollapsed'] = true; $result['children'][0]['num_comments'] = sprintf( tt('%d comment','%d comments',$total_children),$total_children ); $result['children'][0]['hidden_comments_num'] = $total_children; $result['children'][0]['hidden_comments_text'] = tt('comment', 'comments', $total_children); $result['children'][0]['hide_text'] = t('show more'); - if($thread_level > 1) { + if ($thread_level > 1) { $result['children'][$nb_children - 1]['comment_lastcollapsed'] = true; - } - else { + } else { $result['children'][$nb_children - 3]['comment_lastcollapsed'] = true; } } } if ($this->is_toplevel()) { - $result['total_comments_num'] = "$total_children"; - $result['total_comments_text'] = tt('comment', 'comments', $total_children); + $result['total_comments_num'] = "$total_children"; + $result['total_comments_text'] = tt('comment', 'comments', $total_children); } $result['private'] = $item['private']; $result['toplevel'] = ($this->is_toplevel() ? 'toplevel_item' : ''); - if($this->is_threaded()) { + if ($this->is_threaded()) { $result['flatten'] = false; $result['threaded'] = true; - } - else { + } else { $result['flatten'] = true; $result['threaded'] = false; } @@ -470,23 +483,21 @@ class Item extends BaseObject { /** * Add a child item */ - public function add_child($item) { + public function add_child(Item $item) { $item_id = $item->get_id(); - if(!$item_id) { + if (!$item_id) { logger('[ERROR] Item::add_child : Item has no ID!!', LOGGER_DEBUG); return false; - } - if($this->get_child($item->get_id())) { + } elseif ($this->get_child($item->get_id())) { logger('[WARN] Item::add_child : Item already exists ('. $item->get_id() .').', LOGGER_DEBUG); return false; } /* * Only add what will be displayed */ - if($item->get_data_value('network') === NETWORK_MAIL && local_user() != $item->get_data_value('uid')) { + if ($item->get_data_value('network') === NETWORK_MAIL && local_user() != $item->get_data_value('uid')) { return false; - } - if(activity_match($item->get_data_value('verb'),ACTIVITY_LIKE) || activity_match($item->get_data_value('verb'),ACTIVITY_DISLIKE)) { + } elseif (activity_match($item->get_data_value('verb'),ACTIVITY_LIKE) || activity_match($item->get_data_value('verb'),ACTIVITY_DISLIKE)) { return false; } @@ -499,9 +510,10 @@ class Item extends BaseObject { * Get a child by its ID */ public function get_child($id) { - foreach($this->get_children() as $child) { - if($child->get_id() == $id) + foreach ($this->get_children() as $child) { + if ($child->get_id() == $id) { return $child; + } } return null; } @@ -538,8 +550,8 @@ class Item extends BaseObject { */ public function remove_child($item) { $id = $item->get_id(); - foreach($this->get_children() as $key => $child) { - if($child->get_id() == $id) { + foreach ($this->get_children() as $key => $child) { + if ($child->get_id() == $id) { $child->remove_parent(); unset($this->children[$key]); // Reindex the array, in order to make sure there won't be any trouble on loops using count() @@ -567,8 +579,9 @@ class Item extends BaseObject { $this->conversation = $conv; // Set it on our children too - foreach($this->get_children() as $child) + foreach ($this->get_children() as $child) { $child->set_conversation($conv); + } } /** @@ -595,7 +608,7 @@ class Item extends BaseObject { * _ false on failure */ public function get_data_value($name) { - if(!isset($this->data[$name])) { + if (!isset($this->data[$name])) { // logger('[ERROR] Item::get_data_value : Item has no value name "'. $name .'".', LOGGER_DEBUG); return false; } @@ -607,9 +620,7 @@ class Item extends BaseObject { * Set template */ private function set_template($name) { - $a = get_app(); - - if(!x($this->available_templates, $name)) { + if (!x($this->available_templates, $name)) { logger('[ERROR] Item::set_template : Template not available ("'. $name .'").', LOGGER_DEBUG); return false; } @@ -637,13 +648,14 @@ class Item extends BaseObject { private function is_writable() { $conv = $this->get_conversation(); - if($conv) { + if ($conv) { // This will allow us to comment on wall-to-wall items owned by our friends // and community forums even if somebody else wrote the post. // bug #517 - this fixes for conversation owner - if($conv->get_mode() == 'profile' && $conv->get_profile_owner() == local_user()) - return true; + if ($conv->get_mode() == 'profile' && $conv->get_profile_owner() == local_user()) { + return true; + } // this fixes for visitors return ($this->writable || ($this->is_visiting() && $conv->get_mode() == 'profile')); @@ -657,8 +669,8 @@ class Item extends BaseObject { private function count_descendants() { $children = $this->get_children(); $total = count($children); - if($total > 0) { - foreach($children as $child) { + if ($total > 0) { + foreach ($children as $child) { $total += $child->count_descendants(); } } @@ -681,7 +693,7 @@ class Item extends BaseObject { */ private function get_comment_box($indent) { $a = $this->get_app(); - if(!$this->is_toplevel() && !(get_config('system','thread_allow') && $a->theme_thread_allow)) { + if (!$this->is_toplevel() && !(get_config('system','thread_allow') && $a->theme_thread_allow)) { return ''; } @@ -689,48 +701,48 @@ class Item extends BaseObject { $conv = $this->get_conversation(); $template = get_markup_template($this->get_comment_box_template()); $ww = ''; - if( ($conv->get_mode() === 'network') && $this->is_wall_to_wall() ) + if ( ($conv->get_mode() === 'network') && $this->is_wall_to_wall() ) $ww = 'ww'; - if($conv->is_writable() && $this->is_writable()) { + if ($conv->is_writable() && $this->is_writable()) { $qc = $qcomment = null; /* * Hmmm, code depending on the presence of a particular plugin? * This should be better if done by a hook */ - if(in_array('qcomment',$a->plugins)) { + if (in_array('qcomment',$a->plugins)) { $qc = ((local_user()) ? get_pconfig(local_user(),'qcomment','words') : null); $qcomment = (($qc) ? explode("\n",$qc) : null); } $comment_box = replace_macros($template,array( '$return_path' => $a->query_string, - '$threaded' => $this->is_threaded(), -// '$jsreload' => (($conv->get_mode() === 'display') ? $_SESSION['return_url'] : ''), - '$jsreload' => '', - '$type' => (($conv->get_mode() === 'profile') ? 'wall-comment' : 'net-comment'), - '$id' => $this->get_id(), - '$parent' => $this->get_id(), - '$qcomment' => $qcomment, + '$threaded' => $this->is_threaded(), +// '$jsreload' => (($conv->get_mode() === 'display') ? $_SESSION['return_url'] : ''), + '$jsreload' => '', + '$type' => (($conv->get_mode() === 'profile') ? 'wall-comment' : 'net-comment'), + '$id' => $this->get_id(), + '$parent' => $this->get_id(), + '$qcomment' => $qcomment, '$profile_uid' => $conv->get_profile_owner(), - '$mylink' => $a->remove_baseurl($a->contact['url']), - '$mytitle' => t('This is you'), - '$myphoto' => $a->remove_baseurl($a->contact['thumb']), - '$comment' => t('Comment'), - '$submit' => t('Submit'), - '$edbold' => t('Bold'), - '$editalic' => t('Italic'), - '$eduline' => t('Underline'), - '$edquote' => t('Quote'), - '$edcode' => t('Code'), - '$edimg' => t('Image'), - '$edurl' => t('Link'), - '$edvideo' => t('Video'), - '$preview' => ((feature_enabled($conv->get_profile_owner(),'preview')) ? t('Preview') : ''), - '$indent' => $indent, - '$sourceapp' => t($a->sourcename), - '$ww' => (($conv->get_mode() === 'network') ? $ww : ''), - '$rand_num' => random_digits(12) + '$mylink' => $a->remove_baseurl($a->contact['url']), + '$mytitle' => t('This is you'), + '$myphoto' => $a->remove_baseurl($a->contact['thumb']), + '$comment' => t('Comment'), + '$submit' => t('Submit'), + '$edbold' => t('Bold'), + '$editalic' => t('Italic'), + '$eduline' => t('Underline'), + '$edquote' => t('Quote'), + '$edcode' => t('Code'), + '$edimg' => t('Image'), + '$edurl' => t('Link'), + '$edvideo' => t('Video'), + '$preview' => ((feature_enabled($conv->get_profile_owner(),'preview')) ? t('Preview') : ''), + '$indent' => $indent, + '$sourceapp' => t($a->sourcename), + '$ww' => (($conv->get_mode() === 'network') ? $ww : ''), + '$rand_num' => random_digits(12) )); } @@ -760,14 +772,13 @@ class Item extends BaseObject { $this->owner_photo = $a->page_contact['thumb']; $this->owner_name = $a->page_contact['name']; $this->wall_to_wall = true; - } - else if($this->get_data_value('owner-link')) { + } elseif($this->get_data_value('owner-link')) { $owner_linkmatch = (($this->get_data_value('owner-link')) && link_compare($this->get_data_value('owner-link'),$this->get_data_value('author-link'))); $alias_linkmatch = (($this->get_data_value('alias')) && link_compare($this->get_data_value('alias'),$this->get_data_value('author-link'))); $owner_namematch = (($this->get_data_value('owner-name')) && $this->get_data_value('owner-name') == $this->get_data_value('author-name')); - if((! $owner_linkmatch) && (! $alias_linkmatch) && (! $owner_namematch)) { + if ((! $owner_linkmatch) && (! $alias_linkmatch) && (! $owner_namematch)) { // The author url doesn't match the owner (typically the contact) // and also doesn't match the contact alias. @@ -783,18 +794,18 @@ class Item extends BaseObject { $this->owner_name = $this->get_data_value('owner-name'); $this->wall_to_wall = true; // If it is our contact, use a friendly redirect link - if((link_compare($this->get_data_value('owner-link'),$this->get_data_value('url'))) + if ((link_compare($this->get_data_value('owner-link'),$this->get_data_value('url'))) && ($this->get_data_value('network') === NETWORK_DFRN)) { $this->owner_url = $this->get_redirect_url(); - } - else + } else { $this->owner_url = zrl($this->get_data_value('owner-link')); + } } } } } - if(!$this->wall_to_wall) { + if (!$this->wall_to_wall) { $this->set_template('wall'); $this->owner_url = ''; $this->owner_photo = ''; @@ -822,8 +833,6 @@ class Item extends BaseObject { return $this->visiting; } - - - } +/// @TODO These are discouraged and should be removed: ?> diff --git a/update.php b/update.php index 0679b5a1f8..3bd9cbe610 100644 --- a/update.php +++ b/update.php @@ -1,6 +1,6 @@ false )); $sprvkey = ''; openssl_pkey_export($sres, $sprvkey); @@ -123,7 +123,7 @@ function update_1011() { q("ALTER TABLE `contact` ADD `nick` CHAR( 255 ) NOT NULL AFTER `name` "); $r = q("SELECT * FROM `contact` WHERE 1"); if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { q("UPDATE `contact` SET `nick` = '%s' WHERE `id` = %d", dbesc(basename($rr['url'])), intval($rr['id']) @@ -146,7 +146,7 @@ function update_1014() { q("ALTER TABLE `contact` ADD `micro` TEXT NOT NULL AFTER `thumb` "); $r = q("SELECT * FROM `photo` WHERE `scale` = 4"); if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { $ph = new Photo($rr['data']); if($ph->is_valid()) { $ph->scaleImage(48); @@ -156,7 +156,7 @@ function update_1014() { } $r = q("SELECT * FROM `contact` WHERE 1"); if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { if(stristr($rr['thumb'],'avatar')) q("UPDATE `contact` SET `micro` = '%s' WHERE `id` = %d", dbesc(str_replace('avatar','micro',$rr['thumb'])), @@ -309,7 +309,7 @@ function update_1031() { // Repair any bad links that slipped into the item table $r = q("SELECT `id`, `object` FROM `item` WHERE `object` != '' "); if($r && dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { if(strstr($rr['object'],'type="http')) { q("UPDATE `item` SET `object` = '%s' WHERE `id` = %d", dbesc(str_replace('type="http','href="http',$rr['object'])), @@ -357,7 +357,7 @@ function update_1036() { $r = dbq("SELECT * FROM `contact` WHERE `network` = 'dfrn' && `photo` LIKE '%include/photo%' "); if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { q("UPDATE `contact` SET `photo` = '%s', `thumb` = '%s', `micro` = '%s' WHERE `id` = %d", dbesc(str_replace('include/photo','photo',$rr['photo'])), dbesc(str_replace('include/photo','photo',$rr['thumb'])), @@ -607,7 +607,7 @@ function update_1075() { q("ALTER TABLE `user` ADD `guid` CHAR( 16 ) NOT NULL AFTER `uid` "); $r = q("SELECT `uid` FROM `user` WHERE 1"); if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { $found = true; do { $guid = substr(random_string(),0,16); @@ -689,7 +689,7 @@ function update_1082() { return; $r = q("SELECT distinct(`resource-id`) FROM `photo` WHERE 1 group by `id`"); if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { $guid = get_guid(); q("update `photo` set `guid` = '%s' where `resource-id` = '%s'", dbesc($guid), @@ -732,7 +732,7 @@ function update_1087() { $r = q("SELECT `id` FROM `item` WHERE `parent` = `id` "); if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { $x = q("SELECT max(`created`) AS `cdate` FROM `item` WHERE `parent` = %d LIMIT 1", intval($rr['id']) ); @@ -855,7 +855,7 @@ function update_1100() { $r = q("select id, url from contact where url != '' and nurl = '' "); if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { q("update contact set nurl = '%s' where id = %d", dbesc(normalise_link($rr['url'])), intval($rr['id']) @@ -1169,7 +1169,7 @@ function update_1136() { $r = q("select * from config where 1 order by id desc"); if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { $found = false; foreach($arr as $x) { if($x['cat'] == $rr['cat'] && $x['k'] == $rr['k']) { @@ -1188,7 +1188,7 @@ function update_1136() { $arr = array(); $r = q("select * from pconfig where 1 order by id desc"); if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { $found = false; foreach($arr as $x) { if($x['uid'] == $rr['uid'] && $x['cat'] == $rr['cat'] && $x['k'] == $rr['k']) { diff --git a/view/lang/de/messages.po b/view/lang/de/messages.po index dc69f40a8d..665a0f9645 100644 --- a/view/lang/de/messages.po +++ b/view/lang/de/messages.po @@ -22,7 +22,7 @@ # Matthias Moritz , 2012 # Oliver , 2015 # Oliver , 2012 -# rabuzarus , 2016 +# rabuzarus , 2016-2017 # Sennewood , 2013 # Sennewood , 2012-2013 # silke m , 2015 @@ -36,8 +36,8 @@ msgstr "" "Project-Id-Version: friendica\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-12-19 07:46+0100\n" -"PO-Revision-Date: 2016-12-19 11:19+0000\n" -"Last-Translator: Tobias Diekershoff \n" +"PO-Revision-Date: 2017-01-02 17:16+0000\n" +"Last-Translator: rabuzarus \n" "Language-Team: German (http://www.transifex.com/Friendica/friendica/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -5796,7 +5796,7 @@ msgstr "Browser alle xx Sekunden aktualisieren" #: mod/settings.php:1003 msgid "Minimum of 10 seconds. Enter -1 to disable it." -msgstr "Minimum sind 10 Sekeunden. Gib -1 ein um abzuschalten." +msgstr "Minimum sind 10 Sekunden. Gib -1 ein um abzuschalten." #: mod/settings.php:1004 msgid "Number of items to display per page:" @@ -7756,7 +7756,7 @@ msgstr "Beziehe Information und Schlüsselworte" #: mod/contacts.php:575 msgid "Contact" -msgstr "Kontakt: " +msgstr "Kontakt" #: mod/contacts.php:578 msgid "Profile Visibility" diff --git a/view/lang/de/strings.php b/view/lang/de/strings.php index 67af0eb7ef..4d27608f6f 100644 --- a/view/lang/de/strings.php +++ b/view/lang/de/strings.php @@ -1337,7 +1337,7 @@ $a->strings["Mobile Theme:"] = "Mobiles Theme"; $a->strings["Suppress warning of insecure networks"] = "Warnung wegen unsicheren Netzwerken unterdrücken"; $a->strings["Should the system suppress the warning that the current group contains members of networks that can't receive non public postings."] = "Soll das System Warnungen unterdrücken, die angezeigt werden weil von dir eingerichtete Kontakt-Gruppen Accounts aus Netzwerken beinhalten, die keine nicht öffentlichen Beiträge empfangen können."; $a->strings["Update browser every xx seconds"] = "Browser alle xx Sekunden aktualisieren"; -$a->strings["Minimum of 10 seconds. Enter -1 to disable it."] = "Minimum sind 10 Sekeunden. Gib -1 ein um abzuschalten."; +$a->strings["Minimum of 10 seconds. Enter -1 to disable it."] = "Minimum sind 10 Sekunden. Gib -1 ein um abzuschalten."; $a->strings["Number of items to display per page:"] = "Zahl der Beiträge, die pro Netzwerkseite angezeigt werden sollen: "; $a->strings["Maximum of 100 items"] = "Maximal 100 Beiträge"; $a->strings["Number of items to display per page when viewed from mobile device:"] = "Zahl der Beiträge, die pro Netzwerkseite auf mobilen Geräten angezeigt werden sollen:"; @@ -1777,7 +1777,7 @@ $a->strings["Communications lost with this contact!"] = "Verbindungen mit diesem $a->strings["Fetch further information for feeds"] = "Weitere Informationen zu Feeds holen"; $a->strings["Fetch information"] = "Beziehe Information"; $a->strings["Fetch information and keywords"] = "Beziehe Information und Schlüsselworte"; -$a->strings["Contact"] = "Kontakt: "; +$a->strings["Contact"] = "Kontakt"; $a->strings["Profile Visibility"] = "Profil-Sichtbarkeit"; $a->strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Bitte wähle eines Deiner Profile das angezeigt werden soll, wenn %s Dein Profil aufruft."; $a->strings["Contact Information / Notes"] = "Kontakt Informationen / Notizen"; diff --git a/view/lang/es/messages.po b/view/lang/es/messages.po index 679995c095..ec04800226 100644 --- a/view/lang/es/messages.po +++ b/view/lang/es/messages.po @@ -35,8 +35,8 @@ msgid "" msgstr "" "Project-Id-Version: friendica\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-12-06 08:42+0100\n" -"PO-Revision-Date: 2016-12-07 12:42+0000\n" +"POT-Creation-Date: 2016-12-19 07:46+0100\n" +"PO-Revision-Date: 2016-12-28 11:37+0000\n" "Last-Translator: Albert\n" "Language-Team: Spanish (http://www.transifex.com/Friendica/friendica/language/es/)\n" "MIME-Version: 1.0\n" @@ -45,185 +45,6 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: boot.php:970 -msgid "Delete this item?" -msgstr "¿Eliminar este elemento?" - -#: boot.php:971 mod/content.php:727 mod/content.php:945 mod/photos.php:1589 -#: mod/photos.php:1637 mod/photos.php:1723 object/Item.php:403 -#: object/Item.php:719 -msgid "Comment" -msgstr "Comentar" - -#: boot.php:972 include/contact_widgets.php:242 include/ForumManager.php:119 -#: include/items.php:2241 mod/content.php:624 object/Item.php:432 -#: view/theme/vier/theme.php:260 -msgid "show more" -msgstr "ver más" - -#: boot.php:973 -msgid "show fewer" -msgstr "ver menos" - -#: boot.php:1655 -#, php-format -msgid "Update %s failed. See error logs." -msgstr "Falló la actualización de %s. Mira los registros de errores." - -#: boot.php:1767 -msgid "Create a New Account" -msgstr "Crear una nueva cuenta" - -#: boot.php:1768 include/nav.php:109 mod/register.php:289 -msgid "Register" -msgstr "Registrarse" - -#: boot.php:1792 include/nav.php:78 view/theme/frio/theme.php:246 -msgid "Logout" -msgstr "Salir" - -#: boot.php:1793 include/nav.php:95 mod/bookmarklet.php:12 -msgid "Login" -msgstr "Acceder" - -#: boot.php:1795 mod/lostpass.php:161 -msgid "Nickname or Email: " -msgstr "Apodo o Correo electrónico: " - -#: boot.php:1796 -msgid "Password: " -msgstr "Contraseña: " - -#: boot.php:1797 -msgid "Remember me" -msgstr "Recordarme" - -#: boot.php:1800 -msgid "Or login using OpenID: " -msgstr "O inicia sesión usando OpenID: " - -#: boot.php:1806 -msgid "Forgot your password?" -msgstr "¿Olvidaste la contraseña?" - -#: boot.php:1807 mod/lostpass.php:109 -msgid "Password Reset" -msgstr "Restablecer la contraseña" - -#: boot.php:1809 -msgid "Website Terms of Service" -msgstr "Términos de uso del sitio" - -#: boot.php:1810 -msgid "terms of service" -msgstr "Términos de uso" - -#: boot.php:1812 -msgid "Website Privacy Policy" -msgstr "Política de privacidad del sitio" - -#: boot.php:1813 -msgid "privacy policy" -msgstr "Política de privacidad" - -#: include/datetime.php:57 include/datetime.php:59 mod/profiles.php:705 -msgid "Miscellaneous" -msgstr "Varios" - -#: include/datetime.php:183 include/identity.php:629 -msgid "Birthday:" -msgstr "Fecha de nacimiento:" - -#: include/datetime.php:185 mod/profiles.php:728 -msgid "Age: " -msgstr "Edad: " - -#: include/datetime.php:187 -msgid "YYYY-MM-DD or MM-DD" -msgstr "YYYY-MM-DD o MM-DD" - -#: include/datetime.php:341 -msgid "never" -msgstr "nunca" - -#: include/datetime.php:347 -msgid "less than a second ago" -msgstr "hace menos de un segundo" - -#: include/datetime.php:350 -msgid "year" -msgstr "año" - -#: include/datetime.php:350 -msgid "years" -msgstr "años" - -#: include/datetime.php:351 include/event.php:480 mod/events.php:389 -#: mod/cal.php:284 -msgid "month" -msgstr "mes" - -#: include/datetime.php:351 -msgid "months" -msgstr "meses" - -#: include/datetime.php:352 include/event.php:481 mod/events.php:390 -#: mod/cal.php:285 -msgid "week" -msgstr "semana" - -#: include/datetime.php:352 -msgid "weeks" -msgstr "semanas" - -#: include/datetime.php:353 include/event.php:482 mod/events.php:391 -#: mod/cal.php:286 -msgid "day" -msgstr "día" - -#: include/datetime.php:353 -msgid "days" -msgstr "días" - -#: include/datetime.php:354 -msgid "hour" -msgstr "hora" - -#: include/datetime.php:354 -msgid "hours" -msgstr "horas" - -#: include/datetime.php:355 -msgid "minute" -msgstr "minuto" - -#: include/datetime.php:355 -msgid "minutes" -msgstr "minutos" - -#: include/datetime.php:356 -msgid "second" -msgstr "segundo" - -#: include/datetime.php:356 -msgid "seconds" -msgstr "segundos" - -#: include/datetime.php:365 -#, php-format -msgid "%1$d %2$s ago" -msgstr "hace %1$d %2$s" - -#: include/datetime.php:572 -#, php-format -msgid "%s's birthday" -msgstr "Cumpleaños de %s" - -#: include/datetime.php:573 include/dfrn.php:1109 -#, php-format -msgid "Happy Birthday %s" -msgstr "Feliz cumpleaños %s" - #: include/contact_widgets.php:6 msgid "Add New Contact" msgstr "Añadir nuevo contacto" @@ -236,8 +57,9 @@ msgstr "Escribe la dirección o página web" msgid "Example: bob@example.com, http://example.com/barbara" msgstr "Ejemplo: miguel@ejemplo.com, http://ejemplo.com/miguel" -#: include/contact_widgets.php:10 include/identity.php:218 mod/dirfind.php:201 -#: mod/match.php:87 mod/allfriends.php:82 mod/suggest.php:101 +#: include/contact_widgets.php:10 include/identity.php:218 +#: mod/allfriends.php:82 mod/dirfind.php:201 mod/match.php:87 +#: mod/suggest.php:101 msgid "Connect" msgstr "Conectar" @@ -256,10 +78,9 @@ msgstr "Buscar personas" msgid "Enter name or interest" msgstr "Introduzce nombre o intereses" -#: include/contact_widgets.php:32 include/conversation.php:981 -#: include/Contact.php:361 mod/dirfind.php:204 mod/match.php:72 -#: mod/allfriends.php:66 mod/contacts.php:602 mod/follow.php:103 -#: mod/suggest.php:83 +#: include/contact_widgets.php:32 include/Contact.php:354 +#: include/conversation.php:981 mod/allfriends.php:66 mod/dirfind.php:204 +#: mod/match.php:72 mod/suggest.php:83 mod/contacts.php:602 mod/follow.php:103 msgid "Connect/Follow" msgstr "Conectar/Seguir" @@ -315,80 +136,682 @@ msgid_plural "%d contacts in common" msgstr[0] "%d contacto en común" msgstr[1] "%d contactos en común" -#: include/NotificationsManager.php:153 -msgid "System" -msgstr "Sistema" +#: include/contact_widgets.php:242 include/ForumManager.php:119 +#: include/items.php:2245 mod/content.php:624 object/Item.php:432 +#: view/theme/vier/theme.php:260 boot.php:972 +msgid "show more" +msgstr "ver más" -#: include/NotificationsManager.php:160 include/nav.php:158 mod/admin.php:411 -#: view/theme/frio/theme.php:256 -msgid "Network" -msgstr "Red" +#: include/ForumManager.php:114 include/nav.php:131 include/text.php:1025 +#: view/theme/vier/theme.php:255 +msgid "Forums" +msgstr "Foros" -#: include/NotificationsManager.php:167 mod/profiles.php:703 -#: mod/network.php:846 -msgid "Personal" -msgstr "Personal" +#: include/ForumManager.php:116 view/theme/vier/theme.php:257 +msgid "External link to forum" +msgstr "Enlace externo al foro" -#: include/NotificationsManager.php:174 include/nav.php:105 -#: include/nav.php:161 -msgid "Home" -msgstr "Inicio" +#: include/profile_selectors.php:6 +msgid "Male" +msgstr "Hombre" -#: include/NotificationsManager.php:181 include/nav.php:166 -msgid "Introductions" -msgstr "Presentaciones" +#: include/profile_selectors.php:6 +msgid "Female" +msgstr "Mujer" -#: include/NotificationsManager.php:234 include/NotificationsManager.php:244 +#: include/profile_selectors.php:6 +msgid "Currently Male" +msgstr "Actualmente Hombre" + +#: include/profile_selectors.php:6 +msgid "Currently Female" +msgstr "Actualmente Mujer" + +#: include/profile_selectors.php:6 +msgid "Mostly Male" +msgstr "Mayormente Hombre" + +#: include/profile_selectors.php:6 +msgid "Mostly Female" +msgstr "Mayormente Mujer" + +#: include/profile_selectors.php:6 +msgid "Transgender" +msgstr "Transgenérico" + +#: include/profile_selectors.php:6 +msgid "Intersex" +msgstr "Bisexual" + +#: include/profile_selectors.php:6 +msgid "Transsexual" +msgstr "Transexual" + +#: include/profile_selectors.php:6 +msgid "Hermaphrodite" +msgstr "Hermafrodita" + +#: include/profile_selectors.php:6 +msgid "Neuter" +msgstr "Neutro" + +#: include/profile_selectors.php:6 +msgid "Non-specific" +msgstr "Sin especificar" + +#: include/profile_selectors.php:6 +msgid "Other" +msgstr "Otro" + +#: include/profile_selectors.php:6 include/conversation.php:1487 +msgid "Undecided" +msgid_plural "Undecided" +msgstr[0] "Indeciso" +msgstr[1] "Indeciso" + +#: include/profile_selectors.php:23 +msgid "Males" +msgstr "Hombres" + +#: include/profile_selectors.php:23 +msgid "Females" +msgstr "Mujeres" + +#: include/profile_selectors.php:23 +msgid "Gay" +msgstr "Gay" + +#: include/profile_selectors.php:23 +msgid "Lesbian" +msgstr "Lesbiana" + +#: include/profile_selectors.php:23 +msgid "No Preference" +msgstr "Sin preferencias" + +#: include/profile_selectors.php:23 +msgid "Bisexual" +msgstr "Bisexual" + +#: include/profile_selectors.php:23 +msgid "Autosexual" +msgstr "Autosexual" + +#: include/profile_selectors.php:23 +msgid "Abstinent" +msgstr "Célibe" + +#: include/profile_selectors.php:23 +msgid "Virgin" +msgstr "Virgen" + +#: include/profile_selectors.php:23 +msgid "Deviant" +msgstr "Desviado" + +#: include/profile_selectors.php:23 +msgid "Fetish" +msgstr "Fetichista" + +#: include/profile_selectors.php:23 +msgid "Oodles" +msgstr "Orgiástico" + +#: include/profile_selectors.php:23 +msgid "Nonsexual" +msgstr "Asexual" + +#: include/profile_selectors.php:42 +msgid "Single" +msgstr "Soltero" + +#: include/profile_selectors.php:42 +msgid "Lonely" +msgstr "Solitario" + +#: include/profile_selectors.php:42 +msgid "Available" +msgstr "Disponible" + +#: include/profile_selectors.php:42 +msgid "Unavailable" +msgstr "No disponible" + +#: include/profile_selectors.php:42 +msgid "Has crush" +msgstr "Enamorado" + +#: include/profile_selectors.php:42 +msgid "Infatuated" +msgstr "Loco/a por alguien" + +#: include/profile_selectors.php:42 +msgid "Dating" +msgstr "De citas" + +#: include/profile_selectors.php:42 +msgid "Unfaithful" +msgstr "Infiel" + +#: include/profile_selectors.php:42 +msgid "Sex Addict" +msgstr "Adicto al sexo" + +#: include/profile_selectors.php:42 include/user.php:280 include/user.php:284 +msgid "Friends" +msgstr "Amigos" + +#: include/profile_selectors.php:42 +msgid "Friends/Benefits" +msgstr "Amigos con beneficios" + +#: include/profile_selectors.php:42 +msgid "Casual" +msgstr "Casual" + +#: include/profile_selectors.php:42 +msgid "Engaged" +msgstr "Comprometido/a" + +#: include/profile_selectors.php:42 +msgid "Married" +msgstr "Casado/a" + +#: include/profile_selectors.php:42 +msgid "Imaginarily married" +msgstr "Casado imaginario" + +#: include/profile_selectors.php:42 +msgid "Partners" +msgstr "Socios" + +#: include/profile_selectors.php:42 +msgid "Cohabiting" +msgstr "Cohabitando" + +#: include/profile_selectors.php:42 +msgid "Common law" +msgstr "Pareja de hecho" + +#: include/profile_selectors.php:42 +msgid "Happy" +msgstr "Feliz" + +#: include/profile_selectors.php:42 +msgid "Not looking" +msgstr "No busca relación" + +#: include/profile_selectors.php:42 +msgid "Swinger" +msgstr "Swinger" + +#: include/profile_selectors.php:42 +msgid "Betrayed" +msgstr "Traicionado/a" + +#: include/profile_selectors.php:42 +msgid "Separated" +msgstr "Separado/a" + +#: include/profile_selectors.php:42 +msgid "Unstable" +msgstr "Inestable" + +#: include/profile_selectors.php:42 +msgid "Divorced" +msgstr "Divorciado/a" + +#: include/profile_selectors.php:42 +msgid "Imaginarily divorced" +msgstr "Divorciado imaginario" + +#: include/profile_selectors.php:42 +msgid "Widowed" +msgstr "Viudo/a" + +#: include/profile_selectors.php:42 +msgid "Uncertain" +msgstr "Incierto" + +#: include/profile_selectors.php:42 +msgid "It's complicated" +msgstr "Es complicado" + +#: include/profile_selectors.php:42 +msgid "Don't care" +msgstr "No te importa" + +#: include/profile_selectors.php:42 +msgid "Ask me" +msgstr "Pregúntame" + +#: include/dba_pdo.php:72 include/dba.php:56 #, php-format -msgid "%s commented on %s's post" -msgstr "%s comentó la publicación de %s" +msgid "Cannot locate DNS info for database server '%s'" +msgstr "No se puede encontrar información DNS para la base de datos del servidor '%s'" -#: include/NotificationsManager.php:243 +#: include/auth.php:45 +msgid "Logged out." +msgstr "Sesión finalizada" + +#: include/auth.php:116 include/auth.php:178 mod/openid.php:100 +msgid "Login failed." +msgstr "Accesso fallido." + +#: include/auth.php:132 include/user.php:75 +msgid "" +"We encountered a problem while logging in with the OpenID you provided. " +"Please check the correct spelling of the ID." +msgstr "Se ha encontrado un problema para acceder con el OpenID que has escrito. Verifica que lo hayas escrito correctamente." + +#: include/auth.php:132 include/user.php:75 +msgid "The error message was:" +msgstr "El mensaje del error fue:" + +#: include/group.php:25 +msgid "" +"A deleted group with this name was revived. Existing item permissions " +"may apply to this group and any future members. If this is " +"not what you intended, please create another group with a different name." +msgstr "Un grupo eliminado con este nombre fue restablecido. Los permisos existentes pueden aplicarse a este grupo y a sus futuros miembros. Si esto no es lo que pretendes, por favor, crea otro grupo con un nombre diferente." + +#: include/group.php:209 +msgid "Default privacy group for new contacts" +msgstr "Grupo por defecto para nuevos contactos" + +#: include/group.php:242 +msgid "Everybody" +msgstr "Todo el mundo" + +#: include/group.php:265 +msgid "edit" +msgstr "editar" + +#: include/group.php:286 mod/newmember.php:61 +msgid "Groups" +msgstr "Grupos" + +#: include/group.php:288 +msgid "Edit groups" +msgstr "Editar grupo" + +#: include/group.php:290 +msgid "Edit group" +msgstr "Editar grupo" + +#: include/group.php:291 +msgid "Create a new group" +msgstr "Crear un nuevo grupo" + +#: include/group.php:292 mod/group.php:94 mod/group.php:178 +msgid "Group Name: " +msgstr "Nombre del grupo: " + +#: include/group.php:294 +msgid "Contacts not in any group" +msgstr "Contactos sin grupo" + +#: include/group.php:296 mod/network.php:201 +msgid "add" +msgstr "añadir" + +#: include/contact_selectors.php:32 +msgid "Unknown | Not categorised" +msgstr "Desconocido | No clasificado" + +#: include/contact_selectors.php:33 +msgid "Block immediately" +msgstr "Bloquear inmediatamente" + +#: include/contact_selectors.php:34 +msgid "Shady, spammer, self-marketer" +msgstr "Sospechoso, spammer, auto-publicidad" + +#: include/contact_selectors.php:35 +msgid "Known to me, but no opinion" +msgstr "Le conozco, sin opinión" + +#: include/contact_selectors.php:36 +msgid "OK, probably harmless" +msgstr "OK, probablemente inofensivo" + +#: include/contact_selectors.php:37 +msgid "Reputable, has my trust" +msgstr "Buena reputación, tiene mi confianza" + +#: include/contact_selectors.php:56 mod/admin.php:890 +msgid "Frequently" +msgstr "Frequentemente" + +#: include/contact_selectors.php:57 mod/admin.php:891 +msgid "Hourly" +msgstr "Cada hora" + +#: include/contact_selectors.php:58 mod/admin.php:892 +msgid "Twice daily" +msgstr "Dos veces al día" + +#: include/contact_selectors.php:59 mod/admin.php:893 +msgid "Daily" +msgstr "Diariamente" + +#: include/contact_selectors.php:60 +msgid "Weekly" +msgstr "Semanalmente" + +#: include/contact_selectors.php:61 +msgid "Monthly" +msgstr "Mensualmente" + +#: include/contact_selectors.php:76 mod/dfrn_request.php:868 +msgid "Friendica" +msgstr "Friendica" + +#: include/contact_selectors.php:77 +msgid "OStatus" +msgstr "OStatus" + +#: include/contact_selectors.php:78 +msgid "RSS/Atom" +msgstr "RSS/Atom" + +#: include/contact_selectors.php:79 include/contact_selectors.php:86 +#: mod/admin.php:1396 mod/admin.php:1409 mod/admin.php:1422 mod/admin.php:1440 +msgid "Email" +msgstr "Correo electrónico" + +#: include/contact_selectors.php:80 mod/settings.php:842 +#: mod/dfrn_request.php:870 +msgid "Diaspora" +msgstr "Diaspora*" + +#: include/contact_selectors.php:81 +msgid "Facebook" +msgstr "Facebook" + +#: include/contact_selectors.php:82 +msgid "Zot!" +msgstr "Zot!" + +#: include/contact_selectors.php:83 +msgid "LinkedIn" +msgstr "LinkedIn" + +#: include/contact_selectors.php:84 +msgid "XMPP/IM" +msgstr "XMPP/IM" + +#: include/contact_selectors.php:85 +msgid "MySpace" +msgstr "MySpace" + +#: include/contact_selectors.php:87 +msgid "Google+" +msgstr "Google+" + +#: include/contact_selectors.php:88 +msgid "pump.io" +msgstr "pump.io" + +#: include/contact_selectors.php:89 +msgid "Twitter" +msgstr "Twitter" + +#: include/contact_selectors.php:90 +msgid "Diaspora Connector" +msgstr "Conector Diaspora" + +#: include/contact_selectors.php:91 +msgid "GNU Social" +msgstr "GNUsocial (OStatus)" + +#: include/contact_selectors.php:92 +msgid "App.net" +msgstr "App.net" + +#: include/contact_selectors.php:103 +msgid "Hubzilla/Redmatrix" +msgstr "Hubzilla/Redmatrix" + +#: include/acl_selectors.php:327 +msgid "Post to Email" +msgstr "Publicar mediante correo electrónico" + +#: include/acl_selectors.php:332 #, php-format -msgid "%s created a new post" -msgstr "%s creó una nueva publicación" +msgid "Connectors disabled, since \"%s\" is enabled." +msgstr "Conectores deshabilitados, ya que \"%s\" es habilitado." -#: include/NotificationsManager.php:256 +#: include/acl_selectors.php:333 mod/settings.php:1181 +msgid "Hide your profile details from unknown viewers?" +msgstr "¿Quieres que los detalles de tu perfil permanezcan ocultos a los desconocidos?" + +#: include/acl_selectors.php:338 +msgid "Visible to everybody" +msgstr "Visible para cualquiera" + +#: include/acl_selectors.php:339 view/theme/vier/config.php:103 +msgid "show" +msgstr "mostrar" + +#: include/acl_selectors.php:340 view/theme/vier/config.php:103 +msgid "don't show" +msgstr "no mostrar" + +#: include/acl_selectors.php:346 mod/editpost.php:133 +msgid "CC: email addresses" +msgstr "CC: dirección de correo electrónico" + +#: include/acl_selectors.php:347 mod/editpost.php:140 +msgid "Example: bob@example.com, mary@example.com" +msgstr "Ejemplo: juan@ejemplo.com, sofia@ejemplo.com" + +#: include/acl_selectors.php:349 mod/events.php:509 mod/photos.php:1156 +#: mod/photos.php:1535 +msgid "Permissions" +msgstr "Permisos" + +#: include/acl_selectors.php:350 +msgid "Close" +msgstr "Cerrado" + +#: include/like.php:163 include/conversation.php:130 +#: include/conversation.php:266 include/text.php:1804 mod/subthread.php:87 +#: mod/tagger.php:62 +msgid "photo" +msgstr "foto" + +#: include/like.php:163 include/diaspora.php:1406 include/conversation.php:125 +#: include/conversation.php:134 include/conversation.php:261 +#: include/conversation.php:270 mod/subthread.php:87 mod/tagger.php:62 +msgid "status" +msgstr "estado" + +#: include/like.php:165 include/conversation.php:122 +#: include/conversation.php:258 include/text.php:1802 +msgid "event" +msgstr "evento" + +#: include/like.php:182 include/diaspora.php:1402 include/conversation.php:141 #, php-format -msgid "%s liked %s's post" -msgstr "A %s le gusta la publicación de %s" +msgid "%1$s likes %2$s's %3$s" +msgstr "A %1$s le gusta %3$s de %2$s" -#: include/NotificationsManager.php:267 +#: include/like.php:184 include/conversation.php:144 #, php-format -msgid "%s disliked %s's post" -msgstr "A %s no le gusta la publicación de %s" +msgid "%1$s doesn't like %2$s's %3$s" +msgstr "A %1$s no le gusta %3$s de %2$s" -#: include/NotificationsManager.php:278 +#: include/like.php:186 #, php-format -msgid "%s is attending %s's event" -msgstr "%s está asistiendo al evento %s's" +msgid "%1$s is attending %2$s's %3$s" +msgstr "%1$s atenderá %2$s's %3$s" -#: include/NotificationsManager.php:289 +#: include/like.php:188 #, php-format -msgid "%s is not attending %s's event" -msgstr "%s no está asistiendo al evento %s's" +msgid "%1$s is not attending %2$s's %3$s" +msgstr "%1$s no atenderá %2$s's %3$s" -#: include/NotificationsManager.php:300 +#: include/like.php:190 #, php-format -msgid "%s may attend %s's event" -msgstr "%s podría asistir al evento %s's" +msgid "%1$s may attend %2$s's %3$s" +msgstr "%1$s puede que atienda %2$s's %3$s" -#: include/NotificationsManager.php:315 +#: include/message.php:15 include/message.php:173 +msgid "[no subject]" +msgstr "[sin asunto]" + +#: include/message.php:145 include/Photo.php:1040 include/Photo.php:1056 +#: include/Photo.php:1064 include/Photo.php:1089 mod/wall_upload.php:218 +#: mod/wall_upload.php:232 mod/wall_upload.php:239 mod/item.php:478 +msgid "Wall Photos" +msgstr "Foto del Muro" + +#: include/plugin.php:526 include/plugin.php:528 +msgid "Click here to upgrade." +msgstr "Pulsa aquí para actualizar." + +#: include/plugin.php:534 +msgid "This action exceeds the limits set by your subscription plan." +msgstr "Esta acción excede los límites permitidos por tu subscripción." + +#: include/plugin.php:539 +msgid "This action is not available under your subscription plan." +msgstr "Esta acción no está permitida para tu subscripción." + +#: include/uimport.php:94 +msgid "Error decoding account file" +msgstr "Error decodificando el archivo de cuenta" + +#: include/uimport.php:100 +msgid "Error! No version data in file! This is not a Friendica account file?" +msgstr "Error! No hay datos de versión en el archivo! ¿Es esto de una cuenta friendica? " + +#: include/uimport.php:116 include/uimport.php:127 +msgid "Error! Cannot check nickname" +msgstr "Error! No puedo consultar el apodo" + +#: include/uimport.php:120 include/uimport.php:131 #, php-format -msgid "%s is now friends with %s" -msgstr "%s es ahora es amigo de %s" +msgid "User '%s' already exists on this server!" +msgstr "La cuenta '%s' ya existe en este servidor!" -#: include/NotificationsManager.php:748 -msgid "Friend Suggestion" -msgstr "Propuestas de amistad" +#: include/uimport.php:153 +msgid "User creation error" +msgstr "Error al crear la cuenta" -#: include/NotificationsManager.php:781 -msgid "Friend/Connect Request" -msgstr "Solicitud de Amistad/Conexión" +#: include/uimport.php:173 +msgid "User profile creation error" +msgstr "Error de creación del perfil de la cuenta" -#: include/NotificationsManager.php:781 -msgid "New Follower" -msgstr "Nuevo seguidor" +#: include/uimport.php:222 +#, php-format +msgid "%d contact not imported" +msgid_plural "%d contacts not imported" +msgstr[0] "%d contactos no encontrado" +msgstr[1] "%d contactos no importado" + +#: include/uimport.php:292 +msgid "Done. You can now login with your username and password" +msgstr "Hecho. Ahora podes ingresar con tu nombre de cuenta y la contraseña." + +#: include/datetime.php:57 include/datetime.php:59 mod/profiles.php:705 +msgid "Miscellaneous" +msgstr "Varios" + +#: include/datetime.php:183 include/identity.php:629 +msgid "Birthday:" +msgstr "Fecha de nacimiento:" + +#: include/datetime.php:185 mod/profiles.php:728 +msgid "Age: " +msgstr "Edad: " + +#: include/datetime.php:187 +msgid "YYYY-MM-DD or MM-DD" +msgstr "YYYY-MM-DD o MM-DD" + +#: include/datetime.php:341 +msgid "never" +msgstr "nunca" + +#: include/datetime.php:347 +msgid "less than a second ago" +msgstr "hace menos de un segundo" + +#: include/datetime.php:350 +msgid "year" +msgstr "año" + +#: include/datetime.php:350 +msgid "years" +msgstr "años" + +#: include/datetime.php:351 include/event.php:480 mod/cal.php:284 +#: mod/events.php:389 +msgid "month" +msgstr "mes" + +#: include/datetime.php:351 +msgid "months" +msgstr "meses" + +#: include/datetime.php:352 include/event.php:481 mod/cal.php:285 +#: mod/events.php:390 +msgid "week" +msgstr "semana" + +#: include/datetime.php:352 +msgid "weeks" +msgstr "semanas" + +#: include/datetime.php:353 include/event.php:482 mod/cal.php:286 +#: mod/events.php:391 +msgid "day" +msgstr "día" + +#: include/datetime.php:353 +msgid "days" +msgstr "días" + +#: include/datetime.php:354 +msgid "hour" +msgstr "hora" + +#: include/datetime.php:354 +msgid "hours" +msgstr "horas" + +#: include/datetime.php:355 +msgid "minute" +msgstr "minuto" + +#: include/datetime.php:355 +msgid "minutes" +msgstr "minutos" + +#: include/datetime.php:356 +msgid "second" +msgstr "segundo" + +#: include/datetime.php:356 +msgid "seconds" +msgstr "segundos" + +#: include/datetime.php:365 +#, php-format +msgid "%1$d %2$s ago" +msgstr "hace %1$d %2$s" + +#: include/datetime.php:572 +#, php-format +msgid "%s's birthday" +msgstr "Cumpleaños de %s" + +#: include/datetime.php:573 include/dfrn.php:1109 +#, php-format +msgid "Happy Birthday %s" +msgstr "Feliz cumpleaños %s" #: include/enotify.php:24 msgid "Friendica Notification" @@ -687,110 +1110,23 @@ msgstr "Nombre completo:\t%1$s\\nUbicación del sitio:\t%2$s\\nLogin Nombre:\t%3 msgid "Please visit %s to approve or reject the request." msgstr "Por favor visita %s para aprobar o negar la solicitud." -#: include/plugin.php:526 include/plugin.php:528 -msgid "Click here to upgrade." -msgstr "Pulsa aquí para actualizar." - -#: include/plugin.php:534 -msgid "This action exceeds the limits set by your subscription plan." -msgstr "Esta acción excede los límites permitidos por tu subscripción." - -#: include/plugin.php:539 -msgid "This action is not available under your subscription plan." -msgstr "Esta acción no está permitida para tu subscripción." - -#: include/ForumManager.php:114 include/text.php:1025 include/nav.php:131 -#: view/theme/vier/theme.php:255 -msgid "Forums" -msgstr "Foros" - -#: include/ForumManager.php:116 view/theme/vier/theme.php:257 -msgid "External link to forum" -msgstr "Enlace externo al foro" - -#: include/diaspora.php:1402 include/conversation.php:141 include/like.php:182 -#, php-format -msgid "%1$s likes %2$s's %3$s" -msgstr "A %1$s le gusta %3$s de %2$s" - -#: include/diaspora.php:1406 include/conversation.php:125 -#: include/conversation.php:134 include/conversation.php:261 -#: include/conversation.php:270 include/like.php:163 mod/tagger.php:62 -#: mod/subthread.php:87 -msgid "status" -msgstr "estado" - -#: include/diaspora.php:1958 -msgid "Sharing notification from Diaspora network" -msgstr "Compartir notificaciones con la red Diaspora*" - -#: include/diaspora.php:2864 -msgid "Attachments:" -msgstr "Archivos adjuntos:" - -#: include/dfrn.php:1108 -#, php-format -msgid "%s\\'s birthday" -msgstr "%s\\'s cumpleaños" - -#: include/uimport.php:94 -msgid "Error decoding account file" -msgstr "Error decodificando el archivo de cuenta" - -#: include/uimport.php:100 -msgid "Error! No version data in file! This is not a Friendica account file?" -msgstr "Error! No hay datos de versión en el archivo! ¿Es esto de una cuenta friendica? " - -#: include/uimport.php:116 include/uimport.php:127 -msgid "Error! Cannot check nickname" -msgstr "Error! No puedo consultar el apodo" - -#: include/uimport.php:120 include/uimport.php:131 -#, php-format -msgid "User '%s' already exists on this server!" -msgstr "La cuenta '%s' ya existe en este servidor!" - -#: include/uimport.php:153 -msgid "User creation error" -msgstr "Error al crear la cuenta" - -#: include/uimport.php:173 -msgid "User profile creation error" -msgstr "Error de creación del perfil de la cuenta" - -#: include/uimport.php:222 -#, php-format -msgid "%d contact not imported" -msgid_plural "%d contacts not imported" -msgstr[0] "%d contactos no encontrado" -msgstr[1] "%d contactos no importado" - -#: include/uimport.php:292 -msgid "Done. You can now login with your username and password" -msgstr "Hecho. Ahora podes ingresar con tu nombre de cuenta y la contraseña." - -#: include/dba.php:56 include/dba_pdo.php:72 -#, php-format -msgid "Cannot locate DNS info for database server '%s'" -msgstr "No se puede encontrar información DNS para la base de datos del servidor '%s'" - -#: include/event.php:16 include/bb2diaspora.php:148 mod/localtime.php:12 +#: include/event.php:16 include/bb2diaspora.php:152 mod/localtime.php:12 msgid "l F d, Y \\@ g:i A" msgstr "l F d, Y \\@ g:i A" #: include/event.php:33 include/event.php:51 include/event.php:487 -#: include/bb2diaspora.php:154 +#: include/bb2diaspora.php:158 msgid "Starts:" msgstr "Inicio:" #: include/event.php:36 include/event.php:57 include/event.php:488 -#: include/bb2diaspora.php:162 +#: include/bb2diaspora.php:166 msgid "Finishes:" msgstr "Final:" #: include/event.php:39 include/event.php:63 include/event.php:489 -#: include/identity.php:328 include/bb2diaspora.php:170 -#: mod/notifications.php:232 mod/events.php:494 mod/directory.php:137 +#: include/bb2diaspora.php:174 include/identity.php:328 +#: mod/notifications.php:232 mod/directory.php:137 mod/events.php:494 #: mod/contacts.php:628 msgid "Location:" msgstr "Localización:" @@ -943,7 +1279,7 @@ msgstr "Noviembre" msgid "December" msgstr "Diciembre" -#: include/event.php:479 mod/events.php:388 mod/cal.php:283 +#: include/event.php:479 mod/cal.php:283 mod/events.php:388 msgid "today" msgstr "hoy" @@ -963,7 +1299,7 @@ msgstr "l, F j" msgid "Edit event" msgstr "Editar evento" -#: include/event.php:615 include/text.php:1536 include/text.php:1543 +#: include/event.php:615 include/text.php:1532 include/text.php:1539 msgid "link to source" msgstr "Enlace al original" @@ -979,6 +1315,297 @@ msgstr "Exportar calendario como ical" msgid "Export calendar as csv" msgstr "Exportar calendario como csv" +#: include/nav.php:35 mod/navigation.php:19 +msgid "Nothing new here" +msgstr "Nada nuevo por aquí" + +#: include/nav.php:39 mod/navigation.php:23 +msgid "Clear notifications" +msgstr "Limpiar notificaciones" + +#: include/nav.php:40 include/text.php:1015 +msgid "@name, !forum, #tags, content" +msgstr "@name, !forum, #tags, contenido" + +#: include/nav.php:78 view/theme/frio/theme.php:246 boot.php:1792 +msgid "Logout" +msgstr "Salir" + +#: include/nav.php:78 view/theme/frio/theme.php:246 +msgid "End this session" +msgstr "Cerrar la sesión" + +#: include/nav.php:81 include/identity.php:714 mod/contacts.php:637 +#: mod/contacts.php:833 view/theme/frio/theme.php:249 +msgid "Status" +msgstr "Estado" + +#: include/nav.php:81 include/nav.php:161 view/theme/frio/theme.php:249 +msgid "Your posts and conversations" +msgstr "Tus publicaciones y conversaciones" + +#: include/nav.php:82 include/identity.php:605 include/identity.php:691 +#: include/identity.php:722 mod/profperm.php:104 mod/newmember.php:32 +#: mod/contacts.php:639 mod/contacts.php:841 view/theme/frio/theme.php:250 +msgid "Profile" +msgstr "Perfil" + +#: include/nav.php:82 view/theme/frio/theme.php:250 +msgid "Your profile page" +msgstr "Tu página de perfil" + +#: include/nav.php:83 include/identity.php:730 mod/fbrowser.php:32 +#: view/theme/frio/theme.php:251 +msgid "Photos" +msgstr "Fotografías" + +#: include/nav.php:83 view/theme/frio/theme.php:251 +msgid "Your photos" +msgstr "Tus fotos" + +#: include/nav.php:84 include/identity.php:738 include/identity.php:741 +#: view/theme/frio/theme.php:252 +msgid "Videos" +msgstr "Videos" + +#: include/nav.php:84 view/theme/frio/theme.php:252 +msgid "Your videos" +msgstr "Tus videos" + +#: include/nav.php:85 include/nav.php:149 include/identity.php:750 +#: include/identity.php:761 mod/cal.php:275 mod/events.php:379 +#: view/theme/frio/theme.php:253 view/theme/frio/theme.php:257 +msgid "Events" +msgstr "Eventos" + +#: include/nav.php:85 view/theme/frio/theme.php:253 +msgid "Your events" +msgstr "Tus eventos" + +#: include/nav.php:86 +msgid "Personal notes" +msgstr "Notas personales" + +#: include/nav.php:86 +msgid "Your personal notes" +msgstr "Tus notas personales" + +#: include/nav.php:95 mod/bookmarklet.php:12 boot.php:1793 +msgid "Login" +msgstr "Acceder" + +#: include/nav.php:95 +msgid "Sign in" +msgstr "Date de alta" + +#: include/nav.php:105 include/nav.php:161 +#: include/NotificationsManager.php:174 +msgid "Home" +msgstr "Inicio" + +#: include/nav.php:105 +msgid "Home Page" +msgstr "Página de inicio" + +#: include/nav.php:109 mod/register.php:289 boot.php:1768 +msgid "Register" +msgstr "Registrarse" + +#: include/nav.php:109 +msgid "Create an account" +msgstr "Crea una cuenta" + +#: include/nav.php:115 mod/help.php:47 view/theme/vier/theme.php:298 +msgid "Help" +msgstr "Ayuda" + +#: include/nav.php:115 +msgid "Help and documentation" +msgstr "Ayuda y documentación" + +#: include/nav.php:119 +msgid "Apps" +msgstr "Aplicaciones" + +#: include/nav.php:119 +msgid "Addon applications, utilities, games" +msgstr "Aplicaciones, utilidades, juegos" + +#: include/nav.php:123 include/text.php:1012 mod/search.php:149 +msgid "Search" +msgstr "Buscar" + +#: include/nav.php:123 +msgid "Search site content" +msgstr " Busca contenido en la página" + +#: include/nav.php:126 include/text.php:1020 +msgid "Full Text" +msgstr "Texto completo" + +#: include/nav.php:127 include/text.php:1021 +msgid "Tags" +msgstr "Tags" + +#: include/nav.php:128 include/nav.php:192 include/identity.php:783 +#: include/identity.php:786 include/text.php:1022 mod/contacts.php:792 +#: mod/contacts.php:853 mod/viewcontacts.php:116 view/theme/frio/theme.php:260 +msgid "Contacts" +msgstr "Contactos" + +#: include/nav.php:143 include/nav.php:145 mod/community.php:36 +msgid "Community" +msgstr "Comunidad" + +#: include/nav.php:143 +msgid "Conversations on this site" +msgstr "Conversaciones en este sitio" + +#: include/nav.php:145 +msgid "Conversations on the network" +msgstr "Conversaciones en la red" + +#: include/nav.php:149 include/identity.php:753 include/identity.php:764 +#: view/theme/frio/theme.php:257 +msgid "Events and Calendar" +msgstr "Eventos y Calendario" + +#: include/nav.php:152 +msgid "Directory" +msgstr "Directorio" + +#: include/nav.php:152 +msgid "People directory" +msgstr "Directorio de usuarios" + +#: include/nav.php:154 +msgid "Information" +msgstr "Información" + +#: include/nav.php:154 +msgid "Information about this friendica instance" +msgstr "Información sobre esta instancia de friendica" + +#: include/nav.php:158 include/NotificationsManager.php:160 mod/admin.php:411 +#: view/theme/frio/theme.php:256 +msgid "Network" +msgstr "Red" + +#: include/nav.php:158 view/theme/frio/theme.php:256 +msgid "Conversations from your friends" +msgstr "Conversaciones de tus amigos" + +#: include/nav.php:159 +msgid "Network Reset" +msgstr "Reseteo de la red" + +#: include/nav.php:159 +msgid "Load Network page with no filters" +msgstr "Cargar pagina de redes sin filtros" + +#: include/nav.php:166 include/NotificationsManager.php:181 +msgid "Introductions" +msgstr "Presentaciones" + +#: include/nav.php:166 +msgid "Friend Requests" +msgstr "Solicitudes de amistad" + +#: include/nav.php:169 mod/notifications.php:96 +msgid "Notifications" +msgstr "Notificaciones" + +#: include/nav.php:170 +msgid "See all notifications" +msgstr "Ver todas las notificaciones" + +#: include/nav.php:171 mod/settings.php:902 +msgid "Mark as seen" +msgstr "Marcar como leído" + +#: include/nav.php:171 +msgid "Mark all system notifications seen" +msgstr "Marcar todas las notificaciones del sistema como leídas" + +#: include/nav.php:175 mod/message.php:190 view/theme/frio/theme.php:258 +msgid "Messages" +msgstr "Mensajes" + +#: include/nav.php:175 view/theme/frio/theme.php:258 +msgid "Private mail" +msgstr "Correo privado" + +#: include/nav.php:176 +msgid "Inbox" +msgstr "Entrada" + +#: include/nav.php:177 +msgid "Outbox" +msgstr "Enviados" + +#: include/nav.php:178 mod/message.php:16 +msgid "New Message" +msgstr "Nuevo mensaje" + +#: include/nav.php:181 +msgid "Manage" +msgstr "Administrar" + +#: include/nav.php:181 +msgid "Manage other pages" +msgstr "Administrar otras páginas" + +#: include/nav.php:184 mod/settings.php:81 +msgid "Delegations" +msgstr "Delegaciones" + +#: include/nav.php:184 mod/delegate.php:130 +msgid "Delegate Page Management" +msgstr "Delegar la administración de la página" + +#: include/nav.php:186 mod/newmember.php:22 mod/settings.php:111 +#: mod/admin.php:1524 mod/admin.php:1782 view/theme/frio/theme.php:259 +msgid "Settings" +msgstr "Configuración" + +#: include/nav.php:186 view/theme/frio/theme.php:259 +msgid "Account settings" +msgstr "Configuración de tu cuenta" + +#: include/nav.php:189 include/identity.php:282 +msgid "Profiles" +msgstr "Perfiles" + +#: include/nav.php:189 +msgid "Manage/Edit Profiles" +msgstr "Manejar/editar Perfiles" + +#: include/nav.php:192 view/theme/frio/theme.php:260 +msgid "Manage/edit friends and contacts" +msgstr "Administrar/editar amigos y contactos" + +#: include/nav.php:197 mod/admin.php:186 +msgid "Admin" +msgstr "Admin" + +#: include/nav.php:197 +msgid "Site setup and configuration" +msgstr "Opciones y configuración del sitio" + +#: include/nav.php:200 +msgid "Navigation" +msgstr "Navegación" + +#: include/nav.php:200 +msgid "Site map" +msgstr "Mapa del sitio" + +#: include/photos.php:53 mod/fbrowser.php:41 mod/fbrowser.php:62 +#: mod/photos.php:180 mod/photos.php:1086 mod/photos.php:1211 +#: mod/photos.php:1232 mod/photos.php:1795 mod/photos.php:1807 +msgid "Contact Photos" +msgstr "Foto del contacto" + #: include/security.php:22 msgid "Welcome " msgstr "Bienvenido " @@ -997,556 +1624,194 @@ msgid "" "form has been opened for too long (>3 hours) before submitting it." msgstr "La ficha de seguridad no es correcta. Seguramente haya ocurrido por haber dejado el formulario abierto demasiado tiempo (>3 horas) antes de enviarlo." -#: include/profile_selectors.php:6 -msgid "Male" -msgstr "Hombre" +#: include/NotificationsManager.php:153 +msgid "System" +msgstr "Sistema" -#: include/profile_selectors.php:6 -msgid "Female" -msgstr "Mujer" +#: include/NotificationsManager.php:167 mod/profiles.php:703 +#: mod/network.php:845 +msgid "Personal" +msgstr "Personal" -#: include/profile_selectors.php:6 -msgid "Currently Male" -msgstr "Actualmente Hombre" - -#: include/profile_selectors.php:6 -msgid "Currently Female" -msgstr "Actualmente Mujer" - -#: include/profile_selectors.php:6 -msgid "Mostly Male" -msgstr "Mayormente Hombre" - -#: include/profile_selectors.php:6 -msgid "Mostly Female" -msgstr "Mayormente Mujer" - -#: include/profile_selectors.php:6 -msgid "Transgender" -msgstr "Transgenérico" - -#: include/profile_selectors.php:6 -msgid "Intersex" -msgstr "Bisexual" - -#: include/profile_selectors.php:6 -msgid "Transsexual" -msgstr "Transexual" - -#: include/profile_selectors.php:6 -msgid "Hermaphrodite" -msgstr "Hermafrodita" - -#: include/profile_selectors.php:6 -msgid "Neuter" -msgstr "Neutro" - -#: include/profile_selectors.php:6 -msgid "Non-specific" -msgstr "Sin especificar" - -#: include/profile_selectors.php:6 -msgid "Other" -msgstr "Otro" - -#: include/profile_selectors.php:6 include/conversation.php:1487 -msgid "Undecided" -msgid_plural "Undecided" -msgstr[0] "Indeciso" -msgstr[1] "Indeciso" - -#: include/profile_selectors.php:23 -msgid "Males" -msgstr "Hombres" - -#: include/profile_selectors.php:23 -msgid "Females" -msgstr "Mujeres" - -#: include/profile_selectors.php:23 -msgid "Gay" -msgstr "Gay" - -#: include/profile_selectors.php:23 -msgid "Lesbian" -msgstr "Lesbiana" - -#: include/profile_selectors.php:23 -msgid "No Preference" -msgstr "Sin preferencias" - -#: include/profile_selectors.php:23 -msgid "Bisexual" -msgstr "Bisexual" - -#: include/profile_selectors.php:23 -msgid "Autosexual" -msgstr "Autosexual" - -#: include/profile_selectors.php:23 -msgid "Abstinent" -msgstr "Célibe" - -#: include/profile_selectors.php:23 -msgid "Virgin" -msgstr "Virgen" - -#: include/profile_selectors.php:23 -msgid "Deviant" -msgstr "Desviado" - -#: include/profile_selectors.php:23 -msgid "Fetish" -msgstr "Fetichista" - -#: include/profile_selectors.php:23 -msgid "Oodles" -msgstr "Orgiástico" - -#: include/profile_selectors.php:23 -msgid "Nonsexual" -msgstr "Asexual" - -#: include/profile_selectors.php:42 -msgid "Single" -msgstr "Soltero" - -#: include/profile_selectors.php:42 -msgid "Lonely" -msgstr "Solitario" - -#: include/profile_selectors.php:42 -msgid "Available" -msgstr "Disponible" - -#: include/profile_selectors.php:42 -msgid "Unavailable" -msgstr "No disponible" - -#: include/profile_selectors.php:42 -msgid "Has crush" -msgstr "Enamorado" - -#: include/profile_selectors.php:42 -msgid "Infatuated" -msgstr "Loco/a por alguien" - -#: include/profile_selectors.php:42 -msgid "Dating" -msgstr "De citas" - -#: include/profile_selectors.php:42 -msgid "Unfaithful" -msgstr "Infiel" - -#: include/profile_selectors.php:42 -msgid "Sex Addict" -msgstr "Adicto al sexo" - -#: include/profile_selectors.php:42 include/user.php:299 include/user.php:303 -msgid "Friends" -msgstr "Amigos" - -#: include/profile_selectors.php:42 -msgid "Friends/Benefits" -msgstr "Amigos con beneficios" - -#: include/profile_selectors.php:42 -msgid "Casual" -msgstr "Casual" - -#: include/profile_selectors.php:42 -msgid "Engaged" -msgstr "Comprometido/a" - -#: include/profile_selectors.php:42 -msgid "Married" -msgstr "Casado/a" - -#: include/profile_selectors.php:42 -msgid "Imaginarily married" -msgstr "Casado imaginario" - -#: include/profile_selectors.php:42 -msgid "Partners" -msgstr "Socios" - -#: include/profile_selectors.php:42 -msgid "Cohabiting" -msgstr "Cohabitando" - -#: include/profile_selectors.php:42 -msgid "Common law" -msgstr "Pareja de hecho" - -#: include/profile_selectors.php:42 -msgid "Happy" -msgstr "Feliz" - -#: include/profile_selectors.php:42 -msgid "Not looking" -msgstr "No busca relación" - -#: include/profile_selectors.php:42 -msgid "Swinger" -msgstr "Swinger" - -#: include/profile_selectors.php:42 -msgid "Betrayed" -msgstr "Traicionado/a" - -#: include/profile_selectors.php:42 -msgid "Separated" -msgstr "Separado/a" - -#: include/profile_selectors.php:42 -msgid "Unstable" -msgstr "Inestable" - -#: include/profile_selectors.php:42 -msgid "Divorced" -msgstr "Divorciado/a" - -#: include/profile_selectors.php:42 -msgid "Imaginarily divorced" -msgstr "Divorciado imaginario" - -#: include/profile_selectors.php:42 -msgid "Widowed" -msgstr "Viudo/a" - -#: include/profile_selectors.php:42 -msgid "Uncertain" -msgstr "Incierto" - -#: include/profile_selectors.php:42 -msgid "It's complicated" -msgstr "Es complicado" - -#: include/profile_selectors.php:42 -msgid "Don't care" -msgstr "No te importa" - -#: include/profile_selectors.php:42 -msgid "Ask me" -msgstr "Pregúntame" - -#: include/items.php:1571 mod/dfrn_confirm.php:730 mod/dfrn_request.php:746 -msgid "[Name Withheld]" -msgstr "[Nombre oculto]" - -#: include/items.php:1926 mod/viewsrc.php:15 mod/admin.php:234 -#: mod/admin.php:1471 mod/admin.php:1705 mod/display.php:103 -#: mod/display.php:279 mod/display.php:478 mod/notice.php:15 -msgid "Item not found." -msgstr "Elemento no encontrado." - -#: include/items.php:1965 -msgid "Do you really want to delete this item?" -msgstr "¿Realmente quieres borrar este objeto?" - -#: include/items.php:1967 mod/profiles.php:648 mod/profiles.php:651 -#: mod/profiles.php:677 mod/contacts.php:442 mod/follow.php:110 -#: mod/suggest.php:29 mod/dfrn_request.php:862 mod/register.php:245 -#: mod/settings.php:1163 mod/settings.php:1169 mod/settings.php:1177 -#: mod/settings.php:1181 mod/settings.php:1186 mod/settings.php:1192 -#: mod/settings.php:1198 mod/settings.php:1204 mod/settings.php:1230 -#: mod/settings.php:1231 mod/settings.php:1232 mod/settings.php:1233 -#: mod/settings.php:1234 mod/api.php:105 mod/message.php:217 -msgid "Yes" -msgstr "Sí" - -#: include/items.php:1970 include/conversation.php:1283 mod/fbrowser.php:101 -#: mod/fbrowser.php:136 mod/tagrm.php:11 mod/tagrm.php:94 mod/videos.php:128 -#: mod/photos.php:235 mod/photos.php:322 mod/contacts.php:445 -#: mod/follow.php:121 mod/suggest.php:32 mod/editpost.php:148 -#: mod/dfrn_request.php:876 mod/settings.php:679 mod/settings.php:705 -#: mod/message.php:220 -msgid "Cancel" -msgstr "Cancelar" - -#: include/items.php:2130 index.php:401 mod/regmod.php:110 mod/dirfind.php:11 -#: mod/notifications.php:71 mod/dfrn_confirm.php:61 mod/wall_upload.php:77 -#: mod/wall_upload.php:80 mod/fsuggest.php:78 mod/notes.php:22 -#: mod/events.php:190 mod/uimport.php:23 mod/nogroup.php:25 mod/invite.php:15 -#: mod/invite.php:101 mod/viewcontacts.php:45 mod/crepair.php:100 -#: mod/wall_attach.php:67 mod/wall_attach.php:70 mod/allfriends.php:12 -#: mod/cal.php:304 mod/repair_ostatus.php:9 mod/delegate.php:12 -#: mod/profiles.php:166 mod/profiles.php:605 mod/poke.php:150 -#: mod/photos.php:159 mod/photos.php:1072 mod/attach.php:33 -#: mod/contacts.php:350 mod/follow.php:11 mod/follow.php:73 mod/follow.php:155 -#: mod/suggest.php:58 mod/display.php:475 mod/common.php:18 mod/mood.php:114 -#: mod/editpost.php:10 mod/network.php:4 mod/group.php:19 -#: mod/profile_photo.php:19 mod/profile_photo.php:175 -#: mod/profile_photo.php:186 mod/profile_photo.php:199 mod/register.php:42 -#: mod/settings.php:22 mod/settings.php:128 mod/settings.php:665 -#: mod/wallmessage.php:9 mod/wallmessage.php:33 mod/wallmessage.php:79 -#: mod/wallmessage.php:103 mod/api.php:26 mod/api.php:31 mod/item.php:198 -#: mod/item.php:210 mod/ostatus_subscribe.php:9 mod/message.php:46 -#: mod/message.php:182 mod/manage.php:96 -msgid "Permission denied." -msgstr "Permiso denegado." - -#: include/items.php:2235 -msgid "Archives" -msgstr "Archivos" - -#: include/text.php:304 -msgid "newer" -msgstr "más nuevo" - -#: include/text.php:306 -msgid "older" -msgstr "más antiguo" - -#: include/text.php:311 -msgid "prev" -msgstr "ant." - -#: include/text.php:313 -msgid "first" -msgstr "primera" - -#: include/text.php:345 -msgid "last" -msgstr "última" - -#: include/text.php:348 -msgid "next" -msgstr "sig." - -#: include/text.php:403 -msgid "Loading more entries..." -msgstr "Cargar mas entradas .." - -#: include/text.php:404 -msgid "The end" -msgstr "El fin" - -#: include/text.php:889 -msgid "No contacts" -msgstr "Sin contactos" - -#: include/text.php:912 +#: include/NotificationsManager.php:234 include/NotificationsManager.php:244 #, php-format -msgid "%d Contact" -msgid_plural "%d Contacts" -msgstr[0] "%d Contacto" -msgstr[1] "%d Contactos" +msgid "%s commented on %s's post" +msgstr "%s comentó la publicación de %s" -#: include/text.php:925 -msgid "View Contacts" -msgstr "Ver contactos" - -#: include/text.php:1012 include/nav.php:123 mod/search.php:149 -msgid "Search" -msgstr "Buscar" - -#: include/text.php:1013 mod/notes.php:61 mod/filer.php:31 -#: mod/editpost.php:109 -msgid "Save" -msgstr "Guardar" - -#: include/text.php:1015 include/nav.php:40 -msgid "@name, !forum, #tags, content" -msgstr "@name, !forum, #tags, contenido" - -#: include/text.php:1020 include/nav.php:126 -msgid "Full Text" -msgstr "Texto completo" - -#: include/text.php:1021 include/nav.php:127 -msgid "Tags" -msgstr "Tags" - -#: include/text.php:1022 include/identity.php:783 include/identity.php:786 -#: include/nav.php:128 include/nav.php:192 mod/viewcontacts.php:116 -#: mod/contacts.php:792 mod/contacts.php:853 view/theme/frio/theme.php:260 -msgid "Contacts" -msgstr "Contactos" - -#: include/text.php:1076 -msgid "poke" -msgstr "tocar" - -#: include/text.php:1076 -msgid "poked" -msgstr "tocó a" - -#: include/text.php:1077 -msgid "ping" -msgstr "hacer \"ping\"" - -#: include/text.php:1077 -msgid "pinged" -msgstr "hizo \"ping\" a" - -#: include/text.php:1078 -msgid "prod" -msgstr "empujar" - -#: include/text.php:1078 -msgid "prodded" -msgstr "empujó a" - -#: include/text.php:1079 -msgid "slap" -msgstr "abofetear" - -#: include/text.php:1079 -msgid "slapped" -msgstr "abofeteó a" - -#: include/text.php:1080 -msgid "finger" -msgstr "meter dedo" - -#: include/text.php:1080 -msgid "fingered" -msgstr "le metió un dedo a" - -#: include/text.php:1081 -msgid "rebuff" -msgstr "desairar" - -#: include/text.php:1081 -msgid "rebuffed" -msgstr "desairó a" - -#: include/text.php:1095 -msgid "happy" -msgstr "feliz" - -#: include/text.php:1096 -msgid "sad" -msgstr "triste" - -#: include/text.php:1097 -msgid "mellow" -msgstr "sentimental" - -#: include/text.php:1098 -msgid "tired" -msgstr "cansado" - -#: include/text.php:1099 -msgid "perky" -msgstr "alegre" - -#: include/text.php:1100 -msgid "angry" -msgstr "furioso" - -#: include/text.php:1101 -msgid "stupified" -msgstr "estupefacto" - -#: include/text.php:1102 -msgid "puzzled" -msgstr "extrañado" - -#: include/text.php:1103 -msgid "interested" -msgstr "interesado" - -#: include/text.php:1104 -msgid "bitter" -msgstr "rencoroso" - -#: include/text.php:1105 -msgid "cheerful" -msgstr "jovial" - -#: include/text.php:1106 -msgid "alive" -msgstr "vivo" - -#: include/text.php:1107 -msgid "annoyed" -msgstr "enojado" - -#: include/text.php:1108 -msgid "anxious" -msgstr "ansioso" - -#: include/text.php:1109 -msgid "cranky" -msgstr "irritable" - -#: include/text.php:1110 -msgid "disturbed" -msgstr "perturbado" - -#: include/text.php:1111 -msgid "frustrated" -msgstr "frustrado" - -#: include/text.php:1112 -msgid "motivated" -msgstr "motivado" - -#: include/text.php:1113 -msgid "relaxed" -msgstr "relajado" - -#: include/text.php:1114 -msgid "surprised" -msgstr "sorprendido" - -#: include/text.php:1328 mod/videos.php:380 -msgid "View Video" -msgstr "Ver vídeo" - -#: include/text.php:1360 -msgid "bytes" -msgstr "bytes" - -#: include/text.php:1392 include/text.php:1404 -msgid "Click to open/close" -msgstr "Pulsa para abrir/cerrar" - -#: include/text.php:1530 -msgid "View on separate page" -msgstr "Ver en pagina aparte" - -#: include/text.php:1531 -msgid "view on separate page" -msgstr "ver en pagina aparte" - -#: include/text.php:1806 include/conversation.php:122 -#: include/conversation.php:258 include/like.php:165 -msgid "event" -msgstr "evento" - -#: include/text.php:1808 include/conversation.php:130 -#: include/conversation.php:266 include/like.php:163 mod/tagger.php:62 -#: mod/subthread.php:87 -msgid "photo" -msgstr "foto" - -#: include/text.php:1810 -msgid "activity" -msgstr "Actividad" - -#: include/text.php:1812 mod/content.php:623 object/Item.php:431 -#: object/Item.php:444 -msgid "comment" -msgid_plural "comments" -msgstr[0] "" -msgstr[1] "Comentario" - -#: include/text.php:1813 -msgid "post" -msgstr "Publicación" - -#: include/text.php:1981 -msgid "Item filed" -msgstr "Elemento archivado" - -#: include/conversation.php:144 include/like.php:184 +#: include/NotificationsManager.php:243 #, php-format -msgid "%1$s doesn't like %2$s's %3$s" -msgstr "A %1$s no le gusta %3$s de %2$s" +msgid "%s created a new post" +msgstr "%s creó una nueva publicación" + +#: include/NotificationsManager.php:256 +#, php-format +msgid "%s liked %s's post" +msgstr "A %s le gusta la publicación de %s" + +#: include/NotificationsManager.php:267 +#, php-format +msgid "%s disliked %s's post" +msgstr "A %s no le gusta la publicación de %s" + +#: include/NotificationsManager.php:278 +#, php-format +msgid "%s is attending %s's event" +msgstr "%s está asistiendo al evento %s's" + +#: include/NotificationsManager.php:289 +#, php-format +msgid "%s is not attending %s's event" +msgstr "%s no está asistiendo al evento %s's" + +#: include/NotificationsManager.php:300 +#, php-format +msgid "%s may attend %s's event" +msgstr "%s podría asistir al evento %s's" + +#: include/NotificationsManager.php:315 +#, php-format +msgid "%s is now friends with %s" +msgstr "%s es ahora es amigo de %s" + +#: include/NotificationsManager.php:748 +msgid "Friend Suggestion" +msgstr "Propuestas de amistad" + +#: include/NotificationsManager.php:781 +msgid "Friend/Connect Request" +msgstr "Solicitud de Amistad/Conexión" + +#: include/NotificationsManager.php:781 +msgid "New Follower" +msgstr "Nuevo seguidor" + +#: include/dbstructure.php:26 +#, php-format +msgid "" +"\n" +"\t\t\tThe friendica developers released update %s recently,\n" +"\t\t\tbut when I tried to install it, something went terribly wrong.\n" +"\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n" +"\t\t\tfriendica developer if you can not help me on your own. My database might be invalid." +msgstr "\n\t\t\tLos desarolladores de friendica publicaron una actualización %s recientemente\n\t\t\tpero cuando intento de instalarla,algo salio terriblemente mal.\n\t\t\tEsto necesita ser arreglado pronto y no puedo hacerlo solo. Por favor contacta\n\t\t\tlos desarolladores de friendica si no me podes ayudar por ti solo. Mi base de datos puede estar invalido." + +#: include/dbstructure.php:31 +#, php-format +msgid "" +"The error message is\n" +"[pre]%s[/pre]" +msgstr "El mensaje de error es\n[pre]%s[/pre]" + +#: include/dbstructure.php:183 +msgid "Errors encountered creating database tables." +msgstr "Se han encontrados errores creando las tablas de la base de datos." + +#: include/dbstructure.php:260 +msgid "Errors encountered performing database changes." +msgstr "Errores encontrados al ejecutar cambios en la base de datos." + +#: include/delivery.php:446 +msgid "(no subject)" +msgstr "(sin asunto)" + +#: include/diaspora.php:1958 +msgid "Sharing notification from Diaspora network" +msgstr "Compartir notificaciones con la red Diaspora*" + +#: include/diaspora.php:2864 +msgid "Attachments:" +msgstr "Archivos adjuntos:" + +#: include/network.php:595 +msgid "view full size" +msgstr "Ver a tamaño completo" + +#: include/Contact.php:340 include/Contact.php:353 include/Contact.php:398 +#: include/conversation.php:968 include/conversation.php:984 +#: mod/allfriends.php:65 mod/directory.php:155 mod/dirfind.php:203 +#: mod/match.php:71 mod/suggest.php:82 +msgid "View Profile" +msgstr "Ver perfil" + +#: include/Contact.php:397 include/conversation.php:967 +msgid "View Status" +msgstr "Ver estado" + +#: include/Contact.php:399 include/conversation.php:969 +msgid "View Photos" +msgstr "Ver fotos" + +#: include/Contact.php:400 include/conversation.php:970 +msgid "Network Posts" +msgstr "Publicaciones en la red" + +#: include/Contact.php:401 include/conversation.php:971 +msgid "View Contact" +msgstr "Ver contacto" + +#: include/Contact.php:402 +msgid "Drop Contact" +msgstr "Eliminar contacto" + +#: include/Contact.php:403 include/conversation.php:972 +msgid "Send PM" +msgstr "Enviar mensaje privado" + +#: include/Contact.php:404 include/conversation.php:976 +msgid "Poke" +msgstr "Toque" + +#: include/Contact.php:775 +msgid "Organisation" +msgstr "Organización" + +#: include/Contact.php:778 +msgid "News" +msgstr "Noticias" + +#: include/Contact.php:781 +msgid "Forum" +msgstr "Foro" + +#: include/api.php:1018 +#, php-format +msgid "Daily posting limit of %d posts reached. The post was rejected." +msgstr "Limite diario de publicaciones %d alcanzado. La publicación fue rechazada." + +#: include/api.php:1038 +#, php-format +msgid "Weekly posting limit of %d posts reached. The post was rejected." +msgstr "Limite semanal de publicaciones %d alcanzado. La publicación fue rechazada." + +#: include/api.php:1059 +#, php-format +msgid "Monthly posting limit of %d posts reached. The post was rejected." +msgstr "Limite mensual de publicaciones %d alcanzado. La publicación fue rechazada." + +#: include/bbcode.php:350 include/bbcode.php:1057 include/bbcode.php:1058 +msgid "Image/photo" +msgstr "Imagen/Foto" + +#: include/bbcode.php:467 +#, php-format +msgid "%2$s %3$s" +msgstr "%2$s %3$s" + +#: include/bbcode.php:1017 include/bbcode.php:1037 +msgid "$1 wrote:" +msgstr "$1 escribió:" + +#: include/bbcode.php:1066 include/bbcode.php:1067 +msgid "Encrypted content" +msgstr "Contenido cifrado" + +#: include/bbcode.php:1169 +msgid "Invalid source protocol" +msgstr "Protocolo de fuente inválido" + +#: include/bbcode.php:1179 +msgid "Invalid link protocol" +msgstr "Protocolo de enlace inválido" #: include/conversation.php:147 #, php-format @@ -1622,9 +1887,9 @@ msgstr "Puede que atienda" msgid "Select" msgstr "Seleccionar" -#: include/conversation.php:709 mod/admin.php:1414 mod/content.php:454 -#: mod/content.php:759 mod/photos.php:1682 mod/contacts.php:808 -#: mod/contacts.php:1016 mod/group.php:171 mod/settings.php:741 +#: include/conversation.php:709 mod/group.php:171 mod/content.php:454 +#: mod/content.php:759 mod/photos.php:1682 mod/settings.php:741 +#: mod/admin.php:1414 mod/contacts.php:808 mod/contacts.php:1007 #: object/Item.php:134 msgid "Delete" msgstr "Eliminar" @@ -1654,9 +1919,9 @@ msgid "View in context" msgstr "Verlo en contexto" #: include/conversation.php:791 include/conversation.php:1264 -#: mod/content.php:515 mod/content.php:948 mod/photos.php:1570 #: mod/editpost.php:124 mod/wallmessage.php:156 mod/message.php:356 -#: mod/message.php:548 object/Item.php:406 +#: mod/message.php:548 mod/content.php:515 mod/content.php:948 +#: mod/photos.php:1570 object/Item.php:406 msgid "Please wait" msgstr "Por favor, espera" @@ -1672,37 +1937,6 @@ msgstr "Eliminar el elemento seleccionado" msgid "Follow Thread" msgstr "Seguir publicacion" -#: include/conversation.php:967 include/Contact.php:404 -msgid "View Status" -msgstr "Ver estado" - -#: include/conversation.php:968 include/conversation.php:984 -#: include/Contact.php:347 include/Contact.php:360 include/Contact.php:405 -#: mod/dirfind.php:203 mod/directory.php:155 mod/match.php:71 -#: mod/allfriends.php:65 mod/suggest.php:82 -msgid "View Profile" -msgstr "Ver perfil" - -#: include/conversation.php:969 include/Contact.php:406 -msgid "View Photos" -msgstr "Ver fotos" - -#: include/conversation.php:970 include/Contact.php:407 -msgid "Network Posts" -msgstr "Publicaciones en la red" - -#: include/conversation.php:971 include/Contact.php:408 -msgid "View Contact" -msgstr "Ver contacto" - -#: include/conversation.php:972 include/Contact.php:410 -msgid "Send PM" -msgstr "Enviar mensaje privado" - -#: include/conversation.php:976 include/Contact.php:411 -msgid "Poke" -msgstr "Toque" - #: include/conversation.php:1097 #, php-format msgid "%s likes this." @@ -1904,12 +2138,21 @@ msgstr "permisos" msgid "Public post" msgstr "Publicación pública" -#: include/conversation.php:1279 mod/events.php:504 mod/content.php:737 -#: mod/photos.php:1591 mod/photos.php:1639 mod/photos.php:1725 -#: mod/editpost.php:145 object/Item.php:729 +#: include/conversation.php:1279 mod/editpost.php:145 mod/content.php:737 +#: mod/events.php:504 mod/photos.php:1591 mod/photos.php:1639 +#: mod/photos.php:1725 object/Item.php:729 msgid "Preview" msgstr "Vista previa" +#: include/conversation.php:1283 include/items.php:1974 mod/fbrowser.php:101 +#: mod/fbrowser.php:136 mod/tagrm.php:11 mod/tagrm.php:94 mod/editpost.php:148 +#: mod/message.php:220 mod/suggest.php:32 mod/photos.php:235 +#: mod/photos.php:322 mod/settings.php:679 mod/settings.php:705 +#: mod/videos.php:128 mod/contacts.php:445 mod/dfrn_request.php:876 +#: mod/follow.php:121 +msgid "Cancel" +msgstr "Cancelar" + #: include/conversation.php:1289 msgid "Post to Groups" msgstr "Publicar hacia grupos" @@ -1952,745 +2195,10 @@ msgid_plural "Not Attending" msgstr[0] "No atendiendo" msgstr[1] "No atendiendo" -#: include/photos.php:53 mod/fbrowser.php:41 mod/fbrowser.php:62 -#: mod/photos.php:180 mod/photos.php:1086 mod/photos.php:1211 -#: mod/photos.php:1232 mod/photos.php:1795 mod/photos.php:1807 -msgid "Contact Photos" -msgstr "Foto del contacto" - -#: include/identity.php:42 -msgid "Requested account is not available." -msgstr "La cuenta solicitada no está disponible." - -#: include/identity.php:51 mod/profile.php:21 -msgid "Requested profile is not available." -msgstr "El perfil solicitado no está disponible." - -#: include/identity.php:95 include/identity.php:311 include/identity.php:688 -msgid "Edit profile" -msgstr "Editar perfil" - -#: include/identity.php:251 -msgid "Atom feed" -msgstr "Atom feed" - -#: include/identity.php:282 include/nav.php:189 -msgid "Profiles" -msgstr "Perfiles" - -#: include/identity.php:282 -msgid "Manage/edit profiles" -msgstr "Administrar/editar perfiles" - -#: include/identity.php:287 include/identity.php:313 mod/profiles.php:795 -msgid "Change profile photo" -msgstr "Cambiar foto del perfil" - -#: include/identity.php:288 mod/profiles.php:796 -msgid "Create New Profile" -msgstr "Crear nuevo perfil" - -#: include/identity.php:298 mod/profiles.php:785 -msgid "Profile Image" -msgstr "Imagen del Perfil" - -#: include/identity.php:301 mod/profiles.php:787 -msgid "visible to everybody" -msgstr "Visible para todos" - -#: include/identity.php:302 mod/profiles.php:691 mod/profiles.php:788 -msgid "Edit visibility" -msgstr "Editar visibilidad" - -#: include/identity.php:330 include/identity.php:616 mod/notifications.php:238 -#: mod/directory.php:139 -msgid "Gender:" -msgstr "Género:" - -#: include/identity.php:333 include/identity.php:636 mod/directory.php:141 -msgid "Status:" -msgstr "Estado:" - -#: include/identity.php:335 include/identity.php:647 mod/directory.php:143 -msgid "Homepage:" -msgstr "Página de inicio:" - -#: include/identity.php:337 include/identity.php:657 mod/notifications.php:234 -#: mod/directory.php:145 mod/contacts.php:632 -msgid "About:" -msgstr "Acerca de:" - -#: include/identity.php:339 mod/contacts.php:630 -msgid "XMPP:" -msgstr "XMPP:" - -#: include/identity.php:422 mod/notifications.php:246 mod/contacts.php:50 -msgid "Network:" -msgstr "Red:" - -#: include/identity.php:451 include/identity.php:535 -msgid "g A l F d" -msgstr "g A l F d" - -#: include/identity.php:452 include/identity.php:536 -msgid "F d" -msgstr "F d" - -#: include/identity.php:497 include/identity.php:582 -msgid "[today]" -msgstr "[hoy]" - -#: include/identity.php:509 -msgid "Birthday Reminders" -msgstr "Recordatorios de cumpleaños" - -#: include/identity.php:510 -msgid "Birthdays this week:" -msgstr "Cumpleaños esta semana:" - -#: include/identity.php:569 -msgid "[No description]" -msgstr "[Sin descripción]" - -#: include/identity.php:593 -msgid "Event Reminders" -msgstr "Recordatorios de eventos" - -#: include/identity.php:594 -msgid "Events this week:" -msgstr "Eventos de esta semana:" - -#: include/identity.php:605 include/identity.php:691 include/identity.php:722 -#: include/nav.php:82 mod/profperm.php:104 mod/contacts.php:639 -#: mod/contacts.php:841 mod/newmember.php:32 view/theme/frio/theme.php:250 -msgid "Profile" -msgstr "Perfil" - -#: include/identity.php:614 mod/settings.php:1279 -msgid "Full Name:" -msgstr "Nombre completo:" - -#: include/identity.php:621 -msgid "j F, Y" -msgstr "j F, Y" - -#: include/identity.php:622 -msgid "j F" -msgstr "j F" - -#: include/identity.php:633 -msgid "Age:" -msgstr "Edad:" - -#: include/identity.php:642 +#: include/dfrn.php:1108 #, php-format -msgid "for %1$d %2$s" -msgstr "por %1$d %2$s" - -#: include/identity.php:645 mod/profiles.php:710 -msgid "Sexual Preference:" -msgstr "Preferencia sexual:" - -#: include/identity.php:649 mod/profiles.php:737 -msgid "Hometown:" -msgstr "Ciudad de origen:" - -#: include/identity.php:651 mod/notifications.php:236 mod/contacts.php:634 -#: mod/follow.php:134 -msgid "Tags:" -msgstr "Etiquetas:" - -#: include/identity.php:653 mod/profiles.php:738 -msgid "Political Views:" -msgstr "Ideas políticas:" - -#: include/identity.php:655 -msgid "Religion:" -msgstr "Religión:" - -#: include/identity.php:659 -msgid "Hobbies/Interests:" -msgstr "Aficiones/Intereses:" - -#: include/identity.php:661 mod/profiles.php:742 -msgid "Likes:" -msgstr "Me gusta:" - -#: include/identity.php:663 mod/profiles.php:743 -msgid "Dislikes:" -msgstr "No me gusta:" - -#: include/identity.php:666 -msgid "Contact information and Social Networks:" -msgstr "Información de contacto y Redes sociales:" - -#: include/identity.php:668 -msgid "Musical interests:" -msgstr "Intereses musicales:" - -#: include/identity.php:670 -msgid "Books, literature:" -msgstr "Libros, literatura:" - -#: include/identity.php:672 -msgid "Television:" -msgstr "Televisión:" - -#: include/identity.php:674 -msgid "Film/dance/culture/entertainment:" -msgstr "Películas/baile/cultura/entretenimiento:" - -#: include/identity.php:676 -msgid "Love/Romance:" -msgstr "Amor/Romance:" - -#: include/identity.php:678 -msgid "Work/employment:" -msgstr "Trabajo/ocupación:" - -#: include/identity.php:680 -msgid "School/education:" -msgstr "Escuela/estudios:" - -#: include/identity.php:684 -msgid "Forums:" -msgstr "Foros:" - -#: include/identity.php:692 mod/events.php:507 -msgid "Basic" -msgstr "Basic" - -#: include/identity.php:693 mod/events.php:508 mod/admin.php:959 -#: mod/contacts.php:870 -msgid "Advanced" -msgstr "Avanzado" - -#: include/identity.php:714 include/nav.php:81 mod/contacts.php:637 -#: mod/contacts.php:833 view/theme/frio/theme.php:249 -msgid "Status" -msgstr "Estado" - -#: include/identity.php:717 mod/contacts.php:836 mod/follow.php:143 -msgid "Status Messages and Posts" -msgstr "Mensajes de Estado y Publicaciones" - -#: include/identity.php:725 mod/contacts.php:844 -msgid "Profile Details" -msgstr "Detalles del Perfil" - -#: include/identity.php:730 include/nav.php:83 mod/fbrowser.php:32 -#: view/theme/frio/theme.php:251 -msgid "Photos" -msgstr "Fotografías" - -#: include/identity.php:733 mod/photos.php:87 -msgid "Photo Albums" -msgstr "Álbum de Fotos" - -#: include/identity.php:738 include/identity.php:741 include/nav.php:84 -#: view/theme/frio/theme.php:252 -msgid "Videos" -msgstr "Videos" - -#: include/identity.php:750 include/identity.php:761 include/nav.php:85 -#: include/nav.php:149 mod/events.php:379 mod/cal.php:275 -#: view/theme/frio/theme.php:253 view/theme/frio/theme.php:257 -msgid "Events" -msgstr "Eventos" - -#: include/identity.php:753 include/identity.php:764 include/nav.php:149 -#: view/theme/frio/theme.php:257 -msgid "Events and Calendar" -msgstr "Eventos y Calendario" - -#: include/identity.php:772 mod/notes.php:46 -msgid "Personal Notes" -msgstr "Notas personales" - -#: include/identity.php:775 -msgid "Only You Can See This" -msgstr "Únicamente tú puedes ver esto" - -#: include/follow.php:77 mod/dfrn_request.php:509 -msgid "Disallowed profile URL." -msgstr "Dirección de perfil no permitida." - -#: include/follow.php:82 -msgid "Connect URL missing." -msgstr "Falta el conector URL." - -#: include/follow.php:109 -msgid "" -"This site is not configured to allow communications with other networks." -msgstr "Este sitio no está configurado para permitir la comunicación con otras redes." - -#: include/follow.php:110 include/follow.php:130 -msgid "No compatible communication protocols or feeds were discovered." -msgstr "No se ha descubierto protocolos de comunicación o fuentes compatibles." - -#: include/follow.php:128 -msgid "The profile address specified does not provide adequate information." -msgstr "La dirección del perfil especificado no proporciona información adecuada." - -#: include/follow.php:132 -msgid "An author or name was not found." -msgstr "No se ha encontrado un autor o nombre." - -#: include/follow.php:134 -msgid "No browser URL could be matched to this address." -msgstr "Ninguna dirección concuerda con la suministrada." - -#: include/follow.php:136 -msgid "" -"Unable to match @-style Identity Address with a known protocol or email " -"contact." -msgstr "Imposible identificar la dirección @ con algún protocolo conocido o dirección de contacto." - -#: include/follow.php:137 -msgid "Use mailto: in front of address to force email check." -msgstr "Escribe mailto: al principio de la dirección para forzar el envío." - -#: include/follow.php:143 -msgid "" -"The profile address specified belongs to a network which has been disabled " -"on this site." -msgstr "La dirección del perfil especificada pertenece a una red que ha sido deshabilitada en este sitio." - -#: include/follow.php:153 -msgid "" -"Limited profile. This person will be unable to receive direct/personal " -"notifications from you." -msgstr "Perfil limitado. Esta persona no podrá recibir notificaciones directas/personales tuyas." - -#: include/follow.php:254 -msgid "Unable to retrieve contact information." -msgstr "No ha sido posible recibir la información del contacto." - -#: include/follow.php:287 -msgid "following" -msgstr "siguiendo" - -#: include/Contact.php:105 -msgid "stopped following" -msgstr "dejó de seguir" - -#: include/Contact.php:409 -msgid "Drop Contact" -msgstr "Eliminar contacto" - -#: include/Contact.php:784 -msgid "Organisation" -msgstr "Organización" - -#: include/Contact.php:787 -msgid "News" -msgstr "Noticias" - -#: include/Contact.php:790 -msgid "Forum" -msgstr "Foro" - -#: include/oembed.php:264 -msgid "Embedded content" -msgstr "Contenido integrado" - -#: include/oembed.php:272 -msgid "Embedding disabled" -msgstr "Contenido incrustrado desabilitado" - -#: include/bbcode.php:348 include/bbcode.php:1055 include/bbcode.php:1056 -msgid "Image/photo" -msgstr "Imagen/Foto" - -#: include/bbcode.php:465 -#, php-format -msgid "%2$s %3$s" -msgstr "%2$s %3$s" - -#: include/bbcode.php:1015 include/bbcode.php:1035 -msgid "$1 wrote:" -msgstr "$1 escribió:" - -#: include/bbcode.php:1064 include/bbcode.php:1065 -msgid "Encrypted content" -msgstr "Contenido cifrado" - -#: include/contact_selectors.php:32 -msgid "Unknown | Not categorised" -msgstr "Desconocido | No clasificado" - -#: include/contact_selectors.php:33 -msgid "Block immediately" -msgstr "Bloquear inmediatamente" - -#: include/contact_selectors.php:34 -msgid "Shady, spammer, self-marketer" -msgstr "Sospechoso, spammer, auto-publicidad" - -#: include/contact_selectors.php:35 -msgid "Known to me, but no opinion" -msgstr "Le conozco, sin opinión" - -#: include/contact_selectors.php:36 -msgid "OK, probably harmless" -msgstr "OK, probablemente inofensivo" - -#: include/contact_selectors.php:37 -msgid "Reputable, has my trust" -msgstr "Buena reputación, tiene mi confianza" - -#: include/contact_selectors.php:56 mod/admin.php:890 -msgid "Frequently" -msgstr "Frequentemente" - -#: include/contact_selectors.php:57 mod/admin.php:891 -msgid "Hourly" -msgstr "Cada hora" - -#: include/contact_selectors.php:58 mod/admin.php:892 -msgid "Twice daily" -msgstr "Dos veces al día" - -#: include/contact_selectors.php:59 mod/admin.php:893 -msgid "Daily" -msgstr "Diariamente" - -#: include/contact_selectors.php:60 -msgid "Weekly" -msgstr "Semanalmente" - -#: include/contact_selectors.php:61 -msgid "Monthly" -msgstr "Mensualmente" - -#: include/contact_selectors.php:76 mod/dfrn_request.php:868 -msgid "Friendica" -msgstr "Friendica" - -#: include/contact_selectors.php:77 -msgid "OStatus" -msgstr "OStatus" - -#: include/contact_selectors.php:78 -msgid "RSS/Atom" -msgstr "RSS/Atom" - -#: include/contact_selectors.php:79 include/contact_selectors.php:86 -#: mod/admin.php:1396 mod/admin.php:1409 mod/admin.php:1422 mod/admin.php:1440 -msgid "Email" -msgstr "Correo electrónico" - -#: include/contact_selectors.php:80 mod/dfrn_request.php:870 -#: mod/settings.php:842 -msgid "Diaspora" -msgstr "Diaspora*" - -#: include/contact_selectors.php:81 -msgid "Facebook" -msgstr "Facebook" - -#: include/contact_selectors.php:82 -msgid "Zot!" -msgstr "Zot!" - -#: include/contact_selectors.php:83 -msgid "LinkedIn" -msgstr "LinkedIn" - -#: include/contact_selectors.php:84 -msgid "XMPP/IM" -msgstr "XMPP/IM" - -#: include/contact_selectors.php:85 -msgid "MySpace" -msgstr "MySpace" - -#: include/contact_selectors.php:87 -msgid "Google+" -msgstr "Google+" - -#: include/contact_selectors.php:88 -msgid "pump.io" -msgstr "pump.io" - -#: include/contact_selectors.php:89 -msgid "Twitter" -msgstr "Twitter" - -#: include/contact_selectors.php:90 -msgid "Diaspora Connector" -msgstr "Conector Diaspora" - -#: include/contact_selectors.php:91 -msgid "GNU Social" -msgstr "GNUsocial (OStatus)" - -#: include/contact_selectors.php:92 -msgid "App.net" -msgstr "App.net" - -#: include/contact_selectors.php:103 -msgid "Hubzilla/Redmatrix" -msgstr "Hubzilla/Redmatrix" - -#: include/dbstructure.php:26 -#, php-format -msgid "" -"\n" -"\t\t\tThe friendica developers released update %s recently,\n" -"\t\t\tbut when I tried to install it, something went terribly wrong.\n" -"\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n" -"\t\t\tfriendica developer if you can not help me on your own. My database might be invalid." -msgstr "\n\t\t\tLos desarolladores de friendica publicaron una actualización %s recientemente\n\t\t\tpero cuando intento de instalarla,algo salio terriblemente mal.\n\t\t\tEsto necesita ser arreglado pronto y no puedo hacerlo solo. Por favor contacta\n\t\t\tlos desarolladores de friendica si no me podes ayudar por ti solo. Mi base de datos puede estar invalido." - -#: include/dbstructure.php:31 -#, php-format -msgid "" -"The error message is\n" -"[pre]%s[/pre]" -msgstr "El mensaje de error es\n[pre]%s[/pre]" - -#: include/dbstructure.php:183 -msgid "Errors encountered creating database tables." -msgstr "Se han encontrados errores creando las tablas de la base de datos." - -#: include/dbstructure.php:260 -msgid "Errors encountered performing database changes." -msgstr "Errores encontrados al ejecutar cambios en la base de datos." - -#: include/auth.php:45 -msgid "Logged out." -msgstr "Sesión finalizada" - -#: include/auth.php:116 include/auth.php:178 mod/openid.php:100 -msgid "Login failed." -msgstr "Accesso fallido." - -#: include/auth.php:132 include/user.php:75 -msgid "" -"We encountered a problem while logging in with the OpenID you provided. " -"Please check the correct spelling of the ID." -msgstr "Se ha encontrado un problema para acceder con el OpenID que has escrito. Verifica que lo hayas escrito correctamente." - -#: include/auth.php:132 include/user.php:75 -msgid "The error message was:" -msgstr "El mensaje del error fue:" - -#: include/network.php:595 -msgid "view full size" -msgstr "Ver a tamaño completo" - -#: include/group.php:25 -msgid "" -"A deleted group with this name was revived. Existing item permissions " -"may apply to this group and any future members. If this is " -"not what you intended, please create another group with a different name." -msgstr "Un grupo eliminado con este nombre fue restablecido. Los permisos existentes pueden aplicarse a este grupo y a sus futuros miembros. Si esto no es lo que pretendes, por favor, crea otro grupo con un nombre diferente." - -#: include/group.php:209 -msgid "Default privacy group for new contacts" -msgstr "Grupo por defecto para nuevos contactos" - -#: include/group.php:242 -msgid "Everybody" -msgstr "Todo el mundo" - -#: include/group.php:265 -msgid "edit" -msgstr "editar" - -#: include/group.php:286 mod/newmember.php:61 -msgid "Groups" -msgstr "Grupos" - -#: include/group.php:288 -msgid "Edit groups" -msgstr "Editar grupo" - -#: include/group.php:290 -msgid "Edit group" -msgstr "Editar grupo" - -#: include/group.php:291 -msgid "Create a new group" -msgstr "Crear un nuevo grupo" - -#: include/group.php:292 mod/group.php:94 mod/group.php:178 -msgid "Group Name: " -msgstr "Nombre del grupo: " - -#: include/group.php:294 -msgid "Contacts not in any group" -msgstr "Contactos sin grupo" - -#: include/group.php:296 mod/network.php:201 -msgid "add" -msgstr "añadir" - -#: include/Photo.php:1040 include/Photo.php:1056 include/Photo.php:1064 -#: include/Photo.php:1089 include/message.php:145 mod/wall_upload.php:218 -#: mod/wall_upload.php:232 mod/wall_upload.php:239 mod/item.php:477 -msgid "Wall Photos" -msgstr "Foto del Muro" - -#: include/delivery.php:446 -msgid "(no subject)" -msgstr "(sin asunto)" - -#: include/user.php:39 mod/settings.php:373 -msgid "Passwords do not match. Password unchanged." -msgstr "Las contraseñas no coinciden. La contraseña no ha sido modificada." - -#: include/user.php:48 -msgid "An invitation is required." -msgstr "Se necesita invitación." - -#: include/user.php:53 -msgid "Invitation could not be verified." -msgstr "No se puede verificar la invitación." - -#: include/user.php:61 -msgid "Invalid OpenID url" -msgstr "Dirección OpenID no válida" - -#: include/user.php:82 -msgid "Please enter the required information." -msgstr "Por favor, introduce la información necesaria." - -#: include/user.php:96 -msgid "Please use a shorter name." -msgstr "Por favor, usa un nombre más corto." - -#: include/user.php:98 -msgid "Name too short." -msgstr "El nombre es demasiado corto." - -#: include/user.php:113 -msgid "That doesn't appear to be your full (First Last) name." -msgstr "No parece que ese sea tu nombre completo." - -#: include/user.php:118 -msgid "Your email domain is not among those allowed on this site." -msgstr "Tu dominio de correo no se encuentra entre los permitidos en este sitio." - -#: include/user.php:121 -msgid "Not a valid email address." -msgstr "No es una dirección de correo electrónico válida." - -#: include/user.php:134 -msgid "Cannot use that email." -msgstr "No se puede utilizar este correo electrónico." - -#: include/user.php:140 -msgid "Your \"nickname\" can only contain \"a-z\", \"0-9\" and \"_\"." -msgstr "El apodo solo puede contener \"a-z\", \"0-9\" y \"_\"." - -#: include/user.php:147 include/user.php:245 -msgid "Nickname is already registered. Please choose another." -msgstr "Apodo ya registrado. Por favor, elije otro." - -#: include/user.php:157 -msgid "" -"Nickname was once registered here and may not be re-used. Please choose " -"another." -msgstr "El apodo ya ha sido registrado alguna vez y no puede volver a usarse. Por favor, utiliza otro." - -#: include/user.php:173 -msgid "SERIOUS ERROR: Generation of security keys failed." -msgstr "ERROR GRAVE: La generación de claves de seguridad ha fallado." - -#: include/user.php:231 -msgid "An error occurred during registration. Please try again." -msgstr "Se produjo un error durante el registro. Por favor, inténtalo de nuevo." - -#: include/user.php:256 view/theme/duepuntozero/config.php:44 -msgid "default" -msgstr "predeterminado" - -#: include/user.php:266 -msgid "An error occurred creating your default profile. Please try again." -msgstr "Error al crear tu perfil predeterminado. Por favor, inténtalo de nuevo." - -#: include/user.php:345 include/user.php:352 include/user.php:359 -#: mod/photos.php:66 mod/photos.php:180 mod/photos.php:751 mod/photos.php:1211 -#: mod/photos.php:1232 mod/photos.php:1819 mod/profile_photo.php:74 -#: mod/profile_photo.php:81 mod/profile_photo.php:88 mod/profile_photo.php:210 -#: mod/profile_photo.php:302 mod/profile_photo.php:311 -msgid "Profile Photos" -msgstr "Foto del perfil" - -#: include/user.php:390 -#, php-format -msgid "" -"\n" -"\t\tDear %1$s,\n" -"\t\t\tThank you for registering at %2$s. Your account is pending for approval by the administrator.\n" -"\t" -msgstr "\n\t\tEstimado %1$s,\n\t\t\tGracias por registrarse en %2$s. Su cuenta está pendiente de aprobación por el administrador.\n\t" - -#: include/user.php:400 -#, php-format -msgid "Registration at %s" -msgstr "Registro en %s" - -#: include/user.php:410 -#, php-format -msgid "" -"\n" -"\t\tDear %1$s,\n" -"\t\t\tThank you for registering at %2$s. Your account has been created.\n" -"\t" -msgstr "\n\t\tEstimado %1$s,\n\t\t\tGracias por registrar en %2$s. Su cuenta ha sido creada.\n\t" - -#: include/user.php:414 -#, php-format -msgid "" -"\n" -"\t\tThe login details are as follows:\n" -"\t\t\tSite Location:\t%3$s\n" -"\t\t\tLogin Name:\t%1$s\n" -"\t\t\tPassword:\t%5$s\n" -"\n" -"\t\tYou may change your password from your account \"Settings\" page after logging\n" -"\t\tin.\n" -"\n" -"\t\tPlease take a few moments to review the other account settings on that page.\n" -"\n" -"\t\tYou may also wish to add some basic information to your default profile\n" -"\t\t(on the \"Profiles\" page) so that other people can easily find you.\n" -"\n" -"\t\tWe recommend setting your full name, adding a profile photo,\n" -"\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n" -"\t\tperhaps what country you live in; if you do not wish to be more specific\n" -"\t\tthan that.\n" -"\n" -"\t\tWe fully respect your right to privacy, and none of these items are necessary.\n" -"\t\tIf you are new and do not know anybody here, they may help\n" -"\t\tyou to make some new and interesting friends.\n" -"\n" -"\n" -"\t\tThank you and welcome to %2$s." -msgstr "\n\t\t\tLos detalles de acceso son las siguientes:\n\n\t\t\tDirección del sitio:\t%3$s\n\t\t\tNombre de la cuenta:\t\t%1$s\n\t\t\tContraseña:\t\t%5$s\n\n\t\t\tPodrá cambiar la contraseña desde la pagina de configuración de su cuenta después de acceder a la misma\n\t\t\ten.\n\n\t\t\tPor favor tome unos minutos para revisar las opciones demás de la cuenta en dicha pagina de configuración.\n\n\t\t\tTambién podrá agregar informaciones adicionales a su pagina de perfil predeterminado. \n\t\t\t(en la pagina \"Perfiles\") para que otras personas pueden encontrarlo fácilmente.\n\n\t\t\tRecomendamos que elija un nombre apropiado, agregando una imagen de perfil,\n\t\t\tagregando algunas palabras claves de la cuenta (muy útil para hacer nuevos amigos) - y \n\t\t\tquizás el país en donde vive; si no quiere ser mas especifico\n\t\t\tque eso.\n\n\t\t\tRespetamos absolutamente su derecho a la privacidad y ninguno de estos detalles es necesario.\n\t\t\tSi eres nuevo aquí y no conoces a nadie, estos detalles pueden ayudarte\n\t\t\tpara hacer nuevas e interesantes amistades.\n\n\t\t\tGracias y bienvenido a %2$s." - -#: include/user.php:446 mod/admin.php:1213 -#, php-format -msgid "Registration details for %s" -msgstr "Detalles de registro para %s" - -#: include/api.php:1018 -#, php-format -msgid "Daily posting limit of %d posts reached. The post was rejected." -msgstr "Limite diario de publicaciones %d alcanzado. La publicación fue rechazada." - -#: include/api.php:1038 -#, php-format -msgid "Weekly posting limit of %d posts reached. The post was rejected." -msgstr "Limite semanal de publicaciones %d alcanzado. La publicación fue rechazada." - -#: include/api.php:1059 -#, php-format -msgid "Monthly posting limit of %d posts reached. The post was rejected." -msgstr "Limite mensual de publicaciones %d alcanzado. La publicación fue rechazada." +msgid "%s\\'s birthday" +msgstr "%s\\'s cumpleaños" #: include/features.php:70 msgid "General Features" @@ -2895,326 +2403,719 @@ msgstr "Ajustes avanzados del perfil" msgid "Show visitors public community forums at the Advanced Profile Page" msgstr "Mostrar a los visitantes foros públicos en las que se esta participando en el pagina avanzada de perfiles." -#: include/nav.php:35 mod/navigation.php:19 -msgid "Nothing new here" -msgstr "Nada nuevo por aquí" +#: include/follow.php:81 mod/dfrn_request.php:509 +msgid "Disallowed profile URL." +msgstr "Dirección de perfil no permitida." -#: include/nav.php:39 mod/navigation.php:23 -msgid "Clear notifications" -msgstr "Limpiar notificaciones" +#: include/follow.php:86 +msgid "Connect URL missing." +msgstr "Falta el conector URL." -#: include/nav.php:78 view/theme/frio/theme.php:246 -msgid "End this session" -msgstr "Cerrar la sesión" +#: include/follow.php:113 +msgid "" +"This site is not configured to allow communications with other networks." +msgstr "Este sitio no está configurado para permitir la comunicación con otras redes." -#: include/nav.php:81 include/nav.php:161 view/theme/frio/theme.php:249 -msgid "Your posts and conversations" -msgstr "Tus publicaciones y conversaciones" +#: include/follow.php:114 include/follow.php:134 +msgid "No compatible communication protocols or feeds were discovered." +msgstr "No se ha descubierto protocolos de comunicación o fuentes compatibles." -#: include/nav.php:82 view/theme/frio/theme.php:250 -msgid "Your profile page" -msgstr "Tu página de perfil" +#: include/follow.php:132 +msgid "The profile address specified does not provide adequate information." +msgstr "La dirección del perfil especificado no proporciona información adecuada." -#: include/nav.php:83 view/theme/frio/theme.php:251 -msgid "Your photos" -msgstr "Tus fotos" +#: include/follow.php:136 +msgid "An author or name was not found." +msgstr "No se ha encontrado un autor o nombre." -#: include/nav.php:84 view/theme/frio/theme.php:252 -msgid "Your videos" -msgstr "Tus videos" +#: include/follow.php:138 +msgid "No browser URL could be matched to this address." +msgstr "Ninguna dirección concuerda con la suministrada." -#: include/nav.php:85 view/theme/frio/theme.php:253 -msgid "Your events" -msgstr "Tus eventos" +#: include/follow.php:140 +msgid "" +"Unable to match @-style Identity Address with a known protocol or email " +"contact." +msgstr "Imposible identificar la dirección @ con algún protocolo conocido o dirección de contacto." -#: include/nav.php:86 -msgid "Personal notes" +#: include/follow.php:141 +msgid "Use mailto: in front of address to force email check." +msgstr "Escribe mailto: al principio de la dirección para forzar el envío." + +#: include/follow.php:147 +msgid "" +"The profile address specified belongs to a network which has been disabled " +"on this site." +msgstr "La dirección del perfil especificada pertenece a una red que ha sido deshabilitada en este sitio." + +#: include/follow.php:157 +msgid "" +"Limited profile. This person will be unable to receive direct/personal " +"notifications from you." +msgstr "Perfil limitado. Esta persona no podrá recibir notificaciones directas/personales tuyas." + +#: include/follow.php:258 +msgid "Unable to retrieve contact information." +msgstr "No ha sido posible recibir la información del contacto." + +#: include/identity.php:42 +msgid "Requested account is not available." +msgstr "La cuenta solicitada no está disponible." + +#: include/identity.php:51 mod/profile.php:21 +msgid "Requested profile is not available." +msgstr "El perfil solicitado no está disponible." + +#: include/identity.php:95 include/identity.php:311 include/identity.php:688 +msgid "Edit profile" +msgstr "Editar perfil" + +#: include/identity.php:251 +msgid "Atom feed" +msgstr "Atom feed" + +#: include/identity.php:282 +msgid "Manage/edit profiles" +msgstr "Administrar/editar perfiles" + +#: include/identity.php:287 include/identity.php:313 mod/profiles.php:795 +msgid "Change profile photo" +msgstr "Cambiar foto del perfil" + +#: include/identity.php:288 mod/profiles.php:796 +msgid "Create New Profile" +msgstr "Crear nuevo perfil" + +#: include/identity.php:298 mod/profiles.php:785 +msgid "Profile Image" +msgstr "Imagen del Perfil" + +#: include/identity.php:301 mod/profiles.php:787 +msgid "visible to everybody" +msgstr "Visible para todos" + +#: include/identity.php:302 mod/profiles.php:691 mod/profiles.php:788 +msgid "Edit visibility" +msgstr "Editar visibilidad" + +#: include/identity.php:330 include/identity.php:616 mod/notifications.php:238 +#: mod/directory.php:139 +msgid "Gender:" +msgstr "Género:" + +#: include/identity.php:333 include/identity.php:636 mod/directory.php:141 +msgid "Status:" +msgstr "Estado:" + +#: include/identity.php:335 include/identity.php:647 mod/directory.php:143 +msgid "Homepage:" +msgstr "Página de inicio:" + +#: include/identity.php:337 include/identity.php:657 mod/notifications.php:234 +#: mod/directory.php:145 mod/contacts.php:632 +msgid "About:" +msgstr "Acerca de:" + +#: include/identity.php:339 mod/contacts.php:630 +msgid "XMPP:" +msgstr "XMPP:" + +#: include/identity.php:422 mod/notifications.php:246 mod/contacts.php:50 +msgid "Network:" +msgstr "Red:" + +#: include/identity.php:451 include/identity.php:535 +msgid "g A l F d" +msgstr "g A l F d" + +#: include/identity.php:452 include/identity.php:536 +msgid "F d" +msgstr "F d" + +#: include/identity.php:497 include/identity.php:582 +msgid "[today]" +msgstr "[hoy]" + +#: include/identity.php:509 +msgid "Birthday Reminders" +msgstr "Recordatorios de cumpleaños" + +#: include/identity.php:510 +msgid "Birthdays this week:" +msgstr "Cumpleaños esta semana:" + +#: include/identity.php:569 +msgid "[No description]" +msgstr "[Sin descripción]" + +#: include/identity.php:593 +msgid "Event Reminders" +msgstr "Recordatorios de eventos" + +#: include/identity.php:594 +msgid "Events this week:" +msgstr "Eventos de esta semana:" + +#: include/identity.php:614 mod/settings.php:1279 +msgid "Full Name:" +msgstr "Nombre completo:" + +#: include/identity.php:621 +msgid "j F, Y" +msgstr "j F, Y" + +#: include/identity.php:622 +msgid "j F" +msgstr "j F" + +#: include/identity.php:633 +msgid "Age:" +msgstr "Edad:" + +#: include/identity.php:642 +#, php-format +msgid "for %1$d %2$s" +msgstr "por %1$d %2$s" + +#: include/identity.php:645 mod/profiles.php:710 +msgid "Sexual Preference:" +msgstr "Preferencia sexual:" + +#: include/identity.php:649 mod/profiles.php:737 +msgid "Hometown:" +msgstr "Ciudad de origen:" + +#: include/identity.php:651 mod/notifications.php:236 mod/contacts.php:634 +#: mod/follow.php:134 +msgid "Tags:" +msgstr "Etiquetas:" + +#: include/identity.php:653 mod/profiles.php:738 +msgid "Political Views:" +msgstr "Ideas políticas:" + +#: include/identity.php:655 +msgid "Religion:" +msgstr "Religión:" + +#: include/identity.php:659 +msgid "Hobbies/Interests:" +msgstr "Aficiones/Intereses:" + +#: include/identity.php:661 mod/profiles.php:742 +msgid "Likes:" +msgstr "Me gusta:" + +#: include/identity.php:663 mod/profiles.php:743 +msgid "Dislikes:" +msgstr "No me gusta:" + +#: include/identity.php:666 +msgid "Contact information and Social Networks:" +msgstr "Información de contacto y Redes sociales:" + +#: include/identity.php:668 +msgid "Musical interests:" +msgstr "Intereses musicales:" + +#: include/identity.php:670 +msgid "Books, literature:" +msgstr "Libros, literatura:" + +#: include/identity.php:672 +msgid "Television:" +msgstr "Televisión:" + +#: include/identity.php:674 +msgid "Film/dance/culture/entertainment:" +msgstr "Películas/baile/cultura/entretenimiento:" + +#: include/identity.php:676 +msgid "Love/Romance:" +msgstr "Amor/Romance:" + +#: include/identity.php:678 +msgid "Work/employment:" +msgstr "Trabajo/ocupación:" + +#: include/identity.php:680 +msgid "School/education:" +msgstr "Escuela/estudios:" + +#: include/identity.php:684 +msgid "Forums:" +msgstr "Foros:" + +#: include/identity.php:692 mod/events.php:507 +msgid "Basic" +msgstr "Basic" + +#: include/identity.php:693 mod/events.php:508 mod/admin.php:959 +#: mod/contacts.php:870 +msgid "Advanced" +msgstr "Avanzado" + +#: include/identity.php:717 mod/contacts.php:836 mod/follow.php:142 +msgid "Status Messages and Posts" +msgstr "Mensajes de Estado y Publicaciones" + +#: include/identity.php:725 mod/contacts.php:844 +msgid "Profile Details" +msgstr "Detalles del Perfil" + +#: include/identity.php:733 mod/photos.php:87 +msgid "Photo Albums" +msgstr "Álbum de Fotos" + +#: include/identity.php:772 mod/notes.php:46 +msgid "Personal Notes" msgstr "Notas personales" -#: include/nav.php:86 -msgid "Your personal notes" -msgstr "Tus notas personales" +#: include/identity.php:775 +msgid "Only You Can See This" +msgstr "Únicamente tú puedes ver esto" -#: include/nav.php:95 -msgid "Sign in" -msgstr "Date de alta" +#: include/items.php:1575 mod/dfrn_confirm.php:730 mod/dfrn_request.php:746 +msgid "[Name Withheld]" +msgstr "[Nombre oculto]" -#: include/nav.php:105 -msgid "Home Page" -msgstr "Página de inicio" +#: include/items.php:1930 mod/viewsrc.php:15 mod/notice.php:15 +#: mod/display.php:103 mod/display.php:279 mod/display.php:478 +#: mod/admin.php:234 mod/admin.php:1471 mod/admin.php:1705 +msgid "Item not found." +msgstr "Elemento no encontrado." -#: include/nav.php:109 -msgid "Create an account" -msgstr "Crea una cuenta" +#: include/items.php:1969 +msgid "Do you really want to delete this item?" +msgstr "¿Realmente quieres borrar este objeto?" -#: include/nav.php:115 mod/help.php:47 view/theme/vier/theme.php:298 -msgid "Help" -msgstr "Ayuda" +#: include/items.php:1971 mod/api.php:105 mod/message.php:217 +#: mod/profiles.php:648 mod/profiles.php:651 mod/profiles.php:677 +#: mod/suggest.php:29 mod/register.php:245 mod/settings.php:1163 +#: mod/settings.php:1169 mod/settings.php:1177 mod/settings.php:1181 +#: mod/settings.php:1186 mod/settings.php:1192 mod/settings.php:1198 +#: mod/settings.php:1204 mod/settings.php:1230 mod/settings.php:1231 +#: mod/settings.php:1232 mod/settings.php:1233 mod/settings.php:1234 +#: mod/contacts.php:442 mod/dfrn_request.php:862 mod/follow.php:110 +msgid "Yes" +msgstr "Sí" -#: include/nav.php:115 -msgid "Help and documentation" -msgstr "Ayuda y documentación" +#: include/items.php:2134 mod/notes.php:22 mod/uimport.php:23 +#: mod/nogroup.php:25 mod/invite.php:15 mod/invite.php:101 +#: mod/repair_ostatus.php:9 mod/delegate.php:12 mod/attach.php:33 +#: mod/editpost.php:10 mod/group.php:19 mod/wallmessage.php:9 +#: mod/wallmessage.php:33 mod/wallmessage.php:79 mod/wallmessage.php:103 +#: mod/api.php:26 mod/api.php:31 mod/ostatus_subscribe.php:9 +#: mod/message.php:46 mod/message.php:182 mod/manage.php:96 +#: mod/crepair.php:100 mod/fsuggest.php:78 mod/mood.php:114 mod/poke.php:150 +#: mod/profile_photo.php:19 mod/profile_photo.php:175 +#: mod/profile_photo.php:186 mod/profile_photo.php:199 mod/regmod.php:110 +#: mod/notifications.php:71 mod/profiles.php:166 mod/profiles.php:605 +#: mod/allfriends.php:12 mod/cal.php:304 mod/common.php:18 mod/dirfind.php:11 +#: mod/display.php:475 mod/events.php:190 mod/suggest.php:58 +#: mod/photos.php:159 mod/photos.php:1072 mod/register.php:42 +#: mod/settings.php:22 mod/settings.php:128 mod/settings.php:665 +#: mod/wall_attach.php:67 mod/wall_attach.php:70 mod/wall_upload.php:77 +#: mod/wall_upload.php:80 mod/contacts.php:350 mod/dfrn_confirm.php:61 +#: mod/follow.php:11 mod/follow.php:73 mod/follow.php:155 mod/item.php:199 +#: mod/item.php:211 mod/network.php:4 mod/viewcontacts.php:45 index.php:401 +msgid "Permission denied." +msgstr "Permiso denegado." -#: include/nav.php:119 -msgid "Apps" -msgstr "Aplicaciones" +#: include/items.php:2239 +msgid "Archives" +msgstr "Archivos" -#: include/nav.php:119 -msgid "Addon applications, utilities, games" -msgstr "Aplicaciones, utilidades, juegos" +#: include/oembed.php:264 +msgid "Embedded content" +msgstr "Contenido integrado" -#: include/nav.php:123 -msgid "Search site content" -msgstr " Busca contenido en la página" +#: include/oembed.php:272 +msgid "Embedding disabled" +msgstr "Contenido incrustrado desabilitado" -#: include/nav.php:143 include/nav.php:145 mod/community.php:36 -msgid "Community" -msgstr "Comunidad" - -#: include/nav.php:143 -msgid "Conversations on this site" -msgstr "Conversaciones en este sitio" - -#: include/nav.php:145 -msgid "Conversations on the network" -msgstr "Conversaciones en la red" - -#: include/nav.php:152 -msgid "Directory" -msgstr "Directorio" - -#: include/nav.php:152 -msgid "People directory" -msgstr "Directorio de usuarios" - -#: include/nav.php:154 -msgid "Information" -msgstr "Información" - -#: include/nav.php:154 -msgid "Information about this friendica instance" -msgstr "Información sobre esta instancia de friendica" - -#: include/nav.php:158 view/theme/frio/theme.php:256 -msgid "Conversations from your friends" -msgstr "Conversaciones de tus amigos" - -#: include/nav.php:159 -msgid "Network Reset" -msgstr "Reseteo de la red" - -#: include/nav.php:159 -msgid "Load Network page with no filters" -msgstr "Cargar pagina de redes sin filtros" - -#: include/nav.php:166 -msgid "Friend Requests" -msgstr "Solicitudes de amistad" - -#: include/nav.php:169 mod/notifications.php:96 -msgid "Notifications" -msgstr "Notificaciones" - -#: include/nav.php:170 -msgid "See all notifications" -msgstr "Ver todas las notificaciones" - -#: include/nav.php:171 mod/settings.php:902 -msgid "Mark as seen" -msgstr "Marcar como leído" - -#: include/nav.php:171 -msgid "Mark all system notifications seen" -msgstr "Marcar todas las notificaciones del sistema como leídas" - -#: include/nav.php:175 mod/message.php:190 view/theme/frio/theme.php:258 -msgid "Messages" -msgstr "Mensajes" - -#: include/nav.php:175 view/theme/frio/theme.php:258 -msgid "Private mail" -msgstr "Correo privado" - -#: include/nav.php:176 -msgid "Inbox" -msgstr "Entrada" - -#: include/nav.php:177 -msgid "Outbox" -msgstr "Enviados" - -#: include/nav.php:178 mod/message.php:16 -msgid "New Message" -msgstr "Nuevo mensaje" - -#: include/nav.php:181 -msgid "Manage" -msgstr "Administrar" - -#: include/nav.php:181 -msgid "Manage other pages" -msgstr "Administrar otras páginas" - -#: include/nav.php:184 mod/settings.php:81 -msgid "Delegations" -msgstr "Delegaciones" - -#: include/nav.php:184 mod/delegate.php:130 -msgid "Delegate Page Management" -msgstr "Delegar la administración de la página" - -#: include/nav.php:186 mod/admin.php:1524 mod/admin.php:1782 -#: mod/newmember.php:22 mod/settings.php:111 view/theme/frio/theme.php:259 -msgid "Settings" -msgstr "Configuración" - -#: include/nav.php:186 view/theme/frio/theme.php:259 -msgid "Account settings" -msgstr "Configuración de tu cuenta" - -#: include/nav.php:189 -msgid "Manage/Edit Profiles" -msgstr "Manejar/editar Perfiles" - -#: include/nav.php:192 view/theme/frio/theme.php:260 -msgid "Manage/edit friends and contacts" -msgstr "Administrar/editar amigos y contactos" - -#: include/nav.php:197 mod/admin.php:186 -msgid "Admin" -msgstr "Admin" - -#: include/nav.php:197 -msgid "Site setup and configuration" -msgstr "Opciones y configuración del sitio" - -#: include/nav.php:200 -msgid "Navigation" -msgstr "Navegación" - -#: include/nav.php:200 -msgid "Site map" -msgstr "Mapa del sitio" - -#: include/like.php:186 +#: include/ostatus.php:1825 #, php-format -msgid "%1$s is attending %2$s's %3$s" -msgstr "%1$s atenderá %2$s's %3$s" +msgid "%s is now following %s." +msgstr "%s sigue ahora a %s." -#: include/like.php:188 +#: include/ostatus.php:1826 +msgid "following" +msgstr "siguiendo" + +#: include/ostatus.php:1829 #, php-format -msgid "%1$s is not attending %2$s's %3$s" -msgstr "%1$s no atenderá %2$s's %3$s" +msgid "%s stopped following %s." +msgstr "%s dejó de seguir a %s." -#: include/like.php:190 +#: include/ostatus.php:1830 +msgid "stopped following" +msgstr "dejó de seguir" + +#: include/text.php:304 +msgid "newer" +msgstr "más nuevo" + +#: include/text.php:306 +msgid "older" +msgstr "más antiguo" + +#: include/text.php:311 +msgid "prev" +msgstr "ant." + +#: include/text.php:313 +msgid "first" +msgstr "primera" + +#: include/text.php:345 +msgid "last" +msgstr "última" + +#: include/text.php:348 +msgid "next" +msgstr "sig." + +#: include/text.php:403 +msgid "Loading more entries..." +msgstr "Cargar mas entradas .." + +#: include/text.php:404 +msgid "The end" +msgstr "El fin" + +#: include/text.php:889 +msgid "No contacts" +msgstr "Sin contactos" + +#: include/text.php:912 #, php-format -msgid "%1$s may attend %2$s's %3$s" -msgstr "%1$s puede que atienda %2$s's %3$s" +msgid "%d Contact" +msgid_plural "%d Contacts" +msgstr[0] "%d Contacto" +msgstr[1] "%d Contactos" -#: include/acl_selectors.php:327 -msgid "Post to Email" -msgstr "Publicar mediante correo electrónico" +#: include/text.php:925 +msgid "View Contacts" +msgstr "Ver contactos" -#: include/acl_selectors.php:332 +#: include/text.php:1013 mod/notes.php:61 mod/filer.php:31 +#: mod/editpost.php:109 +msgid "Save" +msgstr "Guardar" + +#: include/text.php:1076 +msgid "poke" +msgstr "tocar" + +#: include/text.php:1076 +msgid "poked" +msgstr "tocó a" + +#: include/text.php:1077 +msgid "ping" +msgstr "hacer \"ping\"" + +#: include/text.php:1077 +msgid "pinged" +msgstr "hizo \"ping\" a" + +#: include/text.php:1078 +msgid "prod" +msgstr "empujar" + +#: include/text.php:1078 +msgid "prodded" +msgstr "empujó a" + +#: include/text.php:1079 +msgid "slap" +msgstr "abofetear" + +#: include/text.php:1079 +msgid "slapped" +msgstr "abofeteó a" + +#: include/text.php:1080 +msgid "finger" +msgstr "meter dedo" + +#: include/text.php:1080 +msgid "fingered" +msgstr "le metió un dedo a" + +#: include/text.php:1081 +msgid "rebuff" +msgstr "desairar" + +#: include/text.php:1081 +msgid "rebuffed" +msgstr "desairó a" + +#: include/text.php:1095 +msgid "happy" +msgstr "feliz" + +#: include/text.php:1096 +msgid "sad" +msgstr "triste" + +#: include/text.php:1097 +msgid "mellow" +msgstr "sentimental" + +#: include/text.php:1098 +msgid "tired" +msgstr "cansado" + +#: include/text.php:1099 +msgid "perky" +msgstr "alegre" + +#: include/text.php:1100 +msgid "angry" +msgstr "furioso" + +#: include/text.php:1101 +msgid "stupified" +msgstr "estupefacto" + +#: include/text.php:1102 +msgid "puzzled" +msgstr "extrañado" + +#: include/text.php:1103 +msgid "interested" +msgstr "interesado" + +#: include/text.php:1104 +msgid "bitter" +msgstr "rencoroso" + +#: include/text.php:1105 +msgid "cheerful" +msgstr "jovial" + +#: include/text.php:1106 +msgid "alive" +msgstr "vivo" + +#: include/text.php:1107 +msgid "annoyed" +msgstr "enojado" + +#: include/text.php:1108 +msgid "anxious" +msgstr "ansioso" + +#: include/text.php:1109 +msgid "cranky" +msgstr "irritable" + +#: include/text.php:1110 +msgid "disturbed" +msgstr "perturbado" + +#: include/text.php:1111 +msgid "frustrated" +msgstr "frustrado" + +#: include/text.php:1112 +msgid "motivated" +msgstr "motivado" + +#: include/text.php:1113 +msgid "relaxed" +msgstr "relajado" + +#: include/text.php:1114 +msgid "surprised" +msgstr "sorprendido" + +#: include/text.php:1324 mod/videos.php:380 +msgid "View Video" +msgstr "Ver vídeo" + +#: include/text.php:1356 +msgid "bytes" +msgstr "bytes" + +#: include/text.php:1388 include/text.php:1400 +msgid "Click to open/close" +msgstr "Pulsa para abrir/cerrar" + +#: include/text.php:1526 +msgid "View on separate page" +msgstr "Ver en pagina aparte" + +#: include/text.php:1527 +msgid "view on separate page" +msgstr "ver en pagina aparte" + +#: include/text.php:1806 +msgid "activity" +msgstr "Actividad" + +#: include/text.php:1808 mod/content.php:623 object/Item.php:431 +#: object/Item.php:444 +msgid "comment" +msgid_plural "comments" +msgstr[0] "" +msgstr[1] "Comentario" + +#: include/text.php:1809 +msgid "post" +msgstr "Publicación" + +#: include/text.php:1977 +msgid "Item filed" +msgstr "Elemento archivado" + +#: include/user.php:39 mod/settings.php:373 +msgid "Passwords do not match. Password unchanged." +msgstr "Las contraseñas no coinciden. La contraseña no ha sido modificada." + +#: include/user.php:48 +msgid "An invitation is required." +msgstr "Se necesita invitación." + +#: include/user.php:53 +msgid "Invitation could not be verified." +msgstr "No se puede verificar la invitación." + +#: include/user.php:61 +msgid "Invalid OpenID url" +msgstr "Dirección OpenID no válida" + +#: include/user.php:82 +msgid "Please enter the required information." +msgstr "Por favor, introduce la información necesaria." + +#: include/user.php:96 +msgid "Please use a shorter name." +msgstr "Por favor, usa un nombre más corto." + +#: include/user.php:98 +msgid "Name too short." +msgstr "El nombre es demasiado corto." + +#: include/user.php:113 +msgid "That doesn't appear to be your full (First Last) name." +msgstr "No parece que ese sea tu nombre completo." + +#: include/user.php:118 +msgid "Your email domain is not among those allowed on this site." +msgstr "Tu dominio de correo no se encuentra entre los permitidos en este sitio." + +#: include/user.php:121 +msgid "Not a valid email address." +msgstr "No es una dirección de correo electrónico válida." + +#: include/user.php:134 +msgid "Cannot use that email." +msgstr "No se puede utilizar este correo electrónico." + +#: include/user.php:140 +msgid "Your \"nickname\" can only contain \"a-z\", \"0-9\" and \"_\"." +msgstr "El apodo solo puede contener \"a-z\", \"0-9\" y \"_\"." + +#: include/user.php:147 include/user.php:245 +msgid "Nickname is already registered. Please choose another." +msgstr "Apodo ya registrado. Por favor, elije otro." + +#: include/user.php:157 +msgid "" +"Nickname was once registered here and may not be re-used. Please choose " +"another." +msgstr "El apodo ya ha sido registrado alguna vez y no puede volver a usarse. Por favor, utiliza otro." + +#: include/user.php:173 +msgid "SERIOUS ERROR: Generation of security keys failed." +msgstr "ERROR GRAVE: La generación de claves de seguridad ha fallado." + +#: include/user.php:231 +msgid "An error occurred during registration. Please try again." +msgstr "Se produjo un error durante el registro. Por favor, inténtalo de nuevo." + +#: include/user.php:256 view/theme/duepuntozero/config.php:44 +msgid "default" +msgstr "predeterminado" + +#: include/user.php:266 +msgid "An error occurred creating your default profile. Please try again." +msgstr "Error al crear tu perfil predeterminado. Por favor, inténtalo de nuevo." + +#: include/user.php:326 include/user.php:333 include/user.php:340 +#: mod/profile_photo.php:74 mod/profile_photo.php:81 mod/profile_photo.php:88 +#: mod/profile_photo.php:210 mod/profile_photo.php:302 +#: mod/profile_photo.php:311 mod/photos.php:66 mod/photos.php:180 +#: mod/photos.php:751 mod/photos.php:1211 mod/photos.php:1232 +#: mod/photos.php:1819 +msgid "Profile Photos" +msgstr "Foto del perfil" + +#: include/user.php:414 #, php-format -msgid "Connectors disabled, since \"%s\" is enabled." -msgstr "Conectores deshabilitados, ya que \"%s\" es habilitado." +msgid "" +"\n" +"\t\tDear %1$s,\n" +"\t\t\tThank you for registering at %2$s. Your account is pending for approval by the administrator.\n" +"\t" +msgstr "\n\t\tEstimado %1$s,\n\t\t\tGracias por registrarse en %2$s. Su cuenta está pendiente de aprobación por el administrador.\n\t" -#: include/acl_selectors.php:333 mod/settings.php:1181 -msgid "Hide your profile details from unknown viewers?" -msgstr "¿Quieres que los detalles de tu perfil permanezcan ocultos a los desconocidos?" - -#: include/acl_selectors.php:338 -msgid "Visible to everybody" -msgstr "Visible para cualquiera" - -#: include/acl_selectors.php:339 view/theme/vier/config.php:103 -msgid "show" -msgstr "mostrar" - -#: include/acl_selectors.php:340 view/theme/vier/config.php:103 -msgid "don't show" -msgstr "no mostrar" - -#: include/acl_selectors.php:346 mod/editpost.php:133 -msgid "CC: email addresses" -msgstr "CC: dirección de correo electrónico" - -#: include/acl_selectors.php:347 mod/editpost.php:140 -msgid "Example: bob@example.com, mary@example.com" -msgstr "Ejemplo: juan@ejemplo.com, sofia@ejemplo.com" - -#: include/acl_selectors.php:349 mod/events.php:509 mod/photos.php:1156 -#: mod/photos.php:1535 -msgid "Permissions" -msgstr "Permisos" - -#: include/acl_selectors.php:350 -msgid "Close" -msgstr "Cerrado" - -#: include/message.php:15 include/message.php:173 -msgid "[no subject]" -msgstr "[sin asunto]" - -#: index.php:244 mod/apps.php:7 -msgid "You must be logged in to use addons. " -msgstr "Tienes que estar registrado para tener acceso a los accesorios." - -#: index.php:288 mod/help.php:53 mod/p.php:16 mod/p.php:43 mod/p.php:52 -#: mod/fetch.php:12 mod/fetch.php:39 mod/fetch.php:48 -msgid "Not Found" -msgstr "No se ha encontrado" - -#: index.php:291 mod/help.php:56 -msgid "Page not found." -msgstr "Página no encontrada." - -#: index.php:400 mod/profperm.php:19 mod/group.php:72 -msgid "Permission denied" -msgstr "Permiso denegado" - -#: index.php:451 -msgid "toggle mobile" -msgstr "Cambiar a versión móvil" - -#: mod/regmod.php:55 -msgid "Account approved." -msgstr "Cuenta aprobada." - -#: mod/regmod.php:92 +#: include/user.php:424 #, php-format -msgid "Registration revoked for %s" -msgstr "Registro anulado para %s" +msgid "Registration at %s" +msgstr "Registro en %s" -#: mod/regmod.php:104 -msgid "Please login." -msgstr "Por favor accede." +#: include/user.php:434 +#, php-format +msgid "" +"\n" +"\t\tDear %1$s,\n" +"\t\t\tThank you for registering at %2$s. Your account has been created.\n" +"\t" +msgstr "\n\t\tEstimado %1$s,\n\t\t\tGracias por registrar en %2$s. Su cuenta ha sido creada.\n\t" + +#: include/user.php:438 +#, php-format +msgid "" +"\n" +"\t\tThe login details are as follows:\n" +"\t\t\tSite Location:\t%3$s\n" +"\t\t\tLogin Name:\t%1$s\n" +"\t\t\tPassword:\t%5$s\n" +"\n" +"\t\tYou may change your password from your account \"Settings\" page after logging\n" +"\t\tin.\n" +"\n" +"\t\tPlease take a few moments to review the other account settings on that page.\n" +"\n" +"\t\tYou may also wish to add some basic information to your default profile\n" +"\t\t(on the \"Profiles\" page) so that other people can easily find you.\n" +"\n" +"\t\tWe recommend setting your full name, adding a profile photo,\n" +"\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n" +"\t\tperhaps what country you live in; if you do not wish to be more specific\n" +"\t\tthan that.\n" +"\n" +"\t\tWe fully respect your right to privacy, and none of these items are necessary.\n" +"\t\tIf you are new and do not know anybody here, they may help\n" +"\t\tyou to make some new and interesting friends.\n" +"\n" +"\n" +"\t\tThank you and welcome to %2$s." +msgstr "\n\t\t\tLos detalles de acceso son las siguientes:\n\n\t\t\tDirección del sitio:\t%3$s\n\t\t\tNombre de la cuenta:\t\t%1$s\n\t\t\tContraseña:\t\t%5$s\n\n\t\t\tPodrá cambiar la contraseña desde la pagina de configuración de su cuenta después de acceder a la misma\n\t\t\ten.\n\n\t\t\tPor favor tome unos minutos para revisar las opciones demás de la cuenta en dicha pagina de configuración.\n\n\t\t\tTambién podrá agregar informaciones adicionales a su pagina de perfil predeterminado. \n\t\t\t(en la pagina \"Perfiles\") para que otras personas pueden encontrarlo fácilmente.\n\n\t\t\tRecomendamos que elija un nombre apropiado, agregando una imagen de perfil,\n\t\t\tagregando algunas palabras claves de la cuenta (muy útil para hacer nuevos amigos) - y \n\t\t\tquizás el país en donde vive; si no quiere ser mas especifico\n\t\t\tque eso.\n\n\t\t\tRespetamos absolutamente su derecho a la privacidad y ninguno de estos detalles es necesario.\n\t\t\tSi eres nuevo aquí y no conoces a nadie, estos detalles pueden ayudarte\n\t\t\tpara hacer nuevas e interesantes amistades.\n\n\t\t\tGracias y bienvenido a %2$s." + +#: include/user.php:470 mod/admin.php:1213 +#, php-format +msgid "Registration details for %s" +msgstr "Detalles de registro para %s" #: mod/oexchange.php:25 msgid "Post successful." msgstr "¡Publicado!" -#: mod/update_community.php:19 mod/update_notes.php:36 -#: mod/update_display.php:23 mod/update_profile.php:35 -#: mod/update_network.php:27 -msgid "[Embedded content - reload page to view]" -msgstr "[Contenido incrustado - recarga la página para verlo]" - -#: mod/dirfind.php:36 -#, php-format -msgid "People Search - %s" -msgstr "Buscar perfiles - %s" - -#: mod/dirfind.php:47 -#, php-format -msgid "Forum Search - %s" -msgstr "Búsqueda de foro - %s" - -#: mod/dirfind.php:240 mod/match.php:107 -msgid "No matches" -msgstr "Sin conincidencias" - #: mod/viewsrc.php:7 msgid "Access denied." msgstr "Acceso denegado." @@ -3236,9 +3137,9 @@ msgstr "Notificaciones del sistema" msgid "Remove term" msgstr "Eliminar término" -#: mod/search.php:93 mod/search.php:99 mod/directory.php:37 -#: mod/viewcontacts.php:35 mod/videos.php:194 mod/photos.php:944 -#: mod/display.php:200 mod/community.php:22 mod/dfrn_request.php:791 +#: mod/search.php:93 mod/search.php:99 mod/community.php:22 +#: mod/directory.php:37 mod/display.php:200 mod/photos.php:944 +#: mod/videos.php:194 mod/dfrn_request.php:791 mod/viewcontacts.php:35 msgid "Public access denied." msgstr "Acceso público denegado." @@ -3268,210 +3169,6 @@ msgstr "Objetos taggeado con: %s" msgid "Results for: %s" msgstr "Resultados para: %s" -#: mod/notifications.php:35 -msgid "Invalid request identifier." -msgstr "Solicitud de identificación no válida." - -#: mod/notifications.php:44 mod/notifications.php:180 -#: mod/notifications.php:252 -msgid "Discard" -msgstr "Descartar" - -#: mod/notifications.php:60 mod/notifications.php:179 -#: mod/notifications.php:251 mod/contacts.php:606 mod/contacts.php:806 -#: mod/contacts.php:1000 -msgid "Ignore" -msgstr "Ignorar" - -#: mod/notifications.php:105 -msgid "Network Notifications" -msgstr "Notificaciones de Red" - -#: mod/notifications.php:117 -msgid "Personal Notifications" -msgstr "Notificaciones personales" - -#: mod/notifications.php:123 -msgid "Home Notifications" -msgstr "Notificaciones de Inicio" - -#: mod/notifications.php:152 -msgid "Show Ignored Requests" -msgstr "Mostrar peticiones ignoradas" - -#: mod/notifications.php:152 -msgid "Hide Ignored Requests" -msgstr "Ocultar peticiones ignoradas" - -#: mod/notifications.php:164 mod/notifications.php:222 -msgid "Notification type: " -msgstr "Tipo de notificación: " - -#: mod/notifications.php:167 -#, php-format -msgid "suggested by %s" -msgstr "sugerido por %s" - -#: mod/notifications.php:172 mod/notifications.php:239 mod/contacts.php:613 -msgid "Hide this contact from others" -msgstr "Ocultar este contacto a los demás." - -#: mod/notifications.php:173 mod/notifications.php:240 -msgid "Post a new friend activity" -msgstr "Publica tu nueva amistad" - -#: mod/notifications.php:173 mod/notifications.php:240 -msgid "if applicable" -msgstr "Si corresponde" - -#: mod/notifications.php:176 mod/notifications.php:249 mod/admin.php:1412 -msgid "Approve" -msgstr "Aprobar" - -#: mod/notifications.php:195 -msgid "Claims to be known to you: " -msgstr "Dice conocerte: " - -#: mod/notifications.php:196 -msgid "yes" -msgstr "sí" - -#: mod/notifications.php:196 -msgid "no" -msgstr "no" - -#: mod/notifications.php:197 -msgid "" -"Shall your connection be bidirectional or not? \"Friend\" implies that you " -"allow to read and you subscribe to their posts. \"Fan/Admirer\" means that " -"you allow to read but you do not want to read theirs. Approve as: " -msgstr "¿Deberá la coneccion ser bidireccional?\n\"Amigo\" implica que permitas la lectura y subscribas a las publicaciones del contacto.\n\"Admirador\" significa que permitas la lectura de tus publicaciones pero que no quieras ver sus publicaciones.\n\nAprobar como:" - -#: mod/notifications.php:200 -msgid "" -"Shall your connection be bidirectional or not? \"Friend\" implies that you " -"allow to read and you subscribe to their posts. \"Sharer\" means that you " -"allow to read but you do not want to read theirs. Approve as: " -msgstr "¿Deberá la coneccion ser bidireccional?\n\"Amigo\" implica que permitas la lectura y subscribas a las publicaciones del contacto.\n\"Sharer\" significa que permitas la lectura de tus publicaciones pero que no quieras ver sus publicaciones.\n\nAprobar como:" - -#: mod/notifications.php:209 -msgid "Friend" -msgstr "Amigo" - -#: mod/notifications.php:210 -msgid "Sharer" -msgstr "Lector" - -#: mod/notifications.php:210 -msgid "Fan/Admirer" -msgstr "Fan/Admirador" - -#: mod/notifications.php:243 mod/contacts.php:624 mod/follow.php:126 -msgid "Profile URL" -msgstr "URL Perfil" - -#: mod/notifications.php:260 -msgid "No introductions." -msgstr "Sin presentaciones." - -#: mod/notifications.php:299 -msgid "Show unread" -msgstr "Mostrar no leído" - -#: mod/notifications.php:299 -msgid "Show all" -msgstr "Mostrar todo" - -#: mod/notifications.php:305 -#, php-format -msgid "No more %s notifications." -msgstr "No más notificaciones de %s." - -#: mod/dfrn_confirm.php:70 mod/profiles.php:19 mod/profiles.php:134 -#: mod/profiles.php:180 mod/profiles.php:617 -msgid "Profile not found." -msgstr "Perfil no encontrado." - -#: mod/dfrn_confirm.php:126 mod/fsuggest.php:20 mod/fsuggest.php:92 -#: mod/crepair.php:114 -msgid "Contact not found." -msgstr "Contacto no encontrado." - -#: mod/dfrn_confirm.php:127 -msgid "" -"This may occasionally happen if contact was requested by both persons and it" -" has already been approved." -msgstr "Esto puede ocurrir a veces si la conexión fue solicitada por ambas personas y ya hubiera sido aprobada." - -#: mod/dfrn_confirm.php:246 -msgid "Response from remote site was not understood." -msgstr "La respuesta desde el sitio remoto no ha sido entendida." - -#: mod/dfrn_confirm.php:255 mod/dfrn_confirm.php:260 -msgid "Unexpected response from remote site: " -msgstr "Respuesta inesperada desde el sitio remoto: " - -#: mod/dfrn_confirm.php:269 -msgid "Confirmation completed successfully." -msgstr "Confirmación completada con éxito." - -#: mod/dfrn_confirm.php:271 mod/dfrn_confirm.php:285 mod/dfrn_confirm.php:292 -msgid "Remote site reported: " -msgstr "El sito remoto informó: " - -#: mod/dfrn_confirm.php:283 -msgid "Temporary failure. Please wait and try again." -msgstr "Error temporal. Por favor, espere y vuelva a intentarlo." - -#: mod/dfrn_confirm.php:290 -msgid "Introduction failed or was revoked." -msgstr "La presentación ha fallado o ha sido anulada." - -#: mod/dfrn_confirm.php:419 -msgid "Unable to set contact photo." -msgstr "Imposible establecer la foto del contacto." - -#: mod/dfrn_confirm.php:557 -#, php-format -msgid "No user record found for '%s' " -msgstr "No se ha encontrado a ningún '%s' " - -#: mod/dfrn_confirm.php:567 -msgid "Our site encryption key is apparently messed up." -msgstr "Nuestra clave de cifrado del sitio es aparentemente un lío." - -#: mod/dfrn_confirm.php:578 -msgid "Empty site URL was provided or URL could not be decrypted by us." -msgstr "Se ha proporcionado una dirección vacía o no hemos podido descifrarla." - -#: mod/dfrn_confirm.php:599 -msgid "Contact record was not found for you on our site." -msgstr "El contacto no se ha encontrado en nuestra base de datos." - -#: mod/dfrn_confirm.php:613 -#, php-format -msgid "Site public key not available in contact record for URL %s." -msgstr "La clave pública del sitio no está disponible en los datos del contacto para %s." - -#: mod/dfrn_confirm.php:633 -msgid "" -"The ID provided by your system is a duplicate on our system. It should work " -"if you try again." -msgstr "La identificación proporcionada por el sistema es un duplicado de nuestro sistema. Debería funcionar si lo intentas de nuevo." - -#: mod/dfrn_confirm.php:644 -msgid "Unable to set your contact credentials on our system." -msgstr "No se puede establecer las credenciales de tu contacto en nuestro sistema." - -#: mod/dfrn_confirm.php:703 -msgid "Unable to update your contact profile details on our system" -msgstr "No se puede actualizar los datos de tu perfil de contacto en nuestro sistema" - -#: mod/dfrn_confirm.php:775 -#, php-format -msgid "%1$s has joined %2$s" -msgstr "%1$s se ha unido a %2$s" - #: mod/friendica.php:70 msgid "This is Friendica, version" msgstr "Esto es Friendica, versión" @@ -3560,6 +3257,10 @@ msgid "" "Password reset failed." msgstr "La solicitud no puede ser verificada (deberías haberla proporcionado antes). Falló el restablecimiento de la contraseña." +#: mod/lostpass.php:109 boot.php:1807 +msgid "Password Reset" +msgstr "Restablecer la contraseña" + #: mod/lostpass.php:110 msgid "Your password has been reset as requested." msgstr "Tu contraseña ha sido restablecida como solicitaste." @@ -3622,6 +3323,10 @@ msgid "" "your email for further instructions." msgstr "Introduce tu correo para restablecer tu contraseña. Luego comprueba tu correo para las instrucciones adicionales." +#: mod/lostpass.php:161 boot.php:1795 +msgid "Nickname or Email: " +msgstr "Apodo o Correo electrónico: " + #: mod/lostpass.php:162 msgid "Reset" msgstr "Restablecer" @@ -3634,50 +3339,14 @@ msgstr "Nigún perfil" msgid "Help:" msgstr "Ayuda:" -#: mod/wall_upload.php:20 mod/wall_upload.php:33 mod/wall_upload.php:86 -#: mod/wall_upload.php:122 mod/wall_upload.php:125 mod/wall_attach.php:17 -#: mod/wall_attach.php:25 mod/wall_attach.php:76 -msgid "Invalid request." -msgstr "Consulta invalida" +#: mod/help.php:53 mod/p.php:16 mod/p.php:43 mod/p.php:52 mod/fetch.php:12 +#: mod/fetch.php:39 mod/fetch.php:48 index.php:288 +msgid "Not Found" +msgstr "No se ha encontrado" -#: mod/wall_upload.php:151 mod/photos.php:786 mod/profile_photo.php:150 -#, php-format -msgid "Image exceeds size limit of %s" -msgstr "La imagen excede el limite de %s" - -#: mod/wall_upload.php:188 mod/photos.php:826 mod/profile_photo.php:159 -msgid "Unable to process image." -msgstr "Imposible procesar la imagen." - -#: mod/wall_upload.php:221 mod/photos.php:853 mod/profile_photo.php:307 -msgid "Image upload failed." -msgstr "Error al subir la imagen." - -#: mod/fsuggest.php:63 -msgid "Friend suggestion sent." -msgstr "Solicitud de amistad enviada." - -#: mod/fsuggest.php:97 -msgid "Suggest Friends" -msgstr "Sugerencias de amistad" - -#: mod/fsuggest.php:99 -#, php-format -msgid "Suggest a friend for %s" -msgstr "Recomienda un amigo a %s" - -#: mod/fsuggest.php:107 mod/events.php:506 mod/invite.php:140 -#: mod/crepair.php:154 mod/content.php:728 mod/profiles.php:688 -#: mod/poke.php:199 mod/photos.php:1104 mod/photos.php:1226 -#: mod/photos.php:1539 mod/photos.php:1590 mod/photos.php:1638 -#: mod/photos.php:1724 mod/install.php:272 mod/install.php:312 -#: mod/contacts.php:577 mod/mood.php:137 mod/localtime.php:45 -#: mod/message.php:357 mod/message.php:547 mod/manage.php:143 -#: object/Item.php:720 view/theme/frio/config.php:59 -#: view/theme/quattro/config.php:64 view/theme/vier/config.php:107 -#: view/theme/duepuntozero/config.php:59 -msgid "Submit" -msgstr "Envíar" +#: mod/help.php:56 index.php:291 +msgid "Page not found." +msgstr "Página no encontrada." #: mod/lockview.php:31 mod/lockview.php:39 msgid "Remote privacy information not available." @@ -3687,94 +3356,6 @@ msgstr "Privacidad de la información remota no disponible." msgid "Visible to:" msgstr "Visible para:" -#: mod/events.php:95 mod/events.php:97 -msgid "Event can not end before it has started." -msgstr "Un evento no puede terminar antes de su comienzo." - -#: mod/events.php:104 mod/events.php:106 -msgid "Event title and start time are required." -msgstr "Título del evento y hora de inicio requeridas." - -#: mod/events.php:380 mod/cal.php:276 -msgid "View" -msgstr "Vista" - -#: mod/events.php:381 -msgid "Create New Event" -msgstr "Crea un evento nuevo" - -#: mod/events.php:382 mod/cal.php:277 -msgid "Previous" -msgstr "Previo" - -#: mod/events.php:383 mod/cal.php:278 mod/install.php:231 -msgid "Next" -msgstr "Siguiente" - -#: mod/events.php:392 mod/cal.php:287 -msgid "list" -msgstr "lista" - -#: mod/events.php:482 -msgid "Event details" -msgstr "Detalles del evento" - -#: mod/events.php:483 -msgid "Starting date and Title are required." -msgstr "Se requiere fecha de comienzo y titulo" - -#: mod/events.php:484 mod/events.php:485 -msgid "Event Starts:" -msgstr "Inicio del evento:" - -#: mod/events.php:484 mod/events.php:496 mod/profiles.php:716 -msgid "Required" -msgstr "Obligatorio" - -#: mod/events.php:486 mod/events.php:502 -msgid "Finish date/time is not known or not relevant" -msgstr "La fecha/hora de finalización no es conocida o es irrelevante." - -#: mod/events.php:488 mod/events.php:489 -msgid "Event Finishes:" -msgstr "Finalización del evento:" - -#: mod/events.php:490 mod/events.php:503 -msgid "Adjust for viewer timezone" -msgstr "Ajuste de zona horaria" - -#: mod/events.php:492 -msgid "Description:" -msgstr "Descripción:" - -#: mod/events.php:496 mod/events.php:498 -msgid "Title:" -msgstr "Título:" - -#: mod/events.php:499 mod/events.php:500 -msgid "Share this event" -msgstr "Comparte este evento" - -#: mod/directory.php:197 view/theme/vier/theme.php:201 -msgid "Global Directory" -msgstr "Directorio global" - -#: mod/directory.php:199 -msgid "Find on this site" -msgstr "Buscar en este sitio" - -#: mod/directory.php:201 -msgid "Results for:" -msgstr "Resultados para:" - -#: mod/directory.php:203 -msgid "Site Directory" -msgstr "Directorio del sitio" - -#: mod/directory.php:210 -msgid "No entries (some entries may be hidden)." -msgstr "Sin entradas (algunas pueden que estén ocultas)." - #: mod/openid.php:24 msgid "OpenID protocol error. No ID returned." msgstr "Error de protocolo OpenID. ID no devuelta." @@ -3825,13 +3406,13 @@ msgid "" "select \"Export account\"" msgstr "Para exportar el perfil vaya a \"Configuracion -> Exportar sus datos personales\" y seleccione \"Exportar cuenta\"" -#: mod/nogroup.php:41 mod/viewcontacts.php:97 mod/contacts.php:586 -#: mod/contacts.php:939 +#: mod/nogroup.php:41 mod/contacts.php:586 mod/contacts.php:930 +#: mod/viewcontacts.php:97 #, php-format msgid "Visit %s's profile [%s]" msgstr "Ver el perfil de %s [%s]" -#: mod/nogroup.php:42 mod/contacts.php:940 +#: mod/nogroup.php:42 mod/contacts.php:931 msgid "Edit contact" msgstr "Modificar contacto" @@ -3839,18 +3420,6 @@ msgstr "Modificar contacto" msgid "Contacts who are not members of a group" msgstr "Contactos sin grupo" -#: mod/match.php:33 -msgid "No keywords to match. Please add keywords to your default profile." -msgstr "No hay palabras clave que coincidan. Por favor, agrega algunas palabras claves en tu perfil predeterminado." - -#: mod/match.php:86 -msgid "is interested in:" -msgstr "estás interesado en:" - -#: mod/match.php:100 -msgid "Profile Match" -msgstr "Coincidencias de Perfil" - #: mod/uexport.php:29 msgid "Export account" msgstr "Exportar cuenta" @@ -3973,13 +3542,25 @@ msgid "" "important, please visit http://friendica.com" msgstr "Para más información sobre el Proyecto Friendica y sobre por qué pensamos que es algo importante, visita http://friendica.com" +#: mod/invite.php:140 mod/localtime.php:45 mod/message.php:357 +#: mod/message.php:547 mod/manage.php:143 mod/crepair.php:154 +#: mod/content.php:728 mod/fsuggest.php:107 mod/mood.php:137 mod/poke.php:199 +#: mod/profiles.php:688 mod/events.php:506 mod/photos.php:1104 +#: mod/photos.php:1226 mod/photos.php:1539 mod/photos.php:1590 +#: mod/photos.php:1638 mod/photos.php:1724 mod/contacts.php:577 +#: mod/install.php:272 mod/install.php:312 object/Item.php:720 +#: view/theme/frio/config.php:59 view/theme/quattro/config.php:64 +#: view/theme/vier/config.php:107 view/theme/duepuntozero/config.php:59 +msgid "Submit" +msgstr "Envíar" + #: mod/fbrowser.php:133 msgid "Files" msgstr "Archivos" -#: mod/maintenance.php:9 -msgid "System down for maintenance" -msgstr "Servicio suspendido por mantenimiento" +#: mod/profperm.php:19 mod/group.php:72 index.php:400 +msgid "Permission denied" +msgstr "Permiso denegado" #: mod/profperm.php:25 mod/profperm.php:56 msgid "Invalid profile identifier." @@ -4001,9 +3582,627 @@ msgstr "Visible para" msgid "All Contacts (with secure profile access)" msgstr "Todos los contactos (con perfil de acceso seguro)" -#: mod/viewcontacts.php:72 -msgid "No contacts." -msgstr "Ningún contacto." +#: mod/tagrm.php:41 +msgid "Tag removed" +msgstr "Etiqueta eliminada" + +#: mod/tagrm.php:79 +msgid "Remove Item Tag" +msgstr "Eliminar etiqueta" + +#: mod/tagrm.php:81 +msgid "Select a tag to remove: " +msgstr "Selecciona una etiqueta para eliminar: " + +#: mod/tagrm.php:93 mod/delegate.php:139 +msgid "Remove" +msgstr "Eliminar" + +#: mod/repair_ostatus.php:14 +msgid "Resubscribing to OStatus contacts" +msgstr "Resubscribir a contactos de OStatus" + +#: mod/repair_ostatus.php:30 +msgid "Error" +msgstr "error" + +#: mod/repair_ostatus.php:44 mod/ostatus_subscribe.php:51 +msgid "Done" +msgstr "hecho!" + +#: mod/repair_ostatus.php:50 mod/ostatus_subscribe.php:73 +msgid "Keep this window open until done." +msgstr "Mantén esta ventana abierta hasta que el proceso ha terminado." + +#: mod/delegate.php:101 +msgid "No potential page delegates located." +msgstr "No se han localizado delegados potenciales de la página." + +#: mod/delegate.php:132 +msgid "" +"Delegates are able to manage all aspects of this account/page except for " +"basic account settings. Please do not delegate your personal account to " +"anybody that you do not trust completely." +msgstr "Los delegados tienen la capacidad de gestionar todos los aspectos de esta cuenta/página, excepto los ajustes básicos de la cuenta. Por favor, no delegues tu cuenta personal a nadie en quien no confíes completamente." + +#: mod/delegate.php:133 +msgid "Existing Page Managers" +msgstr "Administradores actuales de la página" + +#: mod/delegate.php:135 +msgid "Existing Page Delegates" +msgstr "Delegados actuales de la página" + +#: mod/delegate.php:137 +msgid "Potential Delegates" +msgstr "Delegados potenciales" + +#: mod/delegate.php:140 +msgid "Add" +msgstr "Añadir" + +#: mod/delegate.php:141 +msgid "No entries." +msgstr "Sin entradas." + +#: mod/credits.php:16 +msgid "Credits" +msgstr "Creditos" + +#: mod/credits.php:17 +msgid "" +"Friendica is a community project, that would not be possible without the " +"help of many people. Here is a list of those who have contributed to the " +"code or the translation of Friendica. Thank you all!" +msgstr "Friendica es un proyecto comunitario, que no seria posible sin la ayuda de mucha gente. Aquí una lista de de aquellos que aportaron al código o la traducción de friendica.\nGracias a todos! " + +#: mod/filer.php:30 +msgid "- select -" +msgstr "- seleccionar -" + +#: mod/subthread.php:103 +#, php-format +msgid "%1$s is following %2$s's %3$s" +msgstr "%1$s está siguiendo las %3$s de %2$s" + +#: mod/attach.php:8 +msgid "Item not available." +msgstr "Elemento no disponible." + +#: mod/attach.php:20 +msgid "Item was not found." +msgstr "Elemento no encontrado." + +#: mod/apps.php:7 index.php:244 +msgid "You must be logged in to use addons. " +msgstr "Tienes que estar registrado para tener acceso a los accesorios." + +#: mod/apps.php:11 +msgid "Applications" +msgstr "Aplicaciones" + +#: mod/apps.php:14 +msgid "No installed applications." +msgstr "Sin aplicaciones" + +#: mod/p.php:9 +msgid "Not Extended" +msgstr "No extendido" + +#: mod/newmember.php:6 +msgid "Welcome to Friendica" +msgstr "Bienvenido a Friendica " + +#: mod/newmember.php:8 +msgid "New Member Checklist" +msgstr "Listado de nuevos miembros" + +#: mod/newmember.php:12 +msgid "" +"We would like to offer some tips and links to help make your experience " +"enjoyable. Click any item to visit the relevant page. A link to this page " +"will be visible from your home page for two weeks after your initial " +"registration and then will quietly disappear." +msgstr "Nos gustaría ofrecerte algunos consejos y enlaces para ayudar a hacer tu experiencia más amena. Pulsa en cualquier elemento para visitar la página correspondiente. Un enlace a esta página será visible desde tu página de inicio durante las dos semanas siguientes a tu inscripción y luego desaparecerá." + +#: mod/newmember.php:14 +msgid "Getting Started" +msgstr "Empezando" + +#: mod/newmember.php:18 +msgid "Friendica Walk-Through" +msgstr "Visita guiada a Friendica" + +#: mod/newmember.php:18 +msgid "" +"On your Quick Start page - find a brief introduction to your " +"profile and network tabs, make some new connections, and find some groups to" +" join." +msgstr "En tu página de Inicio Rápido - busca una introducción breve para tus pestañas de perfil y red, haz algunas conexiones nuevas, y busca algunos grupos a los que unirte." + +#: mod/newmember.php:26 +msgid "Go to Your Settings" +msgstr "Ir a tus ajustes" + +#: mod/newmember.php:26 +msgid "" +"On your Settings page - change your initial password. Also make a " +"note of your Identity Address. This looks just like an email address - and " +"will be useful in making friends on the free social web." +msgstr "En la página de Configuración puedes cambiar tu contraseña inicial. También aparece tu ID (Identity Address). Es parecida a una dirección de correo y te servirá para conectar con gente de redes sociales libres." + +#: mod/newmember.php:28 +msgid "" +"Review the other settings, particularly the privacy settings. An unpublished" +" directory listing is like having an unlisted phone number. In general, you " +"should probably publish your listing - unless all of your friends and " +"potential friends know exactly how to find you." +msgstr "Revisa las otras configuraciones, especialmente la configuración de privacidad. Un listado de directorio sin publicar es como tener un número de teléfono sin publicar. Normalmente querrás publicar tu listado, a menos que tus amigos y amigos potenciales sepan cómo ponerse en contacto contigo." + +#: mod/newmember.php:36 mod/profile_photo.php:250 mod/profiles.php:707 +msgid "Upload Profile Photo" +msgstr "Subir foto del Perfil" + +#: mod/newmember.php:36 +msgid "" +"Upload a profile photo if you have not done so already. Studies have shown " +"that people with real photos of themselves are ten times more likely to make" +" friends than people who do not." +msgstr "Sube una foto para tu perfil si no lo has hecho aún. Los estudios han demostrado que la gente que usa fotos suyas reales tienen diez veces más éxito a la hora de entablar amistad que las que no." + +#: mod/newmember.php:38 +msgid "Edit Your Profile" +msgstr "Editar tu perfil" + +#: mod/newmember.php:38 +msgid "" +"Edit your default profile to your liking. Review the " +"settings for hiding your list of friends and hiding the profile from unknown" +" visitors." +msgstr "Edita tu perfil predeterminado como quieras. Revisa la configuración para ocultar tu lista de amigos o tu perfil a los visitantes desconocidos." + +#: mod/newmember.php:40 +msgid "Profile Keywords" +msgstr "Palabras clave del perfil" + +#: mod/newmember.php:40 +msgid "" +"Set some public keywords for your default profile which describe your " +"interests. We may be able to find other people with similar interests and " +"suggest friendships." +msgstr "Define en tu perfil público algunas palabras que describan tus intereses. Así podremos buscar otras personas con los mismos gustos y sugerirte posibles amigos." + +#: mod/newmember.php:44 +msgid "Connecting" +msgstr "Conectando" + +#: mod/newmember.php:51 +msgid "Importing Emails" +msgstr "Importando correos electrónicos" + +#: mod/newmember.php:51 +msgid "" +"Enter your email access information on your Connector Settings page if you " +"wish to import and interact with friends or mailing lists from your email " +"INBOX" +msgstr "Introduce la información para acceder a tu correo en la página de Configuración del conector si quieres importar e interactuar con amigos o listas de correos del buzón de entrada de tu correo electrónico." + +#: mod/newmember.php:53 +msgid "Go to Your Contacts Page" +msgstr "Ir a tu página de contactos" + +#: mod/newmember.php:53 +msgid "" +"Your Contacts page is your gateway to managing friendships and connecting " +"with friends on other networks. Typically you enter their address or site " +"URL in the Add New Contact dialog." +msgstr "Tu página de Contactos es el portal desde donde podrás manejar tus amistades y conectarte con amigos de otras redes. Normalmente introduces su dirección o la dirección de su sitio web en el recuadro \"Añadir contacto nuevo\"." + +#: mod/newmember.php:55 +msgid "Go to Your Site's Directory" +msgstr "Ir al directorio de tu sitio" + +#: mod/newmember.php:55 +msgid "" +"The Directory page lets you find other people in this network or other " +"federated sites. Look for a Connect or Follow link on " +"their profile page. Provide your own Identity Address if requested." +msgstr "El Directorio te permite encontrar otras personas en esta red o en cualquier otro sitio federado. Busca algún enlace de Conectar o Seguir en su perfil. Proporciona tu direción personal si es necesario." + +#: mod/newmember.php:57 +msgid "Finding New People" +msgstr "Encontrando nueva gente" + +#: mod/newmember.php:57 +msgid "" +"On the side panel of the Contacts page are several tools to find new " +"friends. We can match people by interest, look up people by name or " +"interest, and provide suggestions based on network relationships. On a brand" +" new site, friend suggestions will usually begin to be populated within 24 " +"hours." +msgstr "En el panel lateral de la página de Contactos existen varias herramientas para encontrar nuevos amigos. Podemos filtrar personas por sus intereses, buscar personas por nombre o por sus intereses, y ofrecerte sugerencias basadas en sus relaciones de la red. En un sitio nuevo, las sugerencias de amigos por lo general comienzan pasadas las 24 horas." + +#: mod/newmember.php:65 +msgid "Group Your Contacts" +msgstr "Agrupa tus contactos" + +#: mod/newmember.php:65 +msgid "" +"Once you have made some friends, organize them into private conversation " +"groups from the sidebar of your Contacts page and then you can interact with" +" each group privately on your Network page." +msgstr "Una vez que tengas algunos amigos, puedes organizarlos en grupos privados de conversación mediante el memnú en tu página de Contactos y luego puedes interactuar con cada grupo por separado desde tu página de Red." + +#: mod/newmember.php:68 +msgid "Why Aren't My Posts Public?" +msgstr "¿Por qué mis publicaciones no son públicas?" + +#: mod/newmember.php:68 +msgid "" +"Friendica respects your privacy. By default, your posts will only show up to" +" people you've added as friends. For more information, see the help section " +"from the link above." +msgstr "Friendica respeta tu privacidad. Por defecto, tus publicaciones solo se mostrarán a personas que hayas añadido como amistades. Para más información, mira la sección de ayuda en el enlace de más arriba." + +#: mod/newmember.php:73 +msgid "Getting Help" +msgstr "Consiguiendo ayuda" + +#: mod/newmember.php:77 +msgid "Go to the Help Section" +msgstr "Ir a la sección de ayuda" + +#: mod/newmember.php:77 +msgid "" +"Our help pages may be consulted for detail on other program" +" features and resources." +msgstr "Puedes consultar nuestra página de Ayuda para más información y recursos de ayuda." + +#: mod/removeme.php:46 mod/removeme.php:49 +msgid "Remove My Account" +msgstr "Eliminar mi cuenta" + +#: mod/removeme.php:47 +msgid "" +"This will completely remove your account. Once this has been done it is not " +"recoverable." +msgstr "Esto eliminará por completo tu cuenta. Una vez hecho no se puede deshacer." + +#: mod/removeme.php:48 +msgid "Please enter your password for verification:" +msgstr "Por favor, introduce tu contraseña para la verificación:" + +#: mod/editpost.php:17 mod/editpost.php:27 +msgid "Item not found" +msgstr "Elemento no encontrado" + +#: mod/editpost.php:40 +msgid "Edit post" +msgstr "Editar publicación" + +#: mod/localtime.php:24 +msgid "Time Conversion" +msgstr "Conversión horária" + +#: mod/localtime.php:26 +msgid "" +"Friendica provides this service for sharing events with other networks and " +"friends in unknown timezones." +msgstr "Friendica ofrece este servicio para compartir eventos con otros servidores de la red friendica y amigos en zonas de horarios desconocidos." + +#: mod/localtime.php:30 +#, php-format +msgid "UTC time: %s" +msgstr "Tiempo UTC: %s" + +#: mod/localtime.php:33 +#, php-format +msgid "Current timezone: %s" +msgstr "Zona horaria actual: %s" + +#: mod/localtime.php:36 +#, php-format +msgid "Converted localtime: %s" +msgstr "Zona horaria local convertida: %s" + +#: mod/localtime.php:41 +msgid "Please select your timezone:" +msgstr "Por favor, selecciona tu zona horaria:" + +#: mod/bookmarklet.php:41 +msgid "The post was created" +msgstr "La publicación fue creada" + +#: mod/group.php:29 +msgid "Group created." +msgstr "Grupo creado." + +#: mod/group.php:35 +msgid "Could not create group." +msgstr "Imposible crear el grupo." + +#: mod/group.php:47 mod/group.php:140 +msgid "Group not found." +msgstr "Grupo no encontrado." + +#: mod/group.php:60 +msgid "Group name changed." +msgstr "El nombre del grupo ha cambiado." + +#: mod/group.php:87 +msgid "Save Group" +msgstr "Guardar grupo" + +#: mod/group.php:93 +msgid "Create a group of contacts/friends." +msgstr "Crea un grupo de contactos/amigos." + +#: mod/group.php:113 +msgid "Group removed." +msgstr "Grupo eliminado." + +#: mod/group.php:115 +msgid "Unable to remove group." +msgstr "No se puede eliminar el grupo." + +#: mod/group.php:177 +msgid "Group Editor" +msgstr "Editor de grupos" + +#: mod/group.php:190 +msgid "Members" +msgstr "Miembros" + +#: mod/group.php:192 mod/contacts.php:692 +msgid "All Contacts" +msgstr "Todos los contactos" + +#: mod/group.php:193 mod/content.php:130 mod/network.php:496 +msgid "Group is empty" +msgstr "El grupo está vacío" + +#: mod/wallmessage.php:42 mod/wallmessage.php:112 +#, php-format +msgid "Number of daily wall messages for %s exceeded. Message failed." +msgstr "Excedido el número máximo de mensajes para %s. El mensaje no se ha enviado." + +#: mod/wallmessage.php:56 mod/message.php:71 +msgid "No recipient selected." +msgstr "Ningún destinatario seleccionado" + +#: mod/wallmessage.php:59 +msgid "Unable to check your home location." +msgstr "Imposible comprobar tu servidor de inicio." + +#: mod/wallmessage.php:62 mod/message.php:78 +msgid "Message could not be sent." +msgstr "El mensaje no ha podido ser enviado." + +#: mod/wallmessage.php:65 mod/message.php:81 +msgid "Message collection failure." +msgstr "Fallo en la recolección de mensajes." + +#: mod/wallmessage.php:68 mod/message.php:84 +msgid "Message sent." +msgstr "Mensaje enviado." + +#: mod/wallmessage.php:86 mod/wallmessage.php:95 +msgid "No recipient." +msgstr "Sin receptor." + +#: mod/wallmessage.php:142 mod/message.php:341 +msgid "Send Private Message" +msgstr "Enviar mensaje privado" + +#: mod/wallmessage.php:143 +#, php-format +msgid "" +"If you wish for %s to respond, please check that the privacy settings on " +"your site allow private mail from unknown senders." +msgstr "Si quieres que %s te responda, asegúrate de que la configuración de privacidad permite enviar correo privado a desconocidos." + +#: mod/wallmessage.php:144 mod/message.php:342 mod/message.php:536 +msgid "To:" +msgstr "Para:" + +#: mod/wallmessage.php:145 mod/message.php:347 mod/message.php:538 +msgid "Subject:" +msgstr "Asunto:" + +#: mod/share.php:38 +msgid "link" +msgstr "enlace" + +#: mod/api.php:76 mod/api.php:102 +msgid "Authorize application connection" +msgstr "Autorizar la conexión de la aplicación" + +#: mod/api.php:77 +msgid "Return to your app and insert this Securty Code:" +msgstr "Regresa a tu aplicación e introduce este código de seguridad:" + +#: mod/api.php:89 +msgid "Please login to continue." +msgstr "Inicia sesión para continuar." + +#: mod/api.php:104 +msgid "" +"Do you want to authorize this application to access your posts and contacts," +" and/or create new posts for you?" +msgstr "¿Quieres autorizar a esta aplicación el acceso a tus mensajes y contactos, y/o crear nuevas publicaciones para ti?" + +#: mod/api.php:106 mod/profiles.php:648 mod/profiles.php:652 +#: mod/profiles.php:677 mod/register.php:246 mod/settings.php:1163 +#: mod/settings.php:1169 mod/settings.php:1177 mod/settings.php:1181 +#: mod/settings.php:1186 mod/settings.php:1192 mod/settings.php:1198 +#: mod/settings.php:1204 mod/settings.php:1230 mod/settings.php:1231 +#: mod/settings.php:1232 mod/settings.php:1233 mod/settings.php:1234 +#: mod/dfrn_request.php:862 mod/follow.php:110 +msgid "No" +msgstr "No" + +#: mod/babel.php:17 +msgid "Source (bbcode) text:" +msgstr "Texto fuente (bbcode):" + +#: mod/babel.php:23 +msgid "Source (Diaspora) text to convert to BBcode:" +msgstr "Fuente (Diaspora) para pasar a BBcode:" + +#: mod/babel.php:31 +msgid "Source input: " +msgstr "Entrada: " + +#: mod/babel.php:35 +msgid "bb2html (raw HTML): " +msgstr "bb2html (raw HTML): " + +#: mod/babel.php:39 +msgid "bb2html: " +msgstr "bb2html: " + +#: mod/babel.php:43 +msgid "bb2html2bb: " +msgstr "bb2html2bb: " + +#: mod/babel.php:47 +msgid "bb2md: " +msgstr "bb2md: " + +#: mod/babel.php:51 +msgid "bb2md2html: " +msgstr "bb2md2html: " + +#: mod/babel.php:55 +msgid "bb2dia2bb: " +msgstr "bb2dia2bb: " + +#: mod/babel.php:59 +msgid "bb2md2html2bb: " +msgstr "bb2md2html2bb: " + +#: mod/babel.php:69 +msgid "Source input (Diaspora format): " +msgstr "Fuente (formato Diaspora): " + +#: mod/babel.php:74 +msgid "diaspora2bb: " +msgstr "diaspora2bb: " + +#: mod/ostatus_subscribe.php:14 +msgid "Subscribing to OStatus contacts" +msgstr "Subscribir a los contactos de OStatus" + +#: mod/ostatus_subscribe.php:25 +msgid "No contact provided." +msgstr "Sin suministro de datos de contacto." + +#: mod/ostatus_subscribe.php:30 +msgid "Couldn't fetch information for contact." +msgstr "No se ha podido conseguir la información del contacto." + +#: mod/ostatus_subscribe.php:38 +msgid "Couldn't fetch friends for contact." +msgstr "No se ha podido conseguir datos de amigos para contactar." + +#: mod/ostatus_subscribe.php:65 +msgid "success" +msgstr "exito!" + +#: mod/ostatus_subscribe.php:67 +msgid "failed" +msgstr "fallido!" + +#: mod/ostatus_subscribe.php:69 mod/content.php:792 object/Item.php:245 +msgid "ignored" +msgstr "ignorado" + +#: mod/dfrn_poll.php:104 mod/dfrn_poll.php:537 +#, php-format +msgid "%1$s welcomes %2$s" +msgstr "%1$s te da la bienvenida a %2$s" + +#: mod/message.php:75 +msgid "Unable to locate contact information." +msgstr "No se puede encontrar información del contacto." + +#: mod/message.php:215 +msgid "Do you really want to delete this message?" +msgstr "¿Estás seguro de que quieres borrar este mensaje?" + +#: mod/message.php:235 +msgid "Message deleted." +msgstr "Mensaje eliminado." + +#: mod/message.php:266 +msgid "Conversation removed." +msgstr "Conversación eliminada." + +#: mod/message.php:383 +msgid "No messages." +msgstr "No hay mensajes." + +#: mod/message.php:426 +msgid "Message not available." +msgstr "Mensaje no disponibile." + +#: mod/message.php:503 +msgid "Delete message" +msgstr "Borrar mensaje" + +#: mod/message.php:529 mod/message.php:609 +msgid "Delete conversation" +msgstr "Eliminar conversación" + +#: mod/message.php:531 +msgid "" +"No secure communications available. You may be able to " +"respond from the sender's profile page." +msgstr "No hay comunicaciones seguras disponibles. Podrías responder desde la página de perfil del remitente. " + +#: mod/message.php:535 +msgid "Send Reply" +msgstr "Enviar respuesta" + +#: mod/message.php:579 +#, php-format +msgid "Unknown sender - %s" +msgstr "Remitente desconocido - %s" + +#: mod/message.php:581 +#, php-format +msgid "You and %s" +msgstr "Tú y %s" + +#: mod/message.php:583 +#, php-format +msgid "%s and You" +msgstr "%s y Tú" + +#: mod/message.php:612 +msgid "D, d M Y - g:i A" +msgstr "D, d M Y - g:i A" + +#: mod/message.php:615 +#, php-format +msgid "%d message" +msgid_plural "%d messages" +msgstr[0] "%d mensaje" +msgstr[1] "%d mensajes" + +#: mod/manage.php:139 +msgid "Manage Identities and/or Pages" +msgstr "Administrar identidades y/o páginas" + +#: mod/manage.php:140 +msgid "" +"Toggle between different identities or community/group pages which share " +"your account details or which you have been granted \"manage\" permissions" +msgstr "Cambia entre diferentes identidades o páginas de Comunidad/Grupos que comparten los detalles de tu cuenta o sobre los que tienes permisos para administrar" + +#: mod/manage.php:141 +msgid "Select an identity to manage: " +msgstr "Selecciona una identidad a gestionar:" #: mod/crepair.php:87 msgid "Contact settings applied." @@ -4013,6 +4212,11 @@ msgstr "Contacto configurado con éxito." msgid "Contact update failed." msgstr "Error al actualizar el Contacto." +#: mod/crepair.php:114 mod/fsuggest.php:20 mod/fsuggest.php:92 +#: mod/dfrn_confirm.php:126 +msgid "Contact not found." +msgstr "Contacto no encontrado." + #: mod/crepair.php:120 msgid "" "WARNING: This is highly advanced and if you enter incorrect" @@ -4059,9 +4263,8 @@ msgid "" "entries from this contact." msgstr "Marcar este contacto como perfil_remoto, esto generara que friendica reenvía nuevas publicaciones desde esta cuenta." -#: mod/crepair.php:165 mod/admin.php:1396 mod/admin.php:1409 -#: mod/admin.php:1422 mod/admin.php:1438 mod/settings.php:680 -#: mod/settings.php:706 +#: mod/crepair.php:165 mod/settings.php:680 mod/settings.php:706 +#: mod/admin.php:1396 mod/admin.php:1409 mod/admin.php:1422 mod/admin.php:1438 msgid "Name" msgstr "Nombre" @@ -4097,33 +4300,1966 @@ msgstr "Dirección del Sondeo/Fuentes" msgid "New photo from this URL" msgstr "Nueva foto de esta dirección" -#: mod/tagrm.php:41 -msgid "Tag removed" -msgstr "Etiqueta eliminada" +#: mod/content.php:119 mod/network.php:469 +msgid "No such group" +msgstr "Ningún grupo" -#: mod/tagrm.php:79 -msgid "Remove Item Tag" -msgstr "Eliminar etiqueta" +#: mod/content.php:135 mod/network.php:500 +#, php-format +msgid "Group: %s" +msgstr "Grupo: %s" -#: mod/tagrm.php:81 -msgid "Select a tag to remove: " -msgstr "Selecciona una etiqueta para eliminar: " +#: mod/content.php:325 object/Item.php:95 +msgid "This entry was edited" +msgstr "Esta entrada fue editada" -#: mod/tagrm.php:93 mod/delegate.php:139 -msgid "Remove" -msgstr "Eliminar" +#: mod/content.php:621 object/Item.php:429 +#, php-format +msgid "%d comment" +msgid_plural "%d comments" +msgstr[0] "%d comentario" +msgstr[1] "%d comentarios" -#: mod/ping.php:261 -msgid "{0} wants to be your friend" -msgstr "{0} quiere ser tu amigo" +#: mod/content.php:638 mod/photos.php:1379 object/Item.php:117 +msgid "Private Message" +msgstr "Mensaje privado" -#: mod/ping.php:276 -msgid "{0} sent you a message" -msgstr "{0} te ha enviado un mensaje" +#: mod/content.php:702 mod/photos.php:1567 object/Item.php:263 +msgid "I like this (toggle)" +msgstr "Me gusta esto (cambiar)" -#: mod/ping.php:291 -msgid "{0} requested registration" -msgstr "{0} solicitudes de registro" +#: mod/content.php:702 object/Item.php:263 +msgid "like" +msgstr "me gusta" + +#: mod/content.php:703 mod/photos.php:1568 object/Item.php:264 +msgid "I don't like this (toggle)" +msgstr "No me gusta esto (cambiar)" + +#: mod/content.php:703 object/Item.php:264 +msgid "dislike" +msgstr "no me gusta" + +#: mod/content.php:705 object/Item.php:266 +msgid "Share this" +msgstr "Compartir esto" + +#: mod/content.php:705 object/Item.php:266 +msgid "share" +msgstr "compartir" + +#: mod/content.php:725 mod/photos.php:1587 mod/photos.php:1635 +#: mod/photos.php:1721 object/Item.php:717 +msgid "This is you" +msgstr "Este eres tú" + +#: mod/content.php:727 mod/content.php:945 mod/photos.php:1589 +#: mod/photos.php:1637 mod/photos.php:1723 object/Item.php:403 +#: object/Item.php:719 boot.php:971 +msgid "Comment" +msgstr "Comentar" + +#: mod/content.php:729 object/Item.php:721 +msgid "Bold" +msgstr "Negrita" + +#: mod/content.php:730 object/Item.php:722 +msgid "Italic" +msgstr "Cursiva" + +#: mod/content.php:731 object/Item.php:723 +msgid "Underline" +msgstr "Subrayado" + +#: mod/content.php:732 object/Item.php:724 +msgid "Quote" +msgstr "Cita" + +#: mod/content.php:733 object/Item.php:725 +msgid "Code" +msgstr "Código" + +#: mod/content.php:734 object/Item.php:726 +msgid "Image" +msgstr "Imagen" + +#: mod/content.php:735 object/Item.php:727 +msgid "Link" +msgstr "Enlace" + +#: mod/content.php:736 object/Item.php:728 +msgid "Video" +msgstr "Vídeo" + +#: mod/content.php:746 mod/settings.php:740 object/Item.php:122 +#: object/Item.php:124 +msgid "Edit" +msgstr "Editar" + +#: mod/content.php:771 object/Item.php:227 +msgid "add star" +msgstr "Añadir estrella" + +#: mod/content.php:772 object/Item.php:228 +msgid "remove star" +msgstr "Quitar estrella" + +#: mod/content.php:773 object/Item.php:229 +msgid "toggle star status" +msgstr "Añadir a destacados" + +#: mod/content.php:776 object/Item.php:232 +msgid "starred" +msgstr "marcados con estrellas" + +#: mod/content.php:777 mod/content.php:798 object/Item.php:252 +msgid "add tag" +msgstr "añadir etiqueta" + +#: mod/content.php:787 object/Item.php:240 +msgid "ignore thread" +msgstr "ignorar publicación" + +#: mod/content.php:788 object/Item.php:241 +msgid "unignore thread" +msgstr "revertir ignorar publicacion" + +#: mod/content.php:789 object/Item.php:242 +msgid "toggle ignore status" +msgstr "cambiar estatus de observación" + +#: mod/content.php:803 object/Item.php:137 +msgid "save to folder" +msgstr "grabado en directorio" + +#: mod/content.php:848 object/Item.php:201 +msgid "I will attend" +msgstr "Voy a estar presente" + +#: mod/content.php:848 object/Item.php:201 +msgid "I will not attend" +msgstr "No voy a estar presente" + +#: mod/content.php:848 object/Item.php:201 +msgid "I might attend" +msgstr "Puede que voy a estar presente" + +#: mod/content.php:912 object/Item.php:369 +msgid "to" +msgstr "a" + +#: mod/content.php:913 object/Item.php:371 +msgid "Wall-to-Wall" +msgstr "Muro-A-Muro" + +#: mod/content.php:914 object/Item.php:372 +msgid "via Wall-To-Wall:" +msgstr "via Muro-A-Muro:" + +#: mod/fsuggest.php:63 +msgid "Friend suggestion sent." +msgstr "Solicitud de amistad enviada." + +#: mod/fsuggest.php:97 +msgid "Suggest Friends" +msgstr "Sugerencias de amistad" + +#: mod/fsuggest.php:99 +#, php-format +msgid "Suggest a friend for %s" +msgstr "Recomienda un amigo a %s" + +#: mod/mood.php:133 +msgid "Mood" +msgstr "Ánimo" + +#: mod/mood.php:134 +msgid "Set your current mood and tell your friends" +msgstr "Coloca tu ánimo actual y cuéntaselo a tus amigos" + +#: mod/poke.php:192 +msgid "Poke/Prod" +msgstr "Toque/Empujón" + +#: mod/poke.php:193 +msgid "poke, prod or do other things to somebody" +msgstr "da un toque, empujón o similar a alguien" + +#: mod/poke.php:194 +msgid "Recipient" +msgstr "Receptor" + +#: mod/poke.php:195 +msgid "Choose what you wish to do to recipient" +msgstr "Elige qué desea hacer con el receptor" + +#: mod/poke.php:198 +msgid "Make this post private" +msgstr "Hacer esta publicación privada" + +#: mod/profile_photo.php:44 +msgid "Image uploaded but image cropping failed." +msgstr "Imagen recibida, pero ha fallado al recortarla." + +#: mod/profile_photo.php:77 mod/profile_photo.php:84 mod/profile_photo.php:91 +#: mod/profile_photo.php:314 +#, php-format +msgid "Image size reduction [%s] failed." +msgstr "Ha fallado la reducción de las dimensiones de la imagen [%s]." + +#: mod/profile_photo.php:124 +msgid "" +"Shift-reload the page or clear browser cache if the new photo does not " +"display immediately." +msgstr "Recarga la página o limpia la caché del navegador si la foto nueva no aparece inmediatamente." + +#: mod/profile_photo.php:134 +msgid "Unable to process image" +msgstr "Imposible procesar la imagen" + +#: mod/profile_photo.php:150 mod/photos.php:786 mod/wall_upload.php:151 +#, php-format +msgid "Image exceeds size limit of %s" +msgstr "La imagen excede el limite de %s" + +#: mod/profile_photo.php:159 mod/photos.php:826 mod/wall_upload.php:188 +msgid "Unable to process image." +msgstr "Imposible procesar la imagen." + +#: mod/profile_photo.php:248 +msgid "Upload File:" +msgstr "Subir archivo:" + +#: mod/profile_photo.php:249 +msgid "Select a profile:" +msgstr "Elige un perfil:" + +#: mod/profile_photo.php:251 +msgid "Upload" +msgstr "Subir" + +#: mod/profile_photo.php:254 +msgid "or" +msgstr "o" + +#: mod/profile_photo.php:254 +msgid "skip this step" +msgstr "saltar este paso" + +#: mod/profile_photo.php:254 +msgid "select a photo from your photo albums" +msgstr "elige una foto de tus álbumes" + +#: mod/profile_photo.php:268 +msgid "Crop Image" +msgstr "Recortar imagen" + +#: mod/profile_photo.php:269 +msgid "Please adjust the image cropping for optimum viewing." +msgstr "Por favor, ajusta el recorte de la imagen para optimizarla." + +#: mod/profile_photo.php:271 +msgid "Done Editing" +msgstr "Editado" + +#: mod/profile_photo.php:305 +msgid "Image uploaded successfully." +msgstr "Imagen subida con éxito." + +#: mod/profile_photo.php:307 mod/photos.php:853 mod/wall_upload.php:221 +msgid "Image upload failed." +msgstr "Error al subir la imagen." + +#: mod/regmod.php:55 +msgid "Account approved." +msgstr "Cuenta aprobada." + +#: mod/regmod.php:92 +#, php-format +msgid "Registration revoked for %s" +msgstr "Registro anulado para %s" + +#: mod/regmod.php:104 +msgid "Please login." +msgstr "Por favor accede." + +#: mod/notifications.php:35 +msgid "Invalid request identifier." +msgstr "Solicitud de identificación no válida." + +#: mod/notifications.php:44 mod/notifications.php:180 +#: mod/notifications.php:252 +msgid "Discard" +msgstr "Descartar" + +#: mod/notifications.php:60 mod/notifications.php:179 +#: mod/notifications.php:251 mod/contacts.php:606 mod/contacts.php:806 +#: mod/contacts.php:991 +msgid "Ignore" +msgstr "Ignorar" + +#: mod/notifications.php:105 +msgid "Network Notifications" +msgstr "Notificaciones de Red" + +#: mod/notifications.php:117 +msgid "Personal Notifications" +msgstr "Notificaciones personales" + +#: mod/notifications.php:123 +msgid "Home Notifications" +msgstr "Notificaciones de Inicio" + +#: mod/notifications.php:152 +msgid "Show Ignored Requests" +msgstr "Mostrar peticiones ignoradas" + +#: mod/notifications.php:152 +msgid "Hide Ignored Requests" +msgstr "Ocultar peticiones ignoradas" + +#: mod/notifications.php:164 mod/notifications.php:222 +msgid "Notification type: " +msgstr "Tipo de notificación: " + +#: mod/notifications.php:167 +#, php-format +msgid "suggested by %s" +msgstr "sugerido por %s" + +#: mod/notifications.php:172 mod/notifications.php:239 mod/contacts.php:613 +msgid "Hide this contact from others" +msgstr "Ocultar este contacto a los demás." + +#: mod/notifications.php:173 mod/notifications.php:240 +msgid "Post a new friend activity" +msgstr "Publica tu nueva amistad" + +#: mod/notifications.php:173 mod/notifications.php:240 +msgid "if applicable" +msgstr "Si corresponde" + +#: mod/notifications.php:176 mod/notifications.php:249 mod/admin.php:1412 +msgid "Approve" +msgstr "Aprobar" + +#: mod/notifications.php:195 +msgid "Claims to be known to you: " +msgstr "Dice conocerte: " + +#: mod/notifications.php:196 +msgid "yes" +msgstr "sí" + +#: mod/notifications.php:196 +msgid "no" +msgstr "no" + +#: mod/notifications.php:197 +msgid "" +"Shall your connection be bidirectional or not? \"Friend\" implies that you " +"allow to read and you subscribe to their posts. \"Fan/Admirer\" means that " +"you allow to read but you do not want to read theirs. Approve as: " +msgstr "¿Deberá la coneccion ser bidireccional?\n\"Amigo\" implica que permitas la lectura y subscribas a las publicaciones del contacto.\n\"Admirador\" significa que permitas la lectura de tus publicaciones pero que no quieras ver sus publicaciones.\n\nAprobar como:" + +#: mod/notifications.php:200 +msgid "" +"Shall your connection be bidirectional or not? \"Friend\" implies that you " +"allow to read and you subscribe to their posts. \"Sharer\" means that you " +"allow to read but you do not want to read theirs. Approve as: " +msgstr "¿Deberá la coneccion ser bidireccional?\n\"Amigo\" implica que permitas la lectura y subscribas a las publicaciones del contacto.\n\"Sharer\" significa que permitas la lectura de tus publicaciones pero que no quieras ver sus publicaciones.\n\nAprobar como:" + +#: mod/notifications.php:209 +msgid "Friend" +msgstr "Amigo" + +#: mod/notifications.php:210 +msgid "Sharer" +msgstr "Lector" + +#: mod/notifications.php:210 +msgid "Fan/Admirer" +msgstr "Fan/Admirador" + +#: mod/notifications.php:243 mod/contacts.php:624 mod/follow.php:126 +msgid "Profile URL" +msgstr "URL Perfil" + +#: mod/notifications.php:260 +msgid "No introductions." +msgstr "Sin presentaciones." + +#: mod/notifications.php:299 +msgid "Show unread" +msgstr "Mostrar no leído" + +#: mod/notifications.php:299 +msgid "Show all" +msgstr "Mostrar todo" + +#: mod/notifications.php:305 +#, php-format +msgid "No more %s notifications." +msgstr "No más notificaciones de %s." + +#: mod/profiles.php:19 mod/profiles.php:134 mod/profiles.php:180 +#: mod/profiles.php:617 mod/dfrn_confirm.php:70 +msgid "Profile not found." +msgstr "Perfil no encontrado." + +#: mod/profiles.php:38 +msgid "Profile deleted." +msgstr "Perfil eliminado." + +#: mod/profiles.php:56 mod/profiles.php:90 +msgid "Profile-" +msgstr "Perfil-" + +#: mod/profiles.php:75 mod/profiles.php:118 +msgid "New profile created." +msgstr "Nuevo perfil creado." + +#: mod/profiles.php:96 +msgid "Profile unavailable to clone." +msgstr "Imposible duplicar el perfil." + +#: mod/profiles.php:190 +msgid "Profile Name is required." +msgstr "Se necesita un nombre de perfil." + +#: mod/profiles.php:338 +msgid "Marital Status" +msgstr "Estado civil" + +#: mod/profiles.php:342 +msgid "Romantic Partner" +msgstr "Pareja sentimental" + +#: mod/profiles.php:354 +msgid "Work/Employment" +msgstr "Trabajo/estudios" + +#: mod/profiles.php:357 +msgid "Religion" +msgstr "Religión" + +#: mod/profiles.php:361 +msgid "Political Views" +msgstr "Preferencias políticas" + +#: mod/profiles.php:365 +msgid "Gender" +msgstr "Género" + +#: mod/profiles.php:369 +msgid "Sexual Preference" +msgstr "Orientación sexual" + +#: mod/profiles.php:373 +msgid "XMPP" +msgstr "XMPP" + +#: mod/profiles.php:377 +msgid "Homepage" +msgstr "Página de inicio" + +#: mod/profiles.php:381 mod/profiles.php:702 +msgid "Interests" +msgstr "Intereses" + +#: mod/profiles.php:385 +msgid "Address" +msgstr "Dirección" + +#: mod/profiles.php:392 mod/profiles.php:698 +msgid "Location" +msgstr "Ubicación" + +#: mod/profiles.php:477 +msgid "Profile updated." +msgstr "Perfil actualizado." + +#: mod/profiles.php:564 +msgid " and " +msgstr " y " + +#: mod/profiles.php:572 +msgid "public profile" +msgstr "perfil público" + +#: mod/profiles.php:575 +#, php-format +msgid "%1$s changed %2$s to “%3$s”" +msgstr "%1$s cambió su %2$s a “%3$s”" + +#: mod/profiles.php:576 +#, php-format +msgid " - Visit %1$s's %2$s" +msgstr " - Visita %1$s's %2$s" + +#: mod/profiles.php:579 +#, php-format +msgid "%1$s has an updated %2$s, changing %3$s." +msgstr "%1$s tiene una actualización %2$s, cambiando %3$s." + +#: mod/profiles.php:645 +msgid "Hide contacts and friends:" +msgstr "Ocultar contactos y amigos" + +#: mod/profiles.php:650 +msgid "Hide your contact/friend list from viewers of this profile?" +msgstr "¿Ocultar tu lista de contactos/amigos en este perfil?" + +#: mod/profiles.php:674 +msgid "Show more profile fields:" +msgstr "Mostrar mas campos del perfil:" + +#: mod/profiles.php:686 +msgid "Profile Actions" +msgstr "Acciones de perfil" + +#: mod/profiles.php:687 +msgid "Edit Profile Details" +msgstr "Editar detalles de tu perfil" + +#: mod/profiles.php:689 +msgid "Change Profile Photo" +msgstr "Cambiar imagen del Perfil" + +#: mod/profiles.php:690 +msgid "View this profile" +msgstr "Ver este perfil" + +#: mod/profiles.php:692 +msgid "Create a new profile using these settings" +msgstr "¿Crear un nuevo perfil con esta configuración?" + +#: mod/profiles.php:693 +msgid "Clone this profile" +msgstr "Clonar este perfil" + +#: mod/profiles.php:694 +msgid "Delete this profile" +msgstr "Eliminar este perfil" + +#: mod/profiles.php:696 +msgid "Basic information" +msgstr "Información básica" + +#: mod/profiles.php:697 +msgid "Profile picture" +msgstr "Imagen del perfil" + +#: mod/profiles.php:699 +msgid "Preferences" +msgstr "Preferencias" + +#: mod/profiles.php:700 +msgid "Status information" +msgstr "Información del estatus" + +#: mod/profiles.php:701 +msgid "Additional information" +msgstr "Información addicional" + +#: mod/profiles.php:704 +msgid "Relation" +msgstr "Relación" + +#: mod/profiles.php:708 +msgid "Your Gender:" +msgstr "Género:" + +#: mod/profiles.php:709 +msgid " Marital Status:" +msgstr " Estado civil:" + +#: mod/profiles.php:711 +msgid "Example: fishing photography software" +msgstr "Ejemplo: pesca fotografía software" + +#: mod/profiles.php:716 +msgid "Profile Name:" +msgstr "Nombres del perfil:" + +#: mod/profiles.php:716 mod/events.php:484 mod/events.php:496 +msgid "Required" +msgstr "Obligatorio" + +#: mod/profiles.php:718 +msgid "" +"This is your public profile.
      It may " +"be visible to anybody using the internet." +msgstr "Éste es tu perfil público.
      Puede ser visto por cualquier usuario de internet." + +#: mod/profiles.php:719 +msgid "Your Full Name:" +msgstr "Tu nombre completo:" + +#: mod/profiles.php:720 +msgid "Title/Description:" +msgstr "Título/Descrición:" + +#: mod/profiles.php:723 +msgid "Street Address:" +msgstr "Dirección" + +#: mod/profiles.php:724 +msgid "Locality/City:" +msgstr "Localidad/Ciudad:" + +#: mod/profiles.php:725 +msgid "Region/State:" +msgstr "Región/Estado:" + +#: mod/profiles.php:726 +msgid "Postal/Zip Code:" +msgstr "Código postal:" + +#: mod/profiles.php:727 +msgid "Country:" +msgstr "País" + +#: mod/profiles.php:731 +msgid "Who: (if applicable)" +msgstr "¿Quién? (si es aplicable)" + +#: mod/profiles.php:731 +msgid "Examples: cathy123, Cathy Williams, cathy@example.com" +msgstr "Ejemplos: cathy123, Cathy Williams, cathy@example.com" + +#: mod/profiles.php:732 +msgid "Since [date]:" +msgstr "Desde [fecha]:" + +#: mod/profiles.php:734 +msgid "Tell us about yourself..." +msgstr "Háblanos sobre ti..." + +#: mod/profiles.php:735 +msgid "XMPP (Jabber) address:" +msgstr "Dirección XMPP (Jabber):" + +#: mod/profiles.php:735 +msgid "" +"The XMPP address will be propagated to your contacts so that they can follow" +" you." +msgstr "La dirección XMPP será propagada entre sus contactos para que puedan seguirle." + +#: mod/profiles.php:736 +msgid "Homepage URL:" +msgstr "Dirección de tu página:" + +#: mod/profiles.php:739 +msgid "Religious Views:" +msgstr "Creencias religiosas:" + +#: mod/profiles.php:740 +msgid "Public Keywords:" +msgstr "Palabras clave públicas:" + +#: mod/profiles.php:740 +msgid "(Used for suggesting potential friends, can be seen by others)" +msgstr "(Utilizadas para sugerir amigos potenciales, otros pueden verlo)" + +#: mod/profiles.php:741 +msgid "Private Keywords:" +msgstr "Palabras clave privadas:" + +#: mod/profiles.php:741 +msgid "(Used for searching profiles, never shown to others)" +msgstr "(Utilizadas para buscar perfiles, nunca se muestra a otros)" + +#: mod/profiles.php:744 +msgid "Musical interests" +msgstr "Gustos musicales" + +#: mod/profiles.php:745 +msgid "Books, literature" +msgstr "Libros, literatura" + +#: mod/profiles.php:746 +msgid "Television" +msgstr "Televisión" + +#: mod/profiles.php:747 +msgid "Film/dance/culture/entertainment" +msgstr "Películas/baile/cultura/entretenimiento" + +#: mod/profiles.php:748 +msgid "Hobbies/Interests" +msgstr "Aficiones/Intereses" + +#: mod/profiles.php:749 +msgid "Love/romance" +msgstr "Amor/Romance" + +#: mod/profiles.php:750 +msgid "Work/employment" +msgstr "Trabajo/ocupación" + +#: mod/profiles.php:751 +msgid "School/education" +msgstr "Escuela/estudios" + +#: mod/profiles.php:752 +msgid "Contact information and Social Networks" +msgstr "Informacioń de contacto y Redes sociales" + +#: mod/profiles.php:794 +msgid "Edit/Manage Profiles" +msgstr "Editar/Administrar perfiles" + +#: mod/allfriends.php:43 +msgid "No friends to display." +msgstr "No hay amigos para mostrar." + +#: mod/cal.php:149 mod/display.php:328 mod/profile.php:155 +msgid "Access to this profile has been restricted." +msgstr "El acceso a este perfil ha sido restringido." + +#: mod/cal.php:276 mod/events.php:380 +msgid "View" +msgstr "Vista" + +#: mod/cal.php:277 mod/events.php:382 +msgid "Previous" +msgstr "Previo" + +#: mod/cal.php:278 mod/events.php:383 mod/install.php:231 +msgid "Next" +msgstr "Siguiente" + +#: mod/cal.php:287 mod/events.php:392 +msgid "list" +msgstr "lista" + +#: mod/cal.php:297 +msgid "User not found" +msgstr "Usuario no encontrado" + +#: mod/cal.php:313 +msgid "This calendar format is not supported" +msgstr "Este formato de calendario no se soporta" + +#: mod/cal.php:315 +msgid "No exportable data found" +msgstr "No se ha encontrado información exportable" + +#: mod/cal.php:330 +msgid "calendar" +msgstr "calendario" + +#: mod/common.php:86 +msgid "No contacts in common." +msgstr "Sin contactos en común." + +#: mod/common.php:134 mod/contacts.php:863 +msgid "Common Friends" +msgstr "Amigos comunes" + +#: mod/community.php:27 +msgid "Not available." +msgstr "No disponible" + +#: mod/directory.php:197 view/theme/vier/theme.php:201 +msgid "Global Directory" +msgstr "Directorio global" + +#: mod/directory.php:199 +msgid "Find on this site" +msgstr "Buscar en este sitio" + +#: mod/directory.php:201 +msgid "Results for:" +msgstr "Resultados para:" + +#: mod/directory.php:203 +msgid "Site Directory" +msgstr "Directorio del sitio" + +#: mod/directory.php:210 +msgid "No entries (some entries may be hidden)." +msgstr "Sin entradas (algunas pueden que estén ocultas)." + +#: mod/dirfind.php:36 +#, php-format +msgid "People Search - %s" +msgstr "Buscar perfiles - %s" + +#: mod/dirfind.php:47 +#, php-format +msgid "Forum Search - %s" +msgstr "Búsqueda de foro - %s" + +#: mod/dirfind.php:240 mod/match.php:107 +msgid "No matches" +msgstr "Sin conincidencias" + +#: mod/display.php:473 +msgid "Item has been removed." +msgstr "El elemento ha sido eliminado." + +#: mod/events.php:95 mod/events.php:97 +msgid "Event can not end before it has started." +msgstr "Un evento no puede terminar antes de su comienzo." + +#: mod/events.php:104 mod/events.php:106 +msgid "Event title and start time are required." +msgstr "Título del evento y hora de inicio requeridas." + +#: mod/events.php:381 +msgid "Create New Event" +msgstr "Crea un evento nuevo" + +#: mod/events.php:482 +msgid "Event details" +msgstr "Detalles del evento" + +#: mod/events.php:483 +msgid "Starting date and Title are required." +msgstr "Se requiere fecha de comienzo y titulo" + +#: mod/events.php:484 mod/events.php:485 +msgid "Event Starts:" +msgstr "Inicio del evento:" + +#: mod/events.php:486 mod/events.php:502 +msgid "Finish date/time is not known or not relevant" +msgstr "La fecha/hora de finalización no es conocida o es irrelevante." + +#: mod/events.php:488 mod/events.php:489 +msgid "Event Finishes:" +msgstr "Finalización del evento:" + +#: mod/events.php:490 mod/events.php:503 +msgid "Adjust for viewer timezone" +msgstr "Ajuste de zona horaria" + +#: mod/events.php:492 +msgid "Description:" +msgstr "Descripción:" + +#: mod/events.php:496 mod/events.php:498 +msgid "Title:" +msgstr "Título:" + +#: mod/events.php:499 mod/events.php:500 +msgid "Share this event" +msgstr "Comparte este evento" + +#: mod/maintenance.php:9 +msgid "System down for maintenance" +msgstr "Servicio suspendido por mantenimiento" + +#: mod/match.php:33 +msgid "No keywords to match. Please add keywords to your default profile." +msgstr "No hay palabras clave que coincidan. Por favor, agrega algunas palabras claves en tu perfil predeterminado." + +#: mod/match.php:86 +msgid "is interested in:" +msgstr "estás interesado en:" + +#: mod/match.php:100 +msgid "Profile Match" +msgstr "Coincidencias de Perfil" + +#: mod/profile.php:179 +msgid "Tips for New Members" +msgstr "Consejos para nuevos miembros" + +#: mod/suggest.php:27 +msgid "Do you really want to delete this suggestion?" +msgstr "¿Estás seguro de que quieres borrar esta sugerencia?" + +#: mod/suggest.php:71 +msgid "" +"No suggestions available. If this is a new site, please try again in 24 " +"hours." +msgstr "No hay sugerencias disponibles. Si el sitio web es nuevo inténtalo de nuevo dentro de 24 horas." + +#: mod/suggest.php:84 mod/suggest.php:104 +msgid "Ignore/Hide" +msgstr "Ignorar/Ocultar" + +#: mod/update_community.php:19 mod/update_display.php:23 +#: mod/update_network.php:27 mod/update_notes.php:36 mod/update_profile.php:35 +msgid "[Embedded content - reload page to view]" +msgstr "[Contenido incrustado - recarga la página para verlo]" + +#: mod/photos.php:88 mod/photos.php:1856 +msgid "Recent Photos" +msgstr "Fotos recientes" + +#: mod/photos.php:91 mod/photos.php:1283 mod/photos.php:1858 +msgid "Upload New Photos" +msgstr "Subir nuevas fotos" + +#: mod/photos.php:105 mod/settings.php:36 +msgid "everybody" +msgstr "todos" + +#: mod/photos.php:169 +msgid "Contact information unavailable" +msgstr "Información del contacto no disponible" + +#: mod/photos.php:190 +msgid "Album not found." +msgstr "Álbum no encontrado." + +#: mod/photos.php:220 mod/photos.php:232 mod/photos.php:1227 +msgid "Delete Album" +msgstr "Eliminar álbum" + +#: mod/photos.php:230 +msgid "Do you really want to delete this photo album and all its photos?" +msgstr "¿Estás seguro de quieres borrar este álbum y todas sus fotos?" + +#: mod/photos.php:308 mod/photos.php:319 mod/photos.php:1540 +msgid "Delete Photo" +msgstr "Eliminar foto" + +#: mod/photos.php:317 +msgid "Do you really want to delete this photo?" +msgstr "¿Estás seguro de que quieres borrar esta foto?" + +#: mod/photos.php:688 +#, php-format +msgid "%1$s was tagged in %2$s by %3$s" +msgstr "%1$s fue etiquetado en %2$s por %3$s" + +#: mod/photos.php:688 +msgid "a photo" +msgstr "una foto" + +#: mod/photos.php:794 +msgid "Image file is empty." +msgstr "El archivo de imagen está vacío." + +#: mod/photos.php:954 +msgid "No photos selected" +msgstr "Ninguna foto seleccionada" + +#: mod/photos.php:1054 mod/videos.php:305 +msgid "Access to this item is restricted." +msgstr "El acceso a este elemento está restringido." + +#: mod/photos.php:1114 +#, php-format +msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage." +msgstr "Has usado %1$.2f MB de %2$.2f MB de tu álbum de fotos." + +#: mod/photos.php:1148 +msgid "Upload Photos" +msgstr "Subir fotos" + +#: mod/photos.php:1152 mod/photos.php:1222 +msgid "New album name: " +msgstr "Nombre del nuevo álbum: " + +#: mod/photos.php:1153 +msgid "or existing album name: " +msgstr "o nombre de un álbum existente: " + +#: mod/photos.php:1154 +msgid "Do not show a status post for this upload" +msgstr "No actualizar tu estado con este envío" + +#: mod/photos.php:1165 mod/photos.php:1544 mod/settings.php:1300 +msgid "Show to Groups" +msgstr "Mostrar a los Grupos" + +#: mod/photos.php:1166 mod/photos.php:1545 mod/settings.php:1301 +msgid "Show to Contacts" +msgstr "Mostrar a los Contactos" + +#: mod/photos.php:1167 +msgid "Private Photo" +msgstr "Foto Privada" + +#: mod/photos.php:1168 +msgid "Public Photo" +msgstr "Foto Pública" + +#: mod/photos.php:1234 +msgid "Edit Album" +msgstr "Modificar álbum" + +#: mod/photos.php:1240 +msgid "Show Newest First" +msgstr "Mostrar más nuevos primero" + +#: mod/photos.php:1242 +msgid "Show Oldest First" +msgstr "Mostrar más antiguos primero" + +#: mod/photos.php:1269 mod/photos.php:1841 +msgid "View Photo" +msgstr "Ver foto" + +#: mod/photos.php:1315 +msgid "Permission denied. Access to this item may be restricted." +msgstr "Permiso denegado. El acceso a este elemento puede estar restringido." + +#: mod/photos.php:1317 +msgid "Photo not available" +msgstr "Foto no disponible" + +#: mod/photos.php:1372 +msgid "View photo" +msgstr "Ver foto" + +#: mod/photos.php:1372 +msgid "Edit photo" +msgstr "Modificar foto" + +#: mod/photos.php:1373 +msgid "Use as profile photo" +msgstr "Usar como foto del perfil" + +#: mod/photos.php:1398 +msgid "View Full Size" +msgstr "Ver a tamaño completo" + +#: mod/photos.php:1484 +msgid "Tags: " +msgstr "Etiquetas: " + +#: mod/photos.php:1487 +msgid "[Remove any tag]" +msgstr "[Borrar todas las etiquetas]" + +#: mod/photos.php:1526 +msgid "New album name" +msgstr "Nuevo nombre del álbum" + +#: mod/photos.php:1527 +msgid "Caption" +msgstr "Título" + +#: mod/photos.php:1528 +msgid "Add a Tag" +msgstr "Añadir una etiqueta" + +#: mod/photos.php:1528 +msgid "" +"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" +msgstr "Ejemplo: @juan, @Barbara_Ruiz, @julia@example.com, #California, #camping" + +#: mod/photos.php:1529 +msgid "Do not rotate" +msgstr "No rotar" + +#: mod/photos.php:1530 +msgid "Rotate CW (right)" +msgstr "Girar a la derecha" + +#: mod/photos.php:1531 +msgid "Rotate CCW (left)" +msgstr "Girar a la izquierda" + +#: mod/photos.php:1546 +msgid "Private photo" +msgstr "Foto privada" + +#: mod/photos.php:1547 +msgid "Public photo" +msgstr "Foto pública" + +#: mod/photos.php:1770 +msgid "Map" +msgstr "Mapa" + +#: mod/photos.php:1847 mod/videos.php:387 +msgid "View Album" +msgstr "Ver Álbum" + +#: mod/register.php:93 +msgid "" +"Registration successful. Please check your email for further instructions." +msgstr "Te has registrado con éxito. Por favor, consulta tu correo para más información." + +#: mod/register.php:98 +#, php-format +msgid "" +"Failed to send email message. Here your accout details:
      login: %s
      " +"password: %s

      You can change your password after login." +msgstr "Error al intentar de enviar mensaje de correo. Aquí los detalles de su cuenta:
      login: %s
      contraseña: %s

      Puede cambiar su contraseña después de ingresar al sitio." + +#: mod/register.php:105 +msgid "Registration successful." +msgstr "Registro exitoso." + +#: mod/register.php:111 +msgid "Your registration can not be processed." +msgstr "Tu registro no se puede procesar." + +#: mod/register.php:160 +msgid "Your registration is pending approval by the site owner." +msgstr "Tu registro está pendiente de aprobación por el propietario del sitio." + +#: mod/register.php:226 +msgid "" +"You may (optionally) fill in this form via OpenID by supplying your OpenID " +"and clicking 'Register'." +msgstr "Puedes (opcionalmente) rellenar este formulario a través de OpenID escribiendo tu OpenID y pulsando en \"Registrar\"." + +#: mod/register.php:227 +msgid "" +"If you are not familiar with OpenID, please leave that field blank and fill " +"in the rest of the items." +msgstr "Si no estás familiarizado con OpenID, por favor deja ese campo en blanco y rellena el resto de los elementos." + +#: mod/register.php:228 +msgid "Your OpenID (optional): " +msgstr "Tu OpenID (opcional):" + +#: mod/register.php:242 +msgid "Include your profile in member directory?" +msgstr "¿Incluir tu perfil en el directorio de miembros?" + +#: mod/register.php:267 +msgid "Note for the admin" +msgstr "Nota para el administrador" + +#: mod/register.php:267 +msgid "Leave a message for the admin, why you want to join this node" +msgstr "Deje un mensaje para el administrador sobre por qué quiere unirse a este nodo" + +#: mod/register.php:268 +msgid "Membership on this site is by invitation only." +msgstr "Sitio solo accesible mediante invitación." + +#: mod/register.php:269 +msgid "Your invitation ID: " +msgstr "ID de tu invitación: " + +#: mod/register.php:272 mod/admin.php:956 +msgid "Registration" +msgstr "Registro" + +#: mod/register.php:280 +msgid "Your Full Name (e.g. Joe Smith, real or real-looking): " +msgstr "Nombre completo (ej. Joe Smith, real o real aparente):" + +#: mod/register.php:281 +msgid "Your Email Address: " +msgstr "Tu dirección de correo: " + +#: mod/register.php:283 mod/settings.php:1271 +msgid "New Password:" +msgstr "Contraseña nueva:" + +#: mod/register.php:283 +msgid "Leave empty for an auto generated password." +msgstr "Dejar vacío para autogenerar una contraseña" + +#: mod/register.php:284 mod/settings.php:1272 +msgid "Confirm:" +msgstr "Confirmar:" + +#: mod/register.php:285 +msgid "" +"Choose a profile nickname. This must begin with a text character. Your " +"profile address on this site will then be " +"'nickname@$sitename'." +msgstr "Elije un apodo. Debe comenzar con una letra. Tu dirección de perfil en este sitio va a ser \"apodo@$nombredelsitio\"." + +#: mod/register.php:286 +msgid "Choose a nickname: " +msgstr "Escoge un apodo: " + +#: mod/register.php:296 +msgid "Import your profile to this friendica instance" +msgstr "Importar tu perfil a esta instancia de friendica" + +#: mod/settings.php:43 mod/admin.php:1396 +msgid "Account" +msgstr "Cuenta" + +#: mod/settings.php:52 mod/admin.php:160 +msgid "Additional features" +msgstr "Características adicionales" + +#: mod/settings.php:60 +msgid "Display" +msgstr "Interfaz del usuario" + +#: mod/settings.php:67 mod/settings.php:886 +msgid "Social Networks" +msgstr "Redes sociales" + +#: mod/settings.php:74 mod/admin.php:158 mod/admin.php:1522 mod/admin.php:1582 +msgid "Plugins" +msgstr "Módulos" + +#: mod/settings.php:88 +msgid "Connected apps" +msgstr "Aplicaciones conectadas" + +#: mod/settings.php:102 +msgid "Remove account" +msgstr "Eliminar cuenta" + +#: mod/settings.php:155 +msgid "Missing some important data!" +msgstr "¡Faltan algunos datos importantes!" + +#: mod/settings.php:158 mod/settings.php:704 mod/contacts.php:804 +msgid "Update" +msgstr "Actualizar" + +#: mod/settings.php:269 +msgid "Failed to connect with email account using the settings provided." +msgstr "Error al conectar con la cuenta de correo mediante la configuración suministrada." + +#: mod/settings.php:274 +msgid "Email settings updated." +msgstr "Configuración de correo actualizada." + +#: mod/settings.php:289 +msgid "Features updated" +msgstr "Actualizaciones" + +#: mod/settings.php:359 +msgid "Relocate message has been send to your contacts" +msgstr "Mensaje de reubicación ha sido enviado a sus contactos." + +#: mod/settings.php:378 +msgid "Empty passwords are not allowed. Password unchanged." +msgstr "No se permiten contraseñas vacías. La contraseña no ha sido modificada." + +#: mod/settings.php:386 +msgid "Wrong password." +msgstr "Contraseña incorrecta" + +#: mod/settings.php:397 +msgid "Password changed." +msgstr "Contraseña modificada." + +#: mod/settings.php:399 +msgid "Password update failed. Please try again." +msgstr "La actualización de la contraseña ha fallado. Por favor, prueba otra vez." + +#: mod/settings.php:479 +msgid " Please use a shorter name." +msgstr " Usa un nombre más corto." + +#: mod/settings.php:481 +msgid " Name too short." +msgstr " Nombre demasiado corto." + +#: mod/settings.php:490 +msgid "Wrong Password" +msgstr "Contraseña incorrecta" + +#: mod/settings.php:495 +msgid " Not valid email." +msgstr " Correo no válido." + +#: mod/settings.php:501 +msgid " Cannot change to that email." +msgstr " No se puede usar ese correo." + +#: mod/settings.php:557 +msgid "Private forum has no privacy permissions. Using default privacy group." +msgstr "El foro privado no tiene permisos de privacidad. Usando el grupo de privacidad por defecto." + +#: mod/settings.php:561 +msgid "Private forum has no privacy permissions and no default privacy group." +msgstr "El foro privado no tiene permisos de privacidad ni grupo por defecto de privacidad." + +#: mod/settings.php:601 +msgid "Settings updated." +msgstr "Configuración actualizada." + +#: mod/settings.php:677 mod/settings.php:703 mod/settings.php:739 +msgid "Add application" +msgstr "Agregar aplicación" + +#: mod/settings.php:678 mod/settings.php:788 mod/settings.php:835 +#: mod/settings.php:904 mod/settings.php:996 mod/settings.php:1264 +#: mod/admin.php:955 mod/admin.php:1583 mod/admin.php:1831 mod/admin.php:1905 +#: mod/admin.php:2055 +msgid "Save Settings" +msgstr "Guardar configuración" + +#: mod/settings.php:681 mod/settings.php:707 +msgid "Consumer Key" +msgstr "Clave del consumidor" + +#: mod/settings.php:682 mod/settings.php:708 +msgid "Consumer Secret" +msgstr "Secreto del consumidor" + +#: mod/settings.php:683 mod/settings.php:709 +msgid "Redirect" +msgstr "Redirigir" + +#: mod/settings.php:684 mod/settings.php:710 +msgid "Icon url" +msgstr "Dirección del ícono" + +#: mod/settings.php:695 +msgid "You can't edit this application." +msgstr "No puedes editar esta aplicación." + +#: mod/settings.php:738 +msgid "Connected Apps" +msgstr "Aplicaciones conectadas" + +#: mod/settings.php:742 +msgid "Client key starts with" +msgstr "Clave de cliente comienza por" + +#: mod/settings.php:743 +msgid "No name" +msgstr "Sin nombre" + +#: mod/settings.php:744 +msgid "Remove authorization" +msgstr "Suprimir la autorización" + +#: mod/settings.php:756 +msgid "No Plugin settings configured" +msgstr "No se ha configurado ningún módulo" + +#: mod/settings.php:764 +msgid "Plugin Settings" +msgstr "Configuración de los módulos" + +#: mod/settings.php:778 mod/admin.php:2044 mod/admin.php:2045 +msgid "Off" +msgstr "Apagado" + +#: mod/settings.php:778 mod/admin.php:2044 mod/admin.php:2045 +msgid "On" +msgstr "Encendido" + +#: mod/settings.php:786 +msgid "Additional Features" +msgstr "Características adicionales" + +#: mod/settings.php:796 mod/settings.php:800 +msgid "General Social Media Settings" +msgstr "Configuración general de social media " + +#: mod/settings.php:806 +msgid "Disable intelligent shortening" +msgstr "Deshabilitar recorte inteligente de URL" + +#: mod/settings.php:808 +msgid "" +"Normally the system tries to find the best link to add to shortened posts. " +"If this option is enabled then every shortened post will always point to the" +" original friendica post." +msgstr "Normalemente el sistema intenta de encontrara el mejor enlace para agregar a envíos recortados (twitter, OStatus). Si esta opción se encuentra habilitado, todo envío recortado apuntara siempre al tema original en friendica." + +#: mod/settings.php:814 +msgid "Automatically follow any GNU Social (OStatus) followers/mentioners" +msgstr "Automáticamente seguir cualquier GNUsocial (OStatus) seguidores o menciones " + +#: mod/settings.php:816 +msgid "" +"If you receive a message from an unknown OStatus user, this option decides " +"what to do. If it is checked, a new contact will be created for every " +"unknown user." +msgstr "Cuando se recibe un mensaje de un perfil desconocido de OStatus, esta opción define que hacer.\nSi es habilitado, un nuevo contacto sera creado para cada usuario." + +#: mod/settings.php:822 +msgid "Default group for OStatus contacts" +msgstr "Grupo por defecto para contactos OStatus" + +#: mod/settings.php:828 +msgid "Your legacy GNU Social account" +msgstr "Tu cuenta GNU social conectada" + +#: mod/settings.php:830 +msgid "" +"If you enter your old GNU Social/Statusnet account name here (in the format " +"user@domain.tld), your contacts will be added automatically. The field will " +"be emptied when done." +msgstr "Si agrega su viejo nombre de perfil GNUsocial/Statusnet aqui (en el formato de usuario@dominio.tld), sus contactos serán añadidos automáticamente.\nEl campo sera vaciado cuando termine el proceso. " + +#: mod/settings.php:833 +msgid "Repair OStatus subscriptions" +msgstr "Reparar subscripciones de OStatus" + +#: mod/settings.php:842 mod/settings.php:843 +#, php-format +msgid "Built-in support for %s connectivity is %s" +msgstr "El soporte integrado de conexión con %s está %s" + +#: mod/settings.php:842 mod/settings.php:843 +msgid "enabled" +msgstr "habilitado" + +#: mod/settings.php:842 mod/settings.php:843 +msgid "disabled" +msgstr "deshabilitado" + +#: mod/settings.php:843 +msgid "GNU Social (OStatus)" +msgstr "GNUsocial (OStatus)" + +#: mod/settings.php:879 +msgid "Email access is disabled on this site." +msgstr "El acceso por correo está deshabilitado en esta web." + +#: mod/settings.php:891 +msgid "Email/Mailbox Setup" +msgstr "Configuración del correo/buzón" + +#: mod/settings.php:892 +msgid "" +"If you wish to communicate with email contacts using this service " +"(optional), please specify how to connect to your mailbox." +msgstr "Si quieres comunicarte con tus contactos de correo usando este servicio (opcional), por favor, especifica cómo conectar con tu buzón." + +#: mod/settings.php:893 +msgid "Last successful email check:" +msgstr "Última comprobación del correo con éxito:" + +#: mod/settings.php:895 +msgid "IMAP server name:" +msgstr "Nombre del servidor IMAP:" + +#: mod/settings.php:896 +msgid "IMAP port:" +msgstr "Puerto IMAP:" + +#: mod/settings.php:897 +msgid "Security:" +msgstr "Seguridad:" + +#: mod/settings.php:897 mod/settings.php:902 +msgid "None" +msgstr "Ninguna" + +#: mod/settings.php:898 +msgid "Email login name:" +msgstr "Nombre de usuario:" + +#: mod/settings.php:899 +msgid "Email password:" +msgstr "Contraseña:" + +#: mod/settings.php:900 +msgid "Reply-to address:" +msgstr "Dirección de respuesta:" + +#: mod/settings.php:901 +msgid "Send public posts to all email contacts:" +msgstr "Enviar publicaciones públicas a todos los contactos de correo:" + +#: mod/settings.php:902 +msgid "Action after import:" +msgstr "Acción después de importar:" + +#: mod/settings.php:902 +msgid "Move to folder" +msgstr "Mover a un directorio" + +#: mod/settings.php:903 +msgid "Move to folder:" +msgstr "Mover al directorio:" + +#: mod/settings.php:934 mod/admin.php:862 +msgid "No special theme for mobile devices" +msgstr "No hay tema especial para dispositivos móviles" + +#: mod/settings.php:994 +msgid "Display Settings" +msgstr "Configuración Tema/Visualización" + +#: mod/settings.php:1000 mod/settings.php:1023 +msgid "Display Theme:" +msgstr "Utilizar tema:" + +#: mod/settings.php:1001 +msgid "Mobile Theme:" +msgstr "Tema móvil:" + +#: mod/settings.php:1002 +msgid "Suppress warning of insecure networks" +msgstr "Suprimir el aviso de redes inseguras" + +#: mod/settings.php:1002 +msgid "" +"Should the system suppress the warning that the current group contains " +"members of networks that can't receive non public postings." +msgstr "Debería el sistema suprimir el aviso de que el grupo actual contiene miembros de redes que no pueden recibir publicaciones públicas." + +#: mod/settings.php:1003 +msgid "Update browser every xx seconds" +msgstr "Actualizar navegador cada xx segundos" + +#: mod/settings.php:1003 +msgid "Minimum of 10 seconds. Enter -1 to disable it." +msgstr "Minimo 10 segundos. Ingrese -1 para deshabilitar." + +#: mod/settings.php:1004 +msgid "Number of items to display per page:" +msgstr "Número de elementos a mostrar por página:" + +#: mod/settings.php:1004 mod/settings.php:1005 +msgid "Maximum of 100 items" +msgstr "Máximo 100 elementos" + +#: mod/settings.php:1005 +msgid "Number of items to display per page when viewed from mobile device:" +msgstr "Cantidad de objetos a visualizar cuando se usa un movil" + +#: mod/settings.php:1006 +msgid "Don't show emoticons" +msgstr "No mostrar emoticones" + +#: mod/settings.php:1007 +msgid "Calendar" +msgstr "Calendario" + +#: mod/settings.php:1008 +msgid "Beginning of week:" +msgstr "Principio de la semana:" + +#: mod/settings.php:1009 +msgid "Don't show notices" +msgstr "No mostrara avisos" + +#: mod/settings.php:1010 +msgid "Infinite scroll" +msgstr "pagina infinita (sroll)" + +#: mod/settings.php:1011 +msgid "Automatic updates only at the top of the network page" +msgstr "Actualizaciones automaticas solo estando al principio de la pagina" + +#: mod/settings.php:1012 +msgid "Bandwith Saver Mode" +msgstr "Modo de guardado de ancho de banda" + +#: mod/settings.php:1012 +msgid "" +"When enabled, embedded content is not displayed on automatic updates, they " +"only show on page reload." +msgstr "Cuando está habilitado, el contenido incrustado no se muestra en las actualizaciones automáticas, sólo en las páginas recargadas." + +#: mod/settings.php:1014 +msgid "General Theme Settings" +msgstr "Ajustes generales de tema" + +#: mod/settings.php:1015 +msgid "Custom Theme Settings" +msgstr "Ajustes personalizados de tema" + +#: mod/settings.php:1016 +msgid "Content Settings" +msgstr "Ajustes de contenido" + +#: mod/settings.php:1017 view/theme/frio/config.php:61 +#: view/theme/quattro/config.php:66 view/theme/vier/config.php:109 +#: view/theme/duepuntozero/config.php:61 +msgid "Theme settings" +msgstr "Configuración del Tema" + +#: mod/settings.php:1099 +msgid "Account Types" +msgstr "Tipos de cuenta" + +#: mod/settings.php:1100 +msgid "Personal Page Subtypes" +msgstr "Subtipos de página personal" + +#: mod/settings.php:1101 +msgid "Community Forum Subtypes" +msgstr "Subtipos de foro de comunidad" + +#: mod/settings.php:1108 +msgid "Personal Page" +msgstr "Página personal" + +#: mod/settings.php:1109 +msgid "This account is a regular personal profile" +msgstr "Esta cuenta es un perfil personal corriente" + +#: mod/settings.php:1112 +msgid "Organisation Page" +msgstr "Página de organización" + +#: mod/settings.php:1113 +msgid "This account is a profile for an organisation" +msgstr "Esta cuenta es un perfil de una organización" + +#: mod/settings.php:1116 +msgid "News Page" +msgstr "Página de noticias" + +#: mod/settings.php:1117 +msgid "This account is a news account/reflector" +msgstr "Esta cuenta es una cuenta de noticias/reflectora" + +#: mod/settings.php:1120 +msgid "Community Forum" +msgstr "Foro de la comunidad" + +#: mod/settings.php:1121 +msgid "" +"This account is a community forum where people can discuss with each other" +msgstr "Esta cuenta es un foro de comunidad donde la gente puede debatir con otros" + +#: mod/settings.php:1124 +msgid "Normal Account Page" +msgstr "Página de cuenta normal" + +#: mod/settings.php:1125 +msgid "This account is a normal personal profile" +msgstr "Esta cuenta es el perfil personal normal" + +#: mod/settings.php:1128 +msgid "Soapbox Page" +msgstr "Página de tribuna" + +#: mod/settings.php:1129 +msgid "Automatically approve all connection/friend requests as read-only fans" +msgstr "Acepta automáticamente todas las peticiones de conexión/amistad como seguidores de solo-lectura" + +#: mod/settings.php:1132 +msgid "Public Forum" +msgstr "Foro público" + +#: mod/settings.php:1133 +msgid "Automatically approve all contact requests" +msgstr "Aprovar autimáticamente todas las solicitudes de contacto" + +#: mod/settings.php:1136 +msgid "Automatic Friend Page" +msgstr "Página de Amistad autómatica" + +#: mod/settings.php:1137 +msgid "Automatically approve all connection/friend requests as friends" +msgstr "Aceptar automáticamente todas las solicitudes de conexión/amistad como amigos" + +#: mod/settings.php:1140 +msgid "Private Forum [Experimental]" +msgstr "Foro privado [Experimental]" + +#: mod/settings.php:1141 +msgid "Private forum - approved members only" +msgstr "Foro privado - solo miembros" + +#: mod/settings.php:1153 +msgid "OpenID:" +msgstr "OpenID:" + +#: mod/settings.php:1153 +msgid "(Optional) Allow this OpenID to login to this account." +msgstr "(Opcional) Permitir a este OpenID acceder a esta cuenta." + +#: mod/settings.php:1163 +msgid "Publish your default profile in your local site directory?" +msgstr "¿Quieres publicar tu perfil predeterminado en el directorio local del sitio?" + +#: mod/settings.php:1169 +msgid "Publish your default profile in the global social directory?" +msgstr "¿Quieres publicar tu perfil predeterminado en el directorio social de forma global?" + +#: mod/settings.php:1177 +msgid "Hide your contact/friend list from viewers of your default profile?" +msgstr "¿Quieres ocultar tu lista de contactos/amigos en la vista de tu perfil predeterminado?" + +#: mod/settings.php:1181 +msgid "" +"If enabled, posting public messages to Diaspora and other networks isn't " +"possible." +msgstr "Si habilitado, enviar temas públicos a a Diaspora* y otras redes no es posible. " + +#: mod/settings.php:1186 +msgid "Allow friends to post to your profile page?" +msgstr "¿Permites que tus amigos publiquen en tu página de perfil?" + +#: mod/settings.php:1192 +msgid "Allow friends to tag your posts?" +msgstr "¿Permites a los amigos etiquetar tus publicaciones?" + +#: mod/settings.php:1198 +msgid "Allow us to suggest you as a potential friend to new members?" +msgstr "¿Nos permite recomendarte como amigo potencial a los nuevos miembros?" + +#: mod/settings.php:1204 +msgid "Permit unknown people to send you private mail?" +msgstr "¿Permites que desconocidos te manden correos privados?" + +#: mod/settings.php:1212 +msgid "Profile is not published." +msgstr "El perfil no está publicado." + +#: mod/settings.php:1220 +#, php-format +msgid "Your Identity Address is '%s' or '%s'." +msgstr "Su dirección de identidad es '%s' o '%s'." + +#: mod/settings.php:1227 +msgid "Automatically expire posts after this many days:" +msgstr "Las publicaciones expirarán automáticamente después de estos días:" + +#: mod/settings.php:1227 +msgid "If empty, posts will not expire. Expired posts will be deleted" +msgstr "Si lo dejas vacío no expirarán nunca. Las publicaciones que hayan expirado se borrarán" + +#: mod/settings.php:1228 +msgid "Advanced expiration settings" +msgstr "Configuración avanzada de expiración" + +#: mod/settings.php:1229 +msgid "Advanced Expiration" +msgstr "Expiración avanzada" + +#: mod/settings.php:1230 +msgid "Expire posts:" +msgstr "¿Expiran las publicaciones?" + +#: mod/settings.php:1231 +msgid "Expire personal notes:" +msgstr "¿Expiran las notas personales?" + +#: mod/settings.php:1232 +msgid "Expire starred posts:" +msgstr "¿Expiran los favoritos?" + +#: mod/settings.php:1233 +msgid "Expire photos:" +msgstr "¿Expiran las fotografías?" + +#: mod/settings.php:1234 +msgid "Only expire posts by others:" +msgstr "Solo expiran los mensajes de los demás:" + +#: mod/settings.php:1262 +msgid "Account Settings" +msgstr "Configuración de la cuenta" + +#: mod/settings.php:1270 +msgid "Password Settings" +msgstr "Configuración de la contraseña" + +#: mod/settings.php:1272 +msgid "Leave password fields blank unless changing" +msgstr "Deja la contraseña en blanco si no quieres cambiarla" + +#: mod/settings.php:1273 +msgid "Current Password:" +msgstr "Contraseña actual:" + +#: mod/settings.php:1273 mod/settings.php:1274 +msgid "Your current password to confirm the changes" +msgstr "Su contraseña actual para confirmar los cambios." + +#: mod/settings.php:1274 +msgid "Password:" +msgstr "Contraseña:" + +#: mod/settings.php:1278 +msgid "Basic Settings" +msgstr "Configuración básica" + +#: mod/settings.php:1280 +msgid "Email Address:" +msgstr "Dirección de correo:" + +#: mod/settings.php:1281 +msgid "Your Timezone:" +msgstr "Zona horaria:" + +#: mod/settings.php:1282 +msgid "Your Language:" +msgstr "Tu idioma:" + +#: mod/settings.php:1282 +msgid "" +"Set the language we use to show you friendica interface and to send you " +"emails" +msgstr "Selecciona el idioma que se usara para la interfaz del usuario y para el envío de correo." + +#: mod/settings.php:1283 +msgid "Default Post Location:" +msgstr "Localización predeterminada:" + +#: mod/settings.php:1284 +msgid "Use Browser Location:" +msgstr "Usar localización del navegador:" + +#: mod/settings.php:1287 +msgid "Security and Privacy Settings" +msgstr "Configuración de seguridad y privacidad" + +#: mod/settings.php:1289 +msgid "Maximum Friend Requests/Day:" +msgstr "Máximo número de peticiones de amistad por día:" + +#: mod/settings.php:1289 mod/settings.php:1319 +msgid "(to prevent spam abuse)" +msgstr "(para prevenir el abuso de spam)" + +#: mod/settings.php:1290 +msgid "Default Post Permissions" +msgstr "Permisos por defecto para las publicaciones" + +#: mod/settings.php:1291 +msgid "(click to open/close)" +msgstr "(pulsa para abrir/cerrar)" + +#: mod/settings.php:1302 +msgid "Default Private Post" +msgstr "Publicación Privada por defecto" + +#: mod/settings.php:1303 +msgid "Default Public Post" +msgstr "Publicación Pública por defecto" + +#: mod/settings.php:1307 +msgid "Default Permissions for New Posts" +msgstr "Permisos por defecto para nuevas publicaciones" + +#: mod/settings.php:1319 +msgid "Maximum private messages per day from unknown people:" +msgstr "Número máximo de mensajes diarios para desconocidos:" + +#: mod/settings.php:1322 +msgid "Notification Settings" +msgstr "Configuración de notificaciones" + +#: mod/settings.php:1323 +msgid "By default post a status message when:" +msgstr "Publicar en tu estado cuando:" + +#: mod/settings.php:1324 +msgid "accepting a friend request" +msgstr "aceptes una solicitud de amistad" + +#: mod/settings.php:1325 +msgid "joining a forum/community" +msgstr "te unas a un foro/comunidad" + +#: mod/settings.php:1326 +msgid "making an interesting profile change" +msgstr "hagas un cambio interesante en tu perfil" + +#: mod/settings.php:1327 +msgid "Send a notification email when:" +msgstr "Enviar notificación por correo cuando:" + +#: mod/settings.php:1328 +msgid "You receive an introduction" +msgstr "Recibas una presentación" + +#: mod/settings.php:1329 +msgid "Your introductions are confirmed" +msgstr "Tu presentación sea confirmada" + +#: mod/settings.php:1330 +msgid "Someone writes on your profile wall" +msgstr "Alguien escriba en el muro de mi perfil" + +#: mod/settings.php:1331 +msgid "Someone writes a followup comment" +msgstr "Algien escriba en un comentario que sigo" + +#: mod/settings.php:1332 +msgid "You receive a private message" +msgstr "Recibas un mensaje privado" + +#: mod/settings.php:1333 +msgid "You receive a friend suggestion" +msgstr "Recibas una sugerencia de amistad" + +#: mod/settings.php:1334 +msgid "You are tagged in a post" +msgstr "Seas etiquetado en una publicación" + +#: mod/settings.php:1335 +msgid "You are poked/prodded/etc. in a post" +msgstr "Te han tocado/empujado/etc. en una publicación" + +#: mod/settings.php:1337 +msgid "Activate desktop notifications" +msgstr "Activar notificaciones en pantalla." + +#: mod/settings.php:1337 +msgid "Show desktop popup on new notifications" +msgstr "Mostrar notificaciones emergentes en caso de nuevos eventos." + +#: mod/settings.php:1339 +msgid "Text-only notification emails" +msgstr "Notificaciones e-mail de solo texto" + +#: mod/settings.php:1341 +msgid "Send text only notification emails, without the html part" +msgstr "Enviar las notificaciones por correo con formato de solo texto sin html." + +#: mod/settings.php:1343 +msgid "Advanced Account/Page Type Settings" +msgstr "Configuración avanzada de tipo de Cuenta/Página" + +#: mod/settings.php:1344 +msgid "Change the behaviour of this account for special situations" +msgstr "Cambiar el comportamiento de esta cuenta para situaciones especiales" + +#: mod/settings.php:1347 +msgid "Relocate" +msgstr "Relocalizar" + +#: mod/settings.php:1348 +msgid "" +"If you have moved this profile from another server, and some of your " +"contacts don't receive your updates, try pushing this button." +msgstr "Si ha migrado este perfil desde otro servidor aquí y algunos contactos no reciben sus publicaciones intente recomunicar su ubicación a traves este botón. (Como para decir el botón de los botones)" + +#: mod/settings.php:1349 +msgid "Resend relocate message to contacts" +msgstr "Reenviar mensaje de relocalización a los contactos" + +#: mod/videos.php:120 +msgid "Do you really want to delete this video?" +msgstr "Realmente quieres eliminar este vídeo?" + +#: mod/videos.php:125 +msgid "Delete Video" +msgstr "Borrar vídeo" + +#: mod/videos.php:204 +msgid "No videos selected" +msgstr "Ningún vídeo seleccionado" + +#: mod/videos.php:396 +msgid "Recent Videos" +msgstr "Vídeos recientes" + +#: mod/videos.php:398 +msgid "Upload New Videos" +msgstr "Subir nuevos vídeos" + +#: mod/wall_attach.php:17 mod/wall_attach.php:25 mod/wall_attach.php:76 +#: mod/wall_upload.php:20 mod/wall_upload.php:33 mod/wall_upload.php:86 +#: mod/wall_upload.php:122 mod/wall_upload.php:125 +msgid "Invalid request." +msgstr "Consulta invalida" + +#: mod/wall_attach.php:94 +msgid "Sorry, maybe your upload is bigger than the PHP configuration allows" +msgstr "Disculpa, posiblemente el archivo subido es mas grande que la PHP configuración permite." + +#: mod/wall_attach.php:94 +msgid "Or - did you try to upload an empty file?" +msgstr "Si no - intento de subir un archivo vacío?" + +#: mod/wall_attach.php:105 +#, php-format +msgid "File exceeds size limit of %s" +msgstr "El archivo excede el limite de tamaño de %s" + +#: mod/wall_attach.php:156 mod/wall_attach.php:172 +msgid "File upload failed." +msgstr "Ha fallado la subida del archivo." #: mod/admin.php:92 msgid "Theme settings updated." @@ -4137,18 +6273,10 @@ msgstr "Sitio" msgid "Users" msgstr "Usuarios" -#: mod/admin.php:158 mod/admin.php:1522 mod/admin.php:1582 mod/settings.php:74 -msgid "Plugins" -msgstr "Módulos" - #: mod/admin.php:159 mod/admin.php:1780 mod/admin.php:1830 msgid "Themes" msgstr "Temas" -#: mod/admin.php:160 mod/settings.php:52 -msgid "Additional features" -msgstr "Características adicionales" - #: mod/admin.php:161 msgid "DB updates" msgstr "Actualizaciones de la Base de Datos" @@ -4321,10 +6449,6 @@ msgstr "RINO2 precisa la extensión mcrypt para funcionar. " msgid "Site settings updated." msgstr "Configuración de actualización." -#: mod/admin.php:862 mod/settings.php:934 -msgid "No special theme for mobile devices" -msgstr "No hay tema especial para dispositivos móviles" - #: mod/admin.php:881 msgid "No community page" msgstr "No hay pagina de comunidad" @@ -4401,17 +6525,6 @@ msgstr "Forzar todos los enlaces a utilizar SSL" msgid "Self-signed certificate, use SSL for local links only (discouraged)" msgstr "Certificación personal, usa SSL solo para enlaces locales (no recomendado)" -#: mod/admin.php:955 mod/admin.php:1583 mod/admin.php:1831 mod/admin.php:1905 -#: mod/admin.php:2055 mod/settings.php:678 mod/settings.php:788 -#: mod/settings.php:835 mod/settings.php:904 mod/settings.php:996 -#: mod/settings.php:1264 -msgid "Save Settings" -msgstr "Guardar configuración" - -#: mod/admin.php:956 mod/register.php:272 -msgid "Registration" -msgstr "Registro" - #: mod/admin.php:957 msgid "File upload" msgstr "Subida de archivo" @@ -5181,7 +7294,7 @@ msgid "" "You should only enable this option if you cannot utilize cron/scheduled jobs" " on your server. The worker background process needs to be activated for " "this." -msgstr "" +msgstr "Cuando está habilitado, el proceso de Trabajador se activa cuando se ejecuta el acceso de respaldo (ej. mensajes siendo entregados). En páginas más pequeñas usted puede querer llamar a yourdomain.tld/worker en una base regular mediante un trabajo cron externo. Sólo debería habilitar esta opción si no puede utilizar trabajos cron/scheduled en su servidor. El proceso de trabajador en segundo plano necesita ser activado para eso." #: mod/admin.php:1084 msgid "Update has been marked successful" @@ -5321,10 +7434,6 @@ msgstr "Último acceso" msgid "Last item" msgstr "Último elemento" -#: mod/admin.php:1396 mod/settings.php:43 -msgid "Account" -msgstr "Cuenta" - #: mod/admin.php:1405 msgid "Add User" msgstr "Agregar usuario" @@ -5358,12 +7467,12 @@ msgid "Deny" msgstr "Denegado" #: mod/admin.php:1415 mod/contacts.php:605 mod/contacts.php:805 -#: mod/contacts.php:992 +#: mod/contacts.php:983 msgid "Block" msgstr "Bloquear" #: mod/admin.php:1416 mod/contacts.php:605 mod/contacts.php:805 -#: mod/contacts.php:992 +#: mod/contacts.php:983 msgid "Unblock" msgstr "Desbloquear" @@ -5525,14 +7634,6 @@ msgid "" "'display_errors' is to enable these options, set to '0' to disable them." msgstr "Para habilitar la documentación de los errores PHP y las advertencias se puede agregar lo siguiente al archivo .htconfig.php de la instalación (ftp). La dirección definido en el 'error_log' es relativo al directorio friendica principal (top-level directory) y debe de ser habilitado para la escritura por el servidor web. La opción '1' para 'log_errors' y 'display_errors' es para habilitar estas opciones, '0' para deshabilitarlo." -#: mod/admin.php:2044 mod/admin.php:2045 mod/settings.php:778 -msgid "Off" -msgstr "Apagado" - -#: mod/admin.php:2044 mod/admin.php:2045 mod/settings.php:778 -msgid "On" -msgstr "Encendido" - #: mod/admin.php:2045 #, php-format msgid "Lock feature %s" @@ -5542,806 +7643,584 @@ msgstr "Trancar opción %s " msgid "Manage Additional Features" msgstr "Administrar opciones adicionales" -#: mod/wall_attach.php:94 -msgid "Sorry, maybe your upload is bigger than the PHP configuration allows" -msgstr "Disculpa, posiblemente el archivo subido es mas grande que la PHP configuración permite." - -#: mod/wall_attach.php:94 -msgid "Or - did you try to upload an empty file?" -msgstr "Si no - intento de subir un archivo vacío?" - -#: mod/wall_attach.php:105 +#: mod/contacts.php:128 #, php-format -msgid "File exceeds size limit of %s" -msgstr "El archivo excede el limite de tamaño de %s" +msgid "%d contact edited." +msgid_plural "%d contacts edited." +msgstr[0] "%d contacto editado." +msgstr[1] "%d contacts edited." -#: mod/wall_attach.php:156 mod/wall_attach.php:172 -msgid "File upload failed." -msgstr "Ha fallado la subida del archivo." +#: mod/contacts.php:159 mod/contacts.php:368 +msgid "Could not access contact record." +msgstr "No se pudo acceder a los datos del contacto." -#: mod/allfriends.php:43 -msgid "No friends to display." -msgstr "No hay amigos para mostrar." +#: mod/contacts.php:173 +msgid "Could not locate selected profile." +msgstr "No se pudo encontrar el perfil seleccionado." -#: mod/cal.php:149 mod/display.php:328 mod/profile.php:155 -msgid "Access to this profile has been restricted." -msgstr "El acceso a este perfil ha sido restringido." +#: mod/contacts.php:206 +msgid "Contact updated." +msgstr "Contacto actualizado." -#: mod/cal.php:297 -msgid "User not found" -msgstr "Usuario no encontrado" +#: mod/contacts.php:208 mod/dfrn_request.php:583 +msgid "Failed to update contact record." +msgstr "Error al actualizar el contacto." -#: mod/cal.php:313 -msgid "This calendar format is not supported" -msgstr "Este formato de calendario no se soporta" +#: mod/contacts.php:389 +msgid "Contact has been blocked" +msgstr "El contacto ha sido bloqueado" -#: mod/cal.php:315 -msgid "No exportable data found" -msgstr "No se ha encontrado información exportable" +#: mod/contacts.php:389 +msgid "Contact has been unblocked" +msgstr "El contacto ha sido desbloqueado" -#: mod/cal.php:330 -msgid "calendar" -msgstr "calendario" +#: mod/contacts.php:400 +msgid "Contact has been ignored" +msgstr "El contacto ha sido ignorado" -#: mod/content.php:119 mod/network.php:469 -msgid "No such group" -msgstr "Ningún grupo" +#: mod/contacts.php:400 +msgid "Contact has been unignored" +msgstr "El contacto ya no está ignorado" -#: mod/content.php:130 mod/network.php:496 mod/group.php:193 -msgid "Group is empty" -msgstr "El grupo está vacío" +#: mod/contacts.php:412 +msgid "Contact has been archived" +msgstr "El contacto ha sido archivado" -#: mod/content.php:135 mod/network.php:500 +#: mod/contacts.php:412 +msgid "Contact has been unarchived" +msgstr "El contacto ya no está archivado" + +#: mod/contacts.php:437 +msgid "Drop contact" +msgstr "Eliminar contacto" + +#: mod/contacts.php:440 mod/contacts.php:801 +msgid "Do you really want to delete this contact?" +msgstr "¿Estás seguro de que quieres eliminar este contacto?" + +#: mod/contacts.php:457 +msgid "Contact has been removed." +msgstr "El contacto ha sido eliminado" + +#: mod/contacts.php:498 #, php-format -msgid "Group: %s" -msgstr "Grupo: %s" +msgid "You are mutual friends with %s" +msgstr "Ahora tienes una amistad mutua con %s" -#: mod/content.php:325 object/Item.php:95 -msgid "This entry was edited" -msgstr "Esta entrada fue editada" - -#: mod/content.php:621 object/Item.php:429 +#: mod/contacts.php:502 #, php-format -msgid "%d comment" -msgid_plural "%d comments" -msgstr[0] "%d comentario" -msgstr[1] "%d comentarios" +msgid "You are sharing with %s" +msgstr "Estás compartiendo con %s" -#: mod/content.php:638 mod/photos.php:1379 object/Item.php:117 -msgid "Private Message" -msgstr "Mensaje privado" +#: mod/contacts.php:507 +#, php-format +msgid "%s is sharing with you" +msgstr "%s está compartiendo contigo" -#: mod/content.php:702 mod/photos.php:1567 object/Item.php:263 -msgid "I like this (toggle)" -msgstr "Me gusta esto (cambiar)" +#: mod/contacts.php:527 +msgid "Private communications are not available for this contact." +msgstr "Las comunicaciones privadas no está disponibles para este contacto." -#: mod/content.php:702 object/Item.php:263 -msgid "like" -msgstr "me gusta" +#: mod/contacts.php:534 +msgid "(Update was successful)" +msgstr "(La actualización se ha completado)" -#: mod/content.php:703 mod/photos.php:1568 object/Item.php:264 -msgid "I don't like this (toggle)" -msgstr "No me gusta esto (cambiar)" +#: mod/contacts.php:534 +msgid "(Update was not successful)" +msgstr "(La actualización no se ha completado)" -#: mod/content.php:703 object/Item.php:264 -msgid "dislike" -msgstr "no me gusta" +#: mod/contacts.php:536 mod/contacts.php:964 +msgid "Suggest friends" +msgstr "Sugerir amigos" -#: mod/content.php:705 object/Item.php:266 -msgid "Share this" -msgstr "Compartir esto" +#: mod/contacts.php:540 +#, php-format +msgid "Network type: %s" +msgstr "Tipo de red: %s" -#: mod/content.php:705 object/Item.php:266 -msgid "share" -msgstr "compartir" +#: mod/contacts.php:553 +msgid "Communications lost with this contact!" +msgstr "¡Se ha perdido la comunicación con este contacto!" -#: mod/content.php:725 mod/photos.php:1587 mod/photos.php:1635 -#: mod/photos.php:1721 object/Item.php:717 -msgid "This is you" -msgstr "Este eres tú" +#: mod/contacts.php:556 +msgid "Fetch further information for feeds" +msgstr "Recaudar informacion complementaria de los feeds" -#: mod/content.php:729 object/Item.php:721 -msgid "Bold" -msgstr "Negrita" +#: mod/contacts.php:557 +msgid "Fetch information" +msgstr "Recaudar informacion" -#: mod/content.php:730 object/Item.php:722 -msgid "Italic" -msgstr "Cursiva" +#: mod/contacts.php:557 +msgid "Fetch information and keywords" +msgstr "Recaudar informacion y palabras claves" -#: mod/content.php:731 object/Item.php:723 -msgid "Underline" -msgstr "Subrayado" +#: mod/contacts.php:575 +msgid "Contact" +msgstr "Contacto" -#: mod/content.php:732 object/Item.php:724 -msgid "Quote" -msgstr "Cita" +#: mod/contacts.php:578 +msgid "Profile Visibility" +msgstr "Visibilidad del Perfil" -#: mod/content.php:733 object/Item.php:725 -msgid "Code" -msgstr "Código" - -#: mod/content.php:734 object/Item.php:726 -msgid "Image" -msgstr "Imagen" - -#: mod/content.php:735 object/Item.php:727 -msgid "Link" -msgstr "Enlace" - -#: mod/content.php:736 object/Item.php:728 -msgid "Video" -msgstr "Vídeo" - -#: mod/content.php:746 mod/settings.php:740 object/Item.php:122 -#: object/Item.php:124 -msgid "Edit" -msgstr "Editar" - -#: mod/content.php:771 object/Item.php:227 -msgid "add star" -msgstr "Añadir estrella" - -#: mod/content.php:772 object/Item.php:228 -msgid "remove star" -msgstr "Quitar estrella" - -#: mod/content.php:773 object/Item.php:229 -msgid "toggle star status" -msgstr "Añadir a destacados" - -#: mod/content.php:776 object/Item.php:232 -msgid "starred" -msgstr "marcados con estrellas" - -#: mod/content.php:777 mod/content.php:798 object/Item.php:252 -msgid "add tag" -msgstr "añadir etiqueta" - -#: mod/content.php:787 object/Item.php:240 -msgid "ignore thread" -msgstr "ignorar publicación" - -#: mod/content.php:788 object/Item.php:241 -msgid "unignore thread" -msgstr "revertir ignorar publicacion" - -#: mod/content.php:789 object/Item.php:242 -msgid "toggle ignore status" -msgstr "cambiar estatus de observación" - -#: mod/content.php:792 mod/ostatus_subscribe.php:69 object/Item.php:245 -msgid "ignored" -msgstr "ignorado" - -#: mod/content.php:803 object/Item.php:137 -msgid "save to folder" -msgstr "grabado en directorio" - -#: mod/content.php:848 object/Item.php:201 -msgid "I will attend" -msgstr "Voy a estar presente" - -#: mod/content.php:848 object/Item.php:201 -msgid "I will not attend" -msgstr "No voy a estar presente" - -#: mod/content.php:848 object/Item.php:201 -msgid "I might attend" -msgstr "Puede que voy a estar presente" - -#: mod/content.php:912 object/Item.php:369 -msgid "to" -msgstr "a" - -#: mod/content.php:913 object/Item.php:371 -msgid "Wall-to-Wall" -msgstr "Muro-A-Muro" - -#: mod/content.php:914 object/Item.php:372 -msgid "via Wall-To-Wall:" -msgstr "via Muro-A-Muro:" - -#: mod/repair_ostatus.php:14 -msgid "Resubscribing to OStatus contacts" -msgstr "Resubscribir a contactos de OStatus" - -#: mod/repair_ostatus.php:30 -msgid "Error" -msgstr "error" - -#: mod/repair_ostatus.php:44 mod/ostatus_subscribe.php:51 -msgid "Done" -msgstr "hecho!" - -#: mod/repair_ostatus.php:50 mod/ostatus_subscribe.php:73 -msgid "Keep this window open until done." -msgstr "Mantén esta ventana abierta hasta que el proceso ha terminado." - -#: mod/delegate.php:101 -msgid "No potential page delegates located." -msgstr "No se han localizado delegados potenciales de la página." - -#: mod/delegate.php:132 +#: mod/contacts.php:579 +#, php-format msgid "" -"Delegates are able to manage all aspects of this account/page except for " -"basic account settings. Please do not delegate your personal account to " -"anybody that you do not trust completely." -msgstr "Los delegados tienen la capacidad de gestionar todos los aspectos de esta cuenta/página, excepto los ajustes básicos de la cuenta. Por favor, no delegues tu cuenta personal a nadie en quien no confíes completamente." +"Please choose the profile you would like to display to %s when viewing your " +"profile securely." +msgstr "Por favor, selecciona el perfil que quieras mostrar a %s cuando esté viendo tu perfil de forma segura." -#: mod/delegate.php:133 -msgid "Existing Page Managers" -msgstr "Administradores actuales de la página" +#: mod/contacts.php:580 +msgid "Contact Information / Notes" +msgstr "Información del Contacto / Notas" -#: mod/delegate.php:135 -msgid "Existing Page Delegates" -msgstr "Delegados actuales de la página" +#: mod/contacts.php:581 +msgid "Edit contact notes" +msgstr "Editar notas del contacto" -#: mod/delegate.php:137 -msgid "Potential Delegates" -msgstr "Delegados potenciales" +#: mod/contacts.php:587 +msgid "Block/Unblock contact" +msgstr "Boquear/Desbloquear contacto" -#: mod/delegate.php:140 -msgid "Add" -msgstr "Añadir" +#: mod/contacts.php:588 +msgid "Ignore contact" +msgstr "Ignorar contacto" -#: mod/delegate.php:141 -msgid "No entries." -msgstr "Sin entradas." +#: mod/contacts.php:589 +msgid "Repair URL settings" +msgstr "Configuración de reparación de la dirección" -#: mod/videos.php:120 -msgid "Do you really want to delete this video?" -msgstr "Realmente quieres eliminar este vídeo?" +#: mod/contacts.php:590 +msgid "View conversations" +msgstr "Ver conversaciones" -#: mod/videos.php:125 -msgid "Delete Video" -msgstr "Borrar vídeo" +#: mod/contacts.php:596 +msgid "Last update:" +msgstr "Última actualización:" -#: mod/videos.php:204 -msgid "No videos selected" -msgstr "Ningún vídeo seleccionado" +#: mod/contacts.php:598 +msgid "Update public posts" +msgstr "Actualizar publicaciones públicas" -#: mod/videos.php:305 mod/photos.php:1054 -msgid "Access to this item is restricted." -msgstr "El acceso a este elemento está restringido." +#: mod/contacts.php:600 mod/contacts.php:974 +msgid "Update now" +msgstr "Actualizar ahora" -#: mod/videos.php:387 mod/photos.php:1847 -msgid "View Album" -msgstr "Ver Álbum" +#: mod/contacts.php:606 mod/contacts.php:806 mod/contacts.php:991 +msgid "Unignore" +msgstr "Quitar de Ignorados" -#: mod/videos.php:396 -msgid "Recent Videos" -msgstr "Vídeos recientes" +#: mod/contacts.php:610 +msgid "Currently blocked" +msgstr "Bloqueados" -#: mod/videos.php:398 -msgid "Upload New Videos" -msgstr "Subir nuevos vídeos" +#: mod/contacts.php:611 +msgid "Currently ignored" +msgstr "Ignorados" -#: mod/profiles.php:38 -msgid "Profile deleted." -msgstr "Perfil eliminado." +#: mod/contacts.php:612 +msgid "Currently archived" +msgstr "Archivados" -#: mod/profiles.php:56 mod/profiles.php:90 -msgid "Profile-" -msgstr "Perfil-" - -#: mod/profiles.php:75 mod/profiles.php:118 -msgid "New profile created." -msgstr "Nuevo perfil creado." - -#: mod/profiles.php:96 -msgid "Profile unavailable to clone." -msgstr "Imposible duplicar el perfil." - -#: mod/profiles.php:190 -msgid "Profile Name is required." -msgstr "Se necesita un nombre de perfil." - -#: mod/profiles.php:338 -msgid "Marital Status" -msgstr "Estado civil" - -#: mod/profiles.php:342 -msgid "Romantic Partner" -msgstr "Pareja sentimental" - -#: mod/profiles.php:354 -msgid "Work/Employment" -msgstr "Trabajo/estudios" - -#: mod/profiles.php:357 -msgid "Religion" -msgstr "Religión" - -#: mod/profiles.php:361 -msgid "Political Views" -msgstr "Preferencias políticas" - -#: mod/profiles.php:365 -msgid "Gender" -msgstr "Género" - -#: mod/profiles.php:369 -msgid "Sexual Preference" -msgstr "Orientación sexual" - -#: mod/profiles.php:373 -msgid "XMPP" -msgstr "XMPP" - -#: mod/profiles.php:377 -msgid "Homepage" -msgstr "Página de inicio" - -#: mod/profiles.php:381 mod/profiles.php:702 -msgid "Interests" -msgstr "Intereses" - -#: mod/profiles.php:385 -msgid "Address" -msgstr "Dirección" - -#: mod/profiles.php:392 mod/profiles.php:698 -msgid "Location" -msgstr "Ubicación" - -#: mod/profiles.php:477 -msgid "Profile updated." -msgstr "Perfil actualizado." - -#: mod/profiles.php:564 -msgid " and " -msgstr " y " - -#: mod/profiles.php:572 -msgid "public profile" -msgstr "perfil público" - -#: mod/profiles.php:575 -#, php-format -msgid "%1$s changed %2$s to “%3$s”" -msgstr "%1$s cambió su %2$s a “%3$s”" - -#: mod/profiles.php:576 -#, php-format -msgid " - Visit %1$s's %2$s" -msgstr " - Visita %1$s's %2$s" - -#: mod/profiles.php:579 -#, php-format -msgid "%1$s has an updated %2$s, changing %3$s." -msgstr "%1$s tiene una actualización %2$s, cambiando %3$s." - -#: mod/profiles.php:645 -msgid "Hide contacts and friends:" -msgstr "Ocultar contactos y amigos" - -#: mod/profiles.php:648 mod/profiles.php:652 mod/profiles.php:677 -#: mod/follow.php:110 mod/dfrn_request.php:862 mod/register.php:246 -#: mod/settings.php:1163 mod/settings.php:1169 mod/settings.php:1177 -#: mod/settings.php:1181 mod/settings.php:1186 mod/settings.php:1192 -#: mod/settings.php:1198 mod/settings.php:1204 mod/settings.php:1230 -#: mod/settings.php:1231 mod/settings.php:1232 mod/settings.php:1233 -#: mod/settings.php:1234 mod/api.php:106 -msgid "No" -msgstr "No" - -#: mod/profiles.php:650 -msgid "Hide your contact/friend list from viewers of this profile?" -msgstr "¿Ocultar tu lista de contactos/amigos en este perfil?" - -#: mod/profiles.php:674 -msgid "Show more profile fields:" -msgstr "Mostrar mas campos del perfil:" - -#: mod/profiles.php:686 -msgid "Profile Actions" -msgstr "Acciones de perfil" - -#: mod/profiles.php:687 -msgid "Edit Profile Details" -msgstr "Editar detalles de tu perfil" - -#: mod/profiles.php:689 -msgid "Change Profile Photo" -msgstr "Cambiar imagen del Perfil" - -#: mod/profiles.php:690 -msgid "View this profile" -msgstr "Ver este perfil" - -#: mod/profiles.php:692 -msgid "Create a new profile using these settings" -msgstr "¿Crear un nuevo perfil con esta configuración?" - -#: mod/profiles.php:693 -msgid "Clone this profile" -msgstr "Clonar este perfil" - -#: mod/profiles.php:694 -msgid "Delete this profile" -msgstr "Eliminar este perfil" - -#: mod/profiles.php:696 -msgid "Basic information" -msgstr "Información básica" - -#: mod/profiles.php:697 -msgid "Profile picture" -msgstr "Imagen del perfil" - -#: mod/profiles.php:699 -msgid "Preferences" -msgstr "Preferencias" - -#: mod/profiles.php:700 -msgid "Status information" -msgstr "Información del estatus" - -#: mod/profiles.php:701 -msgid "Additional information" -msgstr "Información addicional" - -#: mod/profiles.php:704 -msgid "Relation" -msgstr "Relación" - -#: mod/profiles.php:707 mod/newmember.php:36 mod/profile_photo.php:250 -msgid "Upload Profile Photo" -msgstr "Subir foto del Perfil" - -#: mod/profiles.php:708 -msgid "Your Gender:" -msgstr "Género:" - -#: mod/profiles.php:709 -msgid " Marital Status:" -msgstr " Estado civil:" - -#: mod/profiles.php:711 -msgid "Example: fishing photography software" -msgstr "Ejemplo: pesca fotografía software" - -#: mod/profiles.php:716 -msgid "Profile Name:" -msgstr "Nombres del perfil:" - -#: mod/profiles.php:718 +#: mod/contacts.php:613 msgid "" -"This is your public profile.
      It may " -"be visible to anybody using the internet." -msgstr "Éste es tu perfil público.
      Puede ser visto por cualquier usuario de internet." +"Replies/likes to your public posts may still be visible" +msgstr "Los comentarios o \"me gusta\" en tus publicaciones públicas todavía pueden ser visibles." -#: mod/profiles.php:719 -msgid "Your Full Name:" -msgstr "Tu nombre completo:" +#: mod/contacts.php:614 +msgid "Notification for new posts" +msgstr "Notificacion de nuevos temas." -#: mod/profiles.php:720 -msgid "Title/Description:" -msgstr "Título/Descrición:" +#: mod/contacts.php:614 +msgid "Send a notification of every new post of this contact" +msgstr "Enviar una notificacion por nuevos temas de este contacto." -#: mod/profiles.php:723 -msgid "Street Address:" -msgstr "Dirección" +#: mod/contacts.php:617 +msgid "Blacklisted keywords" +msgstr "Lista negra de palabras" -#: mod/profiles.php:724 -msgid "Locality/City:" -msgstr "Localidad/Ciudad:" - -#: mod/profiles.php:725 -msgid "Region/State:" -msgstr "Región/Estado:" - -#: mod/profiles.php:726 -msgid "Postal/Zip Code:" -msgstr "Código postal:" - -#: mod/profiles.php:727 -msgid "Country:" -msgstr "País" - -#: mod/profiles.php:731 -msgid "Who: (if applicable)" -msgstr "¿Quién? (si es aplicable)" - -#: mod/profiles.php:731 -msgid "Examples: cathy123, Cathy Williams, cathy@example.com" -msgstr "Ejemplos: cathy123, Cathy Williams, cathy@example.com" - -#: mod/profiles.php:732 -msgid "Since [date]:" -msgstr "Desde [fecha]:" - -#: mod/profiles.php:734 -msgid "Tell us about yourself..." -msgstr "Háblanos sobre ti..." - -#: mod/profiles.php:735 -msgid "XMPP (Jabber) address:" -msgstr "Dirección XMPP (Jabber):" - -#: mod/profiles.php:735 +#: mod/contacts.php:617 msgid "" -"The XMPP address will be propagated to your contacts so that they can follow" -" you." -msgstr "La dirección XMPP será propagada entre sus contactos para que puedan seguirle." +"Comma separated list of keywords that should not be converted to hashtags, " +"when \"Fetch information and keywords\" is selected" +msgstr "Lista separada por comas de palabras claves que no deberian ser convertido en #hashtags cuando \"Recaudar informacion y palabras claves\" es seleccionado" -#: mod/profiles.php:736 -msgid "Homepage URL:" -msgstr "Dirección de tu página:" +#: mod/contacts.php:635 +msgid "Actions" +msgstr "Acciones" -#: mod/profiles.php:739 -msgid "Religious Views:" -msgstr "Creencias religiosas:" +#: mod/contacts.php:638 +msgid "Contact Settings" +msgstr "Ajustes del contacto" -#: mod/profiles.php:740 -msgid "Public Keywords:" -msgstr "Palabras clave públicas:" +#: mod/contacts.php:684 +msgid "Suggestions" +msgstr "Sugerencias" -#: mod/profiles.php:740 -msgid "(Used for suggesting potential friends, can be seen by others)" -msgstr "(Utilizadas para sugerir amigos potenciales, otros pueden verlo)" +#: mod/contacts.php:687 +msgid "Suggest potential friends" +msgstr "Amistades potenciales sugeridas" -#: mod/profiles.php:741 -msgid "Private Keywords:" -msgstr "Palabras clave privadas:" +#: mod/contacts.php:695 +msgid "Show all contacts" +msgstr "Mostrar todos los contactos" -#: mod/profiles.php:741 -msgid "(Used for searching profiles, never shown to others)" -msgstr "(Utilizadas para buscar perfiles, nunca se muestra a otros)" +#: mod/contacts.php:700 +msgid "Unblocked" +msgstr "Desbloqueados" -#: mod/profiles.php:744 -msgid "Musical interests" -msgstr "Gustos musicales" +#: mod/contacts.php:703 +msgid "Only show unblocked contacts" +msgstr "Mostrar solo contactos sin bloquear" -#: mod/profiles.php:745 -msgid "Books, literature" -msgstr "Libros, literatura" +#: mod/contacts.php:709 +msgid "Blocked" +msgstr "Bloqueados" -#: mod/profiles.php:746 -msgid "Television" -msgstr "Televisión" +#: mod/contacts.php:712 +msgid "Only show blocked contacts" +msgstr "Mostrar solo contactos bloqueados" -#: mod/profiles.php:747 -msgid "Film/dance/culture/entertainment" -msgstr "Películas/baile/cultura/entretenimiento" +#: mod/contacts.php:718 +msgid "Ignored" +msgstr "Ignorados" -#: mod/profiles.php:748 -msgid "Hobbies/Interests" -msgstr "Aficiones/Intereses" +#: mod/contacts.php:721 +msgid "Only show ignored contacts" +msgstr "Mostrar solo contactos ignorados" -#: mod/profiles.php:749 -msgid "Love/romance" -msgstr "Amor/Romance" +#: mod/contacts.php:727 +msgid "Archived" +msgstr "Archivados" -#: mod/profiles.php:750 -msgid "Work/employment" -msgstr "Trabajo/ocupación" +#: mod/contacts.php:730 +msgid "Only show archived contacts" +msgstr "Mostrar solo contactos archivados" -#: mod/profiles.php:751 -msgid "School/education" -msgstr "Escuela/estudios" +#: mod/contacts.php:736 +msgid "Hidden" +msgstr "Ocultos" -#: mod/profiles.php:752 -msgid "Contact information and Social Networks" -msgstr "Informacioń de contacto y Redes sociales" +#: mod/contacts.php:739 +msgid "Only show hidden contacts" +msgstr "Mostrar solo contactos ocultos" -#: mod/profiles.php:794 -msgid "Edit/Manage Profiles" -msgstr "Editar/Administrar perfiles" +#: mod/contacts.php:796 +msgid "Search your contacts" +msgstr "Buscar en tus contactos" -#: mod/credits.php:16 -msgid "Credits" -msgstr "Creditos" +#: mod/contacts.php:807 mod/contacts.php:999 +msgid "Archive" +msgstr "Archivo" -#: mod/credits.php:17 +#: mod/contacts.php:807 mod/contacts.php:999 +msgid "Unarchive" +msgstr "Sin archivar" + +#: mod/contacts.php:810 +msgid "Batch Actions" +msgstr "Accones en lote" + +#: mod/contacts.php:856 +msgid "View all contacts" +msgstr "Ver todos los contactos" + +#: mod/contacts.php:866 +msgid "View all common friends" +msgstr "Ver todos los conocidos en común " + +#: mod/contacts.php:873 +msgid "Advanced Contact Settings" +msgstr "Configuración avanzada" + +#: mod/contacts.php:907 +msgid "Mutual Friendship" +msgstr "Amistad recíproca" + +#: mod/contacts.php:911 +msgid "is a fan of yours" +msgstr "es tu fan" + +#: mod/contacts.php:915 +msgid "you are a fan of" +msgstr "eres fan de" + +#: mod/contacts.php:985 +msgid "Toggle Blocked status" +msgstr "Cambiar bloqueados" + +#: mod/contacts.php:993 +msgid "Toggle Ignored status" +msgstr "Cambiar ignorados" + +#: mod/contacts.php:1001 +msgid "Toggle Archive status" +msgstr "Cambiar archivados" + +#: mod/contacts.php:1009 +msgid "Delete contact" +msgstr "Eliminar contacto" + +#: mod/dfrn_confirm.php:127 msgid "" -"Friendica is a community project, that would not be possible without the " -"help of many people. Here is a list of those who have contributed to the " -"code or the translation of Friendica. Thank you all!" -msgstr "Friendica es un proyecto comunitario, que no seria posible sin la ayuda de mucha gente. Aquí una lista de de aquellos que aportaron al código o la traducción de friendica.\nGracias a todos! " +"This may occasionally happen if contact was requested by both persons and it" +" has already been approved." +msgstr "Esto puede ocurrir a veces si la conexión fue solicitada por ambas personas y ya hubiera sido aprobada." -#: mod/filer.php:30 -msgid "- select -" -msgstr "- seleccionar -" +#: mod/dfrn_confirm.php:246 +msgid "Response from remote site was not understood." +msgstr "La respuesta desde el sitio remoto no ha sido entendida." -#: mod/poke.php:192 -msgid "Poke/Prod" -msgstr "Toque/Empujón" +#: mod/dfrn_confirm.php:255 mod/dfrn_confirm.php:260 +msgid "Unexpected response from remote site: " +msgstr "Respuesta inesperada desde el sitio remoto: " -#: mod/poke.php:193 -msgid "poke, prod or do other things to somebody" -msgstr "da un toque, empujón o similar a alguien" +#: mod/dfrn_confirm.php:269 +msgid "Confirmation completed successfully." +msgstr "Confirmación completada con éxito." -#: mod/poke.php:194 -msgid "Recipient" -msgstr "Receptor" +#: mod/dfrn_confirm.php:271 mod/dfrn_confirm.php:285 mod/dfrn_confirm.php:292 +msgid "Remote site reported: " +msgstr "El sito remoto informó: " -#: mod/poke.php:195 -msgid "Choose what you wish to do to recipient" -msgstr "Elige qué desea hacer con el receptor" +#: mod/dfrn_confirm.php:283 +msgid "Temporary failure. Please wait and try again." +msgstr "Error temporal. Por favor, espere y vuelva a intentarlo." -#: mod/poke.php:198 -msgid "Make this post private" -msgstr "Hacer esta publicación privada" +#: mod/dfrn_confirm.php:290 +msgid "Introduction failed or was revoked." +msgstr "La presentación ha fallado o ha sido anulada." -#: mod/photos.php:88 mod/photos.php:1856 -msgid "Recent Photos" -msgstr "Fotos recientes" +#: mod/dfrn_confirm.php:419 +msgid "Unable to set contact photo." +msgstr "Imposible establecer la foto del contacto." -#: mod/photos.php:91 mod/photos.php:1283 mod/photos.php:1858 -msgid "Upload New Photos" -msgstr "Subir nuevas fotos" - -#: mod/photos.php:105 mod/settings.php:36 -msgid "everybody" -msgstr "todos" - -#: mod/photos.php:169 -msgid "Contact information unavailable" -msgstr "Información del contacto no disponible" - -#: mod/photos.php:190 -msgid "Album not found." -msgstr "Álbum no encontrado." - -#: mod/photos.php:220 mod/photos.php:232 mod/photos.php:1227 -msgid "Delete Album" -msgstr "Eliminar álbum" - -#: mod/photos.php:230 -msgid "Do you really want to delete this photo album and all its photos?" -msgstr "¿Estás seguro de quieres borrar este álbum y todas sus fotos?" - -#: mod/photos.php:308 mod/photos.php:319 mod/photos.php:1540 -msgid "Delete Photo" -msgstr "Eliminar foto" - -#: mod/photos.php:317 -msgid "Do you really want to delete this photo?" -msgstr "¿Estás seguro de que quieres borrar esta foto?" - -#: mod/photos.php:688 +#: mod/dfrn_confirm.php:557 #, php-format -msgid "%1$s was tagged in %2$s by %3$s" -msgstr "%1$s fue etiquetado en %2$s por %3$s" +msgid "No user record found for '%s' " +msgstr "No se ha encontrado a ningún '%s' " -#: mod/photos.php:688 -msgid "a photo" -msgstr "una foto" +#: mod/dfrn_confirm.php:567 +msgid "Our site encryption key is apparently messed up." +msgstr "Nuestra clave de cifrado del sitio es aparentemente un lío." -#: mod/photos.php:794 -msgid "Image file is empty." -msgstr "El archivo de imagen está vacío." +#: mod/dfrn_confirm.php:578 +msgid "Empty site URL was provided or URL could not be decrypted by us." +msgstr "Se ha proporcionado una dirección vacía o no hemos podido descifrarla." -#: mod/photos.php:954 -msgid "No photos selected" -msgstr "Ninguna foto seleccionada" +#: mod/dfrn_confirm.php:599 +msgid "Contact record was not found for you on our site." +msgstr "El contacto no se ha encontrado en nuestra base de datos." -#: mod/photos.php:1114 +#: mod/dfrn_confirm.php:613 #, php-format -msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage." -msgstr "Has usado %1$.2f MB de %2$.2f MB de tu álbum de fotos." +msgid "Site public key not available in contact record for URL %s." +msgstr "La clave pública del sitio no está disponible en los datos del contacto para %s." -#: mod/photos.php:1148 -msgid "Upload Photos" -msgstr "Subir fotos" - -#: mod/photos.php:1152 mod/photos.php:1222 -msgid "New album name: " -msgstr "Nombre del nuevo álbum: " - -#: mod/photos.php:1153 -msgid "or existing album name: " -msgstr "o nombre de un álbum existente: " - -#: mod/photos.php:1154 -msgid "Do not show a status post for this upload" -msgstr "No actualizar tu estado con este envío" - -#: mod/photos.php:1165 mod/photos.php:1544 mod/settings.php:1300 -msgid "Show to Groups" -msgstr "Mostrar a los Grupos" - -#: mod/photos.php:1166 mod/photos.php:1545 mod/settings.php:1301 -msgid "Show to Contacts" -msgstr "Mostrar a los Contactos" - -#: mod/photos.php:1167 -msgid "Private Photo" -msgstr "Foto Privada" - -#: mod/photos.php:1168 -msgid "Public Photo" -msgstr "Foto Pública" - -#: mod/photos.php:1234 -msgid "Edit Album" -msgstr "Modificar álbum" - -#: mod/photos.php:1240 -msgid "Show Newest First" -msgstr "Mostrar más nuevos primero" - -#: mod/photos.php:1242 -msgid "Show Oldest First" -msgstr "Mostrar más antiguos primero" - -#: mod/photos.php:1269 mod/photos.php:1841 -msgid "View Photo" -msgstr "Ver foto" - -#: mod/photos.php:1315 -msgid "Permission denied. Access to this item may be restricted." -msgstr "Permiso denegado. El acceso a este elemento puede estar restringido." - -#: mod/photos.php:1317 -msgid "Photo not available" -msgstr "Foto no disponible" - -#: mod/photos.php:1372 -msgid "View photo" -msgstr "Ver foto" - -#: mod/photos.php:1372 -msgid "Edit photo" -msgstr "Modificar foto" - -#: mod/photos.php:1373 -msgid "Use as profile photo" -msgstr "Usar como foto del perfil" - -#: mod/photos.php:1398 -msgid "View Full Size" -msgstr "Ver a tamaño completo" - -#: mod/photos.php:1484 -msgid "Tags: " -msgstr "Etiquetas: " - -#: mod/photos.php:1487 -msgid "[Remove any tag]" -msgstr "[Borrar todas las etiquetas]" - -#: mod/photos.php:1526 -msgid "New album name" -msgstr "Nuevo nombre del álbum" - -#: mod/photos.php:1527 -msgid "Caption" -msgstr "Título" - -#: mod/photos.php:1528 -msgid "Add a Tag" -msgstr "Añadir una etiqueta" - -#: mod/photos.php:1528 +#: mod/dfrn_confirm.php:633 msgid "" -"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" -msgstr "Ejemplo: @juan, @Barbara_Ruiz, @julia@example.com, #California, #camping" +"The ID provided by your system is a duplicate on our system. It should work " +"if you try again." +msgstr "La identificación proporcionada por el sistema es un duplicado de nuestro sistema. Debería funcionar si lo intentas de nuevo." -#: mod/photos.php:1529 -msgid "Do not rotate" -msgstr "No rotar" +#: mod/dfrn_confirm.php:644 +msgid "Unable to set your contact credentials on our system." +msgstr "No se puede establecer las credenciales de tu contacto en nuestro sistema." -#: mod/photos.php:1530 -msgid "Rotate CW (right)" -msgstr "Girar a la derecha" +#: mod/dfrn_confirm.php:703 +msgid "Unable to update your contact profile details on our system" +msgstr "No se puede actualizar los datos de tu perfil de contacto en nuestro sistema" -#: mod/photos.php:1531 -msgid "Rotate CCW (left)" -msgstr "Girar a la izquierda" +#: mod/dfrn_confirm.php:775 +#, php-format +msgid "%1$s has joined %2$s" +msgstr "%1$s se ha unido a %2$s" -#: mod/photos.php:1546 -msgid "Private photo" -msgstr "Foto privada" +#: mod/dfrn_request.php:101 +msgid "This introduction has already been accepted." +msgstr "Esta presentación ya ha sido aceptada." -#: mod/photos.php:1547 -msgid "Public photo" -msgstr "Foto pública" +#: mod/dfrn_request.php:124 mod/dfrn_request.php:520 +msgid "Profile location is not valid or does not contain profile information." +msgstr "La dirección del perfil no es válida o no contiene información del perfil." -#: mod/photos.php:1770 -msgid "Map" -msgstr "Mapa" +#: mod/dfrn_request.php:129 mod/dfrn_request.php:525 +msgid "Warning: profile location has no identifiable owner name." +msgstr "Aviso: La dirección del perfil no tiene un nombre de propietario identificable." + +#: mod/dfrn_request.php:131 mod/dfrn_request.php:527 +msgid "Warning: profile location has no profile photo." +msgstr "Aviso: la dirección del perfil no tiene foto de perfil." + +#: mod/dfrn_request.php:134 mod/dfrn_request.php:530 +#, php-format +msgid "%d required parameter was not found at the given location" +msgid_plural "%d required parameters were not found at the given location" +msgstr[0] "no se encontró %d parámetro requerido en el lugar determinado" +msgstr[1] "no se encontraron %d parámetros requeridos en el lugar determinado" + +#: mod/dfrn_request.php:180 +msgid "Introduction complete." +msgstr "Presentación completa." + +#: mod/dfrn_request.php:222 +msgid "Unrecoverable protocol error." +msgstr "Error de protocolo irrecuperable." + +#: mod/dfrn_request.php:250 +msgid "Profile unavailable." +msgstr "Perfil no disponible." + +#: mod/dfrn_request.php:277 +#, php-format +msgid "%s has received too many connection requests today." +msgstr "%s ha recibido demasiadas solicitudes de conexión hoy." + +#: mod/dfrn_request.php:278 +msgid "Spam protection measures have been invoked." +msgstr "Han sido activadas las medidas de protección contra spam." + +#: mod/dfrn_request.php:279 +msgid "Friends are advised to please try again in 24 hours." +msgstr "Tus amigos serán avisados para que lo intenten de nuevo pasadas 24 horas." + +#: mod/dfrn_request.php:341 +msgid "Invalid locator" +msgstr "Localizador no válido" + +#: mod/dfrn_request.php:350 +msgid "Invalid email address." +msgstr "Dirección de correo incorrecta" + +#: mod/dfrn_request.php:375 +msgid "This account has not been configured for email. Request failed." +msgstr "Esta cuenta no ha sido configurada para el correo. Fallo de solicitud." + +#: mod/dfrn_request.php:478 +msgid "You have already introduced yourself here." +msgstr "Ya te has presentado aquí." + +#: mod/dfrn_request.php:482 +#, php-format +msgid "Apparently you are already friends with %s." +msgstr "Al parecer, ya eres amigo de %s." + +#: mod/dfrn_request.php:503 +msgid "Invalid profile URL." +msgstr "Dirección de perfil no válida." + +#: mod/dfrn_request.php:604 +msgid "Your introduction has been sent." +msgstr "Tu presentación ha sido enviada." + +#: mod/dfrn_request.php:644 +msgid "" +"Remote subscription can't be done for your network. Please subscribe " +"directly on your system." +msgstr "La subscripción remota no se podrá hacer para tu red. Por favor contacta directamente desde tu sistema." + +#: mod/dfrn_request.php:664 +msgid "Please login to confirm introduction." +msgstr "Inicia sesión para confirmar la presentación." + +#: mod/dfrn_request.php:674 +msgid "" +"Incorrect identity currently logged in. Please login to " +"this profile." +msgstr "Sesión iniciada con la identificación incorrecta. Entra en este perfil." + +#: mod/dfrn_request.php:688 mod/dfrn_request.php:705 +msgid "Confirm" +msgstr "Confirmar" + +#: mod/dfrn_request.php:700 +msgid "Hide this contact" +msgstr "Ocultar este contacto" + +#: mod/dfrn_request.php:703 +#, php-format +msgid "Welcome home %s." +msgstr "Bienvenido a casa %s" + +#: mod/dfrn_request.php:704 +#, php-format +msgid "Please confirm your introduction/connection request to %s." +msgstr "Por favor, confirma tu solicitud de presentación/conexión con %s." + +#: mod/dfrn_request.php:833 +msgid "" +"Please enter your 'Identity Address' from one of the following supported " +"communications networks:" +msgstr "Por favor introduce tu dirección ID de una de las siguientes redes sociales soportadas:" + +#: mod/dfrn_request.php:854 +#, php-format +msgid "" +"If you are not yet a member of the free social web, follow this link to find a public Friendica site and " +"join us today." +msgstr "Si aun no eres miembro de la red social libre seguí este enlace para encontrara un sitio disponible de friendica y acompañanos hoy mismo" + +#: mod/dfrn_request.php:859 +msgid "Friend/Connection Request" +msgstr "Solicitud de Amistad/Conexión" + +#: mod/dfrn_request.php:860 +msgid "" +"Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, " +"testuser@identi.ca" +msgstr "Ejemplos: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca" + +#: mod/dfrn_request.php:861 mod/follow.php:109 +msgid "Please answer the following:" +msgstr "Por favor responde lo siguiente:" + +#: mod/dfrn_request.php:862 mod/follow.php:110 +#, php-format +msgid "Does %s know you?" +msgstr "¿%s te conoce?" + +#: mod/dfrn_request.php:866 mod/follow.php:111 +msgid "Add a personal note:" +msgstr "Añade una nota personal:" + +#: mod/dfrn_request.php:869 +msgid "StatusNet/Federated Social Web" +msgstr "StatusNet/Web Social Federada" + +#: mod/dfrn_request.php:871 +#, php-format +msgid "" +" - please do not use this form. Instead, enter %s into your Diaspora search" +" bar." +msgstr "(En vez de usar este formulario, introduce %s en la barra de búsqueda de Diaspora." + +#: mod/dfrn_request.php:872 mod/follow.php:117 +msgid "Your Identity Address:" +msgstr "Dirección de tu perfil:" + +#: mod/dfrn_request.php:875 mod/follow.php:19 +msgid "Submit Request" +msgstr "Enviar solicitud" + +#: mod/follow.php:30 +msgid "You already added this contact." +msgstr "Ya has añadido este contacto." + +#: mod/follow.php:39 +msgid "Diaspora support isn't enabled. Contact can't be added." +msgstr "El soporte de Diaspora* no esta habilitado, el contacto no puede ser agregado." + +#: mod/follow.php:46 +msgid "OStatus support is disabled. Contact can't be added." +msgstr "El soporte de OStatus no esta habilitado, el contacto no puede ser agregado." + +#: mod/follow.php:53 +msgid "The network type couldn't be detected. Contact can't be added." +msgstr "No se pudo detectar el tipo de red. Contacto no puede ser agregado." + +#: mod/follow.php:180 +msgid "Contact added" +msgstr "Contacto añadido" #: mod/install.php:139 msgid "Friendica Communications Server - Setup" @@ -6365,7 +8244,7 @@ msgid "" "or mysql." msgstr "Puede que tengas que importar el archivo \"Database.sql\" manualmente usando phpmyadmin o mysql." -#: mod/install.php:161 mod/install.php:230 mod/install.php:602 +#: mod/install.php:161 mod/install.php:230 mod/install.php:607 msgid "Please see the file \"INSTALL.txt\"." msgstr "Por favor, consulta el archivo \"INSTALL.txt\"." @@ -6671,642 +8550,69 @@ msgstr "La reescritura de la dirección en .htaccess no funcionó. Revisa la con msgid "Url rewrite is working" msgstr "Reescribiendo la dirección..." -#: mod/install.php:551 +#: mod/install.php:552 +msgid "ImageMagick PHP extension is not installed" +msgstr "No está instalada la extensión ImageMagick PHP" + +#: mod/install.php:555 msgid "ImageMagick PHP extension is installed" msgstr "ImageMagick PHP extension is installed" -#: mod/install.php:553 +#: mod/install.php:557 msgid "ImageMagick supports GIF" msgstr "ImageMagick supporta GIF" -#: mod/install.php:561 +#: mod/install.php:566 msgid "" "The database configuration file \".htconfig.php\" could not be written. " "Please use the enclosed text to create a configuration file in your web " "server root." msgstr "El archivo de configuración de base de datos \".htconfig.php\" no se pudo escribir. Por favor, utiliza el texto adjunto para crear un archivo de configuración en la raíz de tu servidor web." -#: mod/install.php:600 +#: mod/install.php:605 msgid "

      What next

      " msgstr "

      ¿Ahora qué?

      " -#: mod/install.php:601 +#: mod/install.php:606 msgid "" "IMPORTANT: You will need to [manually] setup a scheduled task for the " "poller." msgstr "IMPORTANTE: Tendrás que configurar [manualmente] una tarea programada para el sondeo" -#: mod/subthread.php:103 -#, php-format -msgid "%1$s is following %2$s's %3$s" -msgstr "%1$s está siguiendo las %3$s de %2$s" +#: mod/item.php:116 +msgid "Unable to locate original post." +msgstr "No se puede encontrar la publicación original." -#: mod/attach.php:8 -msgid "Item not available." -msgstr "Elemento no disponible." +#: mod/item.php:341 +msgid "Empty post discarded." +msgstr "Publicación vacía descartada." -#: mod/attach.php:20 -msgid "Item was not found." -msgstr "Elemento no encontrado." +#: mod/item.php:902 +msgid "System error. Post not saved." +msgstr "Error del sistema. Mensaje no guardado." -#: mod/contacts.php:128 -#, php-format -msgid "%d contact edited." -msgid_plural "%d contacts edited." -msgstr[0] "%d contacto editado." -msgstr[1] "%d contacts edited." - -#: mod/contacts.php:159 mod/contacts.php:368 -msgid "Could not access contact record." -msgstr "No se pudo acceder a los datos del contacto." - -#: mod/contacts.php:173 -msgid "Could not locate selected profile." -msgstr "No se pudo encontrar el perfil seleccionado." - -#: mod/contacts.php:206 -msgid "Contact updated." -msgstr "Contacto actualizado." - -#: mod/contacts.php:208 mod/dfrn_request.php:583 -msgid "Failed to update contact record." -msgstr "Error al actualizar el contacto." - -#: mod/contacts.php:389 -msgid "Contact has been blocked" -msgstr "El contacto ha sido bloqueado" - -#: mod/contacts.php:389 -msgid "Contact has been unblocked" -msgstr "El contacto ha sido desbloqueado" - -#: mod/contacts.php:400 -msgid "Contact has been ignored" -msgstr "El contacto ha sido ignorado" - -#: mod/contacts.php:400 -msgid "Contact has been unignored" -msgstr "El contacto ya no está ignorado" - -#: mod/contacts.php:412 -msgid "Contact has been archived" -msgstr "El contacto ha sido archivado" - -#: mod/contacts.php:412 -msgid "Contact has been unarchived" -msgstr "El contacto ya no está archivado" - -#: mod/contacts.php:437 -msgid "Drop contact" -msgstr "Eliminar contacto" - -#: mod/contacts.php:440 mod/contacts.php:801 -msgid "Do you really want to delete this contact?" -msgstr "¿Estás seguro de que quieres eliminar este contacto?" - -#: mod/contacts.php:457 -msgid "Contact has been removed." -msgstr "El contacto ha sido eliminado" - -#: mod/contacts.php:498 -#, php-format -msgid "You are mutual friends with %s" -msgstr "Ahora tienes una amistad mutua con %s" - -#: mod/contacts.php:502 -#, php-format -msgid "You are sharing with %s" -msgstr "Estás compartiendo con %s" - -#: mod/contacts.php:507 -#, php-format -msgid "%s is sharing with you" -msgstr "%s está compartiendo contigo" - -#: mod/contacts.php:527 -msgid "Private communications are not available for this contact." -msgstr "Las comunicaciones privadas no está disponibles para este contacto." - -#: mod/contacts.php:534 -msgid "(Update was successful)" -msgstr "(La actualización se ha completado)" - -#: mod/contacts.php:534 -msgid "(Update was not successful)" -msgstr "(La actualización no se ha completado)" - -#: mod/contacts.php:536 mod/contacts.php:973 -msgid "Suggest friends" -msgstr "Sugerir amigos" - -#: mod/contacts.php:540 -#, php-format -msgid "Network type: %s" -msgstr "Tipo de red: %s" - -#: mod/contacts.php:553 -msgid "Communications lost with this contact!" -msgstr "¡Se ha perdido la comunicación con este contacto!" - -#: mod/contacts.php:556 -msgid "Fetch further information for feeds" -msgstr "Recaudar informacion complementaria de los feeds" - -#: mod/contacts.php:557 -msgid "Fetch information" -msgstr "Recaudar informacion" - -#: mod/contacts.php:557 -msgid "Fetch information and keywords" -msgstr "Recaudar informacion y palabras claves" - -#: mod/contacts.php:575 -msgid "Contact" -msgstr "Contacto" - -#: mod/contacts.php:578 -msgid "Profile Visibility" -msgstr "Visibilidad del Perfil" - -#: mod/contacts.php:579 +#: mod/item.php:992 #, php-format msgid "" -"Please choose the profile you would like to display to %s when viewing your " -"profile securely." -msgstr "Por favor, selecciona el perfil que quieras mostrar a %s cuando esté viendo tu perfil de forma segura." +"This message was sent to you by %s, a member of the Friendica social " +"network." +msgstr "Este mensaje te lo ha enviado %s, miembro de la red social Friendica." -#: mod/contacts.php:580 -msgid "Contact Information / Notes" -msgstr "Información del Contacto / Notas" - -#: mod/contacts.php:581 -msgid "Edit contact notes" -msgstr "Editar notas del contacto" - -#: mod/contacts.php:587 -msgid "Block/Unblock contact" -msgstr "Boquear/Desbloquear contacto" - -#: mod/contacts.php:588 -msgid "Ignore contact" -msgstr "Ignorar contacto" - -#: mod/contacts.php:589 -msgid "Repair URL settings" -msgstr "Configuración de reparación de la dirección" - -#: mod/contacts.php:590 -msgid "View conversations" -msgstr "Ver conversaciones" - -#: mod/contacts.php:596 -msgid "Last update:" -msgstr "Última actualización:" - -#: mod/contacts.php:598 -msgid "Update public posts" -msgstr "Actualizar publicaciones públicas" - -#: mod/contacts.php:600 mod/contacts.php:983 -msgid "Update now" -msgstr "Actualizar ahora" - -#: mod/contacts.php:606 mod/contacts.php:806 mod/contacts.php:1000 -msgid "Unignore" -msgstr "Quitar de Ignorados" - -#: mod/contacts.php:610 -msgid "Currently blocked" -msgstr "Bloqueados" - -#: mod/contacts.php:611 -msgid "Currently ignored" -msgstr "Ignorados" - -#: mod/contacts.php:612 -msgid "Currently archived" -msgstr "Archivados" - -#: mod/contacts.php:613 -msgid "" -"Replies/likes to your public posts may still be visible" -msgstr "Los comentarios o \"me gusta\" en tus publicaciones públicas todavía pueden ser visibles." - -#: mod/contacts.php:614 -msgid "Notification for new posts" -msgstr "Notificacion de nuevos temas." - -#: mod/contacts.php:614 -msgid "Send a notification of every new post of this contact" -msgstr "Enviar una notificacion por nuevos temas de este contacto." - -#: mod/contacts.php:617 -msgid "Blacklisted keywords" -msgstr "Lista negra de palabras" - -#: mod/contacts.php:617 -msgid "" -"Comma separated list of keywords that should not be converted to hashtags, " -"when \"Fetch information and keywords\" is selected" -msgstr "Lista separada por comas de palabras claves que no deberian ser convertido en #hashtags cuando \"Recaudar informacion y palabras claves\" es seleccionado" - -#: mod/contacts.php:635 -msgid "Actions" -msgstr "Acciones" - -#: mod/contacts.php:638 -msgid "Contact Settings" -msgstr "Ajustes del contacto" - -#: mod/contacts.php:684 -msgid "Suggestions" -msgstr "Sugerencias" - -#: mod/contacts.php:687 -msgid "Suggest potential friends" -msgstr "Amistades potenciales sugeridas" - -#: mod/contacts.php:692 mod/group.php:192 -msgid "All Contacts" -msgstr "Todos los contactos" - -#: mod/contacts.php:695 -msgid "Show all contacts" -msgstr "Mostrar todos los contactos" - -#: mod/contacts.php:700 -msgid "Unblocked" -msgstr "Desbloqueados" - -#: mod/contacts.php:703 -msgid "Only show unblocked contacts" -msgstr "Mostrar solo contactos sin bloquear" - -#: mod/contacts.php:709 -msgid "Blocked" -msgstr "Bloqueados" - -#: mod/contacts.php:712 -msgid "Only show blocked contacts" -msgstr "Mostrar solo contactos bloqueados" - -#: mod/contacts.php:718 -msgid "Ignored" -msgstr "Ignorados" - -#: mod/contacts.php:721 -msgid "Only show ignored contacts" -msgstr "Mostrar solo contactos ignorados" - -#: mod/contacts.php:727 -msgid "Archived" -msgstr "Archivados" - -#: mod/contacts.php:730 -msgid "Only show archived contacts" -msgstr "Mostrar solo contactos archivados" - -#: mod/contacts.php:736 -msgid "Hidden" -msgstr "Ocultos" - -#: mod/contacts.php:739 -msgid "Only show hidden contacts" -msgstr "Mostrar solo contactos ocultos" - -#: mod/contacts.php:796 -msgid "Search your contacts" -msgstr "Buscar en tus contactos" - -#: mod/contacts.php:804 mod/settings.php:158 mod/settings.php:704 -msgid "Update" -msgstr "Actualizar" - -#: mod/contacts.php:807 mod/contacts.php:1008 -msgid "Archive" -msgstr "Archivo" - -#: mod/contacts.php:807 mod/contacts.php:1008 -msgid "Unarchive" -msgstr "Sin archivar" - -#: mod/contacts.php:810 -msgid "Batch Actions" -msgstr "Accones en lote" - -#: mod/contacts.php:856 -msgid "View all contacts" -msgstr "Ver todos los contactos" - -#: mod/contacts.php:863 mod/common.php:134 -msgid "Common Friends" -msgstr "Amigos comunes" - -#: mod/contacts.php:866 -msgid "View all common friends" -msgstr "Ver todos los conocidos en común " - -#: mod/contacts.php:873 -msgid "Advanced Contact Settings" -msgstr "Configuración avanzada" - -#: mod/contacts.php:916 -msgid "Mutual Friendship" -msgstr "Amistad recíproca" - -#: mod/contacts.php:920 -msgid "is a fan of yours" -msgstr "es tu fan" - -#: mod/contacts.php:924 -msgid "you are a fan of" -msgstr "eres fan de" - -#: mod/contacts.php:994 -msgid "Toggle Blocked status" -msgstr "Cambiar bloqueados" - -#: mod/contacts.php:1002 -msgid "Toggle Ignored status" -msgstr "Cambiar ignorados" - -#: mod/contacts.php:1010 -msgid "Toggle Archive status" -msgstr "Cambiar archivados" - -#: mod/contacts.php:1018 -msgid "Delete contact" -msgstr "Eliminar contacto" - -#: mod/follow.php:19 mod/dfrn_request.php:875 -msgid "Submit Request" -msgstr "Enviar solicitud" - -#: mod/follow.php:30 -msgid "You already added this contact." -msgstr "Ya has añadido este contacto." - -#: mod/follow.php:39 -msgid "Diaspora support isn't enabled. Contact can't be added." -msgstr "El soporte de Diaspora* no esta habilitado, el contacto no puede ser agregado." - -#: mod/follow.php:46 -msgid "OStatus support is disabled. Contact can't be added." -msgstr "El soporte de OStatus no esta habilitado, el contacto no puede ser agregado." - -#: mod/follow.php:53 -msgid "The network type couldn't be detected. Contact can't be added." -msgstr "No se pudo detectar el tipo de red. Contacto no puede ser agregado." - -#: mod/follow.php:109 mod/dfrn_request.php:861 -msgid "Please answer the following:" -msgstr "Por favor responde lo siguiente:" - -#: mod/follow.php:110 mod/dfrn_request.php:862 +#: mod/item.php:994 #, php-format -msgid "Does %s know you?" -msgstr "¿%s te conoce?" +msgid "You may visit them online at %s" +msgstr "Los puedes visitar en línea en %s" -#: mod/follow.php:111 mod/dfrn_request.php:866 -msgid "Add a personal note:" -msgstr "Añade una nota personal:" - -#: mod/follow.php:117 mod/dfrn_request.php:872 -msgid "Your Identity Address:" -msgstr "Dirección de tu perfil:" - -#: mod/follow.php:180 -msgid "Contact added" -msgstr "Contacto añadido" - -#: mod/apps.php:11 -msgid "Applications" -msgstr "Aplicaciones" - -#: mod/apps.php:14 -msgid "No installed applications." -msgstr "Sin aplicaciones" - -#: mod/suggest.php:27 -msgid "Do you really want to delete this suggestion?" -msgstr "¿Estás seguro de que quieres borrar esta sugerencia?" - -#: mod/suggest.php:71 +#: mod/item.php:995 msgid "" -"No suggestions available. If this is a new site, please try again in 24 " -"hours." -msgstr "No hay sugerencias disponibles. Si el sitio web es nuevo inténtalo de nuevo dentro de 24 horas." +"Please contact the sender by replying to this post if you do not wish to " +"receive these messages." +msgstr "Por favor contacta con el remitente respondiendo a este mensaje si no deseas recibir estos mensajes." -#: mod/suggest.php:84 mod/suggest.php:104 -msgid "Ignore/Hide" -msgstr "Ignorar/Ocultar" - -#: mod/p.php:9 -msgid "Not Extended" -msgstr "No extendido" - -#: mod/display.php:473 -msgid "Item has been removed." -msgstr "El elemento ha sido eliminado." - -#: mod/common.php:86 -msgid "No contacts in common." -msgstr "Sin contactos en común." - -#: mod/newmember.php:6 -msgid "Welcome to Friendica" -msgstr "Bienvenido a Friendica " - -#: mod/newmember.php:8 -msgid "New Member Checklist" -msgstr "Listado de nuevos miembros" - -#: mod/newmember.php:12 -msgid "" -"We would like to offer some tips and links to help make your experience " -"enjoyable. Click any item to visit the relevant page. A link to this page " -"will be visible from your home page for two weeks after your initial " -"registration and then will quietly disappear." -msgstr "Nos gustaría ofrecerte algunos consejos y enlaces para ayudar a hacer tu experiencia más amena. Pulsa en cualquier elemento para visitar la página correspondiente. Un enlace a esta página será visible desde tu página de inicio durante las dos semanas siguientes a tu inscripción y luego desaparecerá." - -#: mod/newmember.php:14 -msgid "Getting Started" -msgstr "Empezando" - -#: mod/newmember.php:18 -msgid "Friendica Walk-Through" -msgstr "Visita guiada a Friendica" - -#: mod/newmember.php:18 -msgid "" -"On your Quick Start page - find a brief introduction to your " -"profile and network tabs, make some new connections, and find some groups to" -" join." -msgstr "En tu página de Inicio Rápido - busca una introducción breve para tus pestañas de perfil y red, haz algunas conexiones nuevas, y busca algunos grupos a los que unirte." - -#: mod/newmember.php:26 -msgid "Go to Your Settings" -msgstr "Ir a tus ajustes" - -#: mod/newmember.php:26 -msgid "" -"On your Settings page - change your initial password. Also make a " -"note of your Identity Address. This looks just like an email address - and " -"will be useful in making friends on the free social web." -msgstr "En la página de Configuración puedes cambiar tu contraseña inicial. También aparece tu ID (Identity Address). Es parecida a una dirección de correo y te servirá para conectar con gente de redes sociales libres." - -#: mod/newmember.php:28 -msgid "" -"Review the other settings, particularly the privacy settings. An unpublished" -" directory listing is like having an unlisted phone number. In general, you " -"should probably publish your listing - unless all of your friends and " -"potential friends know exactly how to find you." -msgstr "Revisa las otras configuraciones, especialmente la configuración de privacidad. Un listado de directorio sin publicar es como tener un número de teléfono sin publicar. Normalmente querrás publicar tu listado, a menos que tus amigos y amigos potenciales sepan cómo ponerse en contacto contigo." - -#: mod/newmember.php:36 -msgid "" -"Upload a profile photo if you have not done so already. Studies have shown " -"that people with real photos of themselves are ten times more likely to make" -" friends than people who do not." -msgstr "Sube una foto para tu perfil si no lo has hecho aún. Los estudios han demostrado que la gente que usa fotos suyas reales tienen diez veces más éxito a la hora de entablar amistad que las que no." - -#: mod/newmember.php:38 -msgid "Edit Your Profile" -msgstr "Editar tu perfil" - -#: mod/newmember.php:38 -msgid "" -"Edit your default profile to your liking. Review the " -"settings for hiding your list of friends and hiding the profile from unknown" -" visitors." -msgstr "Edita tu perfil predeterminado como quieras. Revisa la configuración para ocultar tu lista de amigos o tu perfil a los visitantes desconocidos." - -#: mod/newmember.php:40 -msgid "Profile Keywords" -msgstr "Palabras clave del perfil" - -#: mod/newmember.php:40 -msgid "" -"Set some public keywords for your default profile which describe your " -"interests. We may be able to find other people with similar interests and " -"suggest friendships." -msgstr "Define en tu perfil público algunas palabras que describan tus intereses. Así podremos buscar otras personas con los mismos gustos y sugerirte posibles amigos." - -#: mod/newmember.php:44 -msgid "Connecting" -msgstr "Conectando" - -#: mod/newmember.php:51 -msgid "Importing Emails" -msgstr "Importando correos electrónicos" - -#: mod/newmember.php:51 -msgid "" -"Enter your email access information on your Connector Settings page if you " -"wish to import and interact with friends or mailing lists from your email " -"INBOX" -msgstr "Introduce la información para acceder a tu correo en la página de Configuración del conector si quieres importar e interactuar con amigos o listas de correos del buzón de entrada de tu correo electrónico." - -#: mod/newmember.php:53 -msgid "Go to Your Contacts Page" -msgstr "Ir a tu página de contactos" - -#: mod/newmember.php:53 -msgid "" -"Your Contacts page is your gateway to managing friendships and connecting " -"with friends on other networks. Typically you enter their address or site " -"URL in the Add New Contact dialog." -msgstr "Tu página de Contactos es el portal desde donde podrás manejar tus amistades y conectarte con amigos de otras redes. Normalmente introduces su dirección o la dirección de su sitio web en el recuadro \"Añadir contacto nuevo\"." - -#: mod/newmember.php:55 -msgid "Go to Your Site's Directory" -msgstr "Ir al directorio de tu sitio" - -#: mod/newmember.php:55 -msgid "" -"The Directory page lets you find other people in this network or other " -"federated sites. Look for a Connect or Follow link on " -"their profile page. Provide your own Identity Address if requested." -msgstr "El Directorio te permite encontrar otras personas en esta red o en cualquier otro sitio federado. Busca algún enlace de Conectar o Seguir en su perfil. Proporciona tu direción personal si es necesario." - -#: mod/newmember.php:57 -msgid "Finding New People" -msgstr "Encontrando nueva gente" - -#: mod/newmember.php:57 -msgid "" -"On the side panel of the Contacts page are several tools to find new " -"friends. We can match people by interest, look up people by name or " -"interest, and provide suggestions based on network relationships. On a brand" -" new site, friend suggestions will usually begin to be populated within 24 " -"hours." -msgstr "En el panel lateral de la página de Contactos existen varias herramientas para encontrar nuevos amigos. Podemos filtrar personas por sus intereses, buscar personas por nombre o por sus intereses, y ofrecerte sugerencias basadas en sus relaciones de la red. En un sitio nuevo, las sugerencias de amigos por lo general comienzan pasadas las 24 horas." - -#: mod/newmember.php:65 -msgid "Group Your Contacts" -msgstr "Agrupa tus contactos" - -#: mod/newmember.php:65 -msgid "" -"Once you have made some friends, organize them into private conversation " -"groups from the sidebar of your Contacts page and then you can interact with" -" each group privately on your Network page." -msgstr "Una vez que tengas algunos amigos, puedes organizarlos en grupos privados de conversación mediante el memnú en tu página de Contactos y luego puedes interactuar con cada grupo por separado desde tu página de Red." - -#: mod/newmember.php:68 -msgid "Why Aren't My Posts Public?" -msgstr "¿Por qué mis publicaciones no son públicas?" - -#: mod/newmember.php:68 -msgid "" -"Friendica respects your privacy. By default, your posts will only show up to" -" people you've added as friends. For more information, see the help section " -"from the link above." -msgstr "Friendica respeta tu privacidad. Por defecto, tus publicaciones solo se mostrarán a personas que hayas añadido como amistades. Para más información, mira la sección de ayuda en el enlace de más arriba." - -#: mod/newmember.php:73 -msgid "Getting Help" -msgstr "Consiguiendo ayuda" - -#: mod/newmember.php:77 -msgid "Go to the Help Section" -msgstr "Ir a la sección de ayuda" - -#: mod/newmember.php:77 -msgid "" -"Our help pages may be consulted for detail on other program" -" features and resources." -msgstr "Puedes consultar nuestra página de Ayuda para más información y recursos de ayuda." - -#: mod/removeme.php:46 mod/removeme.php:49 -msgid "Remove My Account" -msgstr "Eliminar mi cuenta" - -#: mod/removeme.php:47 -msgid "" -"This will completely remove your account. Once this has been done it is not " -"recoverable." -msgstr "Esto eliminará por completo tu cuenta. Una vez hecho no se puede deshacer." - -#: mod/removeme.php:48 -msgid "Please enter your password for verification:" -msgstr "Por favor, introduce tu contraseña para la verificación:" - -#: mod/mood.php:133 -msgid "Mood" -msgstr "Ánimo" - -#: mod/mood.php:134 -msgid "Set your current mood and tell your friends" -msgstr "Coloca tu ánimo actual y cuéntaselo a tus amigos" - -#: mod/editpost.php:17 mod/editpost.php:27 -msgid "Item not found" -msgstr "Elemento no encontrado" - -#: mod/editpost.php:40 -msgid "Edit post" -msgstr "Editar publicación" +#: mod/item.php:999 +#, php-format +msgid "%s posted an update." +msgstr "%s ha publicado una actualización." #: mod/network.php:398 #, php-format @@ -7331,1405 +8637,65 @@ msgstr "Los mensajes privados a esta persona corren el riesgo de ser mostrados p msgid "Invalid contact." msgstr "Contacto erróneo." -#: mod/network.php:827 +#: mod/network.php:826 msgid "Commented Order" msgstr "Orden de comentarios" -#: mod/network.php:830 +#: mod/network.php:829 msgid "Sort by Comment Date" msgstr "Ordenar por fecha de comentarios" -#: mod/network.php:835 +#: mod/network.php:834 msgid "Posted Order" msgstr "Orden de publicación" -#: mod/network.php:838 +#: mod/network.php:837 msgid "Sort by Post Date" msgstr "Ordenar por fecha de publicación" -#: mod/network.php:849 +#: mod/network.php:848 msgid "Posts that mention or involve you" msgstr "Publicaciones que te mencionan o involucran" -#: mod/network.php:857 +#: mod/network.php:856 msgid "New" msgstr "Nuevo" -#: mod/network.php:860 +#: mod/network.php:859 msgid "Activity Stream - by date" msgstr "Corriente de actividad por fecha" -#: mod/network.php:868 +#: mod/network.php:867 msgid "Shared Links" msgstr "Enlaces compartidos" -#: mod/network.php:871 +#: mod/network.php:870 msgid "Interesting Links" msgstr "Enlaces interesantes" -#: mod/network.php:879 +#: mod/network.php:878 msgid "Starred" msgstr "Favoritos" -#: mod/network.php:882 +#: mod/network.php:881 msgid "Favourite Posts" msgstr "Publicaciones favoritas" -#: mod/community.php:27 -msgid "Not available." -msgstr "No disponible" +#: mod/ping.php:261 +msgid "{0} wants to be your friend" +msgstr "{0} quiere ser tu amigo" -#: mod/localtime.php:24 -msgid "Time Conversion" -msgstr "Conversión horária" +#: mod/ping.php:276 +msgid "{0} sent you a message" +msgstr "{0} te ha enviado un mensaje" -#: mod/localtime.php:26 -msgid "" -"Friendica provides this service for sharing events with other networks and " -"friends in unknown timezones." -msgstr "Friendica ofrece este servicio para compartir eventos con otros servidores de la red friendica y amigos en zonas de horarios desconocidos." +#: mod/ping.php:291 +msgid "{0} requested registration" +msgstr "{0} solicitudes de registro" -#: mod/localtime.php:30 -#, php-format -msgid "UTC time: %s" -msgstr "Tiempo UTC: %s" - -#: mod/localtime.php:33 -#, php-format -msgid "Current timezone: %s" -msgstr "Zona horaria actual: %s" - -#: mod/localtime.php:36 -#, php-format -msgid "Converted localtime: %s" -msgstr "Zona horaria local convertida: %s" - -#: mod/localtime.php:41 -msgid "Please select your timezone:" -msgstr "Por favor, selecciona tu zona horaria:" - -#: mod/bookmarklet.php:41 -msgid "The post was created" -msgstr "La publicación fue creada" - -#: mod/group.php:29 -msgid "Group created." -msgstr "Grupo creado." - -#: mod/group.php:35 -msgid "Could not create group." -msgstr "Imposible crear el grupo." - -#: mod/group.php:47 mod/group.php:140 -msgid "Group not found." -msgstr "Grupo no encontrado." - -#: mod/group.php:60 -msgid "Group name changed." -msgstr "El nombre del grupo ha cambiado." - -#: mod/group.php:87 -msgid "Save Group" -msgstr "Guardar grupo" - -#: mod/group.php:93 -msgid "Create a group of contacts/friends." -msgstr "Crea un grupo de contactos/amigos." - -#: mod/group.php:113 -msgid "Group removed." -msgstr "Grupo eliminado." - -#: mod/group.php:115 -msgid "Unable to remove group." -msgstr "No se puede eliminar el grupo." - -#: mod/group.php:177 -msgid "Group Editor" -msgstr "Editor de grupos" - -#: mod/group.php:190 -msgid "Members" -msgstr "Miembros" - -#: mod/dfrn_request.php:101 -msgid "This introduction has already been accepted." -msgstr "Esta presentación ya ha sido aceptada." - -#: mod/dfrn_request.php:124 mod/dfrn_request.php:520 -msgid "Profile location is not valid or does not contain profile information." -msgstr "La dirección del perfil no es válida o no contiene información del perfil." - -#: mod/dfrn_request.php:129 mod/dfrn_request.php:525 -msgid "Warning: profile location has no identifiable owner name." -msgstr "Aviso: La dirección del perfil no tiene un nombre de propietario identificable." - -#: mod/dfrn_request.php:131 mod/dfrn_request.php:527 -msgid "Warning: profile location has no profile photo." -msgstr "Aviso: la dirección del perfil no tiene foto de perfil." - -#: mod/dfrn_request.php:134 mod/dfrn_request.php:530 -#, php-format -msgid "%d required parameter was not found at the given location" -msgid_plural "%d required parameters were not found at the given location" -msgstr[0] "no se encontró %d parámetro requerido en el lugar determinado" -msgstr[1] "no se encontraron %d parámetros requeridos en el lugar determinado" - -#: mod/dfrn_request.php:180 -msgid "Introduction complete." -msgstr "Presentación completa." - -#: mod/dfrn_request.php:222 -msgid "Unrecoverable protocol error." -msgstr "Error de protocolo irrecuperable." - -#: mod/dfrn_request.php:250 -msgid "Profile unavailable." -msgstr "Perfil no disponible." - -#: mod/dfrn_request.php:277 -#, php-format -msgid "%s has received too many connection requests today." -msgstr "%s ha recibido demasiadas solicitudes de conexión hoy." - -#: mod/dfrn_request.php:278 -msgid "Spam protection measures have been invoked." -msgstr "Han sido activadas las medidas de protección contra spam." - -#: mod/dfrn_request.php:279 -msgid "Friends are advised to please try again in 24 hours." -msgstr "Tus amigos serán avisados para que lo intenten de nuevo pasadas 24 horas." - -#: mod/dfrn_request.php:341 -msgid "Invalid locator" -msgstr "Localizador no válido" - -#: mod/dfrn_request.php:350 -msgid "Invalid email address." -msgstr "Dirección de correo incorrecta" - -#: mod/dfrn_request.php:375 -msgid "This account has not been configured for email. Request failed." -msgstr "Esta cuenta no ha sido configurada para el correo. Fallo de solicitud." - -#: mod/dfrn_request.php:478 -msgid "You have already introduced yourself here." -msgstr "Ya te has presentado aquí." - -#: mod/dfrn_request.php:482 -#, php-format -msgid "Apparently you are already friends with %s." -msgstr "Al parecer, ya eres amigo de %s." - -#: mod/dfrn_request.php:503 -msgid "Invalid profile URL." -msgstr "Dirección de perfil no válida." - -#: mod/dfrn_request.php:604 -msgid "Your introduction has been sent." -msgstr "Tu presentación ha sido enviada." - -#: mod/dfrn_request.php:644 -msgid "" -"Remote subscription can't be done for your network. Please subscribe " -"directly on your system." -msgstr "La subscripción remota no se podrá hacer para tu red. Por favor contacta directamente desde tu sistema." - -#: mod/dfrn_request.php:664 -msgid "Please login to confirm introduction." -msgstr "Inicia sesión para confirmar la presentación." - -#: mod/dfrn_request.php:674 -msgid "" -"Incorrect identity currently logged in. Please login to " -"this profile." -msgstr "Sesión iniciada con la identificación incorrecta. Entra en este perfil." - -#: mod/dfrn_request.php:688 mod/dfrn_request.php:705 -msgid "Confirm" -msgstr "Confirmar" - -#: mod/dfrn_request.php:700 -msgid "Hide this contact" -msgstr "Ocultar este contacto" - -#: mod/dfrn_request.php:703 -#, php-format -msgid "Welcome home %s." -msgstr "Bienvenido a casa %s" - -#: mod/dfrn_request.php:704 -#, php-format -msgid "Please confirm your introduction/connection request to %s." -msgstr "Por favor, confirma tu solicitud de presentación/conexión con %s." - -#: mod/dfrn_request.php:833 -msgid "" -"Please enter your 'Identity Address' from one of the following supported " -"communications networks:" -msgstr "Por favor introduce tu dirección ID de una de las siguientes redes sociales soportadas:" - -#: mod/dfrn_request.php:854 -#, php-format -msgid "" -"If you are not yet a member of the free social web, follow this link to find a public Friendica site and " -"join us today." -msgstr "Si aun no eres miembro de la red social libre seguí este enlace para encontrara un sitio disponible de friendica y acompañanos hoy mismo" - -#: mod/dfrn_request.php:859 -msgid "Friend/Connection Request" -msgstr "Solicitud de Amistad/Conexión" - -#: mod/dfrn_request.php:860 -msgid "" -"Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, " -"testuser@identi.ca" -msgstr "Ejemplos: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca" - -#: mod/dfrn_request.php:869 -msgid "StatusNet/Federated Social Web" -msgstr "StatusNet/Web Social Federada" - -#: mod/dfrn_request.php:871 -#, php-format -msgid "" -" - please do not use this form. Instead, enter %s into your Diaspora search" -" bar." -msgstr "(En vez de usar este formulario, introduce %s en la barra de búsqueda de Diaspora." - -#: mod/profile_photo.php:44 -msgid "Image uploaded but image cropping failed." -msgstr "Imagen recibida, pero ha fallado al recortarla." - -#: mod/profile_photo.php:77 mod/profile_photo.php:84 mod/profile_photo.php:91 -#: mod/profile_photo.php:314 -#, php-format -msgid "Image size reduction [%s] failed." -msgstr "Ha fallado la reducción de las dimensiones de la imagen [%s]." - -#: mod/profile_photo.php:124 -msgid "" -"Shift-reload the page or clear browser cache if the new photo does not " -"display immediately." -msgstr "Recarga la página o limpia la caché del navegador si la foto nueva no aparece inmediatamente." - -#: mod/profile_photo.php:134 -msgid "Unable to process image" -msgstr "Imposible procesar la imagen" - -#: mod/profile_photo.php:248 -msgid "Upload File:" -msgstr "Subir archivo:" - -#: mod/profile_photo.php:249 -msgid "Select a profile:" -msgstr "Elige un perfil:" - -#: mod/profile_photo.php:251 -msgid "Upload" -msgstr "Subir" - -#: mod/profile_photo.php:254 -msgid "or" -msgstr "o" - -#: mod/profile_photo.php:254 -msgid "skip this step" -msgstr "saltar este paso" - -#: mod/profile_photo.php:254 -msgid "select a photo from your photo albums" -msgstr "elige una foto de tus álbumes" - -#: mod/profile_photo.php:268 -msgid "Crop Image" -msgstr "Recortar imagen" - -#: mod/profile_photo.php:269 -msgid "Please adjust the image cropping for optimum viewing." -msgstr "Por favor, ajusta el recorte de la imagen para optimizarla." - -#: mod/profile_photo.php:271 -msgid "Done Editing" -msgstr "Editado" - -#: mod/profile_photo.php:305 -msgid "Image uploaded successfully." -msgstr "Imagen subida con éxito." - -#: mod/register.php:93 -msgid "" -"Registration successful. Please check your email for further instructions." -msgstr "Te has registrado con éxito. Por favor, consulta tu correo para más información." - -#: mod/register.php:98 -#, php-format -msgid "" -"Failed to send email message. Here your accout details:
      login: %s
      " -"password: %s

      You can change your password after login." -msgstr "Error al intentar de enviar mensaje de correo. Aquí los detalles de su cuenta:
      login: %s
      contraseña: %s

      Puede cambiar su contraseña después de ingresar al sitio." - -#: mod/register.php:105 -msgid "Registration successful." -msgstr "Registro exitoso." - -#: mod/register.php:111 -msgid "Your registration can not be processed." -msgstr "Tu registro no se puede procesar." - -#: mod/register.php:160 -msgid "Your registration is pending approval by the site owner." -msgstr "Tu registro está pendiente de aprobación por el propietario del sitio." - -#: mod/register.php:226 -msgid "" -"You may (optionally) fill in this form via OpenID by supplying your OpenID " -"and clicking 'Register'." -msgstr "Puedes (opcionalmente) rellenar este formulario a través de OpenID escribiendo tu OpenID y pulsando en \"Registrar\"." - -#: mod/register.php:227 -msgid "" -"If you are not familiar with OpenID, please leave that field blank and fill " -"in the rest of the items." -msgstr "Si no estás familiarizado con OpenID, por favor deja ese campo en blanco y rellena el resto de los elementos." - -#: mod/register.php:228 -msgid "Your OpenID (optional): " -msgstr "Tu OpenID (opcional):" - -#: mod/register.php:242 -msgid "Include your profile in member directory?" -msgstr "¿Incluir tu perfil en el directorio de miembros?" - -#: mod/register.php:267 -msgid "Note for the admin" -msgstr "Nota para el administrador" - -#: mod/register.php:267 -msgid "Leave a message for the admin, why you want to join this node" -msgstr "Deje un mensaje para el administrador sobre por qué quiere unirse a este nodo" - -#: mod/register.php:268 -msgid "Membership on this site is by invitation only." -msgstr "Sitio solo accesible mediante invitación." - -#: mod/register.php:269 -msgid "Your invitation ID: " -msgstr "ID de tu invitación: " - -#: mod/register.php:280 -msgid "Your Full Name (e.g. Joe Smith, real or real-looking): " -msgstr "Nombre completo (ej. Joe Smith, real o real aparente):" - -#: mod/register.php:281 -msgid "Your Email Address: " -msgstr "Tu dirección de correo: " - -#: mod/register.php:283 mod/settings.php:1271 -msgid "New Password:" -msgstr "Contraseña nueva:" - -#: mod/register.php:283 -msgid "Leave empty for an auto generated password." -msgstr "Dejar vacío para autogenerar una contraseña" - -#: mod/register.php:284 mod/settings.php:1272 -msgid "Confirm:" -msgstr "Confirmar:" - -#: mod/register.php:285 -msgid "" -"Choose a profile nickname. This must begin with a text character. Your " -"profile address on this site will then be " -"'nickname@$sitename'." -msgstr "Elije un apodo. Debe comenzar con una letra. Tu dirección de perfil en este sitio va a ser \"apodo@$nombredelsitio\"." - -#: mod/register.php:286 -msgid "Choose a nickname: " -msgstr "Escoge un apodo: " - -#: mod/register.php:296 -msgid "Import your profile to this friendica instance" -msgstr "Importar tu perfil a esta instancia de friendica" - -#: mod/settings.php:60 -msgid "Display" -msgstr "Interfaz del usuario" - -#: mod/settings.php:67 mod/settings.php:886 -msgid "Social Networks" -msgstr "Redes sociales" - -#: mod/settings.php:88 -msgid "Connected apps" -msgstr "Aplicaciones conectadas" - -#: mod/settings.php:102 -msgid "Remove account" -msgstr "Eliminar cuenta" - -#: mod/settings.php:155 -msgid "Missing some important data!" -msgstr "¡Faltan algunos datos importantes!" - -#: mod/settings.php:269 -msgid "Failed to connect with email account using the settings provided." -msgstr "Error al conectar con la cuenta de correo mediante la configuración suministrada." - -#: mod/settings.php:274 -msgid "Email settings updated." -msgstr "Configuración de correo actualizada." - -#: mod/settings.php:289 -msgid "Features updated" -msgstr "Actualizaciones" - -#: mod/settings.php:359 -msgid "Relocate message has been send to your contacts" -msgstr "Mensaje de reubicación ha sido enviado a sus contactos." - -#: mod/settings.php:378 -msgid "Empty passwords are not allowed. Password unchanged." -msgstr "No se permiten contraseñas vacías. La contraseña no ha sido modificada." - -#: mod/settings.php:386 -msgid "Wrong password." -msgstr "Contraseña incorrecta" - -#: mod/settings.php:397 -msgid "Password changed." -msgstr "Contraseña modificada." - -#: mod/settings.php:399 -msgid "Password update failed. Please try again." -msgstr "La actualización de la contraseña ha fallado. Por favor, prueba otra vez." - -#: mod/settings.php:479 -msgid " Please use a shorter name." -msgstr " Usa un nombre más corto." - -#: mod/settings.php:481 -msgid " Name too short." -msgstr " Nombre demasiado corto." - -#: mod/settings.php:490 -msgid "Wrong Password" -msgstr "Contraseña incorrecta" - -#: mod/settings.php:495 -msgid " Not valid email." -msgstr " Correo no válido." - -#: mod/settings.php:501 -msgid " Cannot change to that email." -msgstr " No se puede usar ese correo." - -#: mod/settings.php:557 -msgid "Private forum has no privacy permissions. Using default privacy group." -msgstr "El foro privado no tiene permisos de privacidad. Usando el grupo de privacidad por defecto." - -#: mod/settings.php:561 -msgid "Private forum has no privacy permissions and no default privacy group." -msgstr "El foro privado no tiene permisos de privacidad ni grupo por defecto de privacidad." - -#: mod/settings.php:601 -msgid "Settings updated." -msgstr "Configuración actualizada." - -#: mod/settings.php:677 mod/settings.php:703 mod/settings.php:739 -msgid "Add application" -msgstr "Agregar aplicación" - -#: mod/settings.php:681 mod/settings.php:707 -msgid "Consumer Key" -msgstr "Clave del consumidor" - -#: mod/settings.php:682 mod/settings.php:708 -msgid "Consumer Secret" -msgstr "Secreto del consumidor" - -#: mod/settings.php:683 mod/settings.php:709 -msgid "Redirect" -msgstr "Redirigir" - -#: mod/settings.php:684 mod/settings.php:710 -msgid "Icon url" -msgstr "Dirección del ícono" - -#: mod/settings.php:695 -msgid "You can't edit this application." -msgstr "No puedes editar esta aplicación." - -#: mod/settings.php:738 -msgid "Connected Apps" -msgstr "Aplicaciones conectadas" - -#: mod/settings.php:742 -msgid "Client key starts with" -msgstr "Clave de cliente comienza por" - -#: mod/settings.php:743 -msgid "No name" -msgstr "Sin nombre" - -#: mod/settings.php:744 -msgid "Remove authorization" -msgstr "Suprimir la autorización" - -#: mod/settings.php:756 -msgid "No Plugin settings configured" -msgstr "No se ha configurado ningún módulo" - -#: mod/settings.php:764 -msgid "Plugin Settings" -msgstr "Configuración de los módulos" - -#: mod/settings.php:786 -msgid "Additional Features" -msgstr "Características adicionales" - -#: mod/settings.php:796 mod/settings.php:800 -msgid "General Social Media Settings" -msgstr "Configuración general de social media " - -#: mod/settings.php:806 -msgid "Disable intelligent shortening" -msgstr "Deshabilitar recorte inteligente de URL" - -#: mod/settings.php:808 -msgid "" -"Normally the system tries to find the best link to add to shortened posts. " -"If this option is enabled then every shortened post will always point to the" -" original friendica post." -msgstr "Normalemente el sistema intenta de encontrara el mejor enlace para agregar a envíos recortados (twitter, OStatus). Si esta opción se encuentra habilitado, todo envío recortado apuntara siempre al tema original en friendica." - -#: mod/settings.php:814 -msgid "Automatically follow any GNU Social (OStatus) followers/mentioners" -msgstr "Automáticamente seguir cualquier GNUsocial (OStatus) seguidores o menciones " - -#: mod/settings.php:816 -msgid "" -"If you receive a message from an unknown OStatus user, this option decides " -"what to do. If it is checked, a new contact will be created for every " -"unknown user." -msgstr "Cuando se recibe un mensaje de un perfil desconocido de OStatus, esta opción define que hacer.\nSi es habilitado, un nuevo contacto sera creado para cada usuario." - -#: mod/settings.php:822 -msgid "Default group for OStatus contacts" -msgstr "Grupo por defecto para contactos OStatus" - -#: mod/settings.php:828 -msgid "Your legacy GNU Social account" -msgstr "Tu cuenta GNU social conectada" - -#: mod/settings.php:830 -msgid "" -"If you enter your old GNU Social/Statusnet account name here (in the format " -"user@domain.tld), your contacts will be added automatically. The field will " -"be emptied when done." -msgstr "Si agrega su viejo nombre de perfil GNUsocial/Statusnet aqui (en el formato de usuario@dominio.tld), sus contactos serán añadidos automáticamente.\nEl campo sera vaciado cuando termine el proceso. " - -#: mod/settings.php:833 -msgid "Repair OStatus subscriptions" -msgstr "Reparar subscripciones de OStatus" - -#: mod/settings.php:842 mod/settings.php:843 -#, php-format -msgid "Built-in support for %s connectivity is %s" -msgstr "El soporte integrado de conexión con %s está %s" - -#: mod/settings.php:842 mod/settings.php:843 -msgid "enabled" -msgstr "habilitado" - -#: mod/settings.php:842 mod/settings.php:843 -msgid "disabled" -msgstr "deshabilitado" - -#: mod/settings.php:843 -msgid "GNU Social (OStatus)" -msgstr "GNUsocial (OStatus)" - -#: mod/settings.php:879 -msgid "Email access is disabled on this site." -msgstr "El acceso por correo está deshabilitado en esta web." - -#: mod/settings.php:891 -msgid "Email/Mailbox Setup" -msgstr "Configuración del correo/buzón" - -#: mod/settings.php:892 -msgid "" -"If you wish to communicate with email contacts using this service " -"(optional), please specify how to connect to your mailbox." -msgstr "Si quieres comunicarte con tus contactos de correo usando este servicio (opcional), por favor, especifica cómo conectar con tu buzón." - -#: mod/settings.php:893 -msgid "Last successful email check:" -msgstr "Última comprobación del correo con éxito:" - -#: mod/settings.php:895 -msgid "IMAP server name:" -msgstr "Nombre del servidor IMAP:" - -#: mod/settings.php:896 -msgid "IMAP port:" -msgstr "Puerto IMAP:" - -#: mod/settings.php:897 -msgid "Security:" -msgstr "Seguridad:" - -#: mod/settings.php:897 mod/settings.php:902 -msgid "None" -msgstr "Ninguna" - -#: mod/settings.php:898 -msgid "Email login name:" -msgstr "Nombre de usuario:" - -#: mod/settings.php:899 -msgid "Email password:" -msgstr "Contraseña:" - -#: mod/settings.php:900 -msgid "Reply-to address:" -msgstr "Dirección de respuesta:" - -#: mod/settings.php:901 -msgid "Send public posts to all email contacts:" -msgstr "Enviar publicaciones públicas a todos los contactos de correo:" - -#: mod/settings.php:902 -msgid "Action after import:" -msgstr "Acción después de importar:" - -#: mod/settings.php:902 -msgid "Move to folder" -msgstr "Mover a un directorio" - -#: mod/settings.php:903 -msgid "Move to folder:" -msgstr "Mover al directorio:" - -#: mod/settings.php:994 -msgid "Display Settings" -msgstr "Configuración Tema/Visualización" - -#: mod/settings.php:1000 mod/settings.php:1023 -msgid "Display Theme:" -msgstr "Utilizar tema:" - -#: mod/settings.php:1001 -msgid "Mobile Theme:" -msgstr "Tema móvil:" - -#: mod/settings.php:1002 -msgid "Suppress warning of insecure networks" -msgstr "Suprimir el aviso de redes inseguras" - -#: mod/settings.php:1002 -msgid "" -"Should the system suppress the warning that the current group contains " -"members of networks that can't receive non public postings." -msgstr "Debería el sistema suprimir el aviso de que el grupo actual contiene miembros de redes que no pueden recibir publicaciones públicas." - -#: mod/settings.php:1003 -msgid "Update browser every xx seconds" -msgstr "Actualizar navegador cada xx segundos" - -#: mod/settings.php:1003 -msgid "Minimum of 10 seconds. Enter -1 to disable it." -msgstr "Minimo 10 segundos. Ingrese -1 para deshabilitar." - -#: mod/settings.php:1004 -msgid "Number of items to display per page:" -msgstr "Número de elementos a mostrar por página:" - -#: mod/settings.php:1004 mod/settings.php:1005 -msgid "Maximum of 100 items" -msgstr "Máximo 100 elementos" - -#: mod/settings.php:1005 -msgid "Number of items to display per page when viewed from mobile device:" -msgstr "Cantidad de objetos a visualizar cuando se usa un movil" - -#: mod/settings.php:1006 -msgid "Don't show emoticons" -msgstr "No mostrar emoticones" - -#: mod/settings.php:1007 -msgid "Calendar" -msgstr "Calendario" - -#: mod/settings.php:1008 -msgid "Beginning of week:" -msgstr "Principio de la semana:" - -#: mod/settings.php:1009 -msgid "Don't show notices" -msgstr "No mostrara avisos" - -#: mod/settings.php:1010 -msgid "Infinite scroll" -msgstr "pagina infinita (sroll)" - -#: mod/settings.php:1011 -msgid "Automatic updates only at the top of the network page" -msgstr "Actualizaciones automaticas solo estando al principio de la pagina" - -#: mod/settings.php:1012 -msgid "Bandwith Saver Mode" -msgstr "Modo de guardado de ancho de banda" - -#: mod/settings.php:1012 -msgid "" -"When enabled, embedded content is not displayed on automatic updates, they " -"only show on page reload." -msgstr "Cuando está habilitado, el contenido incrustado no se muestra en las actualizaciones automáticas, sólo en las páginas recargadas." - -#: mod/settings.php:1014 -msgid "General Theme Settings" -msgstr "Ajustes generales de tema" - -#: mod/settings.php:1015 -msgid "Custom Theme Settings" -msgstr "Ajustes personalizados de tema" - -#: mod/settings.php:1016 -msgid "Content Settings" -msgstr "Ajustes de contenido" - -#: mod/settings.php:1017 view/theme/frio/config.php:61 -#: view/theme/quattro/config.php:66 view/theme/vier/config.php:109 -#: view/theme/duepuntozero/config.php:61 -msgid "Theme settings" -msgstr "Configuración del Tema" - -#: mod/settings.php:1099 -msgid "Account Types" -msgstr "Tipos de cuenta" - -#: mod/settings.php:1100 -msgid "Personal Page Subtypes" -msgstr "Subtipos de página personal" - -#: mod/settings.php:1101 -msgid "Community Forum Subtypes" -msgstr "Subtipos de foro de comunidad" - -#: mod/settings.php:1108 -msgid "Personal Page" -msgstr "Página personal" - -#: mod/settings.php:1109 -msgid "This account is a regular personal profile" -msgstr "Esta cuenta es un perfil personal corriente" - -#: mod/settings.php:1112 -msgid "Organisation Page" -msgstr "Página de organización" - -#: mod/settings.php:1113 -msgid "This account is a profile for an organisation" -msgstr "Esta cuenta es un perfil de una organización" - -#: mod/settings.php:1116 -msgid "News Page" -msgstr "Página de noticias" - -#: mod/settings.php:1117 -msgid "This account is a news account/reflector" -msgstr "Esta cuenta es una cuenta de noticias/reflectora" - -#: mod/settings.php:1120 -msgid "Community Forum" -msgstr "Foro de la comunidad" - -#: mod/settings.php:1121 -msgid "" -"This account is a community forum where people can discuss with each other" -msgstr "Esta cuenta es un foro de comunidad donde la gente puede debatir con otros" - -#: mod/settings.php:1124 -msgid "Normal Account Page" -msgstr "Página de cuenta normal" - -#: mod/settings.php:1125 -msgid "This account is a normal personal profile" -msgstr "Esta cuenta es el perfil personal normal" - -#: mod/settings.php:1128 -msgid "Soapbox Page" -msgstr "Página de tribuna" - -#: mod/settings.php:1129 -msgid "Automatically approve all connection/friend requests as read-only fans" -msgstr "Acepta automáticamente todas las peticiones de conexión/amistad como seguidores de solo-lectura" - -#: mod/settings.php:1132 -msgid "Public Forum" -msgstr "Foro público" - -#: mod/settings.php:1133 -msgid "Automatically approve all contact requests" -msgstr "Aprovar autimáticamente todas las solicitudes de contacto" - -#: mod/settings.php:1136 -msgid "Automatic Friend Page" -msgstr "Página de Amistad autómatica" - -#: mod/settings.php:1137 -msgid "Automatically approve all connection/friend requests as friends" -msgstr "Aceptar automáticamente todas las solicitudes de conexión/amistad como amigos" - -#: mod/settings.php:1140 -msgid "Private Forum [Experimental]" -msgstr "Foro privado [Experimental]" - -#: mod/settings.php:1141 -msgid "Private forum - approved members only" -msgstr "Foro privado - solo miembros" - -#: mod/settings.php:1153 -msgid "OpenID:" -msgstr "OpenID:" - -#: mod/settings.php:1153 -msgid "(Optional) Allow this OpenID to login to this account." -msgstr "(Opcional) Permitir a este OpenID acceder a esta cuenta." - -#: mod/settings.php:1163 -msgid "Publish your default profile in your local site directory?" -msgstr "¿Quieres publicar tu perfil predeterminado en el directorio local del sitio?" - -#: mod/settings.php:1169 -msgid "Publish your default profile in the global social directory?" -msgstr "¿Quieres publicar tu perfil predeterminado en el directorio social de forma global?" - -#: mod/settings.php:1177 -msgid "Hide your contact/friend list from viewers of your default profile?" -msgstr "¿Quieres ocultar tu lista de contactos/amigos en la vista de tu perfil predeterminado?" - -#: mod/settings.php:1181 -msgid "" -"If enabled, posting public messages to Diaspora and other networks isn't " -"possible." -msgstr "Si habilitado, enviar temas públicos a a Diaspora* y otras redes no es posible. " - -#: mod/settings.php:1186 -msgid "Allow friends to post to your profile page?" -msgstr "¿Permites que tus amigos publiquen en tu página de perfil?" - -#: mod/settings.php:1192 -msgid "Allow friends to tag your posts?" -msgstr "¿Permites a los amigos etiquetar tus publicaciones?" - -#: mod/settings.php:1198 -msgid "Allow us to suggest you as a potential friend to new members?" -msgstr "¿Nos permite recomendarte como amigo potencial a los nuevos miembros?" - -#: mod/settings.php:1204 -msgid "Permit unknown people to send you private mail?" -msgstr "¿Permites que desconocidos te manden correos privados?" - -#: mod/settings.php:1212 -msgid "Profile is not published." -msgstr "El perfil no está publicado." - -#: mod/settings.php:1220 -#, php-format -msgid "Your Identity Address is '%s' or '%s'." -msgstr "Su dirección de identidad es '%s' o '%s'." - -#: mod/settings.php:1227 -msgid "Automatically expire posts after this many days:" -msgstr "Las publicaciones expirarán automáticamente después de estos días:" - -#: mod/settings.php:1227 -msgid "If empty, posts will not expire. Expired posts will be deleted" -msgstr "Si lo dejas vacío no expirarán nunca. Las publicaciones que hayan expirado se borrarán" - -#: mod/settings.php:1228 -msgid "Advanced expiration settings" -msgstr "Configuración avanzada de expiración" - -#: mod/settings.php:1229 -msgid "Advanced Expiration" -msgstr "Expiración avanzada" - -#: mod/settings.php:1230 -msgid "Expire posts:" -msgstr "¿Expiran las publicaciones?" - -#: mod/settings.php:1231 -msgid "Expire personal notes:" -msgstr "¿Expiran las notas personales?" - -#: mod/settings.php:1232 -msgid "Expire starred posts:" -msgstr "¿Expiran los favoritos?" - -#: mod/settings.php:1233 -msgid "Expire photos:" -msgstr "¿Expiran las fotografías?" - -#: mod/settings.php:1234 -msgid "Only expire posts by others:" -msgstr "Solo expiran los mensajes de los demás:" - -#: mod/settings.php:1262 -msgid "Account Settings" -msgstr "Configuración de la cuenta" - -#: mod/settings.php:1270 -msgid "Password Settings" -msgstr "Configuración de la contraseña" - -#: mod/settings.php:1272 -msgid "Leave password fields blank unless changing" -msgstr "Deja la contraseña en blanco si no quieres cambiarla" - -#: mod/settings.php:1273 -msgid "Current Password:" -msgstr "Contraseña actual:" - -#: mod/settings.php:1273 mod/settings.php:1274 -msgid "Your current password to confirm the changes" -msgstr "Su contraseña actual para confirmar los cambios." - -#: mod/settings.php:1274 -msgid "Password:" -msgstr "Contraseña:" - -#: mod/settings.php:1278 -msgid "Basic Settings" -msgstr "Configuración básica" - -#: mod/settings.php:1280 -msgid "Email Address:" -msgstr "Dirección de correo:" - -#: mod/settings.php:1281 -msgid "Your Timezone:" -msgstr "Zona horaria:" - -#: mod/settings.php:1282 -msgid "Your Language:" -msgstr "Tu idioma:" - -#: mod/settings.php:1282 -msgid "" -"Set the language we use to show you friendica interface and to send you " -"emails" -msgstr "Selecciona el idioma que se usara para la interfaz del usuario y para el envío de correo." - -#: mod/settings.php:1283 -msgid "Default Post Location:" -msgstr "Localización predeterminada:" - -#: mod/settings.php:1284 -msgid "Use Browser Location:" -msgstr "Usar localización del navegador:" - -#: mod/settings.php:1287 -msgid "Security and Privacy Settings" -msgstr "Configuración de seguridad y privacidad" - -#: mod/settings.php:1289 -msgid "Maximum Friend Requests/Day:" -msgstr "Máximo número de peticiones de amistad por día:" - -#: mod/settings.php:1289 mod/settings.php:1319 -msgid "(to prevent spam abuse)" -msgstr "(para prevenir el abuso de spam)" - -#: mod/settings.php:1290 -msgid "Default Post Permissions" -msgstr "Permisos por defecto para las publicaciones" - -#: mod/settings.php:1291 -msgid "(click to open/close)" -msgstr "(pulsa para abrir/cerrar)" - -#: mod/settings.php:1302 -msgid "Default Private Post" -msgstr "Publicación Privada por defecto" - -#: mod/settings.php:1303 -msgid "Default Public Post" -msgstr "Publicación Pública por defecto" - -#: mod/settings.php:1307 -msgid "Default Permissions for New Posts" -msgstr "Permisos por defecto para nuevas publicaciones" - -#: mod/settings.php:1319 -msgid "Maximum private messages per day from unknown people:" -msgstr "Número máximo de mensajes diarios para desconocidos:" - -#: mod/settings.php:1322 -msgid "Notification Settings" -msgstr "Configuración de notificaciones" - -#: mod/settings.php:1323 -msgid "By default post a status message when:" -msgstr "Publicar en tu estado cuando:" - -#: mod/settings.php:1324 -msgid "accepting a friend request" -msgstr "aceptes una solicitud de amistad" - -#: mod/settings.php:1325 -msgid "joining a forum/community" -msgstr "te unas a un foro/comunidad" - -#: mod/settings.php:1326 -msgid "making an interesting profile change" -msgstr "hagas un cambio interesante en tu perfil" - -#: mod/settings.php:1327 -msgid "Send a notification email when:" -msgstr "Enviar notificación por correo cuando:" - -#: mod/settings.php:1328 -msgid "You receive an introduction" -msgstr "Recibas una presentación" - -#: mod/settings.php:1329 -msgid "Your introductions are confirmed" -msgstr "Tu presentación sea confirmada" - -#: mod/settings.php:1330 -msgid "Someone writes on your profile wall" -msgstr "Alguien escriba en el muro de mi perfil" - -#: mod/settings.php:1331 -msgid "Someone writes a followup comment" -msgstr "Algien escriba en un comentario que sigo" - -#: mod/settings.php:1332 -msgid "You receive a private message" -msgstr "Recibas un mensaje privado" - -#: mod/settings.php:1333 -msgid "You receive a friend suggestion" -msgstr "Recibas una sugerencia de amistad" - -#: mod/settings.php:1334 -msgid "You are tagged in a post" -msgstr "Seas etiquetado en una publicación" - -#: mod/settings.php:1335 -msgid "You are poked/prodded/etc. in a post" -msgstr "Te han tocado/empujado/etc. en una publicación" - -#: mod/settings.php:1337 -msgid "Activate desktop notifications" -msgstr "Activar notificaciones en pantalla." - -#: mod/settings.php:1337 -msgid "Show desktop popup on new notifications" -msgstr "Mostrar notificaciones emergentes en caso de nuevos eventos." - -#: mod/settings.php:1339 -msgid "Text-only notification emails" -msgstr "Notificaciones e-mail de solo texto" - -#: mod/settings.php:1341 -msgid "Send text only notification emails, without the html part" -msgstr "Enviar las notificaciones por correo con formato de solo texto sin html." - -#: mod/settings.php:1343 -msgid "Advanced Account/Page Type Settings" -msgstr "Configuración avanzada de tipo de Cuenta/Página" - -#: mod/settings.php:1344 -msgid "Change the behaviour of this account for special situations" -msgstr "Cambiar el comportamiento de esta cuenta para situaciones especiales" - -#: mod/settings.php:1347 -msgid "Relocate" -msgstr "Relocalizar" - -#: mod/settings.php:1348 -msgid "" -"If you have moved this profile from another server, and some of your " -"contacts don't receive your updates, try pushing this button." -msgstr "Si ha migrado este perfil desde otro servidor aquí y algunos contactos no reciben sus publicaciones intente recomunicar su ubicación a traves este botón. (Como para decir el botón de los botones)" - -#: mod/settings.php:1349 -msgid "Resend relocate message to contacts" -msgstr "Reenviar mensaje de relocalización a los contactos" - -#: mod/wallmessage.php:42 mod/wallmessage.php:112 -#, php-format -msgid "Number of daily wall messages for %s exceeded. Message failed." -msgstr "Excedido el número máximo de mensajes para %s. El mensaje no se ha enviado." - -#: mod/wallmessage.php:56 mod/message.php:71 -msgid "No recipient selected." -msgstr "Ningún destinatario seleccionado" - -#: mod/wallmessage.php:59 -msgid "Unable to check your home location." -msgstr "Imposible comprobar tu servidor de inicio." - -#: mod/wallmessage.php:62 mod/message.php:78 -msgid "Message could not be sent." -msgstr "El mensaje no ha podido ser enviado." - -#: mod/wallmessage.php:65 mod/message.php:81 -msgid "Message collection failure." -msgstr "Fallo en la recolección de mensajes." - -#: mod/wallmessage.php:68 mod/message.php:84 -msgid "Message sent." -msgstr "Mensaje enviado." - -#: mod/wallmessage.php:86 mod/wallmessage.php:95 -msgid "No recipient." -msgstr "Sin receptor." - -#: mod/wallmessage.php:142 mod/message.php:341 -msgid "Send Private Message" -msgstr "Enviar mensaje privado" - -#: mod/wallmessage.php:143 -#, php-format -msgid "" -"If you wish for %s to respond, please check that the privacy settings on " -"your site allow private mail from unknown senders." -msgstr "Si quieres que %s te responda, asegúrate de que la configuración de privacidad permite enviar correo privado a desconocidos." - -#: mod/wallmessage.php:144 mod/message.php:342 mod/message.php:536 -msgid "To:" -msgstr "Para:" - -#: mod/wallmessage.php:145 mod/message.php:347 mod/message.php:538 -msgid "Subject:" -msgstr "Asunto:" - -#: mod/share.php:38 -msgid "link" -msgstr "enlace" - -#: mod/api.php:76 mod/api.php:102 -msgid "Authorize application connection" -msgstr "Autorizar la conexión de la aplicación" - -#: mod/api.php:77 -msgid "Return to your app and insert this Securty Code:" -msgstr "Regresa a tu aplicación e introduce este código de seguridad:" - -#: mod/api.php:89 -msgid "Please login to continue." -msgstr "Inicia sesión para continuar." - -#: mod/api.php:104 -msgid "" -"Do you want to authorize this application to access your posts and contacts," -" and/or create new posts for you?" -msgstr "¿Quieres autorizar a esta aplicación el acceso a tus mensajes y contactos, y/o crear nuevas publicaciones para ti?" - -#: mod/babel.php:17 -msgid "Source (bbcode) text:" -msgstr "Texto fuente (bbcode):" - -#: mod/babel.php:23 -msgid "Source (Diaspora) text to convert to BBcode:" -msgstr "Fuente (Diaspora) para pasar a BBcode:" - -#: mod/babel.php:31 -msgid "Source input: " -msgstr "Entrada: " - -#: mod/babel.php:35 -msgid "bb2html (raw HTML): " -msgstr "bb2html (raw HTML): " - -#: mod/babel.php:39 -msgid "bb2html: " -msgstr "bb2html: " - -#: mod/babel.php:43 -msgid "bb2html2bb: " -msgstr "bb2html2bb: " - -#: mod/babel.php:47 -msgid "bb2md: " -msgstr "bb2md: " - -#: mod/babel.php:51 -msgid "bb2md2html: " -msgstr "bb2md2html: " - -#: mod/babel.php:55 -msgid "bb2dia2bb: " -msgstr "bb2dia2bb: " - -#: mod/babel.php:59 -msgid "bb2md2html2bb: " -msgstr "bb2md2html2bb: " - -#: mod/babel.php:69 -msgid "Source input (Diaspora format): " -msgstr "Fuente (formato Diaspora): " - -#: mod/babel.php:74 -msgid "diaspora2bb: " -msgstr "diaspora2bb: " - -#: mod/item.php:116 -msgid "Unable to locate original post." -msgstr "No se puede encontrar la publicación original." - -#: mod/item.php:340 -msgid "Empty post discarded." -msgstr "Publicación vacía descartada." - -#: mod/item.php:898 -msgid "System error. Post not saved." -msgstr "Error del sistema. Mensaje no guardado." - -#: mod/item.php:988 -#, php-format -msgid "" -"This message was sent to you by %s, a member of the Friendica social " -"network." -msgstr "Este mensaje te lo ha enviado %s, miembro de la red social Friendica." - -#: mod/item.php:990 -#, php-format -msgid "You may visit them online at %s" -msgstr "Los puedes visitar en línea en %s" - -#: mod/item.php:991 -msgid "" -"Please contact the sender by replying to this post if you do not wish to " -"receive these messages." -msgstr "Por favor contacta con el remitente respondiendo a este mensaje si no deseas recibir estos mensajes." - -#: mod/item.php:995 -#, php-format -msgid "%s posted an update." -msgstr "%s ha publicado una actualización." - -#: mod/ostatus_subscribe.php:14 -msgid "Subscribing to OStatus contacts" -msgstr "Subscribir a los contactos de OStatus" - -#: mod/ostatus_subscribe.php:25 -msgid "No contact provided." -msgstr "Sin suministro de datos de contacto." - -#: mod/ostatus_subscribe.php:30 -msgid "Couldn't fetch information for contact." -msgstr "No se ha podido conseguir la información del contacto." - -#: mod/ostatus_subscribe.php:38 -msgid "Couldn't fetch friends for contact." -msgstr "No se ha podido conseguir datos de amigos para contactar." - -#: mod/ostatus_subscribe.php:65 -msgid "success" -msgstr "exito!" - -#: mod/ostatus_subscribe.php:67 -msgid "failed" -msgstr "fallido!" - -#: mod/dfrn_poll.php:104 mod/dfrn_poll.php:537 -#, php-format -msgid "%1$s welcomes %2$s" -msgstr "%1$s te da la bienvenida a %2$s" - -#: mod/profile.php:179 -msgid "Tips for New Members" -msgstr "Consejos para nuevos miembros" - -#: mod/message.php:75 -msgid "Unable to locate contact information." -msgstr "No se puede encontrar información del contacto." - -#: mod/message.php:215 -msgid "Do you really want to delete this message?" -msgstr "¿Estás seguro de que quieres borrar este mensaje?" - -#: mod/message.php:235 -msgid "Message deleted." -msgstr "Mensaje eliminado." - -#: mod/message.php:266 -msgid "Conversation removed." -msgstr "Conversación eliminada." - -#: mod/message.php:383 -msgid "No messages." -msgstr "No hay mensajes." - -#: mod/message.php:426 -msgid "Message not available." -msgstr "Mensaje no disponibile." - -#: mod/message.php:503 -msgid "Delete message" -msgstr "Borrar mensaje" - -#: mod/message.php:529 mod/message.php:609 -msgid "Delete conversation" -msgstr "Eliminar conversación" - -#: mod/message.php:531 -msgid "" -"No secure communications available. You may be able to " -"respond from the sender's profile page." -msgstr "No hay comunicaciones seguras disponibles. Podrías responder desde la página de perfil del remitente. " - -#: mod/message.php:535 -msgid "Send Reply" -msgstr "Enviar respuesta" - -#: mod/message.php:579 -#, php-format -msgid "Unknown sender - %s" -msgstr "Remitente desconocido - %s" - -#: mod/message.php:581 -#, php-format -msgid "You and %s" -msgstr "Tú y %s" - -#: mod/message.php:583 -#, php-format -msgid "%s and You" -msgstr "%s y Tú" - -#: mod/message.php:612 -msgid "D, d M Y - g:i A" -msgstr "D, d M Y - g:i A" - -#: mod/message.php:615 -#, php-format -msgid "%d message" -msgid_plural "%d messages" -msgstr[0] "%d mensaje" -msgstr[1] "%d mensajes" - -#: mod/manage.php:139 -msgid "Manage Identities and/or Pages" -msgstr "Administrar identidades y/o páginas" - -#: mod/manage.php:140 -msgid "" -"Toggle between different identities or community/group pages which share " -"your account details or which you have been granted \"manage\" permissions" -msgstr "Cambia entre diferentes identidades o páginas de Comunidad/Grupos que comparten los detalles de tu cuenta o sobre los que tienes permisos para administrar" - -#: mod/manage.php:141 -msgid "Select an identity to manage: " -msgstr "Selecciona una identidad a gestionar:" +#: mod/viewcontacts.php:72 +msgid "No contacts." +msgstr "Ningún contacto." #: object/Item.php:370 msgid "via" @@ -8767,14 +8733,6 @@ msgstr "Reajustar al mejor tamaño" msgid "Resize to best fit and retain aspect ratio." msgstr "Reajustar al mejor tamaño y conservar proporción" -#: view/theme/frio/theme.php:229 -msgid "Guest" -msgstr "Invitado" - -#: view/theme/frio/theme.php:235 -msgid "Visitor" -msgstr "Visitante" - #: view/theme/frio/config.php:42 msgid "Default" msgstr "Por defecto" @@ -8815,6 +8773,14 @@ msgstr "Transparencia de contenido de fondo" msgid "Set the background image" msgstr "Seleccionar la imagen de fondo" +#: view/theme/frio/theme.php:229 +msgid "Guest" +msgstr "Invitado" + +#: view/theme/frio/theme.php:235 +msgid "Visitor" +msgstr "Visitante" + #: view/theme/quattro/config.php:67 msgid "Alignment" msgstr "Alineación" @@ -8906,3 +8872,56 @@ msgstr "slackr" #: view/theme/duepuntozero/config.php:62 msgid "Variations" msgstr "Variaciones" + +#: boot.php:970 +msgid "Delete this item?" +msgstr "¿Eliminar este elemento?" + +#: boot.php:973 +msgid "show fewer" +msgstr "ver menos" + +#: boot.php:1655 +#, php-format +msgid "Update %s failed. See error logs." +msgstr "Falló la actualización de %s. Mira los registros de errores." + +#: boot.php:1767 +msgid "Create a New Account" +msgstr "Crear una nueva cuenta" + +#: boot.php:1796 +msgid "Password: " +msgstr "Contraseña: " + +#: boot.php:1797 +msgid "Remember me" +msgstr "Recordarme" + +#: boot.php:1800 +msgid "Or login using OpenID: " +msgstr "O inicia sesión usando OpenID: " + +#: boot.php:1806 +msgid "Forgot your password?" +msgstr "¿Olvidaste la contraseña?" + +#: boot.php:1809 +msgid "Website Terms of Service" +msgstr "Términos de uso del sitio" + +#: boot.php:1810 +msgid "terms of service" +msgstr "Términos de uso" + +#: boot.php:1812 +msgid "Website Privacy Policy" +msgstr "Política de privacidad del sitio" + +#: boot.php:1813 +msgid "privacy policy" +msgstr "Política de privacidad" + +#: index.php:451 +msgid "toggle mobile" +msgstr "Cambiar a versión móvil" diff --git a/view/lang/es/strings.php b/view/lang/es/strings.php index f733f465a8..d8c0e84fde 100644 --- a/view/lang/es/strings.php +++ b/view/lang/es/strings.php @@ -5,48 +5,6 @@ function string_plural_select_es($n){ return ($n != 1);; }} ; -$a->strings["Delete this item?"] = "¿Eliminar este elemento?"; -$a->strings["Comment"] = "Comentar"; -$a->strings["show more"] = "ver más"; -$a->strings["show fewer"] = "ver menos"; -$a->strings["Update %s failed. See error logs."] = "Falló la actualización de %s. Mira los registros de errores."; -$a->strings["Create a New Account"] = "Crear una nueva cuenta"; -$a->strings["Register"] = "Registrarse"; -$a->strings["Logout"] = "Salir"; -$a->strings["Login"] = "Acceder"; -$a->strings["Nickname or Email: "] = "Apodo o Correo electrónico: "; -$a->strings["Password: "] = "Contraseña: "; -$a->strings["Remember me"] = "Recordarme"; -$a->strings["Or login using OpenID: "] = "O inicia sesión usando OpenID: "; -$a->strings["Forgot your password?"] = "¿Olvidaste la contraseña?"; -$a->strings["Password Reset"] = "Restablecer la contraseña"; -$a->strings["Website Terms of Service"] = "Términos de uso del sitio"; -$a->strings["terms of service"] = "Términos de uso"; -$a->strings["Website Privacy Policy"] = "Política de privacidad del sitio"; -$a->strings["privacy policy"] = "Política de privacidad"; -$a->strings["Miscellaneous"] = "Varios"; -$a->strings["Birthday:"] = "Fecha de nacimiento:"; -$a->strings["Age: "] = "Edad: "; -$a->strings["YYYY-MM-DD or MM-DD"] = "YYYY-MM-DD o MM-DD"; -$a->strings["never"] = "nunca"; -$a->strings["less than a second ago"] = "hace menos de un segundo"; -$a->strings["year"] = "año"; -$a->strings["years"] = "años"; -$a->strings["month"] = "mes"; -$a->strings["months"] = "meses"; -$a->strings["week"] = "semana"; -$a->strings["weeks"] = "semanas"; -$a->strings["day"] = "día"; -$a->strings["days"] = "días"; -$a->strings["hour"] = "hora"; -$a->strings["hours"] = "horas"; -$a->strings["minute"] = "minuto"; -$a->strings["minutes"] = "minutos"; -$a->strings["second"] = "segundo"; -$a->strings["seconds"] = "segundos"; -$a->strings["%1\$d %2\$s ago"] = "hace %1\$d %2\$s"; -$a->strings["%s's birthday"] = "Cumpleaños de %s"; -$a->strings["Happy Birthday %s"] = "Feliz cumpleaños %s"; $a->strings["Add New Contact"] = "Añadir nuevo contacto"; $a->strings["Enter address or web location"] = "Escribe la dirección o página web"; $a->strings["Example: bob@example.com, http://example.com/barbara"] = "Ejemplo: miguel@ejemplo.com, http://ejemplo.com/miguel"; @@ -73,158 +31,9 @@ $a->strings["%d contact in common"] = array( 0 => "%d contacto en común", 1 => "%d contactos en común", ); -$a->strings["System"] = "Sistema"; -$a->strings["Network"] = "Red"; -$a->strings["Personal"] = "Personal"; -$a->strings["Home"] = "Inicio"; -$a->strings["Introductions"] = "Presentaciones"; -$a->strings["%s commented on %s's post"] = "%s comentó la publicación de %s"; -$a->strings["%s created a new post"] = "%s creó una nueva publicación"; -$a->strings["%s liked %s's post"] = "A %s le gusta la publicación de %s"; -$a->strings["%s disliked %s's post"] = "A %s no le gusta la publicación de %s"; -$a->strings["%s is attending %s's event"] = "%s está asistiendo al evento %s's"; -$a->strings["%s is not attending %s's event"] = "%s no está asistiendo al evento %s's"; -$a->strings["%s may attend %s's event"] = "%s podría asistir al evento %s's"; -$a->strings["%s is now friends with %s"] = "%s es ahora es amigo de %s"; -$a->strings["Friend Suggestion"] = "Propuestas de amistad"; -$a->strings["Friend/Connect Request"] = "Solicitud de Amistad/Conexión"; -$a->strings["New Follower"] = "Nuevo seguidor"; -$a->strings["Friendica Notification"] = "Notificación de Friendica"; -$a->strings["Thank You,"] = "Gracias,"; -$a->strings["%s Administrator"] = "%s Administrador"; -$a->strings["%1\$s, %2\$s Administrator"] = "%1\$s, %2\$s Administrador"; -$a->strings["noreply"] = "no responder"; -$a->strings["%s "] = "%s "; -$a->strings["[Friendica:Notify] New mail received at %s"] = "[Friendica:Notificación] Nuevo correo recibido de %s"; -$a->strings["%1\$s sent you a new private message at %2\$s."] = "%1\$s te ha enviado un mensaje privado desde %2\$s."; -$a->strings["%1\$s sent you %2\$s."] = "%1\$s te ha enviado %2\$s."; -$a->strings["a private message"] = "un mensaje privado"; -$a->strings["Please visit %s to view and/or reply to your private messages."] = "Por favor, visita %s para ver y/o responder a tus mensajes privados."; -$a->strings["%1\$s commented on [url=%2\$s]a %3\$s[/url]"] = "%1\$s comentó en [url=%2\$s]a %3\$s[/url]"; -$a->strings["%1\$s commented on [url=%2\$s]%3\$s's %4\$s[/url]"] = "%1\$s comentó en [url=%2\$s] %4\$s de %3\$s[/url]"; -$a->strings["%1\$s commented on [url=%2\$s]your %3\$s[/url]"] = "%1\$s comentó en [url=%2\$s] tu %3\$s[/url]"; -$a->strings["[Friendica:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Friendica:Notificación] Comentario en la conversación de #%1\$d por %2\$s"; -$a->strings["%s commented on an item/conversation you have been following."] = "%s ha comentado en una conversación/elemento que sigues."; -$a->strings["Please visit %s to view and/or reply to the conversation."] = "Por favor, visita %s para ver y/o responder a la conversación."; -$a->strings["[Friendica:Notify] %s posted to your profile wall"] = "[Friendica:Notificación] %s publicó en tu muro"; -$a->strings["%1\$s posted to your profile wall at %2\$s"] = "%1\$s publicó en tu perfil de %2\$s"; -$a->strings["%1\$s posted to [url=%2\$s]your wall[/url]"] = "%1\$s publicó en [url=%2\$s]tu muro[/url]"; -$a->strings["[Friendica:Notify] %s tagged you"] = "[Friendica:Notificación] %s te ha nombrado"; -$a->strings["%1\$s tagged you at %2\$s"] = "%1\$s te ha nombrado en %2\$s"; -$a->strings["%1\$s [url=%2\$s]tagged you[/url]."] = "%1\$s [url=%2\$s]te nombró[/url]."; -$a->strings["[Friendica:Notify] %s shared a new post"] = "[Notificacion Friendica] %s compartio una nueva publicacion"; -$a->strings["%1\$s shared a new post at %2\$s"] = "%1\$s compartió un nuevo tema en %2\$s"; -$a->strings["%1\$s [url=%2\$s]shared a post[/url]."] = "%1\$s [url=%2\$s]compartió una publicación[/url]."; -$a->strings["[Friendica:Notify] %1\$s poked you"] = "[Friendica:Notify] %1\$s te dio un toque"; -$a->strings["%1\$s poked you at %2\$s"] = "%1\$s te dio un toque en %2\$s"; -$a->strings["%1\$s [url=%2\$s]poked you[/url]."] = "%1\$s [url=%2\$s]te dio un toque[/url]."; -$a->strings["[Friendica:Notify] %s tagged your post"] = "[Friendica:Notificación] %s ha etiquetado tu publicación"; -$a->strings["%1\$s tagged your post at %2\$s"] = "%1\$s ha etiquetado tu publicación en %2\$s"; -$a->strings["%1\$s tagged [url=%2\$s]your post[/url]"] = "%1\$s ha etiquetado [url=%2\$s]tu publicación[/url]"; -$a->strings["[Friendica:Notify] Introduction received"] = "[Friendica:Notificación] Presentación recibida"; -$a->strings["You've received an introduction from '%1\$s' at %2\$s"] = "Has recibido una presentación de '%1\$s' en %2\$s"; -$a->strings["You've received [url=%1\$s]an introduction[/url] from %2\$s."] = "Has recibido [url=%1\$s]una presentación[/url] de %2\$s."; -$a->strings["You may visit their profile at %s"] = "Puedes visitar su perfil en %s"; -$a->strings["Please visit %s to approve or reject the introduction."] = "Visita %s para aceptar o rechazar la presentación por favor."; -$a->strings["[Friendica:Notify] A new person is sharing with you"] = "[Notificación:Friendica] Un nuevo contacto comparte contigo"; -$a->strings["%1\$s is sharing with you at %2\$s"] = "%1\$s comparte con tigo en %2\$s"; -$a->strings["[Friendica:Notify] You have a new follower"] = "[Notificación:Friendica] Tienes un nuevo seguidor"; -$a->strings["You have a new follower at %2\$s : %1\$s"] = "Tienes un nuevo seguidor en %2\$s : %1\$s"; -$a->strings["[Friendica:Notify] Friend suggestion received"] = "[Friendica:Notificación] Sugerencia de amigo recibida"; -$a->strings["You've received a friend suggestion from '%1\$s' at %2\$s"] = "Has recibido una sugerencia de amigo de '%1\$s' en %2\$s"; -$a->strings["You've received [url=%1\$s]a friend suggestion[/url] for %2\$s from %3\$s."] = "Has recibido [url=%1\$s]una sugerencia de amigo[/url] en %2\$s de %3\$s."; -$a->strings["Name:"] = "Nombre: "; -$a->strings["Photo:"] = "Foto: "; -$a->strings["Please visit %s to approve or reject the suggestion."] = "Visita %s para aceptar o rechazar la sugerencia por favor."; -$a->strings["[Friendica:Notify] Connection accepted"] = "[Notificación:Friendica] Conexión aceptada"; -$a->strings["'%1\$s' has accepted your connection request at %2\$s"] = "'%1\$s' acepto tu consulta de conexión %2\$s"; -$a->strings["%2\$s has accepted your [url=%1\$s]connection request[/url]."] = "%2\$s hacepto tu [url=%1\$s]consulta de conexión[/url]."; -$a->strings["You are now mutual friends and may exchange status updates, photos, and email without restriction."] = "Ahora tiene amigos en común y puede intercambiar actualizaciones de estado, fotos y email sin restricción."; -$a->strings["Please visit %s if you wish to make any changes to this relationship."] = "Por favor visite %s si desea hacer algún cambio a su relación."; -$a->strings["'%1\$s' has chosen to accept you a \"fan\", which restricts some forms of communication - such as private messaging and some profile interactions. If this is a celebrity or community page, these settings were applied automatically."] = "'%1\$s' eligió de aceptarte como fan/hincha lo que restringe algunas formas de comunicación - tales como mensajes privados y algunas interacciones de los perfiles. Si esto es una pagina de celebridad o comunidad, estas configuraciones se adoptaron automáticamente."; -$a->strings["'%1\$s' may choose to extend this into a two-way or more permissive relationship in the future."] = "'%1\$s' puede elegir extender esto en una relación más permisiva o ambidireccional en el futuro."; -$a->strings["Please visit %s if you wish to make any changes to this relationship."] = "Por favor visita %s si es preciso de hacer algún cambio a la relación con este contacto."; -$a->strings["[Friendica System:Notify] registration request"] = "[Notificacion:Friendica] consulta de registro"; -$a->strings["You've received a registration request from '%1\$s' at %2\$s"] = "Recibiste una consulta de registro de '%1\$s' en %2\$s"; -$a->strings["You've received a [url=%1\$s]registration request[/url] from %2\$s."] = "Recibiste una [url=%1\$s]consulta de registro[/url] from %2\$s."; -$a->strings["Full Name:\t%1\$s\\nSite Location:\t%2\$s\\nLogin Name:\t%3\$s (%4\$s)"] = "Nombre completo:\t%1\$s\\nUbicación del sitio:\t%2\$s\\nLogin Nombre:\t%3\$s (%4\$s)"; -$a->strings["Please visit %s to approve or reject the request."] = "Por favor visita %s para aprobar o negar la solicitud."; -$a->strings["Click here to upgrade."] = "Pulsa aquí para actualizar."; -$a->strings["This action exceeds the limits set by your subscription plan."] = "Esta acción excede los límites permitidos por tu subscripción."; -$a->strings["This action is not available under your subscription plan."] = "Esta acción no está permitida para tu subscripción."; +$a->strings["show more"] = "ver más"; $a->strings["Forums"] = "Foros"; $a->strings["External link to forum"] = "Enlace externo al foro"; -$a->strings["%1\$s likes %2\$s's %3\$s"] = "A %1\$s le gusta %3\$s de %2\$s"; -$a->strings["status"] = "estado"; -$a->strings["Sharing notification from Diaspora network"] = "Compartir notificaciones con la red Diaspora*"; -$a->strings["Attachments:"] = "Archivos adjuntos:"; -$a->strings["%s\\'s birthday"] = "%s\\'s cumpleaños"; -$a->strings["Error decoding account file"] = "Error decodificando el archivo de cuenta"; -$a->strings["Error! No version data in file! This is not a Friendica account file?"] = "Error! No hay datos de versión en el archivo! ¿Es esto de una cuenta friendica? "; -$a->strings["Error! Cannot check nickname"] = "Error! No puedo consultar el apodo"; -$a->strings["User '%s' already exists on this server!"] = "La cuenta '%s' ya existe en este servidor!"; -$a->strings["User creation error"] = "Error al crear la cuenta"; -$a->strings["User profile creation error"] = "Error de creación del perfil de la cuenta"; -$a->strings["%d contact not imported"] = array( - 0 => "%d contactos no encontrado", - 1 => "%d contactos no importado", -); -$a->strings["Done. You can now login with your username and password"] = "Hecho. Ahora podes ingresar con tu nombre de cuenta y la contraseña."; -$a->strings["Cannot locate DNS info for database server '%s'"] = "No se puede encontrar información DNS para la base de datos del servidor '%s'"; -$a->strings["l F d, Y \\@ g:i A"] = "l F d, Y \\@ g:i A"; -$a->strings["Starts:"] = "Inicio:"; -$a->strings["Finishes:"] = "Final:"; -$a->strings["Location:"] = "Localización:"; -$a->strings["Sun"] = "Dom"; -$a->strings["Mon"] = "Lun"; -$a->strings["Tue"] = "Mar"; -$a->strings["Wed"] = "Mie"; -$a->strings["Thu"] = "Jue"; -$a->strings["Fri"] = "Vie"; -$a->strings["Sat"] = "Sab"; -$a->strings["Sunday"] = "Domingo"; -$a->strings["Monday"] = "Lunes"; -$a->strings["Tuesday"] = "Martes"; -$a->strings["Wednesday"] = "Miércoles"; -$a->strings["Thursday"] = "Jueves"; -$a->strings["Friday"] = "Viernes"; -$a->strings["Saturday"] = "Sábado"; -$a->strings["Jan"] = "Ene"; -$a->strings["Feb"] = "Feb"; -$a->strings["Mar"] = "Mar"; -$a->strings["Apr"] = "Abr"; -$a->strings["May"] = "Mayo"; -$a->strings["Jun"] = "Jun"; -$a->strings["Jul"] = "Jul"; -$a->strings["Aug"] = "Ago"; -$a->strings["Sept"] = "Sept"; -$a->strings["Oct"] = "Oct"; -$a->strings["Nov"] = "Nov"; -$a->strings["Dec"] = "Dec"; -$a->strings["January"] = "Enero"; -$a->strings["February"] = "Febrero"; -$a->strings["March"] = "Marzo"; -$a->strings["April"] = "Abril"; -$a->strings["June"] = "Junio"; -$a->strings["July"] = "Julio"; -$a->strings["August"] = "Agosto"; -$a->strings["September"] = "Septiembre"; -$a->strings["October"] = "Octubre"; -$a->strings["November"] = "Noviembre"; -$a->strings["December"] = "Diciembre"; -$a->strings["today"] = "hoy"; -$a->strings["all-day"] = "todo el día"; -$a->strings["No events to display"] = "No hay eventos a mostrar"; -$a->strings["l, F j"] = "l, F j"; -$a->strings["Edit event"] = "Editar evento"; -$a->strings["link to source"] = "Enlace al original"; -$a->strings["Export"] = "Exportar"; -$a->strings["Export calendar as ical"] = "Exportar calendario como ical"; -$a->strings["Export calendar as csv"] = "Exportar calendario como csv"; -$a->strings["Welcome "] = "Bienvenido "; -$a->strings["Please upload a profile photo."] = "Por favor sube una foto para tu perfil."; -$a->strings["Welcome back "] = "Bienvenido de nuevo "; -$a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "La ficha de seguridad no es correcta. Seguramente haya ocurrido por haber dejado el formulario abierto demasiado tiempo (>3 horas) antes de enviarlo."; $a->strings["Male"] = "Hombre"; $a->strings["Female"] = "Mujer"; $a->strings["Currently Male"] = "Actualmente Hombre"; @@ -286,80 +95,332 @@ $a->strings["Uncertain"] = "Incierto"; $a->strings["It's complicated"] = "Es complicado"; $a->strings["Don't care"] = "No te importa"; $a->strings["Ask me"] = "Pregúntame"; -$a->strings["[Name Withheld]"] = "[Nombre oculto]"; -$a->strings["Item not found."] = "Elemento no encontrado."; -$a->strings["Do you really want to delete this item?"] = "¿Realmente quieres borrar este objeto?"; -$a->strings["Yes"] = "Sí"; -$a->strings["Cancel"] = "Cancelar"; -$a->strings["Permission denied."] = "Permiso denegado."; -$a->strings["Archives"] = "Archivos"; -$a->strings["newer"] = "más nuevo"; -$a->strings["older"] = "más antiguo"; -$a->strings["prev"] = "ant."; -$a->strings["first"] = "primera"; -$a->strings["last"] = "última"; -$a->strings["next"] = "sig."; -$a->strings["Loading more entries..."] = "Cargar mas entradas .."; -$a->strings["The end"] = "El fin"; -$a->strings["No contacts"] = "Sin contactos"; -$a->strings["%d Contact"] = array( - 0 => "%d Contacto", - 1 => "%d Contactos", +$a->strings["Cannot locate DNS info for database server '%s'"] = "No se puede encontrar información DNS para la base de datos del servidor '%s'"; +$a->strings["Logged out."] = "Sesión finalizada"; +$a->strings["Login failed."] = "Accesso fallido."; +$a->strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Se ha encontrado un problema para acceder con el OpenID que has escrito. Verifica que lo hayas escrito correctamente."; +$a->strings["The error message was:"] = "El mensaje del error fue:"; +$a->strings["A deleted group with this name was revived. Existing item permissions may apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "Un grupo eliminado con este nombre fue restablecido. Los permisos existentes pueden aplicarse a este grupo y a sus futuros miembros. Si esto no es lo que pretendes, por favor, crea otro grupo con un nombre diferente."; +$a->strings["Default privacy group for new contacts"] = "Grupo por defecto para nuevos contactos"; +$a->strings["Everybody"] = "Todo el mundo"; +$a->strings["edit"] = "editar"; +$a->strings["Groups"] = "Grupos"; +$a->strings["Edit groups"] = "Editar grupo"; +$a->strings["Edit group"] = "Editar grupo"; +$a->strings["Create a new group"] = "Crear un nuevo grupo"; +$a->strings["Group Name: "] = "Nombre del grupo: "; +$a->strings["Contacts not in any group"] = "Contactos sin grupo"; +$a->strings["add"] = "añadir"; +$a->strings["Unknown | Not categorised"] = "Desconocido | No clasificado"; +$a->strings["Block immediately"] = "Bloquear inmediatamente"; +$a->strings["Shady, spammer, self-marketer"] = "Sospechoso, spammer, auto-publicidad"; +$a->strings["Known to me, but no opinion"] = "Le conozco, sin opinión"; +$a->strings["OK, probably harmless"] = "OK, probablemente inofensivo"; +$a->strings["Reputable, has my trust"] = "Buena reputación, tiene mi confianza"; +$a->strings["Frequently"] = "Frequentemente"; +$a->strings["Hourly"] = "Cada hora"; +$a->strings["Twice daily"] = "Dos veces al día"; +$a->strings["Daily"] = "Diariamente"; +$a->strings["Weekly"] = "Semanalmente"; +$a->strings["Monthly"] = "Mensualmente"; +$a->strings["Friendica"] = "Friendica"; +$a->strings["OStatus"] = "OStatus"; +$a->strings["RSS/Atom"] = "RSS/Atom"; +$a->strings["Email"] = "Correo electrónico"; +$a->strings["Diaspora"] = "Diaspora*"; +$a->strings["Facebook"] = "Facebook"; +$a->strings["Zot!"] = "Zot!"; +$a->strings["LinkedIn"] = "LinkedIn"; +$a->strings["XMPP/IM"] = "XMPP/IM"; +$a->strings["MySpace"] = "MySpace"; +$a->strings["Google+"] = "Google+"; +$a->strings["pump.io"] = "pump.io"; +$a->strings["Twitter"] = "Twitter"; +$a->strings["Diaspora Connector"] = "Conector Diaspora"; +$a->strings["GNU Social"] = "GNUsocial (OStatus)"; +$a->strings["App.net"] = "App.net"; +$a->strings["Hubzilla/Redmatrix"] = "Hubzilla/Redmatrix"; +$a->strings["Post to Email"] = "Publicar mediante correo electrónico"; +$a->strings["Connectors disabled, since \"%s\" is enabled."] = "Conectores deshabilitados, ya que \"%s\" es habilitado."; +$a->strings["Hide your profile details from unknown viewers?"] = "¿Quieres que los detalles de tu perfil permanezcan ocultos a los desconocidos?"; +$a->strings["Visible to everybody"] = "Visible para cualquiera"; +$a->strings["show"] = "mostrar"; +$a->strings["don't show"] = "no mostrar"; +$a->strings["CC: email addresses"] = "CC: dirección de correo electrónico"; +$a->strings["Example: bob@example.com, mary@example.com"] = "Ejemplo: juan@ejemplo.com, sofia@ejemplo.com"; +$a->strings["Permissions"] = "Permisos"; +$a->strings["Close"] = "Cerrado"; +$a->strings["photo"] = "foto"; +$a->strings["status"] = "estado"; +$a->strings["event"] = "evento"; +$a->strings["%1\$s likes %2\$s's %3\$s"] = "A %1\$s le gusta %3\$s de %2\$s"; +$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "A %1\$s no le gusta %3\$s de %2\$s"; +$a->strings["%1\$s is attending %2\$s's %3\$s"] = "%1\$s atenderá %2\$s's %3\$s"; +$a->strings["%1\$s is not attending %2\$s's %3\$s"] = "%1\$s no atenderá %2\$s's %3\$s"; +$a->strings["%1\$s may attend %2\$s's %3\$s"] = "%1\$s puede que atienda %2\$s's %3\$s"; +$a->strings["[no subject]"] = "[sin asunto]"; +$a->strings["Wall Photos"] = "Foto del Muro"; +$a->strings["Click here to upgrade."] = "Pulsa aquí para actualizar."; +$a->strings["This action exceeds the limits set by your subscription plan."] = "Esta acción excede los límites permitidos por tu subscripción."; +$a->strings["This action is not available under your subscription plan."] = "Esta acción no está permitida para tu subscripción."; +$a->strings["Error decoding account file"] = "Error decodificando el archivo de cuenta"; +$a->strings["Error! No version data in file! This is not a Friendica account file?"] = "Error! No hay datos de versión en el archivo! ¿Es esto de una cuenta friendica? "; +$a->strings["Error! Cannot check nickname"] = "Error! No puedo consultar el apodo"; +$a->strings["User '%s' already exists on this server!"] = "La cuenta '%s' ya existe en este servidor!"; +$a->strings["User creation error"] = "Error al crear la cuenta"; +$a->strings["User profile creation error"] = "Error de creación del perfil de la cuenta"; +$a->strings["%d contact not imported"] = array( + 0 => "%d contactos no encontrado", + 1 => "%d contactos no importado", ); -$a->strings["View Contacts"] = "Ver contactos"; -$a->strings["Search"] = "Buscar"; -$a->strings["Save"] = "Guardar"; +$a->strings["Done. You can now login with your username and password"] = "Hecho. Ahora podes ingresar con tu nombre de cuenta y la contraseña."; +$a->strings["Miscellaneous"] = "Varios"; +$a->strings["Birthday:"] = "Fecha de nacimiento:"; +$a->strings["Age: "] = "Edad: "; +$a->strings["YYYY-MM-DD or MM-DD"] = "YYYY-MM-DD o MM-DD"; +$a->strings["never"] = "nunca"; +$a->strings["less than a second ago"] = "hace menos de un segundo"; +$a->strings["year"] = "año"; +$a->strings["years"] = "años"; +$a->strings["month"] = "mes"; +$a->strings["months"] = "meses"; +$a->strings["week"] = "semana"; +$a->strings["weeks"] = "semanas"; +$a->strings["day"] = "día"; +$a->strings["days"] = "días"; +$a->strings["hour"] = "hora"; +$a->strings["hours"] = "horas"; +$a->strings["minute"] = "minuto"; +$a->strings["minutes"] = "minutos"; +$a->strings["second"] = "segundo"; +$a->strings["seconds"] = "segundos"; +$a->strings["%1\$d %2\$s ago"] = "hace %1\$d %2\$s"; +$a->strings["%s's birthday"] = "Cumpleaños de %s"; +$a->strings["Happy Birthday %s"] = "Feliz cumpleaños %s"; +$a->strings["Friendica Notification"] = "Notificación de Friendica"; +$a->strings["Thank You,"] = "Gracias,"; +$a->strings["%s Administrator"] = "%s Administrador"; +$a->strings["%1\$s, %2\$s Administrator"] = "%1\$s, %2\$s Administrador"; +$a->strings["noreply"] = "no responder"; +$a->strings["%s "] = "%s "; +$a->strings["[Friendica:Notify] New mail received at %s"] = "[Friendica:Notificación] Nuevo correo recibido de %s"; +$a->strings["%1\$s sent you a new private message at %2\$s."] = "%1\$s te ha enviado un mensaje privado desde %2\$s."; +$a->strings["%1\$s sent you %2\$s."] = "%1\$s te ha enviado %2\$s."; +$a->strings["a private message"] = "un mensaje privado"; +$a->strings["Please visit %s to view and/or reply to your private messages."] = "Por favor, visita %s para ver y/o responder a tus mensajes privados."; +$a->strings["%1\$s commented on [url=%2\$s]a %3\$s[/url]"] = "%1\$s comentó en [url=%2\$s]a %3\$s[/url]"; +$a->strings["%1\$s commented on [url=%2\$s]%3\$s's %4\$s[/url]"] = "%1\$s comentó en [url=%2\$s] %4\$s de %3\$s[/url]"; +$a->strings["%1\$s commented on [url=%2\$s]your %3\$s[/url]"] = "%1\$s comentó en [url=%2\$s] tu %3\$s[/url]"; +$a->strings["[Friendica:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Friendica:Notificación] Comentario en la conversación de #%1\$d por %2\$s"; +$a->strings["%s commented on an item/conversation you have been following."] = "%s ha comentado en una conversación/elemento que sigues."; +$a->strings["Please visit %s to view and/or reply to the conversation."] = "Por favor, visita %s para ver y/o responder a la conversación."; +$a->strings["[Friendica:Notify] %s posted to your profile wall"] = "[Friendica:Notificación] %s publicó en tu muro"; +$a->strings["%1\$s posted to your profile wall at %2\$s"] = "%1\$s publicó en tu perfil de %2\$s"; +$a->strings["%1\$s posted to [url=%2\$s]your wall[/url]"] = "%1\$s publicó en [url=%2\$s]tu muro[/url]"; +$a->strings["[Friendica:Notify] %s tagged you"] = "[Friendica:Notificación] %s te ha nombrado"; +$a->strings["%1\$s tagged you at %2\$s"] = "%1\$s te ha nombrado en %2\$s"; +$a->strings["%1\$s [url=%2\$s]tagged you[/url]."] = "%1\$s [url=%2\$s]te nombró[/url]."; +$a->strings["[Friendica:Notify] %s shared a new post"] = "[Notificacion Friendica] %s compartio una nueva publicacion"; +$a->strings["%1\$s shared a new post at %2\$s"] = "%1\$s compartió un nuevo tema en %2\$s"; +$a->strings["%1\$s [url=%2\$s]shared a post[/url]."] = "%1\$s [url=%2\$s]compartió una publicación[/url]."; +$a->strings["[Friendica:Notify] %1\$s poked you"] = "[Friendica:Notify] %1\$s te dio un toque"; +$a->strings["%1\$s poked you at %2\$s"] = "%1\$s te dio un toque en %2\$s"; +$a->strings["%1\$s [url=%2\$s]poked you[/url]."] = "%1\$s [url=%2\$s]te dio un toque[/url]."; +$a->strings["[Friendica:Notify] %s tagged your post"] = "[Friendica:Notificación] %s ha etiquetado tu publicación"; +$a->strings["%1\$s tagged your post at %2\$s"] = "%1\$s ha etiquetado tu publicación en %2\$s"; +$a->strings["%1\$s tagged [url=%2\$s]your post[/url]"] = "%1\$s ha etiquetado [url=%2\$s]tu publicación[/url]"; +$a->strings["[Friendica:Notify] Introduction received"] = "[Friendica:Notificación] Presentación recibida"; +$a->strings["You've received an introduction from '%1\$s' at %2\$s"] = "Has recibido una presentación de '%1\$s' en %2\$s"; +$a->strings["You've received [url=%1\$s]an introduction[/url] from %2\$s."] = "Has recibido [url=%1\$s]una presentación[/url] de %2\$s."; +$a->strings["You may visit their profile at %s"] = "Puedes visitar su perfil en %s"; +$a->strings["Please visit %s to approve or reject the introduction."] = "Visita %s para aceptar o rechazar la presentación por favor."; +$a->strings["[Friendica:Notify] A new person is sharing with you"] = "[Notificación:Friendica] Un nuevo contacto comparte contigo"; +$a->strings["%1\$s is sharing with you at %2\$s"] = "%1\$s comparte con tigo en %2\$s"; +$a->strings["[Friendica:Notify] You have a new follower"] = "[Notificación:Friendica] Tienes un nuevo seguidor"; +$a->strings["You have a new follower at %2\$s : %1\$s"] = "Tienes un nuevo seguidor en %2\$s : %1\$s"; +$a->strings["[Friendica:Notify] Friend suggestion received"] = "[Friendica:Notificación] Sugerencia de amigo recibida"; +$a->strings["You've received a friend suggestion from '%1\$s' at %2\$s"] = "Has recibido una sugerencia de amigo de '%1\$s' en %2\$s"; +$a->strings["You've received [url=%1\$s]a friend suggestion[/url] for %2\$s from %3\$s."] = "Has recibido [url=%1\$s]una sugerencia de amigo[/url] en %2\$s de %3\$s."; +$a->strings["Name:"] = "Nombre: "; +$a->strings["Photo:"] = "Foto: "; +$a->strings["Please visit %s to approve or reject the suggestion."] = "Visita %s para aceptar o rechazar la sugerencia por favor."; +$a->strings["[Friendica:Notify] Connection accepted"] = "[Notificación:Friendica] Conexión aceptada"; +$a->strings["'%1\$s' has accepted your connection request at %2\$s"] = "'%1\$s' acepto tu consulta de conexión %2\$s"; +$a->strings["%2\$s has accepted your [url=%1\$s]connection request[/url]."] = "%2\$s hacepto tu [url=%1\$s]consulta de conexión[/url]."; +$a->strings["You are now mutual friends and may exchange status updates, photos, and email without restriction."] = "Ahora tiene amigos en común y puede intercambiar actualizaciones de estado, fotos y email sin restricción."; +$a->strings["Please visit %s if you wish to make any changes to this relationship."] = "Por favor visite %s si desea hacer algún cambio a su relación."; +$a->strings["'%1\$s' has chosen to accept you a \"fan\", which restricts some forms of communication - such as private messaging and some profile interactions. If this is a celebrity or community page, these settings were applied automatically."] = "'%1\$s' eligió de aceptarte como fan/hincha lo que restringe algunas formas de comunicación - tales como mensajes privados y algunas interacciones de los perfiles. Si esto es una pagina de celebridad o comunidad, estas configuraciones se adoptaron automáticamente."; +$a->strings["'%1\$s' may choose to extend this into a two-way or more permissive relationship in the future."] = "'%1\$s' puede elegir extender esto en una relación más permisiva o ambidireccional en el futuro."; +$a->strings["Please visit %s if you wish to make any changes to this relationship."] = "Por favor visita %s si es preciso de hacer algún cambio a la relación con este contacto."; +$a->strings["[Friendica System:Notify] registration request"] = "[Notificacion:Friendica] consulta de registro"; +$a->strings["You've received a registration request from '%1\$s' at %2\$s"] = "Recibiste una consulta de registro de '%1\$s' en %2\$s"; +$a->strings["You've received a [url=%1\$s]registration request[/url] from %2\$s."] = "Recibiste una [url=%1\$s]consulta de registro[/url] from %2\$s."; +$a->strings["Full Name:\t%1\$s\\nSite Location:\t%2\$s\\nLogin Name:\t%3\$s (%4\$s)"] = "Nombre completo:\t%1\$s\\nUbicación del sitio:\t%2\$s\\nLogin Nombre:\t%3\$s (%4\$s)"; +$a->strings["Please visit %s to approve or reject the request."] = "Por favor visita %s para aprobar o negar la solicitud."; +$a->strings["l F d, Y \\@ g:i A"] = "l F d, Y \\@ g:i A"; +$a->strings["Starts:"] = "Inicio:"; +$a->strings["Finishes:"] = "Final:"; +$a->strings["Location:"] = "Localización:"; +$a->strings["Sun"] = "Dom"; +$a->strings["Mon"] = "Lun"; +$a->strings["Tue"] = "Mar"; +$a->strings["Wed"] = "Mie"; +$a->strings["Thu"] = "Jue"; +$a->strings["Fri"] = "Vie"; +$a->strings["Sat"] = "Sab"; +$a->strings["Sunday"] = "Domingo"; +$a->strings["Monday"] = "Lunes"; +$a->strings["Tuesday"] = "Martes"; +$a->strings["Wednesday"] = "Miércoles"; +$a->strings["Thursday"] = "Jueves"; +$a->strings["Friday"] = "Viernes"; +$a->strings["Saturday"] = "Sábado"; +$a->strings["Jan"] = "Ene"; +$a->strings["Feb"] = "Feb"; +$a->strings["Mar"] = "Mar"; +$a->strings["Apr"] = "Abr"; +$a->strings["May"] = "Mayo"; +$a->strings["Jun"] = "Jun"; +$a->strings["Jul"] = "Jul"; +$a->strings["Aug"] = "Ago"; +$a->strings["Sept"] = "Sept"; +$a->strings["Oct"] = "Oct"; +$a->strings["Nov"] = "Nov"; +$a->strings["Dec"] = "Dec"; +$a->strings["January"] = "Enero"; +$a->strings["February"] = "Febrero"; +$a->strings["March"] = "Marzo"; +$a->strings["April"] = "Abril"; +$a->strings["June"] = "Junio"; +$a->strings["July"] = "Julio"; +$a->strings["August"] = "Agosto"; +$a->strings["September"] = "Septiembre"; +$a->strings["October"] = "Octubre"; +$a->strings["November"] = "Noviembre"; +$a->strings["December"] = "Diciembre"; +$a->strings["today"] = "hoy"; +$a->strings["all-day"] = "todo el día"; +$a->strings["No events to display"] = "No hay eventos a mostrar"; +$a->strings["l, F j"] = "l, F j"; +$a->strings["Edit event"] = "Editar evento"; +$a->strings["link to source"] = "Enlace al original"; +$a->strings["Export"] = "Exportar"; +$a->strings["Export calendar as ical"] = "Exportar calendario como ical"; +$a->strings["Export calendar as csv"] = "Exportar calendario como csv"; +$a->strings["Nothing new here"] = "Nada nuevo por aquí"; +$a->strings["Clear notifications"] = "Limpiar notificaciones"; $a->strings["@name, !forum, #tags, content"] = "@name, !forum, #tags, contenido"; +$a->strings["Logout"] = "Salir"; +$a->strings["End this session"] = "Cerrar la sesión"; +$a->strings["Status"] = "Estado"; +$a->strings["Your posts and conversations"] = "Tus publicaciones y conversaciones"; +$a->strings["Profile"] = "Perfil"; +$a->strings["Your profile page"] = "Tu página de perfil"; +$a->strings["Photos"] = "Fotografías"; +$a->strings["Your photos"] = "Tus fotos"; +$a->strings["Videos"] = "Videos"; +$a->strings["Your videos"] = "Tus videos"; +$a->strings["Events"] = "Eventos"; +$a->strings["Your events"] = "Tus eventos"; +$a->strings["Personal notes"] = "Notas personales"; +$a->strings["Your personal notes"] = "Tus notas personales"; +$a->strings["Login"] = "Acceder"; +$a->strings["Sign in"] = "Date de alta"; +$a->strings["Home"] = "Inicio"; +$a->strings["Home Page"] = "Página de inicio"; +$a->strings["Register"] = "Registrarse"; +$a->strings["Create an account"] = "Crea una cuenta"; +$a->strings["Help"] = "Ayuda"; +$a->strings["Help and documentation"] = "Ayuda y documentación"; +$a->strings["Apps"] = "Aplicaciones"; +$a->strings["Addon applications, utilities, games"] = "Aplicaciones, utilidades, juegos"; +$a->strings["Search"] = "Buscar"; +$a->strings["Search site content"] = " Busca contenido en la página"; $a->strings["Full Text"] = "Texto completo"; $a->strings["Tags"] = "Tags"; $a->strings["Contacts"] = "Contactos"; -$a->strings["poke"] = "tocar"; -$a->strings["poked"] = "tocó a"; -$a->strings["ping"] = "hacer \"ping\""; -$a->strings["pinged"] = "hizo \"ping\" a"; -$a->strings["prod"] = "empujar"; -$a->strings["prodded"] = "empujó a"; -$a->strings["slap"] = "abofetear"; -$a->strings["slapped"] = "abofeteó a"; -$a->strings["finger"] = "meter dedo"; -$a->strings["fingered"] = "le metió un dedo a"; -$a->strings["rebuff"] = "desairar"; -$a->strings["rebuffed"] = "desairó a"; -$a->strings["happy"] = "feliz"; -$a->strings["sad"] = "triste"; -$a->strings["mellow"] = "sentimental"; -$a->strings["tired"] = "cansado"; -$a->strings["perky"] = "alegre"; -$a->strings["angry"] = "furioso"; -$a->strings["stupified"] = "estupefacto"; -$a->strings["puzzled"] = "extrañado"; -$a->strings["interested"] = "interesado"; -$a->strings["bitter"] = "rencoroso"; -$a->strings["cheerful"] = "jovial"; -$a->strings["alive"] = "vivo"; -$a->strings["annoyed"] = "enojado"; -$a->strings["anxious"] = "ansioso"; -$a->strings["cranky"] = "irritable"; -$a->strings["disturbed"] = "perturbado"; -$a->strings["frustrated"] = "frustrado"; -$a->strings["motivated"] = "motivado"; -$a->strings["relaxed"] = "relajado"; -$a->strings["surprised"] = "sorprendido"; -$a->strings["View Video"] = "Ver vídeo"; -$a->strings["bytes"] = "bytes"; -$a->strings["Click to open/close"] = "Pulsa para abrir/cerrar"; -$a->strings["View on separate page"] = "Ver en pagina aparte"; -$a->strings["view on separate page"] = "ver en pagina aparte"; -$a->strings["event"] = "evento"; -$a->strings["photo"] = "foto"; -$a->strings["activity"] = "Actividad"; -$a->strings["comment"] = array( - 0 => "", - 1 => "Comentario", -); -$a->strings["post"] = "Publicación"; -$a->strings["Item filed"] = "Elemento archivado"; -$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "A %1\$s no le gusta %3\$s de %2\$s"; +$a->strings["Community"] = "Comunidad"; +$a->strings["Conversations on this site"] = "Conversaciones en este sitio"; +$a->strings["Conversations on the network"] = "Conversaciones en la red"; +$a->strings["Events and Calendar"] = "Eventos y Calendario"; +$a->strings["Directory"] = "Directorio"; +$a->strings["People directory"] = "Directorio de usuarios"; +$a->strings["Information"] = "Información"; +$a->strings["Information about this friendica instance"] = "Información sobre esta instancia de friendica"; +$a->strings["Network"] = "Red"; +$a->strings["Conversations from your friends"] = "Conversaciones de tus amigos"; +$a->strings["Network Reset"] = "Reseteo de la red"; +$a->strings["Load Network page with no filters"] = "Cargar pagina de redes sin filtros"; +$a->strings["Introductions"] = "Presentaciones"; +$a->strings["Friend Requests"] = "Solicitudes de amistad"; +$a->strings["Notifications"] = "Notificaciones"; +$a->strings["See all notifications"] = "Ver todas las notificaciones"; +$a->strings["Mark as seen"] = "Marcar como leído"; +$a->strings["Mark all system notifications seen"] = "Marcar todas las notificaciones del sistema como leídas"; +$a->strings["Messages"] = "Mensajes"; +$a->strings["Private mail"] = "Correo privado"; +$a->strings["Inbox"] = "Entrada"; +$a->strings["Outbox"] = "Enviados"; +$a->strings["New Message"] = "Nuevo mensaje"; +$a->strings["Manage"] = "Administrar"; +$a->strings["Manage other pages"] = "Administrar otras páginas"; +$a->strings["Delegations"] = "Delegaciones"; +$a->strings["Delegate Page Management"] = "Delegar la administración de la página"; +$a->strings["Settings"] = "Configuración"; +$a->strings["Account settings"] = "Configuración de tu cuenta"; +$a->strings["Profiles"] = "Perfiles"; +$a->strings["Manage/Edit Profiles"] = "Manejar/editar Perfiles"; +$a->strings["Manage/edit friends and contacts"] = "Administrar/editar amigos y contactos"; +$a->strings["Admin"] = "Admin"; +$a->strings["Site setup and configuration"] = "Opciones y configuración del sitio"; +$a->strings["Navigation"] = "Navegación"; +$a->strings["Site map"] = "Mapa del sitio"; +$a->strings["Contact Photos"] = "Foto del contacto"; +$a->strings["Welcome "] = "Bienvenido "; +$a->strings["Please upload a profile photo."] = "Por favor sube una foto para tu perfil."; +$a->strings["Welcome back "] = "Bienvenido de nuevo "; +$a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "La ficha de seguridad no es correcta. Seguramente haya ocurrido por haber dejado el formulario abierto demasiado tiempo (>3 horas) antes de enviarlo."; +$a->strings["System"] = "Sistema"; +$a->strings["Personal"] = "Personal"; +$a->strings["%s commented on %s's post"] = "%s comentó la publicación de %s"; +$a->strings["%s created a new post"] = "%s creó una nueva publicación"; +$a->strings["%s liked %s's post"] = "A %s le gusta la publicación de %s"; +$a->strings["%s disliked %s's post"] = "A %s no le gusta la publicación de %s"; +$a->strings["%s is attending %s's event"] = "%s está asistiendo al evento %s's"; +$a->strings["%s is not attending %s's event"] = "%s no está asistiendo al evento %s's"; +$a->strings["%s may attend %s's event"] = "%s podría asistir al evento %s's"; +$a->strings["%s is now friends with %s"] = "%s es ahora es amigo de %s"; +$a->strings["Friend Suggestion"] = "Propuestas de amistad"; +$a->strings["Friend/Connect Request"] = "Solicitud de Amistad/Conexión"; +$a->strings["New Follower"] = "Nuevo seguidor"; +$a->strings["\n\t\t\tThe friendica developers released update %s recently,\n\t\t\tbut when I tried to install it, something went terribly wrong.\n\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n\t\t\tfriendica developer if you can not help me on your own. My database might be invalid."] = "\n\t\t\tLos desarolladores de friendica publicaron una actualización %s recientemente\n\t\t\tpero cuando intento de instalarla,algo salio terriblemente mal.\n\t\t\tEsto necesita ser arreglado pronto y no puedo hacerlo solo. Por favor contacta\n\t\t\tlos desarolladores de friendica si no me podes ayudar por ti solo. Mi base de datos puede estar invalido."; +$a->strings["The error message is\n[pre]%s[/pre]"] = "El mensaje de error es\n[pre]%s[/pre]"; +$a->strings["Errors encountered creating database tables."] = "Se han encontrados errores creando las tablas de la base de datos."; +$a->strings["Errors encountered performing database changes."] = "Errores encontrados al ejecutar cambios en la base de datos."; +$a->strings["(no subject)"] = "(sin asunto)"; +$a->strings["Sharing notification from Diaspora network"] = "Compartir notificaciones con la red Diaspora*"; +$a->strings["Attachments:"] = "Archivos adjuntos:"; +$a->strings["view full size"] = "Ver a tamaño completo"; +$a->strings["View Profile"] = "Ver perfil"; +$a->strings["View Status"] = "Ver estado"; +$a->strings["View Photos"] = "Ver fotos"; +$a->strings["Network Posts"] = "Publicaciones en la red"; +$a->strings["View Contact"] = "Ver contacto"; +$a->strings["Drop Contact"] = "Eliminar contacto"; +$a->strings["Send PM"] = "Enviar mensaje privado"; +$a->strings["Poke"] = "Toque"; +$a->strings["Organisation"] = "Organización"; +$a->strings["News"] = "Noticias"; +$a->strings["Forum"] = "Foro"; +$a->strings["Daily posting limit of %d posts reached. The post was rejected."] = "Limite diario de publicaciones %d alcanzado. La publicación fue rechazada."; +$a->strings["Weekly posting limit of %d posts reached. The post was rejected."] = "Limite semanal de publicaciones %d alcanzado. La publicación fue rechazada."; +$a->strings["Monthly posting limit of %d posts reached. The post was rejected."] = "Limite mensual de publicaciones %d alcanzado. La publicación fue rechazada."; +$a->strings["Image/photo"] = "Imagen/Foto"; +$a->strings["%2\$s %3\$s"] = "%2\$s %3\$s"; +$a->strings["$1 wrote:"] = "$1 escribió:"; +$a->strings["Encrypted content"] = "Contenido cifrado"; +$a->strings["Invalid source protocol"] = "Protocolo de fuente inválido"; +$a->strings["Invalid link protocol"] = "Protocolo de enlace inválido"; $a->strings["%1\$s attends %2\$s's %3\$s"] = "%1\$s atenderá %2\$s's %3\$s"; $a->strings["%1\$s doesn't attend %2\$s's %3\$s"] = "%1\$s no atenderá %2\$s's %3\$s"; $a->strings["%1\$s attends maybe %2\$s's %3\$s"] = "%1\$s atenderá quizás %2\$s's %3\$s"; @@ -388,13 +449,6 @@ $a->strings["Please wait"] = "Por favor, espera"; $a->strings["remove"] = "eliminar"; $a->strings["Delete Selected Items"] = "Eliminar el elemento seleccionado"; $a->strings["Follow Thread"] = "Seguir publicacion"; -$a->strings["View Status"] = "Ver estado"; -$a->strings["View Profile"] = "Ver perfil"; -$a->strings["View Photos"] = "Ver fotos"; -$a->strings["Network Posts"] = "Publicaciones en la red"; -$a->strings["View Contact"] = "Ver contacto"; -$a->strings["Send PM"] = "Enviar mensaje privado"; -$a->strings["Poke"] = "Toque"; $a->strings["%s likes this."] = "A %s le gusta esto."; $a->strings["%s doesn't like this."] = "A %s no le gusta esto."; $a->strings["%s attends."] = "%s atiende."; @@ -441,6 +495,7 @@ $a->strings["Permission settings"] = "Configuración de permisos"; $a->strings["permissions"] = "permisos"; $a->strings["Public post"] = "Publicación pública"; $a->strings["Preview"] = "Vista previa"; +$a->strings["Cancel"] = "Cancelar"; $a->strings["Post to Groups"] = "Publicar hacia grupos"; $a->strings["Post to Contacts"] = "Publicar hacia contactos"; $a->strings["Private post"] = "Publicación privada"; @@ -459,169 +514,7 @@ $a->strings["Not Attending"] = array( 0 => "No atendiendo", 1 => "No atendiendo", ); -$a->strings["Contact Photos"] = "Foto del contacto"; -$a->strings["Requested account is not available."] = "La cuenta solicitada no está disponible."; -$a->strings["Requested profile is not available."] = "El perfil solicitado no está disponible."; -$a->strings["Edit profile"] = "Editar perfil"; -$a->strings["Atom feed"] = "Atom feed"; -$a->strings["Profiles"] = "Perfiles"; -$a->strings["Manage/edit profiles"] = "Administrar/editar perfiles"; -$a->strings["Change profile photo"] = "Cambiar foto del perfil"; -$a->strings["Create New Profile"] = "Crear nuevo perfil"; -$a->strings["Profile Image"] = "Imagen del Perfil"; -$a->strings["visible to everybody"] = "Visible para todos"; -$a->strings["Edit visibility"] = "Editar visibilidad"; -$a->strings["Gender:"] = "Género:"; -$a->strings["Status:"] = "Estado:"; -$a->strings["Homepage:"] = "Página de inicio:"; -$a->strings["About:"] = "Acerca de:"; -$a->strings["XMPP:"] = "XMPP:"; -$a->strings["Network:"] = "Red:"; -$a->strings["g A l F d"] = "g A l F d"; -$a->strings["F d"] = "F d"; -$a->strings["[today]"] = "[hoy]"; -$a->strings["Birthday Reminders"] = "Recordatorios de cumpleaños"; -$a->strings["Birthdays this week:"] = "Cumpleaños esta semana:"; -$a->strings["[No description]"] = "[Sin descripción]"; -$a->strings["Event Reminders"] = "Recordatorios de eventos"; -$a->strings["Events this week:"] = "Eventos de esta semana:"; -$a->strings["Profile"] = "Perfil"; -$a->strings["Full Name:"] = "Nombre completo:"; -$a->strings["j F, Y"] = "j F, Y"; -$a->strings["j F"] = "j F"; -$a->strings["Age:"] = "Edad:"; -$a->strings["for %1\$d %2\$s"] = "por %1\$d %2\$s"; -$a->strings["Sexual Preference:"] = "Preferencia sexual:"; -$a->strings["Hometown:"] = "Ciudad de origen:"; -$a->strings["Tags:"] = "Etiquetas:"; -$a->strings["Political Views:"] = "Ideas políticas:"; -$a->strings["Religion:"] = "Religión:"; -$a->strings["Hobbies/Interests:"] = "Aficiones/Intereses:"; -$a->strings["Likes:"] = "Me gusta:"; -$a->strings["Dislikes:"] = "No me gusta:"; -$a->strings["Contact information and Social Networks:"] = "Información de contacto y Redes sociales:"; -$a->strings["Musical interests:"] = "Intereses musicales:"; -$a->strings["Books, literature:"] = "Libros, literatura:"; -$a->strings["Television:"] = "Televisión:"; -$a->strings["Film/dance/culture/entertainment:"] = "Películas/baile/cultura/entretenimiento:"; -$a->strings["Love/Romance:"] = "Amor/Romance:"; -$a->strings["Work/employment:"] = "Trabajo/ocupación:"; -$a->strings["School/education:"] = "Escuela/estudios:"; -$a->strings["Forums:"] = "Foros:"; -$a->strings["Basic"] = "Basic"; -$a->strings["Advanced"] = "Avanzado"; -$a->strings["Status"] = "Estado"; -$a->strings["Status Messages and Posts"] = "Mensajes de Estado y Publicaciones"; -$a->strings["Profile Details"] = "Detalles del Perfil"; -$a->strings["Photos"] = "Fotografías"; -$a->strings["Photo Albums"] = "Álbum de Fotos"; -$a->strings["Videos"] = "Videos"; -$a->strings["Events"] = "Eventos"; -$a->strings["Events and Calendar"] = "Eventos y Calendario"; -$a->strings["Personal Notes"] = "Notas personales"; -$a->strings["Only You Can See This"] = "Únicamente tú puedes ver esto"; -$a->strings["Disallowed profile URL."] = "Dirección de perfil no permitida."; -$a->strings["Connect URL missing."] = "Falta el conector URL."; -$a->strings["This site is not configured to allow communications with other networks."] = "Este sitio no está configurado para permitir la comunicación con otras redes."; -$a->strings["No compatible communication protocols or feeds were discovered."] = "No se ha descubierto protocolos de comunicación o fuentes compatibles."; -$a->strings["The profile address specified does not provide adequate information."] = "La dirección del perfil especificado no proporciona información adecuada."; -$a->strings["An author or name was not found."] = "No se ha encontrado un autor o nombre."; -$a->strings["No browser URL could be matched to this address."] = "Ninguna dirección concuerda con la suministrada."; -$a->strings["Unable to match @-style Identity Address with a known protocol or email contact."] = "Imposible identificar la dirección @ con algún protocolo conocido o dirección de contacto."; -$a->strings["Use mailto: in front of address to force email check."] = "Escribe mailto: al principio de la dirección para forzar el envío."; -$a->strings["The profile address specified belongs to a network which has been disabled on this site."] = "La dirección del perfil especificada pertenece a una red que ha sido deshabilitada en este sitio."; -$a->strings["Limited profile. This person will be unable to receive direct/personal notifications from you."] = "Perfil limitado. Esta persona no podrá recibir notificaciones directas/personales tuyas."; -$a->strings["Unable to retrieve contact information."] = "No ha sido posible recibir la información del contacto."; -$a->strings["following"] = "siguiendo"; -$a->strings["stopped following"] = "dejó de seguir"; -$a->strings["Drop Contact"] = "Eliminar contacto"; -$a->strings["Organisation"] = "Organización"; -$a->strings["News"] = "Noticias"; -$a->strings["Forum"] = "Foro"; -$a->strings["Embedded content"] = "Contenido integrado"; -$a->strings["Embedding disabled"] = "Contenido incrustrado desabilitado"; -$a->strings["Image/photo"] = "Imagen/Foto"; -$a->strings["%2\$s %3\$s"] = "%2\$s %3\$s"; -$a->strings["$1 wrote:"] = "$1 escribió:"; -$a->strings["Encrypted content"] = "Contenido cifrado"; -$a->strings["Unknown | Not categorised"] = "Desconocido | No clasificado"; -$a->strings["Block immediately"] = "Bloquear inmediatamente"; -$a->strings["Shady, spammer, self-marketer"] = "Sospechoso, spammer, auto-publicidad"; -$a->strings["Known to me, but no opinion"] = "Le conozco, sin opinión"; -$a->strings["OK, probably harmless"] = "OK, probablemente inofensivo"; -$a->strings["Reputable, has my trust"] = "Buena reputación, tiene mi confianza"; -$a->strings["Frequently"] = "Frequentemente"; -$a->strings["Hourly"] = "Cada hora"; -$a->strings["Twice daily"] = "Dos veces al día"; -$a->strings["Daily"] = "Diariamente"; -$a->strings["Weekly"] = "Semanalmente"; -$a->strings["Monthly"] = "Mensualmente"; -$a->strings["Friendica"] = "Friendica"; -$a->strings["OStatus"] = "OStatus"; -$a->strings["RSS/Atom"] = "RSS/Atom"; -$a->strings["Email"] = "Correo electrónico"; -$a->strings["Diaspora"] = "Diaspora*"; -$a->strings["Facebook"] = "Facebook"; -$a->strings["Zot!"] = "Zot!"; -$a->strings["LinkedIn"] = "LinkedIn"; -$a->strings["XMPP/IM"] = "XMPP/IM"; -$a->strings["MySpace"] = "MySpace"; -$a->strings["Google+"] = "Google+"; -$a->strings["pump.io"] = "pump.io"; -$a->strings["Twitter"] = "Twitter"; -$a->strings["Diaspora Connector"] = "Conector Diaspora"; -$a->strings["GNU Social"] = "GNUsocial (OStatus)"; -$a->strings["App.net"] = "App.net"; -$a->strings["Hubzilla/Redmatrix"] = "Hubzilla/Redmatrix"; -$a->strings["\n\t\t\tThe friendica developers released update %s recently,\n\t\t\tbut when I tried to install it, something went terribly wrong.\n\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n\t\t\tfriendica developer if you can not help me on your own. My database might be invalid."] = "\n\t\t\tLos desarolladores de friendica publicaron una actualización %s recientemente\n\t\t\tpero cuando intento de instalarla,algo salio terriblemente mal.\n\t\t\tEsto necesita ser arreglado pronto y no puedo hacerlo solo. Por favor contacta\n\t\t\tlos desarolladores de friendica si no me podes ayudar por ti solo. Mi base de datos puede estar invalido."; -$a->strings["The error message is\n[pre]%s[/pre]"] = "El mensaje de error es\n[pre]%s[/pre]"; -$a->strings["Errors encountered creating database tables."] = "Se han encontrados errores creando las tablas de la base de datos."; -$a->strings["Errors encountered performing database changes."] = "Errores encontrados al ejecutar cambios en la base de datos."; -$a->strings["Logged out."] = "Sesión finalizada"; -$a->strings["Login failed."] = "Accesso fallido."; -$a->strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Se ha encontrado un problema para acceder con el OpenID que has escrito. Verifica que lo hayas escrito correctamente."; -$a->strings["The error message was:"] = "El mensaje del error fue:"; -$a->strings["view full size"] = "Ver a tamaño completo"; -$a->strings["A deleted group with this name was revived. Existing item permissions may apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "Un grupo eliminado con este nombre fue restablecido. Los permisos existentes pueden aplicarse a este grupo y a sus futuros miembros. Si esto no es lo que pretendes, por favor, crea otro grupo con un nombre diferente."; -$a->strings["Default privacy group for new contacts"] = "Grupo por defecto para nuevos contactos"; -$a->strings["Everybody"] = "Todo el mundo"; -$a->strings["edit"] = "editar"; -$a->strings["Groups"] = "Grupos"; -$a->strings["Edit groups"] = "Editar grupo"; -$a->strings["Edit group"] = "Editar grupo"; -$a->strings["Create a new group"] = "Crear un nuevo grupo"; -$a->strings["Group Name: "] = "Nombre del grupo: "; -$a->strings["Contacts not in any group"] = "Contactos sin grupo"; -$a->strings["add"] = "añadir"; -$a->strings["Wall Photos"] = "Foto del Muro"; -$a->strings["(no subject)"] = "(sin asunto)"; -$a->strings["Passwords do not match. Password unchanged."] = "Las contraseñas no coinciden. La contraseña no ha sido modificada."; -$a->strings["An invitation is required."] = "Se necesita invitación."; -$a->strings["Invitation could not be verified."] = "No se puede verificar la invitación."; -$a->strings["Invalid OpenID url"] = "Dirección OpenID no válida"; -$a->strings["Please enter the required information."] = "Por favor, introduce la información necesaria."; -$a->strings["Please use a shorter name."] = "Por favor, usa un nombre más corto."; -$a->strings["Name too short."] = "El nombre es demasiado corto."; -$a->strings["That doesn't appear to be your full (First Last) name."] = "No parece que ese sea tu nombre completo."; -$a->strings["Your email domain is not among those allowed on this site."] = "Tu dominio de correo no se encuentra entre los permitidos en este sitio."; -$a->strings["Not a valid email address."] = "No es una dirección de correo electrónico válida."; -$a->strings["Cannot use that email."] = "No se puede utilizar este correo electrónico."; -$a->strings["Your \"nickname\" can only contain \"a-z\", \"0-9\" and \"_\"."] = "El apodo solo puede contener \"a-z\", \"0-9\" y \"_\"."; -$a->strings["Nickname is already registered. Please choose another."] = "Apodo ya registrado. Por favor, elije otro."; -$a->strings["Nickname was once registered here and may not be re-used. Please choose another."] = "El apodo ya ha sido registrado alguna vez y no puede volver a usarse. Por favor, utiliza otro."; -$a->strings["SERIOUS ERROR: Generation of security keys failed."] = "ERROR GRAVE: La generación de claves de seguridad ha fallado."; -$a->strings["An error occurred during registration. Please try again."] = "Se produjo un error durante el registro. Por favor, inténtalo de nuevo."; -$a->strings["default"] = "predeterminado"; -$a->strings["An error occurred creating your default profile. Please try again."] = "Error al crear tu perfil predeterminado. Por favor, inténtalo de nuevo."; -$a->strings["Profile Photos"] = "Foto del perfil"; -$a->strings["\n\t\tDear %1\$s,\n\t\t\tThank you for registering at %2\$s. Your account is pending for approval by the administrator.\n\t"] = "\n\t\tEstimado %1\$s,\n\t\t\tGracias por registrarse en %2\$s. Su cuenta está pendiente de aprobación por el administrador.\n\t"; -$a->strings["Registration at %s"] = "Registro en %s"; -$a->strings["\n\t\tDear %1\$s,\n\t\t\tThank you for registering at %2\$s. Your account has been created.\n\t"] = "\n\t\tEstimado %1\$s,\n\t\t\tGracias por registrar en %2\$s. Su cuenta ha sido creada.\n\t"; -$a->strings["\n\t\tThe login details are as follows:\n\t\t\tSite Location:\t%3\$s\n\t\t\tLogin Name:\t%1\$s\n\t\t\tPassword:\t%5\$s\n\n\t\tYou may change your password from your account \"Settings\" page after logging\n\t\tin.\n\n\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\tYou may also wish to add some basic information to your default profile\n\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\tWe recommend setting your full name, adding a profile photo,\n\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\tthan that.\n\n\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\tIf you are new and do not know anybody here, they may help\n\t\tyou to make some new and interesting friends.\n\n\n\t\tThank you and welcome to %2\$s."] = "\n\t\t\tLos detalles de acceso son las siguientes:\n\n\t\t\tDirección del sitio:\t%3\$s\n\t\t\tNombre de la cuenta:\t\t%1\$s\n\t\t\tContraseña:\t\t%5\$s\n\n\t\t\tPodrá cambiar la contraseña desde la pagina de configuración de su cuenta después de acceder a la misma\n\t\t\ten.\n\n\t\t\tPor favor tome unos minutos para revisar las opciones demás de la cuenta en dicha pagina de configuración.\n\n\t\t\tTambién podrá agregar informaciones adicionales a su pagina de perfil predeterminado. \n\t\t\t(en la pagina \"Perfiles\") para que otras personas pueden encontrarlo fácilmente.\n\n\t\t\tRecomendamos que elija un nombre apropiado, agregando una imagen de perfil,\n\t\t\tagregando algunas palabras claves de la cuenta (muy útil para hacer nuevos amigos) - y \n\t\t\tquizás el país en donde vive; si no quiere ser mas especifico\n\t\t\tque eso.\n\n\t\t\tRespetamos absolutamente su derecho a la privacidad y ninguno de estos detalles es necesario.\n\t\t\tSi eres nuevo aquí y no conoces a nadie, estos detalles pueden ayudarte\n\t\t\tpara hacer nuevas e interesantes amistades.\n\n\t\t\tGracias y bienvenido a %2\$s."; -$a->strings["Registration details for %s"] = "Detalles de registro para %s"; -$a->strings["Daily posting limit of %d posts reached. The post was rejected."] = "Limite diario de publicaciones %d alcanzado. La publicación fue rechazada."; -$a->strings["Weekly posting limit of %d posts reached. The post was rejected."] = "Limite semanal de publicaciones %d alcanzado. La publicación fue rechazada."; -$a->strings["Monthly posting limit of %d posts reached. The post was rejected."] = "Limite mensual de publicaciones %d alcanzado. La publicación fue rechazada."; +$a->strings["%s\\'s birthday"] = "%s\\'s cumpleaños"; $a->strings["General Features"] = "Opciones generales"; $a->strings["Multiple Profiles"] = "Perfiles multiples"; $a->strings["Ability to create multiple profiles"] = "Capacidad de crear perfiles multiples. Cada pagina/perfil/usuario puede tener diferentes perfiles/apariencias. Las mismas pueden ser visibles para determinados contactos seleccionados dentro de la red friendica."; @@ -672,83 +565,167 @@ $a->strings["Mute Post Notifications"] = "Silenciar notificaciones de una public $a->strings["Ability to mute notifications for a thread"] = "Habilidad de silenciar notificaciones sobre nuevos comentarios en una publicación."; $a->strings["Advanced Profile Settings"] = "Ajustes avanzados del perfil"; $a->strings["Show visitors public community forums at the Advanced Profile Page"] = "Mostrar a los visitantes foros públicos en las que se esta participando en el pagina avanzada de perfiles."; -$a->strings["Nothing new here"] = "Nada nuevo por aquí"; -$a->strings["Clear notifications"] = "Limpiar notificaciones"; -$a->strings["End this session"] = "Cerrar la sesión"; -$a->strings["Your posts and conversations"] = "Tus publicaciones y conversaciones"; -$a->strings["Your profile page"] = "Tu página de perfil"; -$a->strings["Your photos"] = "Tus fotos"; -$a->strings["Your videos"] = "Tus videos"; -$a->strings["Your events"] = "Tus eventos"; -$a->strings["Personal notes"] = "Notas personales"; -$a->strings["Your personal notes"] = "Tus notas personales"; -$a->strings["Sign in"] = "Date de alta"; -$a->strings["Home Page"] = "Página de inicio"; -$a->strings["Create an account"] = "Crea una cuenta"; -$a->strings["Help"] = "Ayuda"; -$a->strings["Help and documentation"] = "Ayuda y documentación"; -$a->strings["Apps"] = "Aplicaciones"; -$a->strings["Addon applications, utilities, games"] = "Aplicaciones, utilidades, juegos"; -$a->strings["Search site content"] = " Busca contenido en la página"; -$a->strings["Community"] = "Comunidad"; -$a->strings["Conversations on this site"] = "Conversaciones en este sitio"; -$a->strings["Conversations on the network"] = "Conversaciones en la red"; -$a->strings["Directory"] = "Directorio"; -$a->strings["People directory"] = "Directorio de usuarios"; -$a->strings["Information"] = "Información"; -$a->strings["Information about this friendica instance"] = "Información sobre esta instancia de friendica"; -$a->strings["Conversations from your friends"] = "Conversaciones de tus amigos"; -$a->strings["Network Reset"] = "Reseteo de la red"; -$a->strings["Load Network page with no filters"] = "Cargar pagina de redes sin filtros"; -$a->strings["Friend Requests"] = "Solicitudes de amistad"; -$a->strings["Notifications"] = "Notificaciones"; -$a->strings["See all notifications"] = "Ver todas las notificaciones"; -$a->strings["Mark as seen"] = "Marcar como leído"; -$a->strings["Mark all system notifications seen"] = "Marcar todas las notificaciones del sistema como leídas"; -$a->strings["Messages"] = "Mensajes"; -$a->strings["Private mail"] = "Correo privado"; -$a->strings["Inbox"] = "Entrada"; -$a->strings["Outbox"] = "Enviados"; -$a->strings["New Message"] = "Nuevo mensaje"; -$a->strings["Manage"] = "Administrar"; -$a->strings["Manage other pages"] = "Administrar otras páginas"; -$a->strings["Delegations"] = "Delegaciones"; -$a->strings["Delegate Page Management"] = "Delegar la administración de la página"; -$a->strings["Settings"] = "Configuración"; -$a->strings["Account settings"] = "Configuración de tu cuenta"; -$a->strings["Manage/Edit Profiles"] = "Manejar/editar Perfiles"; -$a->strings["Manage/edit friends and contacts"] = "Administrar/editar amigos y contactos"; -$a->strings["Admin"] = "Admin"; -$a->strings["Site setup and configuration"] = "Opciones y configuración del sitio"; -$a->strings["Navigation"] = "Navegación"; -$a->strings["Site map"] = "Mapa del sitio"; -$a->strings["%1\$s is attending %2\$s's %3\$s"] = "%1\$s atenderá %2\$s's %3\$s"; -$a->strings["%1\$s is not attending %2\$s's %3\$s"] = "%1\$s no atenderá %2\$s's %3\$s"; -$a->strings["%1\$s may attend %2\$s's %3\$s"] = "%1\$s puede que atienda %2\$s's %3\$s"; -$a->strings["Post to Email"] = "Publicar mediante correo electrónico"; -$a->strings["Connectors disabled, since \"%s\" is enabled."] = "Conectores deshabilitados, ya que \"%s\" es habilitado."; -$a->strings["Hide your profile details from unknown viewers?"] = "¿Quieres que los detalles de tu perfil permanezcan ocultos a los desconocidos?"; -$a->strings["Visible to everybody"] = "Visible para cualquiera"; -$a->strings["show"] = "mostrar"; -$a->strings["don't show"] = "no mostrar"; -$a->strings["CC: email addresses"] = "CC: dirección de correo electrónico"; -$a->strings["Example: bob@example.com, mary@example.com"] = "Ejemplo: juan@ejemplo.com, sofia@ejemplo.com"; -$a->strings["Permissions"] = "Permisos"; -$a->strings["Close"] = "Cerrado"; -$a->strings["[no subject]"] = "[sin asunto]"; -$a->strings["You must be logged in to use addons. "] = "Tienes que estar registrado para tener acceso a los accesorios."; -$a->strings["Not Found"] = "No se ha encontrado"; -$a->strings["Page not found."] = "Página no encontrada."; -$a->strings["Permission denied"] = "Permiso denegado"; -$a->strings["toggle mobile"] = "Cambiar a versión móvil"; -$a->strings["Account approved."] = "Cuenta aprobada."; -$a->strings["Registration revoked for %s"] = "Registro anulado para %s"; -$a->strings["Please login."] = "Por favor accede."; +$a->strings["Disallowed profile URL."] = "Dirección de perfil no permitida."; +$a->strings["Connect URL missing."] = "Falta el conector URL."; +$a->strings["This site is not configured to allow communications with other networks."] = "Este sitio no está configurado para permitir la comunicación con otras redes."; +$a->strings["No compatible communication protocols or feeds were discovered."] = "No se ha descubierto protocolos de comunicación o fuentes compatibles."; +$a->strings["The profile address specified does not provide adequate information."] = "La dirección del perfil especificado no proporciona información adecuada."; +$a->strings["An author or name was not found."] = "No se ha encontrado un autor o nombre."; +$a->strings["No browser URL could be matched to this address."] = "Ninguna dirección concuerda con la suministrada."; +$a->strings["Unable to match @-style Identity Address with a known protocol or email contact."] = "Imposible identificar la dirección @ con algún protocolo conocido o dirección de contacto."; +$a->strings["Use mailto: in front of address to force email check."] = "Escribe mailto: al principio de la dirección para forzar el envío."; +$a->strings["The profile address specified belongs to a network which has been disabled on this site."] = "La dirección del perfil especificada pertenece a una red que ha sido deshabilitada en este sitio."; +$a->strings["Limited profile. This person will be unable to receive direct/personal notifications from you."] = "Perfil limitado. Esta persona no podrá recibir notificaciones directas/personales tuyas."; +$a->strings["Unable to retrieve contact information."] = "No ha sido posible recibir la información del contacto."; +$a->strings["Requested account is not available."] = "La cuenta solicitada no está disponible."; +$a->strings["Requested profile is not available."] = "El perfil solicitado no está disponible."; +$a->strings["Edit profile"] = "Editar perfil"; +$a->strings["Atom feed"] = "Atom feed"; +$a->strings["Manage/edit profiles"] = "Administrar/editar perfiles"; +$a->strings["Change profile photo"] = "Cambiar foto del perfil"; +$a->strings["Create New Profile"] = "Crear nuevo perfil"; +$a->strings["Profile Image"] = "Imagen del Perfil"; +$a->strings["visible to everybody"] = "Visible para todos"; +$a->strings["Edit visibility"] = "Editar visibilidad"; +$a->strings["Gender:"] = "Género:"; +$a->strings["Status:"] = "Estado:"; +$a->strings["Homepage:"] = "Página de inicio:"; +$a->strings["About:"] = "Acerca de:"; +$a->strings["XMPP:"] = "XMPP:"; +$a->strings["Network:"] = "Red:"; +$a->strings["g A l F d"] = "g A l F d"; +$a->strings["F d"] = "F d"; +$a->strings["[today]"] = "[hoy]"; +$a->strings["Birthday Reminders"] = "Recordatorios de cumpleaños"; +$a->strings["Birthdays this week:"] = "Cumpleaños esta semana:"; +$a->strings["[No description]"] = "[Sin descripción]"; +$a->strings["Event Reminders"] = "Recordatorios de eventos"; +$a->strings["Events this week:"] = "Eventos de esta semana:"; +$a->strings["Full Name:"] = "Nombre completo:"; +$a->strings["j F, Y"] = "j F, Y"; +$a->strings["j F"] = "j F"; +$a->strings["Age:"] = "Edad:"; +$a->strings["for %1\$d %2\$s"] = "por %1\$d %2\$s"; +$a->strings["Sexual Preference:"] = "Preferencia sexual:"; +$a->strings["Hometown:"] = "Ciudad de origen:"; +$a->strings["Tags:"] = "Etiquetas:"; +$a->strings["Political Views:"] = "Ideas políticas:"; +$a->strings["Religion:"] = "Religión:"; +$a->strings["Hobbies/Interests:"] = "Aficiones/Intereses:"; +$a->strings["Likes:"] = "Me gusta:"; +$a->strings["Dislikes:"] = "No me gusta:"; +$a->strings["Contact information and Social Networks:"] = "Información de contacto y Redes sociales:"; +$a->strings["Musical interests:"] = "Intereses musicales:"; +$a->strings["Books, literature:"] = "Libros, literatura:"; +$a->strings["Television:"] = "Televisión:"; +$a->strings["Film/dance/culture/entertainment:"] = "Películas/baile/cultura/entretenimiento:"; +$a->strings["Love/Romance:"] = "Amor/Romance:"; +$a->strings["Work/employment:"] = "Trabajo/ocupación:"; +$a->strings["School/education:"] = "Escuela/estudios:"; +$a->strings["Forums:"] = "Foros:"; +$a->strings["Basic"] = "Basic"; +$a->strings["Advanced"] = "Avanzado"; +$a->strings["Status Messages and Posts"] = "Mensajes de Estado y Publicaciones"; +$a->strings["Profile Details"] = "Detalles del Perfil"; +$a->strings["Photo Albums"] = "Álbum de Fotos"; +$a->strings["Personal Notes"] = "Notas personales"; +$a->strings["Only You Can See This"] = "Únicamente tú puedes ver esto"; +$a->strings["[Name Withheld]"] = "[Nombre oculto]"; +$a->strings["Item not found."] = "Elemento no encontrado."; +$a->strings["Do you really want to delete this item?"] = "¿Realmente quieres borrar este objeto?"; +$a->strings["Yes"] = "Sí"; +$a->strings["Permission denied."] = "Permiso denegado."; +$a->strings["Archives"] = "Archivos"; +$a->strings["Embedded content"] = "Contenido integrado"; +$a->strings["Embedding disabled"] = "Contenido incrustrado desabilitado"; +$a->strings["%s is now following %s."] = "%s sigue ahora a %s."; +$a->strings["following"] = "siguiendo"; +$a->strings["%s stopped following %s."] = "%s dejó de seguir a %s."; +$a->strings["stopped following"] = "dejó de seguir"; +$a->strings["newer"] = "más nuevo"; +$a->strings["older"] = "más antiguo"; +$a->strings["prev"] = "ant."; +$a->strings["first"] = "primera"; +$a->strings["last"] = "última"; +$a->strings["next"] = "sig."; +$a->strings["Loading more entries..."] = "Cargar mas entradas .."; +$a->strings["The end"] = "El fin"; +$a->strings["No contacts"] = "Sin contactos"; +$a->strings["%d Contact"] = array( + 0 => "%d Contacto", + 1 => "%d Contactos", +); +$a->strings["View Contacts"] = "Ver contactos"; +$a->strings["Save"] = "Guardar"; +$a->strings["poke"] = "tocar"; +$a->strings["poked"] = "tocó a"; +$a->strings["ping"] = "hacer \"ping\""; +$a->strings["pinged"] = "hizo \"ping\" a"; +$a->strings["prod"] = "empujar"; +$a->strings["prodded"] = "empujó a"; +$a->strings["slap"] = "abofetear"; +$a->strings["slapped"] = "abofeteó a"; +$a->strings["finger"] = "meter dedo"; +$a->strings["fingered"] = "le metió un dedo a"; +$a->strings["rebuff"] = "desairar"; +$a->strings["rebuffed"] = "desairó a"; +$a->strings["happy"] = "feliz"; +$a->strings["sad"] = "triste"; +$a->strings["mellow"] = "sentimental"; +$a->strings["tired"] = "cansado"; +$a->strings["perky"] = "alegre"; +$a->strings["angry"] = "furioso"; +$a->strings["stupified"] = "estupefacto"; +$a->strings["puzzled"] = "extrañado"; +$a->strings["interested"] = "interesado"; +$a->strings["bitter"] = "rencoroso"; +$a->strings["cheerful"] = "jovial"; +$a->strings["alive"] = "vivo"; +$a->strings["annoyed"] = "enojado"; +$a->strings["anxious"] = "ansioso"; +$a->strings["cranky"] = "irritable"; +$a->strings["disturbed"] = "perturbado"; +$a->strings["frustrated"] = "frustrado"; +$a->strings["motivated"] = "motivado"; +$a->strings["relaxed"] = "relajado"; +$a->strings["surprised"] = "sorprendido"; +$a->strings["View Video"] = "Ver vídeo"; +$a->strings["bytes"] = "bytes"; +$a->strings["Click to open/close"] = "Pulsa para abrir/cerrar"; +$a->strings["View on separate page"] = "Ver en pagina aparte"; +$a->strings["view on separate page"] = "ver en pagina aparte"; +$a->strings["activity"] = "Actividad"; +$a->strings["comment"] = array( + 0 => "", + 1 => "Comentario", +); +$a->strings["post"] = "Publicación"; +$a->strings["Item filed"] = "Elemento archivado"; +$a->strings["Passwords do not match. Password unchanged."] = "Las contraseñas no coinciden. La contraseña no ha sido modificada."; +$a->strings["An invitation is required."] = "Se necesita invitación."; +$a->strings["Invitation could not be verified."] = "No se puede verificar la invitación."; +$a->strings["Invalid OpenID url"] = "Dirección OpenID no válida"; +$a->strings["Please enter the required information."] = "Por favor, introduce la información necesaria."; +$a->strings["Please use a shorter name."] = "Por favor, usa un nombre más corto."; +$a->strings["Name too short."] = "El nombre es demasiado corto."; +$a->strings["That doesn't appear to be your full (First Last) name."] = "No parece que ese sea tu nombre completo."; +$a->strings["Your email domain is not among those allowed on this site."] = "Tu dominio de correo no se encuentra entre los permitidos en este sitio."; +$a->strings["Not a valid email address."] = "No es una dirección de correo electrónico válida."; +$a->strings["Cannot use that email."] = "No se puede utilizar este correo electrónico."; +$a->strings["Your \"nickname\" can only contain \"a-z\", \"0-9\" and \"_\"."] = "El apodo solo puede contener \"a-z\", \"0-9\" y \"_\"."; +$a->strings["Nickname is already registered. Please choose another."] = "Apodo ya registrado. Por favor, elije otro."; +$a->strings["Nickname was once registered here and may not be re-used. Please choose another."] = "El apodo ya ha sido registrado alguna vez y no puede volver a usarse. Por favor, utiliza otro."; +$a->strings["SERIOUS ERROR: Generation of security keys failed."] = "ERROR GRAVE: La generación de claves de seguridad ha fallado."; +$a->strings["An error occurred during registration. Please try again."] = "Se produjo un error durante el registro. Por favor, inténtalo de nuevo."; +$a->strings["default"] = "predeterminado"; +$a->strings["An error occurred creating your default profile. Please try again."] = "Error al crear tu perfil predeterminado. Por favor, inténtalo de nuevo."; +$a->strings["Profile Photos"] = "Foto del perfil"; +$a->strings["\n\t\tDear %1\$s,\n\t\t\tThank you for registering at %2\$s. Your account is pending for approval by the administrator.\n\t"] = "\n\t\tEstimado %1\$s,\n\t\t\tGracias por registrarse en %2\$s. Su cuenta está pendiente de aprobación por el administrador.\n\t"; +$a->strings["Registration at %s"] = "Registro en %s"; +$a->strings["\n\t\tDear %1\$s,\n\t\t\tThank you for registering at %2\$s. Your account has been created.\n\t"] = "\n\t\tEstimado %1\$s,\n\t\t\tGracias por registrar en %2\$s. Su cuenta ha sido creada.\n\t"; +$a->strings["\n\t\tThe login details are as follows:\n\t\t\tSite Location:\t%3\$s\n\t\t\tLogin Name:\t%1\$s\n\t\t\tPassword:\t%5\$s\n\n\t\tYou may change your password from your account \"Settings\" page after logging\n\t\tin.\n\n\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\tYou may also wish to add some basic information to your default profile\n\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\tWe recommend setting your full name, adding a profile photo,\n\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\tthan that.\n\n\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\tIf you are new and do not know anybody here, they may help\n\t\tyou to make some new and interesting friends.\n\n\n\t\tThank you and welcome to %2\$s."] = "\n\t\t\tLos detalles de acceso son las siguientes:\n\n\t\t\tDirección del sitio:\t%3\$s\n\t\t\tNombre de la cuenta:\t\t%1\$s\n\t\t\tContraseña:\t\t%5\$s\n\n\t\t\tPodrá cambiar la contraseña desde la pagina de configuración de su cuenta después de acceder a la misma\n\t\t\ten.\n\n\t\t\tPor favor tome unos minutos para revisar las opciones demás de la cuenta en dicha pagina de configuración.\n\n\t\t\tTambién podrá agregar informaciones adicionales a su pagina de perfil predeterminado. \n\t\t\t(en la pagina \"Perfiles\") para que otras personas pueden encontrarlo fácilmente.\n\n\t\t\tRecomendamos que elija un nombre apropiado, agregando una imagen de perfil,\n\t\t\tagregando algunas palabras claves de la cuenta (muy útil para hacer nuevos amigos) - y \n\t\t\tquizás el país en donde vive; si no quiere ser mas especifico\n\t\t\tque eso.\n\n\t\t\tRespetamos absolutamente su derecho a la privacidad y ninguno de estos detalles es necesario.\n\t\t\tSi eres nuevo aquí y no conoces a nadie, estos detalles pueden ayudarte\n\t\t\tpara hacer nuevas e interesantes amistades.\n\n\t\t\tGracias y bienvenido a %2\$s."; +$a->strings["Registration details for %s"] = "Detalles de registro para %s"; $a->strings["Post successful."] = "¡Publicado!"; -$a->strings["[Embedded content - reload page to view]"] = "[Contenido incrustado - recarga la página para verlo]"; -$a->strings["People Search - %s"] = "Buscar perfiles - %s"; -$a->strings["Forum Search - %s"] = "Búsqueda de foro - %s"; -$a->strings["No matches"] = "Sin conincidencias"; $a->strings["Access denied."] = "Acceso denegado."; $a->strings["Welcome to %s"] = "Bienvenido a %s"; $a->strings["No more system notifications."] = "No hay más notificaciones del sistema."; @@ -761,6 +738,316 @@ $a->strings["Only one search per minute is permitted for not logged in users."] $a->strings["No results."] = "Sin resultados."; $a->strings["Items tagged with: %s"] = "Objetos taggeado con: %s"; $a->strings["Results for: %s"] = "Resultados para: %s"; +$a->strings["This is Friendica, version"] = "Esto es Friendica, versión"; +$a->strings["running at web location"] = "ejecutándose en la dirección web"; +$a->strings["Please visit Friendica.com to learn more about the Friendica project."] = "Por favor, visita Friendica.com para saber más sobre el proyecto Friendica."; +$a->strings["Bug reports and issues: please visit"] = "Reporte de fallos y problemas: por favor visita"; +$a->strings["the bugtracker at github"] = "aviso de fallas (bugs) en github"; +$a->strings["Suggestions, praise, donations, etc. - please email \"Info\" at Friendica - dot com"] = "Sugerencias, elogios, donaciones, etc. por favor manda un correo a Info arroba Friendica punto com"; +$a->strings["Installed plugins/addons/apps:"] = "Módulos/extensiones/aplicaciones instalados:"; +$a->strings["No installed plugins/addons/apps"] = "Módulos/extensiones/aplicaciones no instalados"; +$a->strings["No valid account found."] = "No se ha encontrado ninguna cuenta válida"; +$a->strings["Password reset request issued. Check your email."] = "Solicitud de restablecimiento de contraseña enviada. Revisa tu correo."; +$a->strings["\n\t\tDear %1\$s,\n\t\t\tA request was recently received at \"%2\$s\" to reset your account\n\t\tpassword. In order to confirm this request, please select the verification link\n\t\tbelow or paste it into your web browser address bar.\n\n\t\tIf you did NOT request this change, please DO NOT follow the link\n\t\tprovided and ignore and/or delete this email.\n\n\t\tYour password will not be changed unless we can verify that you\n\t\tissued this request."] = "\n\t\tEstimado %1\$s,\n\t\t\tUna consulta llego recientemente a \"%2\$s\" para renovar su\n\t\tcontraseña. Para confirmar esta solicitud por favor seleccione el enlace de verificación mas \n\t\tabajo o copie a pegue el mismo en la barra de dirección de su navegador.\n\n\t\tSi NO ha solicitado este cambio por favor NO SIGA este enlace\n\t\tproporcionado y ignore o borre este mail.\n\n\t\tSu contraseña no sera cambiada hasta que podamos verificar que usted haza\n\t\tsolicitado este cambio.."; +$a->strings["\n\t\tFollow this link to verify your identity:\n\n\t\t%1\$s\n\n\t\tYou will then receive a follow-up message containing the new password.\n\t\tYou may change that password from your account settings page after logging in.\n\n\t\tThe login details are as follows:\n\n\t\tSite Location:\t%2\$s\n\t\tLogin Name:\t%3\$s"] = "\n\t\tSiga este enlace para verificar su identidad:\n\n\t\t%1\$s\n\n\t\tA continuación recibirá un mensaje consecutivo conteniendo la nueva contraseña.\n\t\tPodrá cambiar la contraseña después de haber accedido a la cuenta.\n\n\t\tLos detalles del acceso son las siguientes:\n\n\t\tDirección del sitio:\t%2\$s\n\t\tNombre de la cuenta:\t%3\$s"; +$a->strings["Password reset requested at %s"] = "Contraseña restablecida enviada a %s"; +$a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "La solicitud no puede ser verificada (deberías haberla proporcionado antes). Falló el restablecimiento de la contraseña."; +$a->strings["Password Reset"] = "Restablecer la contraseña"; +$a->strings["Your password has been reset as requested."] = "Tu contraseña ha sido restablecida como solicitaste."; +$a->strings["Your new password is"] = "Tu nueva contraseña es"; +$a->strings["Save or copy your new password - and then"] = "Guarda o copia tu nueva contraseña y luego"; +$a->strings["click here to login"] = "pulsa aquí para acceder"; +$a->strings["Your password may be changed from the Settings page after successful login."] = "Puedes cambiar tu contraseña desde la página de Configuración después de acceder con éxito."; +$a->strings["\n\t\t\t\tDear %1\$s,\n\t\t\t\t\tYour password has been changed as requested. Please retain this\n\t\t\t\tinformation for your records (or change your password immediately to\n\t\t\t\tsomething that you will remember).\n\t\t\t"] = "\n\t\t\t\tEstimado %1\$s,\n\t\t\t\t\tSu contraseña ha cambiado como solicitado. Por favor guarde esta\n\t\t\t\tinformación para sus documentación (o cambie su contraseña inmediatamente a\n\t\t\t\talgo que pueda recordar).\n\t\t"; +$a->strings["\n\t\t\t\tYour login details are as follows:\n\n\t\t\t\tSite Location:\t%1\$s\n\t\t\t\tLogin Name:\t%2\$s\n\t\t\t\tPassword:\t%3\$s\n\n\t\t\t\tYou may change that password from your account settings page after logging in.\n\t\t\t"] = "\n\t\t\t\tSus datos de acceso son las siguientes:\n\n\t\t\t\tDirección del sitio:\t%1\$s\n\t\t\t\tNombre de cuenta:\t%2\$s\n\t\t\t\tContraseña:\t%3\$s\n\n\t\t\t\tPodrá cambiar esta contraseña después de ingresar al sitio en su pagina de configuración.\n\t\t\t"; +$a->strings["Your password has been changed at %s"] = "Tu contraseña se ha cambiado por %s"; +$a->strings["Forgot your Password?"] = "¿Olvidaste tu contraseña?"; +$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Introduce tu correo para restablecer tu contraseña. Luego comprueba tu correo para las instrucciones adicionales."; +$a->strings["Nickname or Email: "] = "Apodo o Correo electrónico: "; +$a->strings["Reset"] = "Restablecer"; +$a->strings["No profile"] = "Nigún perfil"; +$a->strings["Help:"] = "Ayuda:"; +$a->strings["Not Found"] = "No se ha encontrado"; +$a->strings["Page not found."] = "Página no encontrada."; +$a->strings["Remote privacy information not available."] = "Privacidad de la información remota no disponible."; +$a->strings["Visible to:"] = "Visible para:"; +$a->strings["OpenID protocol error. No ID returned."] = "Error de protocolo OpenID. ID no devuelta."; +$a->strings["Account not found and OpenID registration is not permitted on this site."] = "Cuenta no encontrada y el registro OpenID no está permitido en ese sitio."; +$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Este sitio ha excedido el número de registros diarios permitidos. Inténtalo de nuevo mañana por favor."; +$a->strings["Import"] = "Importar"; +$a->strings["Move account"] = "Mover cuenta"; +$a->strings["You can import an account from another Friendica server."] = "Puedes importar una cuenta desde otro servidor de Friendica."; +$a->strings["You need to export your account from the old server and upload it here. We will recreate your old account here with all your contacts. We will try also to inform your friends that you moved here."] = "Necesitas exportar tu cuenta del antiguo servidor y subirla aquí. Volveremos a crear tu antigua cuenta con todos tus contactos aquí. También intentaremos de informar a tus amigos de que te has mudado."; +$a->strings["This feature is experimental. We can't import contacts from the OStatus network (GNU Social/Statusnet) or from Diaspora"] = "Esta característica es experimental. No podemos importar contactos desde la red OStatus (statusnet/identi.ca) o desde Diaspora*"; +$a->strings["Account file"] = "Archivo de la cuenta"; +$a->strings["To export your account, go to \"Settings->Export your personal data\" and select \"Export account\""] = "Para exportar el perfil vaya a \"Configuracion -> Exportar sus datos personales\" y seleccione \"Exportar cuenta\""; +$a->strings["Visit %s's profile [%s]"] = "Ver el perfil de %s [%s]"; +$a->strings["Edit contact"] = "Modificar contacto"; +$a->strings["Contacts who are not members of a group"] = "Contactos sin grupo"; +$a->strings["Export account"] = "Exportar cuenta"; +$a->strings["Export your account info and contacts. Use this to make a backup of your account and/or to move it to another server."] = "Exporta la información de tu cuenta y tus contactos. Úsalo para guardar una copia de seguridad de tu cuenta y/o moverla a otro servidor."; +$a->strings["Export all"] = "Exportar todo"; +$a->strings["Export your accout info, contacts and all your items as json. Could be a very big file, and could take a lot of time. Use this to make a full backup of your account (photos are not exported)"] = "Exporta la información de tu cuenta, contactos y lo demás en JSON. Puede ser un archivo bastante grande, por lo que llevará tiempo. Úsalo para hacer una copia de seguridad completa de tu cuenta (las fotos no se exportarán)"; +$a->strings["Export personal data"] = "Exportación de datos personales"; +$a->strings["Total invitation limit exceeded."] = "Límite total de invitaciones excedido."; +$a->strings["%s : Not a valid email address."] = "%s : No es una dirección de correo válida."; +$a->strings["Please join us on Friendica"] = "Únete a nosotros en Friendica"; +$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Límite de invitaciones sobrepasado. Contacta con el administrador del sitio."; +$a->strings["%s : Message delivery failed."] = "%s : Ha fallado la entrega del mensaje."; +$a->strings["%d message sent."] = array( + 0 => "%d mensaje enviado.", + 1 => "%d mensajes enviados.", +); +$a->strings["You have no more invitations available"] = "No tienes más invitaciones disponibles"; +$a->strings["Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks."] = "Visita %s para ver una lista de servidores públicos donde puedes darte de alta. Los miembros de otros servidores de Friendica pueden conectarse entre ellos, así como con miembros de otras redes sociales diferentes."; +$a->strings["To accept this invitation, please visit and register at %s or any other public Friendica website."] = "Para aceptar la invitación visita y regístrate en %s o en cualquier otro servidor público de Friendica."; +$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join."] = "Los servidores de Friendica están interconectados para crear una enorme red social centrada en la privacidad y controlada por sus miembros. También se puede conectar con muchas redes sociales tradicionales. Mira en %s para poder ver un listado de servidores alternativos de Friendica donde puedes darte de alta."; +$a->strings["Our apologies. This system is not currently configured to connect with other public sites or invite members."] = "Discúlpanos. Este sistema no está configurado actualmente para conectar con otros servidores públicos o invitar nuevos miembros."; +$a->strings["Send invitations"] = "Enviar invitaciones"; +$a->strings["Enter email addresses, one per line:"] = "Introduce las direcciones de correo, una por línea:"; +$a->strings["Your message:"] = "Tu mensaje:"; +$a->strings["You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web."] = "Estás cordialmente invitado a unirte a mi y a otros amigos en Friendica, creemos juntos una red social mejor."; +$a->strings["You will need to supply this invitation code: \$invite_code"] = "Tienes que proporcionar el siguiente código: \$invite_code"; +$a->strings["Once you have registered, please connect with me via my profile page at:"] = "Una vez registrado, por favor contacta conmigo a través de mi página de perfil en:"; +$a->strings["For more information about the Friendica project and why we feel it is important, please visit http://friendica.com"] = "Para más información sobre el Proyecto Friendica y sobre por qué pensamos que es algo importante, visita http://friendica.com"; +$a->strings["Submit"] = "Envíar"; +$a->strings["Files"] = "Archivos"; +$a->strings["Permission denied"] = "Permiso denegado"; +$a->strings["Invalid profile identifier."] = "Identificador de perfil no válido."; +$a->strings["Profile Visibility Editor"] = "Editor de visibilidad del perfil"; +$a->strings["Click on a contact to add or remove."] = "Pulsa en un contacto para añadirlo o eliminarlo."; +$a->strings["Visible To"] = "Visible para"; +$a->strings["All Contacts (with secure profile access)"] = "Todos los contactos (con perfil de acceso seguro)"; +$a->strings["Tag removed"] = "Etiqueta eliminada"; +$a->strings["Remove Item Tag"] = "Eliminar etiqueta"; +$a->strings["Select a tag to remove: "] = "Selecciona una etiqueta para eliminar: "; +$a->strings["Remove"] = "Eliminar"; +$a->strings["Resubscribing to OStatus contacts"] = "Resubscribir a contactos de OStatus"; +$a->strings["Error"] = "error"; +$a->strings["Done"] = "hecho!"; +$a->strings["Keep this window open until done."] = "Mantén esta ventana abierta hasta que el proceso ha terminado."; +$a->strings["No potential page delegates located."] = "No se han localizado delegados potenciales de la página."; +$a->strings["Delegates are able to manage all aspects of this account/page except for basic account settings. Please do not delegate your personal account to anybody that you do not trust completely."] = "Los delegados tienen la capacidad de gestionar todos los aspectos de esta cuenta/página, excepto los ajustes básicos de la cuenta. Por favor, no delegues tu cuenta personal a nadie en quien no confíes completamente."; +$a->strings["Existing Page Managers"] = "Administradores actuales de la página"; +$a->strings["Existing Page Delegates"] = "Delegados actuales de la página"; +$a->strings["Potential Delegates"] = "Delegados potenciales"; +$a->strings["Add"] = "Añadir"; +$a->strings["No entries."] = "Sin entradas."; +$a->strings["Credits"] = "Creditos"; +$a->strings["Friendica is a community project, that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!"] = "Friendica es un proyecto comunitario, que no seria posible sin la ayuda de mucha gente. Aquí una lista de de aquellos que aportaron al código o la traducción de friendica.\nGracias a todos! "; +$a->strings["- select -"] = "- seleccionar -"; +$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s está siguiendo las %3\$s de %2\$s"; +$a->strings["Item not available."] = "Elemento no disponible."; +$a->strings["Item was not found."] = "Elemento no encontrado."; +$a->strings["You must be logged in to use addons. "] = "Tienes que estar registrado para tener acceso a los accesorios."; +$a->strings["Applications"] = "Aplicaciones"; +$a->strings["No installed applications."] = "Sin aplicaciones"; +$a->strings["Not Extended"] = "No extendido"; +$a->strings["Welcome to Friendica"] = "Bienvenido a Friendica "; +$a->strings["New Member Checklist"] = "Listado de nuevos miembros"; +$a->strings["We would like to offer some tips and links to help make your experience enjoyable. Click any item to visit the relevant page. A link to this page will be visible from your home page for two weeks after your initial registration and then will quietly disappear."] = "Nos gustaría ofrecerte algunos consejos y enlaces para ayudar a hacer tu experiencia más amena. Pulsa en cualquier elemento para visitar la página correspondiente. Un enlace a esta página será visible desde tu página de inicio durante las dos semanas siguientes a tu inscripción y luego desaparecerá."; +$a->strings["Getting Started"] = "Empezando"; +$a->strings["Friendica Walk-Through"] = "Visita guiada a Friendica"; +$a->strings["On your Quick Start page - find a brief introduction to your profile and network tabs, make some new connections, and find some groups to join."] = "En tu página de Inicio Rápido - busca una introducción breve para tus pestañas de perfil y red, haz algunas conexiones nuevas, y busca algunos grupos a los que unirte."; +$a->strings["Go to Your Settings"] = "Ir a tus ajustes"; +$a->strings["On your Settings page - change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web."] = "En la página de Configuración puedes cambiar tu contraseña inicial. También aparece tu ID (Identity Address). Es parecida a una dirección de correo y te servirá para conectar con gente de redes sociales libres."; +$a->strings["Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you."] = "Revisa las otras configuraciones, especialmente la configuración de privacidad. Un listado de directorio sin publicar es como tener un número de teléfono sin publicar. Normalmente querrás publicar tu listado, a menos que tus amigos y amigos potenciales sepan cómo ponerse en contacto contigo."; +$a->strings["Upload Profile Photo"] = "Subir foto del Perfil"; +$a->strings["Upload a profile photo if you have not done so already. Studies have shown that people with real photos of themselves are ten times more likely to make friends than people who do not."] = "Sube una foto para tu perfil si no lo has hecho aún. Los estudios han demostrado que la gente que usa fotos suyas reales tienen diez veces más éxito a la hora de entablar amistad que las que no."; +$a->strings["Edit Your Profile"] = "Editar tu perfil"; +$a->strings["Edit your default profile to your liking. Review the settings for hiding your list of friends and hiding the profile from unknown visitors."] = "Edita tu perfil predeterminado como quieras. Revisa la configuración para ocultar tu lista de amigos o tu perfil a los visitantes desconocidos."; +$a->strings["Profile Keywords"] = "Palabras clave del perfil"; +$a->strings["Set some public keywords for your default profile which describe your interests. We may be able to find other people with similar interests and suggest friendships."] = "Define en tu perfil público algunas palabras que describan tus intereses. Así podremos buscar otras personas con los mismos gustos y sugerirte posibles amigos."; +$a->strings["Connecting"] = "Conectando"; +$a->strings["Importing Emails"] = "Importando correos electrónicos"; +$a->strings["Enter your email access information on your Connector Settings page if you wish to import and interact with friends or mailing lists from your email INBOX"] = "Introduce la información para acceder a tu correo en la página de Configuración del conector si quieres importar e interactuar con amigos o listas de correos del buzón de entrada de tu correo electrónico."; +$a->strings["Go to Your Contacts Page"] = "Ir a tu página de contactos"; +$a->strings["Your Contacts page is your gateway to managing friendships and connecting with friends on other networks. Typically you enter their address or site URL in the Add New Contact dialog."] = "Tu página de Contactos es el portal desde donde podrás manejar tus amistades y conectarte con amigos de otras redes. Normalmente introduces su dirección o la dirección de su sitio web en el recuadro \"Añadir contacto nuevo\"."; +$a->strings["Go to Your Site's Directory"] = "Ir al directorio de tu sitio"; +$a->strings["The Directory page lets you find other people in this network or other federated sites. Look for a Connect or Follow link on their profile page. Provide your own Identity Address if requested."] = "El Directorio te permite encontrar otras personas en esta red o en cualquier otro sitio federado. Busca algún enlace de Conectar o Seguir en su perfil. Proporciona tu direción personal si es necesario."; +$a->strings["Finding New People"] = "Encontrando nueva gente"; +$a->strings["On the side panel of the Contacts page are several tools to find new friends. We can match people by interest, look up people by name or interest, and provide suggestions based on network relationships. On a brand new site, friend suggestions will usually begin to be populated within 24 hours."] = "En el panel lateral de la página de Contactos existen varias herramientas para encontrar nuevos amigos. Podemos filtrar personas por sus intereses, buscar personas por nombre o por sus intereses, y ofrecerte sugerencias basadas en sus relaciones de la red. En un sitio nuevo, las sugerencias de amigos por lo general comienzan pasadas las 24 horas."; +$a->strings["Group Your Contacts"] = "Agrupa tus contactos"; +$a->strings["Once you have made some friends, organize them into private conversation groups from the sidebar of your Contacts page and then you can interact with each group privately on your Network page."] = "Una vez que tengas algunos amigos, puedes organizarlos en grupos privados de conversación mediante el memnú en tu página de Contactos y luego puedes interactuar con cada grupo por separado desde tu página de Red."; +$a->strings["Why Aren't My Posts Public?"] = "¿Por qué mis publicaciones no son públicas?"; +$a->strings["Friendica respects your privacy. By default, your posts will only show up to people you've added as friends. For more information, see the help section from the link above."] = "Friendica respeta tu privacidad. Por defecto, tus publicaciones solo se mostrarán a personas que hayas añadido como amistades. Para más información, mira la sección de ayuda en el enlace de más arriba."; +$a->strings["Getting Help"] = "Consiguiendo ayuda"; +$a->strings["Go to the Help Section"] = "Ir a la sección de ayuda"; +$a->strings["Our help pages may be consulted for detail on other program features and resources."] = "Puedes consultar nuestra página de Ayuda para más información y recursos de ayuda."; +$a->strings["Remove My Account"] = "Eliminar mi cuenta"; +$a->strings["This will completely remove your account. Once this has been done it is not recoverable."] = "Esto eliminará por completo tu cuenta. Una vez hecho no se puede deshacer."; +$a->strings["Please enter your password for verification:"] = "Por favor, introduce tu contraseña para la verificación:"; +$a->strings["Item not found"] = "Elemento no encontrado"; +$a->strings["Edit post"] = "Editar publicación"; +$a->strings["Time Conversion"] = "Conversión horária"; +$a->strings["Friendica provides this service for sharing events with other networks and friends in unknown timezones."] = "Friendica ofrece este servicio para compartir eventos con otros servidores de la red friendica y amigos en zonas de horarios desconocidos."; +$a->strings["UTC time: %s"] = "Tiempo UTC: %s"; +$a->strings["Current timezone: %s"] = "Zona horaria actual: %s"; +$a->strings["Converted localtime: %s"] = "Zona horaria local convertida: %s"; +$a->strings["Please select your timezone:"] = "Por favor, selecciona tu zona horaria:"; +$a->strings["The post was created"] = "La publicación fue creada"; +$a->strings["Group created."] = "Grupo creado."; +$a->strings["Could not create group."] = "Imposible crear el grupo."; +$a->strings["Group not found."] = "Grupo no encontrado."; +$a->strings["Group name changed."] = "El nombre del grupo ha cambiado."; +$a->strings["Save Group"] = "Guardar grupo"; +$a->strings["Create a group of contacts/friends."] = "Crea un grupo de contactos/amigos."; +$a->strings["Group removed."] = "Grupo eliminado."; +$a->strings["Unable to remove group."] = "No se puede eliminar el grupo."; +$a->strings["Group Editor"] = "Editor de grupos"; +$a->strings["Members"] = "Miembros"; +$a->strings["All Contacts"] = "Todos los contactos"; +$a->strings["Group is empty"] = "El grupo está vacío"; +$a->strings["Number of daily wall messages for %s exceeded. Message failed."] = "Excedido el número máximo de mensajes para %s. El mensaje no se ha enviado."; +$a->strings["No recipient selected."] = "Ningún destinatario seleccionado"; +$a->strings["Unable to check your home location."] = "Imposible comprobar tu servidor de inicio."; +$a->strings["Message could not be sent."] = "El mensaje no ha podido ser enviado."; +$a->strings["Message collection failure."] = "Fallo en la recolección de mensajes."; +$a->strings["Message sent."] = "Mensaje enviado."; +$a->strings["No recipient."] = "Sin receptor."; +$a->strings["Send Private Message"] = "Enviar mensaje privado"; +$a->strings["If you wish for %s to respond, please check that the privacy settings on your site allow private mail from unknown senders."] = "Si quieres que %s te responda, asegúrate de que la configuración de privacidad permite enviar correo privado a desconocidos."; +$a->strings["To:"] = "Para:"; +$a->strings["Subject:"] = "Asunto:"; +$a->strings["link"] = "enlace"; +$a->strings["Authorize application connection"] = "Autorizar la conexión de la aplicación"; +$a->strings["Return to your app and insert this Securty Code:"] = "Regresa a tu aplicación e introduce este código de seguridad:"; +$a->strings["Please login to continue."] = "Inicia sesión para continuar."; +$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "¿Quieres autorizar a esta aplicación el acceso a tus mensajes y contactos, y/o crear nuevas publicaciones para ti?"; +$a->strings["No"] = "No"; +$a->strings["Source (bbcode) text:"] = "Texto fuente (bbcode):"; +$a->strings["Source (Diaspora) text to convert to BBcode:"] = "Fuente (Diaspora) para pasar a BBcode:"; +$a->strings["Source input: "] = "Entrada: "; +$a->strings["bb2html (raw HTML): "] = "bb2html (raw HTML): "; +$a->strings["bb2html: "] = "bb2html: "; +$a->strings["bb2html2bb: "] = "bb2html2bb: "; +$a->strings["bb2md: "] = "bb2md: "; +$a->strings["bb2md2html: "] = "bb2md2html: "; +$a->strings["bb2dia2bb: "] = "bb2dia2bb: "; +$a->strings["bb2md2html2bb: "] = "bb2md2html2bb: "; +$a->strings["Source input (Diaspora format): "] = "Fuente (formato Diaspora): "; +$a->strings["diaspora2bb: "] = "diaspora2bb: "; +$a->strings["Subscribing to OStatus contacts"] = "Subscribir a los contactos de OStatus"; +$a->strings["No contact provided."] = "Sin suministro de datos de contacto."; +$a->strings["Couldn't fetch information for contact."] = "No se ha podido conseguir la información del contacto."; +$a->strings["Couldn't fetch friends for contact."] = "No se ha podido conseguir datos de amigos para contactar."; +$a->strings["success"] = "exito!"; +$a->strings["failed"] = "fallido!"; +$a->strings["ignored"] = "ignorado"; +$a->strings["%1\$s welcomes %2\$s"] = "%1\$s te da la bienvenida a %2\$s"; +$a->strings["Unable to locate contact information."] = "No se puede encontrar información del contacto."; +$a->strings["Do you really want to delete this message?"] = "¿Estás seguro de que quieres borrar este mensaje?"; +$a->strings["Message deleted."] = "Mensaje eliminado."; +$a->strings["Conversation removed."] = "Conversación eliminada."; +$a->strings["No messages."] = "No hay mensajes."; +$a->strings["Message not available."] = "Mensaje no disponibile."; +$a->strings["Delete message"] = "Borrar mensaje"; +$a->strings["Delete conversation"] = "Eliminar conversación"; +$a->strings["No secure communications available. You may be able to respond from the sender's profile page."] = "No hay comunicaciones seguras disponibles. Podrías responder desde la página de perfil del remitente. "; +$a->strings["Send Reply"] = "Enviar respuesta"; +$a->strings["Unknown sender - %s"] = "Remitente desconocido - %s"; +$a->strings["You and %s"] = "Tú y %s"; +$a->strings["%s and You"] = "%s y Tú"; +$a->strings["D, d M Y - g:i A"] = "D, d M Y - g:i A"; +$a->strings["%d message"] = array( + 0 => "%d mensaje", + 1 => "%d mensajes", +); +$a->strings["Manage Identities and/or Pages"] = "Administrar identidades y/o páginas"; +$a->strings["Toggle between different identities or community/group pages which share your account details or which you have been granted \"manage\" permissions"] = "Cambia entre diferentes identidades o páginas de Comunidad/Grupos que comparten los detalles de tu cuenta o sobre los que tienes permisos para administrar"; +$a->strings["Select an identity to manage: "] = "Selecciona una identidad a gestionar:"; +$a->strings["Contact settings applied."] = "Contacto configurado con éxito."; +$a->strings["Contact update failed."] = "Error al actualizar el Contacto."; +$a->strings["Contact not found."] = "Contacto no encontrado."; +$a->strings["WARNING: This is highly advanced and if you enter incorrect information your communications with this contact may stop working."] = "ADVERTENCIA: Esto es muy avanzado y si se introduce información incorrecta tu conexión con este contacto puede dejar de funcionar."; +$a->strings["Please use your browser 'Back' button now if you are uncertain what to do on this page."] = "Por favor usa el botón 'Atás' de tu navegador ahora si no tienes claro qué hacer en esta página."; +$a->strings["No mirroring"] = "No espejar"; +$a->strings["Mirror as forwarded posting"] = "Espejar como reenvio"; +$a->strings["Mirror as my own posting"] = "Espejar como publicación propia"; +$a->strings["Return to contact editor"] = "Volver al editor de contactos"; +$a->strings["Refetch contact data"] = "Volver a solicitar datos del contacto."; +$a->strings["Remote Self"] = "Perfil remoto"; +$a->strings["Mirror postings from this contact"] = "Espejar publicaciones de este contacto"; +$a->strings["Mark this contact as remote_self, this will cause friendica to repost new entries from this contact."] = "Marcar este contacto como perfil_remoto, esto generara que friendica reenvía nuevas publicaciones desde esta cuenta."; +$a->strings["Name"] = "Nombre"; +$a->strings["Account Nickname"] = "Apodo de la cuenta"; +$a->strings["@Tagname - overrides Name/Nickname"] = "@Etiqueta - Sobrescribe el Nombre/Apodo"; +$a->strings["Account URL"] = "Dirección de la cuenta"; +$a->strings["Friend Request URL"] = "Dirección de la solicitud de amistad"; +$a->strings["Friend Confirm URL"] = "Dirección de confirmación de tu amigo "; +$a->strings["Notification Endpoint URL"] = "Dirección URL de la notificación"; +$a->strings["Poll/Feed URL"] = "Dirección del Sondeo/Fuentes"; +$a->strings["New photo from this URL"] = "Nueva foto de esta dirección"; +$a->strings["No such group"] = "Ningún grupo"; +$a->strings["Group: %s"] = "Grupo: %s"; +$a->strings["This entry was edited"] = "Esta entrada fue editada"; +$a->strings["%d comment"] = array( + 0 => "%d comentario", + 1 => "%d comentarios", +); +$a->strings["Private Message"] = "Mensaje privado"; +$a->strings["I like this (toggle)"] = "Me gusta esto (cambiar)"; +$a->strings["like"] = "me gusta"; +$a->strings["I don't like this (toggle)"] = "No me gusta esto (cambiar)"; +$a->strings["dislike"] = "no me gusta"; +$a->strings["Share this"] = "Compartir esto"; +$a->strings["share"] = "compartir"; +$a->strings["This is you"] = "Este eres tú"; +$a->strings["Comment"] = "Comentar"; +$a->strings["Bold"] = "Negrita"; +$a->strings["Italic"] = "Cursiva"; +$a->strings["Underline"] = "Subrayado"; +$a->strings["Quote"] = "Cita"; +$a->strings["Code"] = "Código"; +$a->strings["Image"] = "Imagen"; +$a->strings["Link"] = "Enlace"; +$a->strings["Video"] = "Vídeo"; +$a->strings["Edit"] = "Editar"; +$a->strings["add star"] = "Añadir estrella"; +$a->strings["remove star"] = "Quitar estrella"; +$a->strings["toggle star status"] = "Añadir a destacados"; +$a->strings["starred"] = "marcados con estrellas"; +$a->strings["add tag"] = "añadir etiqueta"; +$a->strings["ignore thread"] = "ignorar publicación"; +$a->strings["unignore thread"] = "revertir ignorar publicacion"; +$a->strings["toggle ignore status"] = "cambiar estatus de observación"; +$a->strings["save to folder"] = "grabado en directorio"; +$a->strings["I will attend"] = "Voy a estar presente"; +$a->strings["I will not attend"] = "No voy a estar presente"; +$a->strings["I might attend"] = "Puede que voy a estar presente"; +$a->strings["to"] = "a"; +$a->strings["Wall-to-Wall"] = "Muro-A-Muro"; +$a->strings["via Wall-To-Wall:"] = "via Muro-A-Muro:"; +$a->strings["Friend suggestion sent."] = "Solicitud de amistad enviada."; +$a->strings["Suggest Friends"] = "Sugerencias de amistad"; +$a->strings["Suggest a friend for %s"] = "Recomienda un amigo a %s"; +$a->strings["Mood"] = "Ánimo"; +$a->strings["Set your current mood and tell your friends"] = "Coloca tu ánimo actual y cuéntaselo a tus amigos"; +$a->strings["Poke/Prod"] = "Toque/Empujón"; +$a->strings["poke, prod or do other things to somebody"] = "da un toque, empujón o similar a alguien"; +$a->strings["Recipient"] = "Receptor"; +$a->strings["Choose what you wish to do to recipient"] = "Elige qué desea hacer con el receptor"; +$a->strings["Make this post private"] = "Hacer esta publicación privada"; +$a->strings["Image uploaded but image cropping failed."] = "Imagen recibida, pero ha fallado al recortarla."; +$a->strings["Image size reduction [%s] failed."] = "Ha fallado la reducción de las dimensiones de la imagen [%s]."; +$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Recarga la página o limpia la caché del navegador si la foto nueva no aparece inmediatamente."; +$a->strings["Unable to process image"] = "Imposible procesar la imagen"; +$a->strings["Image exceeds size limit of %s"] = "La imagen excede el limite de %s"; +$a->strings["Unable to process image."] = "Imposible procesar la imagen."; +$a->strings["Upload File:"] = "Subir archivo:"; +$a->strings["Select a profile:"] = "Elige un perfil:"; +$a->strings["Upload"] = "Subir"; +$a->strings["or"] = "o"; +$a->strings["skip this step"] = "saltar este paso"; +$a->strings["select a photo from your photo albums"] = "elige una foto de tus álbumes"; +$a->strings["Crop Image"] = "Recortar imagen"; +$a->strings["Please adjust the image cropping for optimum viewing."] = "Por favor, ajusta el recorte de la imagen para optimizarla."; +$a->strings["Done Editing"] = "Editado"; +$a->strings["Image uploaded successfully."] = "Imagen subida con éxito."; +$a->strings["Image upload failed."] = "Error al subir la imagen."; +$a->strings["Account approved."] = "Cuenta aprobada."; +$a->strings["Registration revoked for %s"] = "Registro anulado para %s"; +$a->strings["Please login."] = "Por favor accede."; $a->strings["Invalid request identifier."] = "Solicitud de identificación no válida."; $a->strings["Discard"] = "Descartar"; $a->strings["Ignore"] = "Ignorar"; @@ -789,167 +1076,384 @@ $a->strings["Show unread"] = "Mostrar no leído"; $a->strings["Show all"] = "Mostrar todo"; $a->strings["No more %s notifications."] = "No más notificaciones de %s."; $a->strings["Profile not found."] = "Perfil no encontrado."; -$a->strings["Contact not found."] = "Contacto no encontrado."; -$a->strings["This may occasionally happen if contact was requested by both persons and it has already been approved."] = "Esto puede ocurrir a veces si la conexión fue solicitada por ambas personas y ya hubiera sido aprobada."; -$a->strings["Response from remote site was not understood."] = "La respuesta desde el sitio remoto no ha sido entendida."; -$a->strings["Unexpected response from remote site: "] = "Respuesta inesperada desde el sitio remoto: "; -$a->strings["Confirmation completed successfully."] = "Confirmación completada con éxito."; -$a->strings["Remote site reported: "] = "El sito remoto informó: "; -$a->strings["Temporary failure. Please wait and try again."] = "Error temporal. Por favor, espere y vuelva a intentarlo."; -$a->strings["Introduction failed or was revoked."] = "La presentación ha fallado o ha sido anulada."; -$a->strings["Unable to set contact photo."] = "Imposible establecer la foto del contacto."; -$a->strings["No user record found for '%s' "] = "No se ha encontrado a ningún '%s' "; -$a->strings["Our site encryption key is apparently messed up."] = "Nuestra clave de cifrado del sitio es aparentemente un lío."; -$a->strings["Empty site URL was provided or URL could not be decrypted by us."] = "Se ha proporcionado una dirección vacía o no hemos podido descifrarla."; -$a->strings["Contact record was not found for you on our site."] = "El contacto no se ha encontrado en nuestra base de datos."; -$a->strings["Site public key not available in contact record for URL %s."] = "La clave pública del sitio no está disponible en los datos del contacto para %s."; -$a->strings["The ID provided by your system is a duplicate on our system. It should work if you try again."] = "La identificación proporcionada por el sistema es un duplicado de nuestro sistema. Debería funcionar si lo intentas de nuevo."; -$a->strings["Unable to set your contact credentials on our system."] = "No se puede establecer las credenciales de tu contacto en nuestro sistema."; -$a->strings["Unable to update your contact profile details on our system"] = "No se puede actualizar los datos de tu perfil de contacto en nuestro sistema"; -$a->strings["%1\$s has joined %2\$s"] = "%1\$s se ha unido a %2\$s"; -$a->strings["This is Friendica, version"] = "Esto es Friendica, versión"; -$a->strings["running at web location"] = "ejecutándose en la dirección web"; -$a->strings["Please visit Friendica.com to learn more about the Friendica project."] = "Por favor, visita Friendica.com para saber más sobre el proyecto Friendica."; -$a->strings["Bug reports and issues: please visit"] = "Reporte de fallos y problemas: por favor visita"; -$a->strings["the bugtracker at github"] = "aviso de fallas (bugs) en github"; -$a->strings["Suggestions, praise, donations, etc. - please email \"Info\" at Friendica - dot com"] = "Sugerencias, elogios, donaciones, etc. por favor manda un correo a Info arroba Friendica punto com"; -$a->strings["Installed plugins/addons/apps:"] = "Módulos/extensiones/aplicaciones instalados:"; -$a->strings["No installed plugins/addons/apps"] = "Módulos/extensiones/aplicaciones no instalados"; -$a->strings["No valid account found."] = "No se ha encontrado ninguna cuenta válida"; -$a->strings["Password reset request issued. Check your email."] = "Solicitud de restablecimiento de contraseña enviada. Revisa tu correo."; -$a->strings["\n\t\tDear %1\$s,\n\t\t\tA request was recently received at \"%2\$s\" to reset your account\n\t\tpassword. In order to confirm this request, please select the verification link\n\t\tbelow or paste it into your web browser address bar.\n\n\t\tIf you did NOT request this change, please DO NOT follow the link\n\t\tprovided and ignore and/or delete this email.\n\n\t\tYour password will not be changed unless we can verify that you\n\t\tissued this request."] = "\n\t\tEstimado %1\$s,\n\t\t\tUna consulta llego recientemente a \"%2\$s\" para renovar su\n\t\tcontraseña. Para confirmar esta solicitud por favor seleccione el enlace de verificación mas \n\t\tabajo o copie a pegue el mismo en la barra de dirección de su navegador.\n\n\t\tSi NO ha solicitado este cambio por favor NO SIGA este enlace\n\t\tproporcionado y ignore o borre este mail.\n\n\t\tSu contraseña no sera cambiada hasta que podamos verificar que usted haza\n\t\tsolicitado este cambio.."; -$a->strings["\n\t\tFollow this link to verify your identity:\n\n\t\t%1\$s\n\n\t\tYou will then receive a follow-up message containing the new password.\n\t\tYou may change that password from your account settings page after logging in.\n\n\t\tThe login details are as follows:\n\n\t\tSite Location:\t%2\$s\n\t\tLogin Name:\t%3\$s"] = "\n\t\tSiga este enlace para verificar su identidad:\n\n\t\t%1\$s\n\n\t\tA continuación recibirá un mensaje consecutivo conteniendo la nueva contraseña.\n\t\tPodrá cambiar la contraseña después de haber accedido a la cuenta.\n\n\t\tLos detalles del acceso son las siguientes:\n\n\t\tDirección del sitio:\t%2\$s\n\t\tNombre de la cuenta:\t%3\$s"; -$a->strings["Password reset requested at %s"] = "Contraseña restablecida enviada a %s"; -$a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "La solicitud no puede ser verificada (deberías haberla proporcionado antes). Falló el restablecimiento de la contraseña."; -$a->strings["Your password has been reset as requested."] = "Tu contraseña ha sido restablecida como solicitaste."; -$a->strings["Your new password is"] = "Tu nueva contraseña es"; -$a->strings["Save or copy your new password - and then"] = "Guarda o copia tu nueva contraseña y luego"; -$a->strings["click here to login"] = "pulsa aquí para acceder"; -$a->strings["Your password may be changed from the Settings page after successful login."] = "Puedes cambiar tu contraseña desde la página de Configuración después de acceder con éxito."; -$a->strings["\n\t\t\t\tDear %1\$s,\n\t\t\t\t\tYour password has been changed as requested. Please retain this\n\t\t\t\tinformation for your records (or change your password immediately to\n\t\t\t\tsomething that you will remember).\n\t\t\t"] = "\n\t\t\t\tEstimado %1\$s,\n\t\t\t\t\tSu contraseña ha cambiado como solicitado. Por favor guarde esta\n\t\t\t\tinformación para sus documentación (o cambie su contraseña inmediatamente a\n\t\t\t\talgo que pueda recordar).\n\t\t"; -$a->strings["\n\t\t\t\tYour login details are as follows:\n\n\t\t\t\tSite Location:\t%1\$s\n\t\t\t\tLogin Name:\t%2\$s\n\t\t\t\tPassword:\t%3\$s\n\n\t\t\t\tYou may change that password from your account settings page after logging in.\n\t\t\t"] = "\n\t\t\t\tSus datos de acceso son las siguientes:\n\n\t\t\t\tDirección del sitio:\t%1\$s\n\t\t\t\tNombre de cuenta:\t%2\$s\n\t\t\t\tContraseña:\t%3\$s\n\n\t\t\t\tPodrá cambiar esta contraseña después de ingresar al sitio en su pagina de configuración.\n\t\t\t"; -$a->strings["Your password has been changed at %s"] = "Tu contraseña se ha cambiado por %s"; -$a->strings["Forgot your Password?"] = "¿Olvidaste tu contraseña?"; -$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Introduce tu correo para restablecer tu contraseña. Luego comprueba tu correo para las instrucciones adicionales."; -$a->strings["Reset"] = "Restablecer"; -$a->strings["No profile"] = "Nigún perfil"; -$a->strings["Help:"] = "Ayuda:"; -$a->strings["Invalid request."] = "Consulta invalida"; -$a->strings["Image exceeds size limit of %s"] = "La imagen excede el limite de %s"; -$a->strings["Unable to process image."] = "Imposible procesar la imagen."; -$a->strings["Image upload failed."] = "Error al subir la imagen."; -$a->strings["Friend suggestion sent."] = "Solicitud de amistad enviada."; -$a->strings["Suggest Friends"] = "Sugerencias de amistad"; -$a->strings["Suggest a friend for %s"] = "Recomienda un amigo a %s"; -$a->strings["Submit"] = "Envíar"; -$a->strings["Remote privacy information not available."] = "Privacidad de la información remota no disponible."; -$a->strings["Visible to:"] = "Visible para:"; -$a->strings["Event can not end before it has started."] = "Un evento no puede terminar antes de su comienzo."; -$a->strings["Event title and start time are required."] = "Título del evento y hora de inicio requeridas."; +$a->strings["Profile deleted."] = "Perfil eliminado."; +$a->strings["Profile-"] = "Perfil-"; +$a->strings["New profile created."] = "Nuevo perfil creado."; +$a->strings["Profile unavailable to clone."] = "Imposible duplicar el perfil."; +$a->strings["Profile Name is required."] = "Se necesita un nombre de perfil."; +$a->strings["Marital Status"] = "Estado civil"; +$a->strings["Romantic Partner"] = "Pareja sentimental"; +$a->strings["Work/Employment"] = "Trabajo/estudios"; +$a->strings["Religion"] = "Religión"; +$a->strings["Political Views"] = "Preferencias políticas"; +$a->strings["Gender"] = "Género"; +$a->strings["Sexual Preference"] = "Orientación sexual"; +$a->strings["XMPP"] = "XMPP"; +$a->strings["Homepage"] = "Página de inicio"; +$a->strings["Interests"] = "Intereses"; +$a->strings["Address"] = "Dirección"; +$a->strings["Location"] = "Ubicación"; +$a->strings["Profile updated."] = "Perfil actualizado."; +$a->strings[" and "] = " y "; +$a->strings["public profile"] = "perfil público"; +$a->strings["%1\$s changed %2\$s to “%3\$s”"] = "%1\$s cambió su %2\$s a “%3\$s”"; +$a->strings[" - Visit %1\$s's %2\$s"] = " - Visita %1\$s's %2\$s"; +$a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s tiene una actualización %2\$s, cambiando %3\$s."; +$a->strings["Hide contacts and friends:"] = "Ocultar contactos y amigos"; +$a->strings["Hide your contact/friend list from viewers of this profile?"] = "¿Ocultar tu lista de contactos/amigos en este perfil?"; +$a->strings["Show more profile fields:"] = "Mostrar mas campos del perfil:"; +$a->strings["Profile Actions"] = "Acciones de perfil"; +$a->strings["Edit Profile Details"] = "Editar detalles de tu perfil"; +$a->strings["Change Profile Photo"] = "Cambiar imagen del Perfil"; +$a->strings["View this profile"] = "Ver este perfil"; +$a->strings["Create a new profile using these settings"] = "¿Crear un nuevo perfil con esta configuración?"; +$a->strings["Clone this profile"] = "Clonar este perfil"; +$a->strings["Delete this profile"] = "Eliminar este perfil"; +$a->strings["Basic information"] = "Información básica"; +$a->strings["Profile picture"] = "Imagen del perfil"; +$a->strings["Preferences"] = "Preferencias"; +$a->strings["Status information"] = "Información del estatus"; +$a->strings["Additional information"] = "Información addicional"; +$a->strings["Relation"] = "Relación"; +$a->strings["Your Gender:"] = "Género:"; +$a->strings[" Marital Status:"] = " Estado civil:"; +$a->strings["Example: fishing photography software"] = "Ejemplo: pesca fotografía software"; +$a->strings["Profile Name:"] = "Nombres del perfil:"; +$a->strings["Required"] = "Obligatorio"; +$a->strings["This is your public profile.
      It may be visible to anybody using the internet."] = "Éste es tu perfil público.
      Puede ser visto por cualquier usuario de internet."; +$a->strings["Your Full Name:"] = "Tu nombre completo:"; +$a->strings["Title/Description:"] = "Título/Descrición:"; +$a->strings["Street Address:"] = "Dirección"; +$a->strings["Locality/City:"] = "Localidad/Ciudad:"; +$a->strings["Region/State:"] = "Región/Estado:"; +$a->strings["Postal/Zip Code:"] = "Código postal:"; +$a->strings["Country:"] = "País"; +$a->strings["Who: (if applicable)"] = "¿Quién? (si es aplicable)"; +$a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Ejemplos: cathy123, Cathy Williams, cathy@example.com"; +$a->strings["Since [date]:"] = "Desde [fecha]:"; +$a->strings["Tell us about yourself..."] = "Háblanos sobre ti..."; +$a->strings["XMPP (Jabber) address:"] = "Dirección XMPP (Jabber):"; +$a->strings["The XMPP address will be propagated to your contacts so that they can follow you."] = "La dirección XMPP será propagada entre sus contactos para que puedan seguirle."; +$a->strings["Homepage URL:"] = "Dirección de tu página:"; +$a->strings["Religious Views:"] = "Creencias religiosas:"; +$a->strings["Public Keywords:"] = "Palabras clave públicas:"; +$a->strings["(Used for suggesting potential friends, can be seen by others)"] = "(Utilizadas para sugerir amigos potenciales, otros pueden verlo)"; +$a->strings["Private Keywords:"] = "Palabras clave privadas:"; +$a->strings["(Used for searching profiles, never shown to others)"] = "(Utilizadas para buscar perfiles, nunca se muestra a otros)"; +$a->strings["Musical interests"] = "Gustos musicales"; +$a->strings["Books, literature"] = "Libros, literatura"; +$a->strings["Television"] = "Televisión"; +$a->strings["Film/dance/culture/entertainment"] = "Películas/baile/cultura/entretenimiento"; +$a->strings["Hobbies/Interests"] = "Aficiones/Intereses"; +$a->strings["Love/romance"] = "Amor/Romance"; +$a->strings["Work/employment"] = "Trabajo/ocupación"; +$a->strings["School/education"] = "Escuela/estudios"; +$a->strings["Contact information and Social Networks"] = "Informacioń de contacto y Redes sociales"; +$a->strings["Edit/Manage Profiles"] = "Editar/Administrar perfiles"; +$a->strings["No friends to display."] = "No hay amigos para mostrar."; +$a->strings["Access to this profile has been restricted."] = "El acceso a este perfil ha sido restringido."; $a->strings["View"] = "Vista"; -$a->strings["Create New Event"] = "Crea un evento nuevo"; $a->strings["Previous"] = "Previo"; $a->strings["Next"] = "Siguiente"; $a->strings["list"] = "lista"; +$a->strings["User not found"] = "Usuario no encontrado"; +$a->strings["This calendar format is not supported"] = "Este formato de calendario no se soporta"; +$a->strings["No exportable data found"] = "No se ha encontrado información exportable"; +$a->strings["calendar"] = "calendario"; +$a->strings["No contacts in common."] = "Sin contactos en común."; +$a->strings["Common Friends"] = "Amigos comunes"; +$a->strings["Not available."] = "No disponible"; +$a->strings["Global Directory"] = "Directorio global"; +$a->strings["Find on this site"] = "Buscar en este sitio"; +$a->strings["Results for:"] = "Resultados para:"; +$a->strings["Site Directory"] = "Directorio del sitio"; +$a->strings["No entries (some entries may be hidden)."] = "Sin entradas (algunas pueden que estén ocultas)."; +$a->strings["People Search - %s"] = "Buscar perfiles - %s"; +$a->strings["Forum Search - %s"] = "Búsqueda de foro - %s"; +$a->strings["No matches"] = "Sin conincidencias"; +$a->strings["Item has been removed."] = "El elemento ha sido eliminado."; +$a->strings["Event can not end before it has started."] = "Un evento no puede terminar antes de su comienzo."; +$a->strings["Event title and start time are required."] = "Título del evento y hora de inicio requeridas."; +$a->strings["Create New Event"] = "Crea un evento nuevo"; $a->strings["Event details"] = "Detalles del evento"; $a->strings["Starting date and Title are required."] = "Se requiere fecha de comienzo y titulo"; $a->strings["Event Starts:"] = "Inicio del evento:"; -$a->strings["Required"] = "Obligatorio"; $a->strings["Finish date/time is not known or not relevant"] = "La fecha/hora de finalización no es conocida o es irrelevante."; $a->strings["Event Finishes:"] = "Finalización del evento:"; $a->strings["Adjust for viewer timezone"] = "Ajuste de zona horaria"; $a->strings["Description:"] = "Descripción:"; $a->strings["Title:"] = "Título:"; $a->strings["Share this event"] = "Comparte este evento"; -$a->strings["Global Directory"] = "Directorio global"; -$a->strings["Find on this site"] = "Buscar en este sitio"; -$a->strings["Results for:"] = "Resultados para:"; -$a->strings["Site Directory"] = "Directorio del sitio"; -$a->strings["No entries (some entries may be hidden)."] = "Sin entradas (algunas pueden que estén ocultas)."; -$a->strings["OpenID protocol error. No ID returned."] = "Error de protocolo OpenID. ID no devuelta."; -$a->strings["Account not found and OpenID registration is not permitted on this site."] = "Cuenta no encontrada y el registro OpenID no está permitido en ese sitio."; -$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Este sitio ha excedido el número de registros diarios permitidos. Inténtalo de nuevo mañana por favor."; -$a->strings["Import"] = "Importar"; -$a->strings["Move account"] = "Mover cuenta"; -$a->strings["You can import an account from another Friendica server."] = "Puedes importar una cuenta desde otro servidor de Friendica."; -$a->strings["You need to export your account from the old server and upload it here. We will recreate your old account here with all your contacts. We will try also to inform your friends that you moved here."] = "Necesitas exportar tu cuenta del antiguo servidor y subirla aquí. Volveremos a crear tu antigua cuenta con todos tus contactos aquí. También intentaremos de informar a tus amigos de que te has mudado."; -$a->strings["This feature is experimental. We can't import contacts from the OStatus network (GNU Social/Statusnet) or from Diaspora"] = "Esta característica es experimental. No podemos importar contactos desde la red OStatus (statusnet/identi.ca) o desde Diaspora*"; -$a->strings["Account file"] = "Archivo de la cuenta"; -$a->strings["To export your account, go to \"Settings->Export your personal data\" and select \"Export account\""] = "Para exportar el perfil vaya a \"Configuracion -> Exportar sus datos personales\" y seleccione \"Exportar cuenta\""; -$a->strings["Visit %s's profile [%s]"] = "Ver el perfil de %s [%s]"; -$a->strings["Edit contact"] = "Modificar contacto"; -$a->strings["Contacts who are not members of a group"] = "Contactos sin grupo"; +$a->strings["System down for maintenance"] = "Servicio suspendido por mantenimiento"; $a->strings["No keywords to match. Please add keywords to your default profile."] = "No hay palabras clave que coincidan. Por favor, agrega algunas palabras claves en tu perfil predeterminado."; $a->strings["is interested in:"] = "estás interesado en:"; $a->strings["Profile Match"] = "Coincidencias de Perfil"; -$a->strings["Export account"] = "Exportar cuenta"; -$a->strings["Export your account info and contacts. Use this to make a backup of your account and/or to move it to another server."] = "Exporta la información de tu cuenta y tus contactos. Úsalo para guardar una copia de seguridad de tu cuenta y/o moverla a otro servidor."; -$a->strings["Export all"] = "Exportar todo"; -$a->strings["Export your accout info, contacts and all your items as json. Could be a very big file, and could take a lot of time. Use this to make a full backup of your account (photos are not exported)"] = "Exporta la información de tu cuenta, contactos y lo demás en JSON. Puede ser un archivo bastante grande, por lo que llevará tiempo. Úsalo para hacer una copia de seguridad completa de tu cuenta (las fotos no se exportarán)"; -$a->strings["Export personal data"] = "Exportación de datos personales"; -$a->strings["Total invitation limit exceeded."] = "Límite total de invitaciones excedido."; -$a->strings["%s : Not a valid email address."] = "%s : No es una dirección de correo válida."; -$a->strings["Please join us on Friendica"] = "Únete a nosotros en Friendica"; -$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Límite de invitaciones sobrepasado. Contacta con el administrador del sitio."; -$a->strings["%s : Message delivery failed."] = "%s : Ha fallado la entrega del mensaje."; -$a->strings["%d message sent."] = array( - 0 => "%d mensaje enviado.", - 1 => "%d mensajes enviados.", -); -$a->strings["You have no more invitations available"] = "No tienes más invitaciones disponibles"; -$a->strings["Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks."] = "Visita %s para ver una lista de servidores públicos donde puedes darte de alta. Los miembros de otros servidores de Friendica pueden conectarse entre ellos, así como con miembros de otras redes sociales diferentes."; -$a->strings["To accept this invitation, please visit and register at %s or any other public Friendica website."] = "Para aceptar la invitación visita y regístrate en %s o en cualquier otro servidor público de Friendica."; -$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join."] = "Los servidores de Friendica están interconectados para crear una enorme red social centrada en la privacidad y controlada por sus miembros. También se puede conectar con muchas redes sociales tradicionales. Mira en %s para poder ver un listado de servidores alternativos de Friendica donde puedes darte de alta."; -$a->strings["Our apologies. This system is not currently configured to connect with other public sites or invite members."] = "Discúlpanos. Este sistema no está configurado actualmente para conectar con otros servidores públicos o invitar nuevos miembros."; -$a->strings["Send invitations"] = "Enviar invitaciones"; -$a->strings["Enter email addresses, one per line:"] = "Introduce las direcciones de correo, una por línea:"; -$a->strings["Your message:"] = "Tu mensaje:"; -$a->strings["You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web."] = "Estás cordialmente invitado a unirte a mi y a otros amigos en Friendica, creemos juntos una red social mejor."; -$a->strings["You will need to supply this invitation code: \$invite_code"] = "Tienes que proporcionar el siguiente código: \$invite_code"; -$a->strings["Once you have registered, please connect with me via my profile page at:"] = "Una vez registrado, por favor contacta conmigo a través de mi página de perfil en:"; -$a->strings["For more information about the Friendica project and why we feel it is important, please visit http://friendica.com"] = "Para más información sobre el Proyecto Friendica y sobre por qué pensamos que es algo importante, visita http://friendica.com"; -$a->strings["Files"] = "Archivos"; -$a->strings["System down for maintenance"] = "Servicio suspendido por mantenimiento"; -$a->strings["Invalid profile identifier."] = "Identificador de perfil no válido."; -$a->strings["Profile Visibility Editor"] = "Editor de visibilidad del perfil"; -$a->strings["Click on a contact to add or remove."] = "Pulsa en un contacto para añadirlo o eliminarlo."; -$a->strings["Visible To"] = "Visible para"; -$a->strings["All Contacts (with secure profile access)"] = "Todos los contactos (con perfil de acceso seguro)"; -$a->strings["No contacts."] = "Ningún contacto."; -$a->strings["Contact settings applied."] = "Contacto configurado con éxito."; -$a->strings["Contact update failed."] = "Error al actualizar el Contacto."; -$a->strings["WARNING: This is highly advanced and if you enter incorrect information your communications with this contact may stop working."] = "ADVERTENCIA: Esto es muy avanzado y si se introduce información incorrecta tu conexión con este contacto puede dejar de funcionar."; -$a->strings["Please use your browser 'Back' button now if you are uncertain what to do on this page."] = "Por favor usa el botón 'Atás' de tu navegador ahora si no tienes claro qué hacer en esta página."; -$a->strings["No mirroring"] = "No espejar"; -$a->strings["Mirror as forwarded posting"] = "Espejar como reenvio"; -$a->strings["Mirror as my own posting"] = "Espejar como publicación propia"; -$a->strings["Return to contact editor"] = "Volver al editor de contactos"; -$a->strings["Refetch contact data"] = "Volver a solicitar datos del contacto."; -$a->strings["Remote Self"] = "Perfil remoto"; -$a->strings["Mirror postings from this contact"] = "Espejar publicaciones de este contacto"; -$a->strings["Mark this contact as remote_self, this will cause friendica to repost new entries from this contact."] = "Marcar este contacto como perfil_remoto, esto generara que friendica reenvía nuevas publicaciones desde esta cuenta."; -$a->strings["Name"] = "Nombre"; -$a->strings["Account Nickname"] = "Apodo de la cuenta"; -$a->strings["@Tagname - overrides Name/Nickname"] = "@Etiqueta - Sobrescribe el Nombre/Apodo"; -$a->strings["Account URL"] = "Dirección de la cuenta"; -$a->strings["Friend Request URL"] = "Dirección de la solicitud de amistad"; -$a->strings["Friend Confirm URL"] = "Dirección de confirmación de tu amigo "; -$a->strings["Notification Endpoint URL"] = "Dirección URL de la notificación"; -$a->strings["Poll/Feed URL"] = "Dirección del Sondeo/Fuentes"; -$a->strings["New photo from this URL"] = "Nueva foto de esta dirección"; -$a->strings["Tag removed"] = "Etiqueta eliminada"; -$a->strings["Remove Item Tag"] = "Eliminar etiqueta"; -$a->strings["Select a tag to remove: "] = "Selecciona una etiqueta para eliminar: "; -$a->strings["Remove"] = "Eliminar"; -$a->strings["{0} wants to be your friend"] = "{0} quiere ser tu amigo"; -$a->strings["{0} sent you a message"] = "{0} te ha enviado un mensaje"; -$a->strings["{0} requested registration"] = "{0} solicitudes de registro"; +$a->strings["Tips for New Members"] = "Consejos para nuevos miembros"; +$a->strings["Do you really want to delete this suggestion?"] = "¿Estás seguro de que quieres borrar esta sugerencia?"; +$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "No hay sugerencias disponibles. Si el sitio web es nuevo inténtalo de nuevo dentro de 24 horas."; +$a->strings["Ignore/Hide"] = "Ignorar/Ocultar"; +$a->strings["[Embedded content - reload page to view]"] = "[Contenido incrustado - recarga la página para verlo]"; +$a->strings["Recent Photos"] = "Fotos recientes"; +$a->strings["Upload New Photos"] = "Subir nuevas fotos"; +$a->strings["everybody"] = "todos"; +$a->strings["Contact information unavailable"] = "Información del contacto no disponible"; +$a->strings["Album not found."] = "Álbum no encontrado."; +$a->strings["Delete Album"] = "Eliminar álbum"; +$a->strings["Do you really want to delete this photo album and all its photos?"] = "¿Estás seguro de quieres borrar este álbum y todas sus fotos?"; +$a->strings["Delete Photo"] = "Eliminar foto"; +$a->strings["Do you really want to delete this photo?"] = "¿Estás seguro de que quieres borrar esta foto?"; +$a->strings["%1\$s was tagged in %2\$s by %3\$s"] = "%1\$s fue etiquetado en %2\$s por %3\$s"; +$a->strings["a photo"] = "una foto"; +$a->strings["Image file is empty."] = "El archivo de imagen está vacío."; +$a->strings["No photos selected"] = "Ninguna foto seleccionada"; +$a->strings["Access to this item is restricted."] = "El acceso a este elemento está restringido."; +$a->strings["You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."] = "Has usado %1$.2f MB de %2$.2f MB de tu álbum de fotos."; +$a->strings["Upload Photos"] = "Subir fotos"; +$a->strings["New album name: "] = "Nombre del nuevo álbum: "; +$a->strings["or existing album name: "] = "o nombre de un álbum existente: "; +$a->strings["Do not show a status post for this upload"] = "No actualizar tu estado con este envío"; +$a->strings["Show to Groups"] = "Mostrar a los Grupos"; +$a->strings["Show to Contacts"] = "Mostrar a los Contactos"; +$a->strings["Private Photo"] = "Foto Privada"; +$a->strings["Public Photo"] = "Foto Pública"; +$a->strings["Edit Album"] = "Modificar álbum"; +$a->strings["Show Newest First"] = "Mostrar más nuevos primero"; +$a->strings["Show Oldest First"] = "Mostrar más antiguos primero"; +$a->strings["View Photo"] = "Ver foto"; +$a->strings["Permission denied. Access to this item may be restricted."] = "Permiso denegado. El acceso a este elemento puede estar restringido."; +$a->strings["Photo not available"] = "Foto no disponible"; +$a->strings["View photo"] = "Ver foto"; +$a->strings["Edit photo"] = "Modificar foto"; +$a->strings["Use as profile photo"] = "Usar como foto del perfil"; +$a->strings["View Full Size"] = "Ver a tamaño completo"; +$a->strings["Tags: "] = "Etiquetas: "; +$a->strings["[Remove any tag]"] = "[Borrar todas las etiquetas]"; +$a->strings["New album name"] = "Nuevo nombre del álbum"; +$a->strings["Caption"] = "Título"; +$a->strings["Add a Tag"] = "Añadir una etiqueta"; +$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"] = "Ejemplo: @juan, @Barbara_Ruiz, @julia@example.com, #California, #camping"; +$a->strings["Do not rotate"] = "No rotar"; +$a->strings["Rotate CW (right)"] = "Girar a la derecha"; +$a->strings["Rotate CCW (left)"] = "Girar a la izquierda"; +$a->strings["Private photo"] = "Foto privada"; +$a->strings["Public photo"] = "Foto pública"; +$a->strings["Map"] = "Mapa"; +$a->strings["View Album"] = "Ver Álbum"; +$a->strings["Registration successful. Please check your email for further instructions."] = "Te has registrado con éxito. Por favor, consulta tu correo para más información."; +$a->strings["Failed to send email message. Here your accout details:
      login: %s
      password: %s

      You can change your password after login."] = "Error al intentar de enviar mensaje de correo. Aquí los detalles de su cuenta:
      login: %s
      contraseña: %s

      Puede cambiar su contraseña después de ingresar al sitio."; +$a->strings["Registration successful."] = "Registro exitoso."; +$a->strings["Your registration can not be processed."] = "Tu registro no se puede procesar."; +$a->strings["Your registration is pending approval by the site owner."] = "Tu registro está pendiente de aprobación por el propietario del sitio."; +$a->strings["You may (optionally) fill in this form via OpenID by supplying your OpenID and clicking 'Register'."] = "Puedes (opcionalmente) rellenar este formulario a través de OpenID escribiendo tu OpenID y pulsando en \"Registrar\"."; +$a->strings["If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items."] = "Si no estás familiarizado con OpenID, por favor deja ese campo en blanco y rellena el resto de los elementos."; +$a->strings["Your OpenID (optional): "] = "Tu OpenID (opcional):"; +$a->strings["Include your profile in member directory?"] = "¿Incluir tu perfil en el directorio de miembros?"; +$a->strings["Note for the admin"] = "Nota para el administrador"; +$a->strings["Leave a message for the admin, why you want to join this node"] = "Deje un mensaje para el administrador sobre por qué quiere unirse a este nodo"; +$a->strings["Membership on this site is by invitation only."] = "Sitio solo accesible mediante invitación."; +$a->strings["Your invitation ID: "] = "ID de tu invitación: "; +$a->strings["Registration"] = "Registro"; +$a->strings["Your Full Name (e.g. Joe Smith, real or real-looking): "] = "Nombre completo (ej. Joe Smith, real o real aparente):"; +$a->strings["Your Email Address: "] = "Tu dirección de correo: "; +$a->strings["New Password:"] = "Contraseña nueva:"; +$a->strings["Leave empty for an auto generated password."] = "Dejar vacío para autogenerar una contraseña"; +$a->strings["Confirm:"] = "Confirmar:"; +$a->strings["Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be 'nickname@\$sitename'."] = "Elije un apodo. Debe comenzar con una letra. Tu dirección de perfil en este sitio va a ser \"apodo@\$nombredelsitio\"."; +$a->strings["Choose a nickname: "] = "Escoge un apodo: "; +$a->strings["Import your profile to this friendica instance"] = "Importar tu perfil a esta instancia de friendica"; +$a->strings["Account"] = "Cuenta"; +$a->strings["Additional features"] = "Características adicionales"; +$a->strings["Display"] = "Interfaz del usuario"; +$a->strings["Social Networks"] = "Redes sociales"; +$a->strings["Plugins"] = "Módulos"; +$a->strings["Connected apps"] = "Aplicaciones conectadas"; +$a->strings["Remove account"] = "Eliminar cuenta"; +$a->strings["Missing some important data!"] = "¡Faltan algunos datos importantes!"; +$a->strings["Update"] = "Actualizar"; +$a->strings["Failed to connect with email account using the settings provided."] = "Error al conectar con la cuenta de correo mediante la configuración suministrada."; +$a->strings["Email settings updated."] = "Configuración de correo actualizada."; +$a->strings["Features updated"] = "Actualizaciones"; +$a->strings["Relocate message has been send to your contacts"] = "Mensaje de reubicación ha sido enviado a sus contactos."; +$a->strings["Empty passwords are not allowed. Password unchanged."] = "No se permiten contraseñas vacías. La contraseña no ha sido modificada."; +$a->strings["Wrong password."] = "Contraseña incorrecta"; +$a->strings["Password changed."] = "Contraseña modificada."; +$a->strings["Password update failed. Please try again."] = "La actualización de la contraseña ha fallado. Por favor, prueba otra vez."; +$a->strings[" Please use a shorter name."] = " Usa un nombre más corto."; +$a->strings[" Name too short."] = " Nombre demasiado corto."; +$a->strings["Wrong Password"] = "Contraseña incorrecta"; +$a->strings[" Not valid email."] = " Correo no válido."; +$a->strings[" Cannot change to that email."] = " No se puede usar ese correo."; +$a->strings["Private forum has no privacy permissions. Using default privacy group."] = "El foro privado no tiene permisos de privacidad. Usando el grupo de privacidad por defecto."; +$a->strings["Private forum has no privacy permissions and no default privacy group."] = "El foro privado no tiene permisos de privacidad ni grupo por defecto de privacidad."; +$a->strings["Settings updated."] = "Configuración actualizada."; +$a->strings["Add application"] = "Agregar aplicación"; +$a->strings["Save Settings"] = "Guardar configuración"; +$a->strings["Consumer Key"] = "Clave del consumidor"; +$a->strings["Consumer Secret"] = "Secreto del consumidor"; +$a->strings["Redirect"] = "Redirigir"; +$a->strings["Icon url"] = "Dirección del ícono"; +$a->strings["You can't edit this application."] = "No puedes editar esta aplicación."; +$a->strings["Connected Apps"] = "Aplicaciones conectadas"; +$a->strings["Client key starts with"] = "Clave de cliente comienza por"; +$a->strings["No name"] = "Sin nombre"; +$a->strings["Remove authorization"] = "Suprimir la autorización"; +$a->strings["No Plugin settings configured"] = "No se ha configurado ningún módulo"; +$a->strings["Plugin Settings"] = "Configuración de los módulos"; +$a->strings["Off"] = "Apagado"; +$a->strings["On"] = "Encendido"; +$a->strings["Additional Features"] = "Características adicionales"; +$a->strings["General Social Media Settings"] = "Configuración general de social media "; +$a->strings["Disable intelligent shortening"] = "Deshabilitar recorte inteligente de URL"; +$a->strings["Normally the system tries to find the best link to add to shortened posts. If this option is enabled then every shortened post will always point to the original friendica post."] = "Normalemente el sistema intenta de encontrara el mejor enlace para agregar a envíos recortados (twitter, OStatus). Si esta opción se encuentra habilitado, todo envío recortado apuntara siempre al tema original en friendica."; +$a->strings["Automatically follow any GNU Social (OStatus) followers/mentioners"] = "Automáticamente seguir cualquier GNUsocial (OStatus) seguidores o menciones "; +$a->strings["If you receive a message from an unknown OStatus user, this option decides what to do. If it is checked, a new contact will be created for every unknown user."] = "Cuando se recibe un mensaje de un perfil desconocido de OStatus, esta opción define que hacer.\nSi es habilitado, un nuevo contacto sera creado para cada usuario."; +$a->strings["Default group for OStatus contacts"] = "Grupo por defecto para contactos OStatus"; +$a->strings["Your legacy GNU Social account"] = "Tu cuenta GNU social conectada"; +$a->strings["If you enter your old GNU Social/Statusnet account name here (in the format user@domain.tld), your contacts will be added automatically. The field will be emptied when done."] = "Si agrega su viejo nombre de perfil GNUsocial/Statusnet aqui (en el formato de usuario@dominio.tld), sus contactos serán añadidos automáticamente.\nEl campo sera vaciado cuando termine el proceso. "; +$a->strings["Repair OStatus subscriptions"] = "Reparar subscripciones de OStatus"; +$a->strings["Built-in support for %s connectivity is %s"] = "El soporte integrado de conexión con %s está %s"; +$a->strings["enabled"] = "habilitado"; +$a->strings["disabled"] = "deshabilitado"; +$a->strings["GNU Social (OStatus)"] = "GNUsocial (OStatus)"; +$a->strings["Email access is disabled on this site."] = "El acceso por correo está deshabilitado en esta web."; +$a->strings["Email/Mailbox Setup"] = "Configuración del correo/buzón"; +$a->strings["If you wish to communicate with email contacts using this service (optional), please specify how to connect to your mailbox."] = "Si quieres comunicarte con tus contactos de correo usando este servicio (opcional), por favor, especifica cómo conectar con tu buzón."; +$a->strings["Last successful email check:"] = "Última comprobación del correo con éxito:"; +$a->strings["IMAP server name:"] = "Nombre del servidor IMAP:"; +$a->strings["IMAP port:"] = "Puerto IMAP:"; +$a->strings["Security:"] = "Seguridad:"; +$a->strings["None"] = "Ninguna"; +$a->strings["Email login name:"] = "Nombre de usuario:"; +$a->strings["Email password:"] = "Contraseña:"; +$a->strings["Reply-to address:"] = "Dirección de respuesta:"; +$a->strings["Send public posts to all email contacts:"] = "Enviar publicaciones públicas a todos los contactos de correo:"; +$a->strings["Action after import:"] = "Acción después de importar:"; +$a->strings["Move to folder"] = "Mover a un directorio"; +$a->strings["Move to folder:"] = "Mover al directorio:"; +$a->strings["No special theme for mobile devices"] = "No hay tema especial para dispositivos móviles"; +$a->strings["Display Settings"] = "Configuración Tema/Visualización"; +$a->strings["Display Theme:"] = "Utilizar tema:"; +$a->strings["Mobile Theme:"] = "Tema móvil:"; +$a->strings["Suppress warning of insecure networks"] = "Suprimir el aviso de redes inseguras"; +$a->strings["Should the system suppress the warning that the current group contains members of networks that can't receive non public postings."] = "Debería el sistema suprimir el aviso de que el grupo actual contiene miembros de redes que no pueden recibir publicaciones públicas."; +$a->strings["Update browser every xx seconds"] = "Actualizar navegador cada xx segundos"; +$a->strings["Minimum of 10 seconds. Enter -1 to disable it."] = "Minimo 10 segundos. Ingrese -1 para deshabilitar."; +$a->strings["Number of items to display per page:"] = "Número de elementos a mostrar por página:"; +$a->strings["Maximum of 100 items"] = "Máximo 100 elementos"; +$a->strings["Number of items to display per page when viewed from mobile device:"] = "Cantidad de objetos a visualizar cuando se usa un movil"; +$a->strings["Don't show emoticons"] = "No mostrar emoticones"; +$a->strings["Calendar"] = "Calendario"; +$a->strings["Beginning of week:"] = "Principio de la semana:"; +$a->strings["Don't show notices"] = "No mostrara avisos"; +$a->strings["Infinite scroll"] = "pagina infinita (sroll)"; +$a->strings["Automatic updates only at the top of the network page"] = "Actualizaciones automaticas solo estando al principio de la pagina"; +$a->strings["Bandwith Saver Mode"] = "Modo de guardado de ancho de banda"; +$a->strings["When enabled, embedded content is not displayed on automatic updates, they only show on page reload."] = "Cuando está habilitado, el contenido incrustado no se muestra en las actualizaciones automáticas, sólo en las páginas recargadas."; +$a->strings["General Theme Settings"] = "Ajustes generales de tema"; +$a->strings["Custom Theme Settings"] = "Ajustes personalizados de tema"; +$a->strings["Content Settings"] = "Ajustes de contenido"; +$a->strings["Theme settings"] = "Configuración del Tema"; +$a->strings["Account Types"] = "Tipos de cuenta"; +$a->strings["Personal Page Subtypes"] = "Subtipos de página personal"; +$a->strings["Community Forum Subtypes"] = "Subtipos de foro de comunidad"; +$a->strings["Personal Page"] = "Página personal"; +$a->strings["This account is a regular personal profile"] = "Esta cuenta es un perfil personal corriente"; +$a->strings["Organisation Page"] = "Página de organización"; +$a->strings["This account is a profile for an organisation"] = "Esta cuenta es un perfil de una organización"; +$a->strings["News Page"] = "Página de noticias"; +$a->strings["This account is a news account/reflector"] = "Esta cuenta es una cuenta de noticias/reflectora"; +$a->strings["Community Forum"] = "Foro de la comunidad"; +$a->strings["This account is a community forum where people can discuss with each other"] = "Esta cuenta es un foro de comunidad donde la gente puede debatir con otros"; +$a->strings["Normal Account Page"] = "Página de cuenta normal"; +$a->strings["This account is a normal personal profile"] = "Esta cuenta es el perfil personal normal"; +$a->strings["Soapbox Page"] = "Página de tribuna"; +$a->strings["Automatically approve all connection/friend requests as read-only fans"] = "Acepta automáticamente todas las peticiones de conexión/amistad como seguidores de solo-lectura"; +$a->strings["Public Forum"] = "Foro público"; +$a->strings["Automatically approve all contact requests"] = "Aprovar autimáticamente todas las solicitudes de contacto"; +$a->strings["Automatic Friend Page"] = "Página de Amistad autómatica"; +$a->strings["Automatically approve all connection/friend requests as friends"] = "Aceptar automáticamente todas las solicitudes de conexión/amistad como amigos"; +$a->strings["Private Forum [Experimental]"] = "Foro privado [Experimental]"; +$a->strings["Private forum - approved members only"] = "Foro privado - solo miembros"; +$a->strings["OpenID:"] = "OpenID:"; +$a->strings["(Optional) Allow this OpenID to login to this account."] = "(Opcional) Permitir a este OpenID acceder a esta cuenta."; +$a->strings["Publish your default profile in your local site directory?"] = "¿Quieres publicar tu perfil predeterminado en el directorio local del sitio?"; +$a->strings["Publish your default profile in the global social directory?"] = "¿Quieres publicar tu perfil predeterminado en el directorio social de forma global?"; +$a->strings["Hide your contact/friend list from viewers of your default profile?"] = "¿Quieres ocultar tu lista de contactos/amigos en la vista de tu perfil predeterminado?"; +$a->strings["If enabled, posting public messages to Diaspora and other networks isn't possible."] = "Si habilitado, enviar temas públicos a a Diaspora* y otras redes no es posible. "; +$a->strings["Allow friends to post to your profile page?"] = "¿Permites que tus amigos publiquen en tu página de perfil?"; +$a->strings["Allow friends to tag your posts?"] = "¿Permites a los amigos etiquetar tus publicaciones?"; +$a->strings["Allow us to suggest you as a potential friend to new members?"] = "¿Nos permite recomendarte como amigo potencial a los nuevos miembros?"; +$a->strings["Permit unknown people to send you private mail?"] = "¿Permites que desconocidos te manden correos privados?"; +$a->strings["Profile is not published."] = "El perfil no está publicado."; +$a->strings["Your Identity Address is '%s' or '%s'."] = "Su dirección de identidad es '%s' o '%s'."; +$a->strings["Automatically expire posts after this many days:"] = "Las publicaciones expirarán automáticamente después de estos días:"; +$a->strings["If empty, posts will not expire. Expired posts will be deleted"] = "Si lo dejas vacío no expirarán nunca. Las publicaciones que hayan expirado se borrarán"; +$a->strings["Advanced expiration settings"] = "Configuración avanzada de expiración"; +$a->strings["Advanced Expiration"] = "Expiración avanzada"; +$a->strings["Expire posts:"] = "¿Expiran las publicaciones?"; +$a->strings["Expire personal notes:"] = "¿Expiran las notas personales?"; +$a->strings["Expire starred posts:"] = "¿Expiran los favoritos?"; +$a->strings["Expire photos:"] = "¿Expiran las fotografías?"; +$a->strings["Only expire posts by others:"] = "Solo expiran los mensajes de los demás:"; +$a->strings["Account Settings"] = "Configuración de la cuenta"; +$a->strings["Password Settings"] = "Configuración de la contraseña"; +$a->strings["Leave password fields blank unless changing"] = "Deja la contraseña en blanco si no quieres cambiarla"; +$a->strings["Current Password:"] = "Contraseña actual:"; +$a->strings["Your current password to confirm the changes"] = "Su contraseña actual para confirmar los cambios."; +$a->strings["Password:"] = "Contraseña:"; +$a->strings["Basic Settings"] = "Configuración básica"; +$a->strings["Email Address:"] = "Dirección de correo:"; +$a->strings["Your Timezone:"] = "Zona horaria:"; +$a->strings["Your Language:"] = "Tu idioma:"; +$a->strings["Set the language we use to show you friendica interface and to send you emails"] = "Selecciona el idioma que se usara para la interfaz del usuario y para el envío de correo."; +$a->strings["Default Post Location:"] = "Localización predeterminada:"; +$a->strings["Use Browser Location:"] = "Usar localización del navegador:"; +$a->strings["Security and Privacy Settings"] = "Configuración de seguridad y privacidad"; +$a->strings["Maximum Friend Requests/Day:"] = "Máximo número de peticiones de amistad por día:"; +$a->strings["(to prevent spam abuse)"] = "(para prevenir el abuso de spam)"; +$a->strings["Default Post Permissions"] = "Permisos por defecto para las publicaciones"; +$a->strings["(click to open/close)"] = "(pulsa para abrir/cerrar)"; +$a->strings["Default Private Post"] = "Publicación Privada por defecto"; +$a->strings["Default Public Post"] = "Publicación Pública por defecto"; +$a->strings["Default Permissions for New Posts"] = "Permisos por defecto para nuevas publicaciones"; +$a->strings["Maximum private messages per day from unknown people:"] = "Número máximo de mensajes diarios para desconocidos:"; +$a->strings["Notification Settings"] = "Configuración de notificaciones"; +$a->strings["By default post a status message when:"] = "Publicar en tu estado cuando:"; +$a->strings["accepting a friend request"] = "aceptes una solicitud de amistad"; +$a->strings["joining a forum/community"] = "te unas a un foro/comunidad"; +$a->strings["making an interesting profile change"] = "hagas un cambio interesante en tu perfil"; +$a->strings["Send a notification email when:"] = "Enviar notificación por correo cuando:"; +$a->strings["You receive an introduction"] = "Recibas una presentación"; +$a->strings["Your introductions are confirmed"] = "Tu presentación sea confirmada"; +$a->strings["Someone writes on your profile wall"] = "Alguien escriba en el muro de mi perfil"; +$a->strings["Someone writes a followup comment"] = "Algien escriba en un comentario que sigo"; +$a->strings["You receive a private message"] = "Recibas un mensaje privado"; +$a->strings["You receive a friend suggestion"] = "Recibas una sugerencia de amistad"; +$a->strings["You are tagged in a post"] = "Seas etiquetado en una publicación"; +$a->strings["You are poked/prodded/etc. in a post"] = "Te han tocado/empujado/etc. en una publicación"; +$a->strings["Activate desktop notifications"] = "Activar notificaciones en pantalla."; +$a->strings["Show desktop popup on new notifications"] = "Mostrar notificaciones emergentes en caso de nuevos eventos."; +$a->strings["Text-only notification emails"] = "Notificaciones e-mail de solo texto"; +$a->strings["Send text only notification emails, without the html part"] = "Enviar las notificaciones por correo con formato de solo texto sin html."; +$a->strings["Advanced Account/Page Type Settings"] = "Configuración avanzada de tipo de Cuenta/Página"; +$a->strings["Change the behaviour of this account for special situations"] = "Cambiar el comportamiento de esta cuenta para situaciones especiales"; +$a->strings["Relocate"] = "Relocalizar"; +$a->strings["If you have moved this profile from another server, and some of your contacts don't receive your updates, try pushing this button."] = "Si ha migrado este perfil desde otro servidor aquí y algunos contactos no reciben sus publicaciones intente recomunicar su ubicación a traves este botón. (Como para decir el botón de los botones)"; +$a->strings["Resend relocate message to contacts"] = "Reenviar mensaje de relocalización a los contactos"; +$a->strings["Do you really want to delete this video?"] = "Realmente quieres eliminar este vídeo?"; +$a->strings["Delete Video"] = "Borrar vídeo"; +$a->strings["No videos selected"] = "Ningún vídeo seleccionado"; +$a->strings["Recent Videos"] = "Vídeos recientes"; +$a->strings["Upload New Videos"] = "Subir nuevos vídeos"; +$a->strings["Invalid request."] = "Consulta invalida"; +$a->strings["Sorry, maybe your upload is bigger than the PHP configuration allows"] = "Disculpa, posiblemente el archivo subido es mas grande que la PHP configuración permite."; +$a->strings["Or - did you try to upload an empty file?"] = "Si no - intento de subir un archivo vacío?"; +$a->strings["File exceeds size limit of %s"] = "El archivo excede el limite de tamaño de %s"; +$a->strings["File upload failed."] = "Ha fallado la subida del archivo."; $a->strings["Theme settings updated."] = "Configuración de la apariencia actualizada."; $a->strings["Site"] = "Sitio"; $a->strings["Users"] = "Usuarios"; -$a->strings["Plugins"] = "Módulos"; $a->strings["Themes"] = "Temas"; -$a->strings["Additional features"] = "Características adicionales"; $a->strings["DB updates"] = "Actualizaciones de la Base de Datos"; $a->strings["Inspect Queue"] = "Inspeccionar cola"; $a->strings["Federation Statistics"] = "Estadísticas de federación"; @@ -988,7 +1492,6 @@ $a->strings["Active plugins"] = "Módulos activos"; $a->strings["Can not parse base url. Must have at least ://"] = "No se puede resolver la direccion URL base.\nDeberá tener al menos ://"; $a->strings["RINO2 needs mcrypt php extension to work."] = "RINO2 precisa la extensión mcrypt para funcionar. "; $a->strings["Site settings updated."] = "Configuración de actualización."; -$a->strings["No special theme for mobile devices"] = "No hay tema especial para dispositivos móviles"; $a->strings["No community page"] = "No hay pagina de comunidad"; $a->strings["Public postings from users of this site"] = "Temas públicos de perfiles de este sitio."; $a->strings["Global community page"] = "Pagina global de comunidad"; @@ -1008,8 +1511,6 @@ $a->strings["Open"] = "Abierto"; $a->strings["No SSL policy, links will track page SSL state"] = "No existe una política de SSL, los vínculos harán un seguimiento del estado de SSL en la página"; $a->strings["Force all links to use SSL"] = "Forzar todos los enlaces a utilizar SSL"; $a->strings["Self-signed certificate, use SSL for local links only (discouraged)"] = "Certificación personal, usa SSL solo para enlaces locales (no recomendado)"; -$a->strings["Save Settings"] = "Guardar configuración"; -$a->strings["Registration"] = "Registro"; $a->strings["File upload"] = "Subida de archivo"; $a->strings["Policies"] = "Políticas"; $a->strings["Auto Discovered Contact Directory"] = "Directorio de contactos descubierto automáticamente"; @@ -1170,7 +1671,7 @@ $a->strings["Enable this if your system doesn't allow the use of 'proc_open'. Th $a->strings["Enable fastlane"] = "Habilitar ascenso rápido"; $a->strings["When enabed, the fastlane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority."] = "Cuando está habilitado, el mecanismo ascenso rápido inicia un trabajador adicional si los procesos de mayor prioridad son bloqueados por prcesos de menor prioridad."; $a->strings["Enable frontend worker"] = "Habilitar trabajador de interfaz"; -$a->strings["When enabled the Worker process is triggered when backend access is performed (e.g. messages being delivered). On smaller sites you might want to call yourdomain.tld/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server. The worker background process needs to be activated for this."] = ""; +$a->strings["When enabled the Worker process is triggered when backend access is performed (e.g. messages being delivered). On smaller sites you might want to call yourdomain.tld/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server. The worker background process needs to be activated for this."] = "Cuando está habilitado, el proceso de Trabajador se activa cuando se ejecuta el acceso de respaldo (ej. mensajes siendo entregados). En páginas más pequeñas usted puede querer llamar a yourdomain.tld/worker en una base regular mediante un trabajo cron externo. Sólo debería habilitar esta opción si no puede utilizar trabajos cron/scheduled en su servidor. El proceso de trabajador en segundo plano necesita ser activado para eso."; $a->strings["Update has been marked successful"] = "La actualización se ha completado con éxito"; $a->strings["Database structure update %s was successfully applied."] = "Actualización de base de datos %s fue aplicada con éxito."; $a->strings["Executing of database structure update %s failed with error: %s"] = "El paso de actualización de la estructura de la base de datos %s fallo con el mensaje de error: %s"; @@ -1200,7 +1701,6 @@ $a->strings["User '%s' blocked"] = "Usuario '%s' bloqueado'"; $a->strings["Register date"] = "Fecha de registro"; $a->strings["Last login"] = "Último acceso"; $a->strings["Last item"] = "Último elemento"; -$a->strings["Account"] = "Cuenta"; $a->strings["Add User"] = "Agregar usuario"; $a->strings["select all"] = "seleccionar todo"; $a->strings["User registrations waiting for confirm"] = "Registro de usuarios esperando confirmación"; @@ -1246,206 +1746,148 @@ $a->strings["Must be writable by web server. Relative to your Friendica top-leve $a->strings["Log level"] = "Nivel de registro"; $a->strings["PHP logging"] = "PHP logging"; $a->strings["To enable logging of PHP errors and warnings you can add the following to the .htconfig.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them."] = "Para habilitar la documentación de los errores PHP y las advertencias se puede agregar lo siguiente al archivo .htconfig.php de la instalación (ftp). La dirección definido en el 'error_log' es relativo al directorio friendica principal (top-level directory) y debe de ser habilitado para la escritura por el servidor web. La opción '1' para 'log_errors' y 'display_errors' es para habilitar estas opciones, '0' para deshabilitarlo."; -$a->strings["Off"] = "Apagado"; -$a->strings["On"] = "Encendido"; $a->strings["Lock feature %s"] = "Trancar opción %s "; $a->strings["Manage Additional Features"] = "Administrar opciones adicionales"; -$a->strings["Sorry, maybe your upload is bigger than the PHP configuration allows"] = "Disculpa, posiblemente el archivo subido es mas grande que la PHP configuración permite."; -$a->strings["Or - did you try to upload an empty file?"] = "Si no - intento de subir un archivo vacío?"; -$a->strings["File exceeds size limit of %s"] = "El archivo excede el limite de tamaño de %s"; -$a->strings["File upload failed."] = "Ha fallado la subida del archivo."; -$a->strings["No friends to display."] = "No hay amigos para mostrar."; -$a->strings["Access to this profile has been restricted."] = "El acceso a este perfil ha sido restringido."; -$a->strings["User not found"] = "Usuario no encontrado"; -$a->strings["This calendar format is not supported"] = "Este formato de calendario no se soporta"; -$a->strings["No exportable data found"] = "No se ha encontrado información exportable"; -$a->strings["calendar"] = "calendario"; -$a->strings["No such group"] = "Ningún grupo"; -$a->strings["Group is empty"] = "El grupo está vacío"; -$a->strings["Group: %s"] = "Grupo: %s"; -$a->strings["This entry was edited"] = "Esta entrada fue editada"; -$a->strings["%d comment"] = array( - 0 => "%d comentario", - 1 => "%d comentarios", +$a->strings["%d contact edited."] = array( + 0 => "%d contacto editado.", + 1 => "%d contacts edited.", ); -$a->strings["Private Message"] = "Mensaje privado"; -$a->strings["I like this (toggle)"] = "Me gusta esto (cambiar)"; -$a->strings["like"] = "me gusta"; -$a->strings["I don't like this (toggle)"] = "No me gusta esto (cambiar)"; -$a->strings["dislike"] = "no me gusta"; -$a->strings["Share this"] = "Compartir esto"; -$a->strings["share"] = "compartir"; -$a->strings["This is you"] = "Este eres tú"; -$a->strings["Bold"] = "Negrita"; -$a->strings["Italic"] = "Cursiva"; -$a->strings["Underline"] = "Subrayado"; -$a->strings["Quote"] = "Cita"; -$a->strings["Code"] = "Código"; -$a->strings["Image"] = "Imagen"; -$a->strings["Link"] = "Enlace"; -$a->strings["Video"] = "Vídeo"; -$a->strings["Edit"] = "Editar"; -$a->strings["add star"] = "Añadir estrella"; -$a->strings["remove star"] = "Quitar estrella"; -$a->strings["toggle star status"] = "Añadir a destacados"; -$a->strings["starred"] = "marcados con estrellas"; -$a->strings["add tag"] = "añadir etiqueta"; -$a->strings["ignore thread"] = "ignorar publicación"; -$a->strings["unignore thread"] = "revertir ignorar publicacion"; -$a->strings["toggle ignore status"] = "cambiar estatus de observación"; -$a->strings["ignored"] = "ignorado"; -$a->strings["save to folder"] = "grabado en directorio"; -$a->strings["I will attend"] = "Voy a estar presente"; -$a->strings["I will not attend"] = "No voy a estar presente"; -$a->strings["I might attend"] = "Puede que voy a estar presente"; -$a->strings["to"] = "a"; -$a->strings["Wall-to-Wall"] = "Muro-A-Muro"; -$a->strings["via Wall-To-Wall:"] = "via Muro-A-Muro:"; -$a->strings["Resubscribing to OStatus contacts"] = "Resubscribir a contactos de OStatus"; -$a->strings["Error"] = "error"; -$a->strings["Done"] = "hecho!"; -$a->strings["Keep this window open until done."] = "Mantén esta ventana abierta hasta que el proceso ha terminado."; -$a->strings["No potential page delegates located."] = "No se han localizado delegados potenciales de la página."; -$a->strings["Delegates are able to manage all aspects of this account/page except for basic account settings. Please do not delegate your personal account to anybody that you do not trust completely."] = "Los delegados tienen la capacidad de gestionar todos los aspectos de esta cuenta/página, excepto los ajustes básicos de la cuenta. Por favor, no delegues tu cuenta personal a nadie en quien no confíes completamente."; -$a->strings["Existing Page Managers"] = "Administradores actuales de la página"; -$a->strings["Existing Page Delegates"] = "Delegados actuales de la página"; -$a->strings["Potential Delegates"] = "Delegados potenciales"; -$a->strings["Add"] = "Añadir"; -$a->strings["No entries."] = "Sin entradas."; -$a->strings["Do you really want to delete this video?"] = "Realmente quieres eliminar este vídeo?"; -$a->strings["Delete Video"] = "Borrar vídeo"; -$a->strings["No videos selected"] = "Ningún vídeo seleccionado"; -$a->strings["Access to this item is restricted."] = "El acceso a este elemento está restringido."; -$a->strings["View Album"] = "Ver Álbum"; -$a->strings["Recent Videos"] = "Vídeos recientes"; -$a->strings["Upload New Videos"] = "Subir nuevos vídeos"; -$a->strings["Profile deleted."] = "Perfil eliminado."; -$a->strings["Profile-"] = "Perfil-"; -$a->strings["New profile created."] = "Nuevo perfil creado."; -$a->strings["Profile unavailable to clone."] = "Imposible duplicar el perfil."; -$a->strings["Profile Name is required."] = "Se necesita un nombre de perfil."; -$a->strings["Marital Status"] = "Estado civil"; -$a->strings["Romantic Partner"] = "Pareja sentimental"; -$a->strings["Work/Employment"] = "Trabajo/estudios"; -$a->strings["Religion"] = "Religión"; -$a->strings["Political Views"] = "Preferencias políticas"; -$a->strings["Gender"] = "Género"; -$a->strings["Sexual Preference"] = "Orientación sexual"; -$a->strings["XMPP"] = "XMPP"; -$a->strings["Homepage"] = "Página de inicio"; -$a->strings["Interests"] = "Intereses"; -$a->strings["Address"] = "Dirección"; -$a->strings["Location"] = "Ubicación"; -$a->strings["Profile updated."] = "Perfil actualizado."; -$a->strings[" and "] = " y "; -$a->strings["public profile"] = "perfil público"; -$a->strings["%1\$s changed %2\$s to “%3\$s”"] = "%1\$s cambió su %2\$s a “%3\$s”"; -$a->strings[" - Visit %1\$s's %2\$s"] = " - Visita %1\$s's %2\$s"; -$a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s tiene una actualización %2\$s, cambiando %3\$s."; -$a->strings["Hide contacts and friends:"] = "Ocultar contactos y amigos"; -$a->strings["No"] = "No"; -$a->strings["Hide your contact/friend list from viewers of this profile?"] = "¿Ocultar tu lista de contactos/amigos en este perfil?"; -$a->strings["Show more profile fields:"] = "Mostrar mas campos del perfil:"; -$a->strings["Profile Actions"] = "Acciones de perfil"; -$a->strings["Edit Profile Details"] = "Editar detalles de tu perfil"; -$a->strings["Change Profile Photo"] = "Cambiar imagen del Perfil"; -$a->strings["View this profile"] = "Ver este perfil"; -$a->strings["Create a new profile using these settings"] = "¿Crear un nuevo perfil con esta configuración?"; -$a->strings["Clone this profile"] = "Clonar este perfil"; -$a->strings["Delete this profile"] = "Eliminar este perfil"; -$a->strings["Basic information"] = "Información básica"; -$a->strings["Profile picture"] = "Imagen del perfil"; -$a->strings["Preferences"] = "Preferencias"; -$a->strings["Status information"] = "Información del estatus"; -$a->strings["Additional information"] = "Información addicional"; -$a->strings["Relation"] = "Relación"; -$a->strings["Upload Profile Photo"] = "Subir foto del Perfil"; -$a->strings["Your Gender:"] = "Género:"; -$a->strings[" Marital Status:"] = " Estado civil:"; -$a->strings["Example: fishing photography software"] = "Ejemplo: pesca fotografía software"; -$a->strings["Profile Name:"] = "Nombres del perfil:"; -$a->strings["This is your public profile.
      It may be visible to anybody using the internet."] = "Éste es tu perfil público.
      Puede ser visto por cualquier usuario de internet."; -$a->strings["Your Full Name:"] = "Tu nombre completo:"; -$a->strings["Title/Description:"] = "Título/Descrición:"; -$a->strings["Street Address:"] = "Dirección"; -$a->strings["Locality/City:"] = "Localidad/Ciudad:"; -$a->strings["Region/State:"] = "Región/Estado:"; -$a->strings["Postal/Zip Code:"] = "Código postal:"; -$a->strings["Country:"] = "País"; -$a->strings["Who: (if applicable)"] = "¿Quién? (si es aplicable)"; -$a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Ejemplos: cathy123, Cathy Williams, cathy@example.com"; -$a->strings["Since [date]:"] = "Desde [fecha]:"; -$a->strings["Tell us about yourself..."] = "Háblanos sobre ti..."; -$a->strings["XMPP (Jabber) address:"] = "Dirección XMPP (Jabber):"; -$a->strings["The XMPP address will be propagated to your contacts so that they can follow you."] = "La dirección XMPP será propagada entre sus contactos para que puedan seguirle."; -$a->strings["Homepage URL:"] = "Dirección de tu página:"; -$a->strings["Religious Views:"] = "Creencias religiosas:"; -$a->strings["Public Keywords:"] = "Palabras clave públicas:"; -$a->strings["(Used for suggesting potential friends, can be seen by others)"] = "(Utilizadas para sugerir amigos potenciales, otros pueden verlo)"; -$a->strings["Private Keywords:"] = "Palabras clave privadas:"; -$a->strings["(Used for searching profiles, never shown to others)"] = "(Utilizadas para buscar perfiles, nunca se muestra a otros)"; -$a->strings["Musical interests"] = "Gustos musicales"; -$a->strings["Books, literature"] = "Libros, literatura"; -$a->strings["Television"] = "Televisión"; -$a->strings["Film/dance/culture/entertainment"] = "Películas/baile/cultura/entretenimiento"; -$a->strings["Hobbies/Interests"] = "Aficiones/Intereses"; -$a->strings["Love/romance"] = "Amor/Romance"; -$a->strings["Work/employment"] = "Trabajo/ocupación"; -$a->strings["School/education"] = "Escuela/estudios"; -$a->strings["Contact information and Social Networks"] = "Informacioń de contacto y Redes sociales"; -$a->strings["Edit/Manage Profiles"] = "Editar/Administrar perfiles"; -$a->strings["Credits"] = "Creditos"; -$a->strings["Friendica is a community project, that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!"] = "Friendica es un proyecto comunitario, que no seria posible sin la ayuda de mucha gente. Aquí una lista de de aquellos que aportaron al código o la traducción de friendica.\nGracias a todos! "; -$a->strings["- select -"] = "- seleccionar -"; -$a->strings["Poke/Prod"] = "Toque/Empujón"; -$a->strings["poke, prod or do other things to somebody"] = "da un toque, empujón o similar a alguien"; -$a->strings["Recipient"] = "Receptor"; -$a->strings["Choose what you wish to do to recipient"] = "Elige qué desea hacer con el receptor"; -$a->strings["Make this post private"] = "Hacer esta publicación privada"; -$a->strings["Recent Photos"] = "Fotos recientes"; -$a->strings["Upload New Photos"] = "Subir nuevas fotos"; -$a->strings["everybody"] = "todos"; -$a->strings["Contact information unavailable"] = "Información del contacto no disponible"; -$a->strings["Album not found."] = "Álbum no encontrado."; -$a->strings["Delete Album"] = "Eliminar álbum"; -$a->strings["Do you really want to delete this photo album and all its photos?"] = "¿Estás seguro de quieres borrar este álbum y todas sus fotos?"; -$a->strings["Delete Photo"] = "Eliminar foto"; -$a->strings["Do you really want to delete this photo?"] = "¿Estás seguro de que quieres borrar esta foto?"; -$a->strings["%1\$s was tagged in %2\$s by %3\$s"] = "%1\$s fue etiquetado en %2\$s por %3\$s"; -$a->strings["a photo"] = "una foto"; -$a->strings["Image file is empty."] = "El archivo de imagen está vacío."; -$a->strings["No photos selected"] = "Ninguna foto seleccionada"; -$a->strings["You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."] = "Has usado %1$.2f MB de %2$.2f MB de tu álbum de fotos."; -$a->strings["Upload Photos"] = "Subir fotos"; -$a->strings["New album name: "] = "Nombre del nuevo álbum: "; -$a->strings["or existing album name: "] = "o nombre de un álbum existente: "; -$a->strings["Do not show a status post for this upload"] = "No actualizar tu estado con este envío"; -$a->strings["Show to Groups"] = "Mostrar a los Grupos"; -$a->strings["Show to Contacts"] = "Mostrar a los Contactos"; -$a->strings["Private Photo"] = "Foto Privada"; -$a->strings["Public Photo"] = "Foto Pública"; -$a->strings["Edit Album"] = "Modificar álbum"; -$a->strings["Show Newest First"] = "Mostrar más nuevos primero"; -$a->strings["Show Oldest First"] = "Mostrar más antiguos primero"; -$a->strings["View Photo"] = "Ver foto"; -$a->strings["Permission denied. Access to this item may be restricted."] = "Permiso denegado. El acceso a este elemento puede estar restringido."; -$a->strings["Photo not available"] = "Foto no disponible"; -$a->strings["View photo"] = "Ver foto"; -$a->strings["Edit photo"] = "Modificar foto"; -$a->strings["Use as profile photo"] = "Usar como foto del perfil"; -$a->strings["View Full Size"] = "Ver a tamaño completo"; -$a->strings["Tags: "] = "Etiquetas: "; -$a->strings["[Remove any tag]"] = "[Borrar todas las etiquetas]"; -$a->strings["New album name"] = "Nuevo nombre del álbum"; -$a->strings["Caption"] = "Título"; -$a->strings["Add a Tag"] = "Añadir una etiqueta"; -$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"] = "Ejemplo: @juan, @Barbara_Ruiz, @julia@example.com, #California, #camping"; -$a->strings["Do not rotate"] = "No rotar"; -$a->strings["Rotate CW (right)"] = "Girar a la derecha"; -$a->strings["Rotate CCW (left)"] = "Girar a la izquierda"; -$a->strings["Private photo"] = "Foto privada"; -$a->strings["Public photo"] = "Foto pública"; -$a->strings["Map"] = "Mapa"; +$a->strings["Could not access contact record."] = "No se pudo acceder a los datos del contacto."; +$a->strings["Could not locate selected profile."] = "No se pudo encontrar el perfil seleccionado."; +$a->strings["Contact updated."] = "Contacto actualizado."; +$a->strings["Failed to update contact record."] = "Error al actualizar el contacto."; +$a->strings["Contact has been blocked"] = "El contacto ha sido bloqueado"; +$a->strings["Contact has been unblocked"] = "El contacto ha sido desbloqueado"; +$a->strings["Contact has been ignored"] = "El contacto ha sido ignorado"; +$a->strings["Contact has been unignored"] = "El contacto ya no está ignorado"; +$a->strings["Contact has been archived"] = "El contacto ha sido archivado"; +$a->strings["Contact has been unarchived"] = "El contacto ya no está archivado"; +$a->strings["Drop contact"] = "Eliminar contacto"; +$a->strings["Do you really want to delete this contact?"] = "¿Estás seguro de que quieres eliminar este contacto?"; +$a->strings["Contact has been removed."] = "El contacto ha sido eliminado"; +$a->strings["You are mutual friends with %s"] = "Ahora tienes una amistad mutua con %s"; +$a->strings["You are sharing with %s"] = "Estás compartiendo con %s"; +$a->strings["%s is sharing with you"] = "%s está compartiendo contigo"; +$a->strings["Private communications are not available for this contact."] = "Las comunicaciones privadas no está disponibles para este contacto."; +$a->strings["(Update was successful)"] = "(La actualización se ha completado)"; +$a->strings["(Update was not successful)"] = "(La actualización no se ha completado)"; +$a->strings["Suggest friends"] = "Sugerir amigos"; +$a->strings["Network type: %s"] = "Tipo de red: %s"; +$a->strings["Communications lost with this contact!"] = "¡Se ha perdido la comunicación con este contacto!"; +$a->strings["Fetch further information for feeds"] = "Recaudar informacion complementaria de los feeds"; +$a->strings["Fetch information"] = "Recaudar informacion"; +$a->strings["Fetch information and keywords"] = "Recaudar informacion y palabras claves"; +$a->strings["Contact"] = "Contacto"; +$a->strings["Profile Visibility"] = "Visibilidad del Perfil"; +$a->strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Por favor, selecciona el perfil que quieras mostrar a %s cuando esté viendo tu perfil de forma segura."; +$a->strings["Contact Information / Notes"] = "Información del Contacto / Notas"; +$a->strings["Edit contact notes"] = "Editar notas del contacto"; +$a->strings["Block/Unblock contact"] = "Boquear/Desbloquear contacto"; +$a->strings["Ignore contact"] = "Ignorar contacto"; +$a->strings["Repair URL settings"] = "Configuración de reparación de la dirección"; +$a->strings["View conversations"] = "Ver conversaciones"; +$a->strings["Last update:"] = "Última actualización:"; +$a->strings["Update public posts"] = "Actualizar publicaciones públicas"; +$a->strings["Update now"] = "Actualizar ahora"; +$a->strings["Unignore"] = "Quitar de Ignorados"; +$a->strings["Currently blocked"] = "Bloqueados"; +$a->strings["Currently ignored"] = "Ignorados"; +$a->strings["Currently archived"] = "Archivados"; +$a->strings["Replies/likes to your public posts may still be visible"] = "Los comentarios o \"me gusta\" en tus publicaciones públicas todavía pueden ser visibles."; +$a->strings["Notification for new posts"] = "Notificacion de nuevos temas."; +$a->strings["Send a notification of every new post of this contact"] = "Enviar una notificacion por nuevos temas de este contacto."; +$a->strings["Blacklisted keywords"] = "Lista negra de palabras"; +$a->strings["Comma separated list of keywords that should not be converted to hashtags, when \"Fetch information and keywords\" is selected"] = "Lista separada por comas de palabras claves que no deberian ser convertido en #hashtags cuando \"Recaudar informacion y palabras claves\" es seleccionado"; +$a->strings["Actions"] = "Acciones"; +$a->strings["Contact Settings"] = "Ajustes del contacto"; +$a->strings["Suggestions"] = "Sugerencias"; +$a->strings["Suggest potential friends"] = "Amistades potenciales sugeridas"; +$a->strings["Show all contacts"] = "Mostrar todos los contactos"; +$a->strings["Unblocked"] = "Desbloqueados"; +$a->strings["Only show unblocked contacts"] = "Mostrar solo contactos sin bloquear"; +$a->strings["Blocked"] = "Bloqueados"; +$a->strings["Only show blocked contacts"] = "Mostrar solo contactos bloqueados"; +$a->strings["Ignored"] = "Ignorados"; +$a->strings["Only show ignored contacts"] = "Mostrar solo contactos ignorados"; +$a->strings["Archived"] = "Archivados"; +$a->strings["Only show archived contacts"] = "Mostrar solo contactos archivados"; +$a->strings["Hidden"] = "Ocultos"; +$a->strings["Only show hidden contacts"] = "Mostrar solo contactos ocultos"; +$a->strings["Search your contacts"] = "Buscar en tus contactos"; +$a->strings["Archive"] = "Archivo"; +$a->strings["Unarchive"] = "Sin archivar"; +$a->strings["Batch Actions"] = "Accones en lote"; +$a->strings["View all contacts"] = "Ver todos los contactos"; +$a->strings["View all common friends"] = "Ver todos los conocidos en común "; +$a->strings["Advanced Contact Settings"] = "Configuración avanzada"; +$a->strings["Mutual Friendship"] = "Amistad recíproca"; +$a->strings["is a fan of yours"] = "es tu fan"; +$a->strings["you are a fan of"] = "eres fan de"; +$a->strings["Toggle Blocked status"] = "Cambiar bloqueados"; +$a->strings["Toggle Ignored status"] = "Cambiar ignorados"; +$a->strings["Toggle Archive status"] = "Cambiar archivados"; +$a->strings["Delete contact"] = "Eliminar contacto"; +$a->strings["This may occasionally happen if contact was requested by both persons and it has already been approved."] = "Esto puede ocurrir a veces si la conexión fue solicitada por ambas personas y ya hubiera sido aprobada."; +$a->strings["Response from remote site was not understood."] = "La respuesta desde el sitio remoto no ha sido entendida."; +$a->strings["Unexpected response from remote site: "] = "Respuesta inesperada desde el sitio remoto: "; +$a->strings["Confirmation completed successfully."] = "Confirmación completada con éxito."; +$a->strings["Remote site reported: "] = "El sito remoto informó: "; +$a->strings["Temporary failure. Please wait and try again."] = "Error temporal. Por favor, espere y vuelva a intentarlo."; +$a->strings["Introduction failed or was revoked."] = "La presentación ha fallado o ha sido anulada."; +$a->strings["Unable to set contact photo."] = "Imposible establecer la foto del contacto."; +$a->strings["No user record found for '%s' "] = "No se ha encontrado a ningún '%s' "; +$a->strings["Our site encryption key is apparently messed up."] = "Nuestra clave de cifrado del sitio es aparentemente un lío."; +$a->strings["Empty site URL was provided or URL could not be decrypted by us."] = "Se ha proporcionado una dirección vacía o no hemos podido descifrarla."; +$a->strings["Contact record was not found for you on our site."] = "El contacto no se ha encontrado en nuestra base de datos."; +$a->strings["Site public key not available in contact record for URL %s."] = "La clave pública del sitio no está disponible en los datos del contacto para %s."; +$a->strings["The ID provided by your system is a duplicate on our system. It should work if you try again."] = "La identificación proporcionada por el sistema es un duplicado de nuestro sistema. Debería funcionar si lo intentas de nuevo."; +$a->strings["Unable to set your contact credentials on our system."] = "No se puede establecer las credenciales de tu contacto en nuestro sistema."; +$a->strings["Unable to update your contact profile details on our system"] = "No se puede actualizar los datos de tu perfil de contacto en nuestro sistema"; +$a->strings["%1\$s has joined %2\$s"] = "%1\$s se ha unido a %2\$s"; +$a->strings["This introduction has already been accepted."] = "Esta presentación ya ha sido aceptada."; +$a->strings["Profile location is not valid or does not contain profile information."] = "La dirección del perfil no es válida o no contiene información del perfil."; +$a->strings["Warning: profile location has no identifiable owner name."] = "Aviso: La dirección del perfil no tiene un nombre de propietario identificable."; +$a->strings["Warning: profile location has no profile photo."] = "Aviso: la dirección del perfil no tiene foto de perfil."; +$a->strings["%d required parameter was not found at the given location"] = array( + 0 => "no se encontró %d parámetro requerido en el lugar determinado", + 1 => "no se encontraron %d parámetros requeridos en el lugar determinado", +); +$a->strings["Introduction complete."] = "Presentación completa."; +$a->strings["Unrecoverable protocol error."] = "Error de protocolo irrecuperable."; +$a->strings["Profile unavailable."] = "Perfil no disponible."; +$a->strings["%s has received too many connection requests today."] = "%s ha recibido demasiadas solicitudes de conexión hoy."; +$a->strings["Spam protection measures have been invoked."] = "Han sido activadas las medidas de protección contra spam."; +$a->strings["Friends are advised to please try again in 24 hours."] = "Tus amigos serán avisados para que lo intenten de nuevo pasadas 24 horas."; +$a->strings["Invalid locator"] = "Localizador no válido"; +$a->strings["Invalid email address."] = "Dirección de correo incorrecta"; +$a->strings["This account has not been configured for email. Request failed."] = "Esta cuenta no ha sido configurada para el correo. Fallo de solicitud."; +$a->strings["You have already introduced yourself here."] = "Ya te has presentado aquí."; +$a->strings["Apparently you are already friends with %s."] = "Al parecer, ya eres amigo de %s."; +$a->strings["Invalid profile URL."] = "Dirección de perfil no válida."; +$a->strings["Your introduction has been sent."] = "Tu presentación ha sido enviada."; +$a->strings["Remote subscription can't be done for your network. Please subscribe directly on your system."] = "La subscripción remota no se podrá hacer para tu red. Por favor contacta directamente desde tu sistema."; +$a->strings["Please login to confirm introduction."] = "Inicia sesión para confirmar la presentación."; +$a->strings["Incorrect identity currently logged in. Please login to this profile."] = "Sesión iniciada con la identificación incorrecta. Entra en este perfil."; +$a->strings["Confirm"] = "Confirmar"; +$a->strings["Hide this contact"] = "Ocultar este contacto"; +$a->strings["Welcome home %s."] = "Bienvenido a casa %s"; +$a->strings["Please confirm your introduction/connection request to %s."] = "Por favor, confirma tu solicitud de presentación/conexión con %s."; +$a->strings["Please enter your 'Identity Address' from one of the following supported communications networks:"] = "Por favor introduce tu dirección ID de una de las siguientes redes sociales soportadas:"; +$a->strings["If you are not yet a member of the free social web, follow this link to find a public Friendica site and join us today."] = "Si aun no eres miembro de la red social libre seguí este enlace para encontrara un sitio disponible de friendica y acompañanos hoy mismo"; +$a->strings["Friend/Connection Request"] = "Solicitud de Amistad/Conexión"; +$a->strings["Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca"] = "Ejemplos: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca"; +$a->strings["Please answer the following:"] = "Por favor responde lo siguiente:"; +$a->strings["Does %s know you?"] = "¿%s te conoce?"; +$a->strings["Add a personal note:"] = "Añade una nota personal:"; +$a->strings["StatusNet/Federated Social Web"] = "StatusNet/Web Social Federada"; +$a->strings[" - please do not use this form. Instead, enter %s into your Diaspora search bar."] = "(En vez de usar este formulario, introduce %s en la barra de búsqueda de Diaspora."; +$a->strings["Your Identity Address:"] = "Dirección de tu perfil:"; +$a->strings["Submit Request"] = "Enviar solicitud"; +$a->strings["You already added this contact."] = "Ya has añadido este contacto."; +$a->strings["Diaspora support isn't enabled. Contact can't be added."] = "El soporte de Diaspora* no esta habilitado, el contacto no puede ser agregado."; +$a->strings["OStatus support is disabled. Contact can't be added."] = "El soporte de OStatus no esta habilitado, el contacto no puede ser agregado."; +$a->strings["The network type couldn't be detected. Contact can't be added."] = "No se pudo detectar el tipo de red. Contacto no puede ser agregado."; +$a->strings["Contact added"] = "Contacto añadido"; $a->strings["Friendica Communications Server - Setup"] = "Servidor de comunicación Friendica - Configuración"; $a->strings["Could not connect to database."] = "No es posible la conexión con la base de datos."; $a->strings["Could not create table."] = "No se puede crear la tabla."; @@ -1516,151 +1958,19 @@ $a->strings["Note: as a security measure, you should give the web server write a $a->strings["view/smarty3 is writable"] = "Se puede escribir en /view/smarty3"; $a->strings["Url rewrite in .htaccess is not working. Check your server configuration."] = "La reescritura de la dirección en .htaccess no funcionó. Revisa la configuración."; $a->strings["Url rewrite is working"] = "Reescribiendo la dirección..."; +$a->strings["ImageMagick PHP extension is not installed"] = "No está instalada la extensión ImageMagick PHP"; $a->strings["ImageMagick PHP extension is installed"] = "ImageMagick PHP extension is installed"; $a->strings["ImageMagick supports GIF"] = "ImageMagick supporta GIF"; $a->strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "El archivo de configuración de base de datos \".htconfig.php\" no se pudo escribir. Por favor, utiliza el texto adjunto para crear un archivo de configuración en la raíz de tu servidor web."; $a->strings["

      What next

      "] = "

      ¿Ahora qué?

      "; $a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "IMPORTANTE: Tendrás que configurar [manualmente] una tarea programada para el sondeo"; -$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s está siguiendo las %3\$s de %2\$s"; -$a->strings["Item not available."] = "Elemento no disponible."; -$a->strings["Item was not found."] = "Elemento no encontrado."; -$a->strings["%d contact edited."] = array( - 0 => "%d contacto editado.", - 1 => "%d contacts edited.", -); -$a->strings["Could not access contact record."] = "No se pudo acceder a los datos del contacto."; -$a->strings["Could not locate selected profile."] = "No se pudo encontrar el perfil seleccionado."; -$a->strings["Contact updated."] = "Contacto actualizado."; -$a->strings["Failed to update contact record."] = "Error al actualizar el contacto."; -$a->strings["Contact has been blocked"] = "El contacto ha sido bloqueado"; -$a->strings["Contact has been unblocked"] = "El contacto ha sido desbloqueado"; -$a->strings["Contact has been ignored"] = "El contacto ha sido ignorado"; -$a->strings["Contact has been unignored"] = "El contacto ya no está ignorado"; -$a->strings["Contact has been archived"] = "El contacto ha sido archivado"; -$a->strings["Contact has been unarchived"] = "El contacto ya no está archivado"; -$a->strings["Drop contact"] = "Eliminar contacto"; -$a->strings["Do you really want to delete this contact?"] = "¿Estás seguro de que quieres eliminar este contacto?"; -$a->strings["Contact has been removed."] = "El contacto ha sido eliminado"; -$a->strings["You are mutual friends with %s"] = "Ahora tienes una amistad mutua con %s"; -$a->strings["You are sharing with %s"] = "Estás compartiendo con %s"; -$a->strings["%s is sharing with you"] = "%s está compartiendo contigo"; -$a->strings["Private communications are not available for this contact."] = "Las comunicaciones privadas no está disponibles para este contacto."; -$a->strings["(Update was successful)"] = "(La actualización se ha completado)"; -$a->strings["(Update was not successful)"] = "(La actualización no se ha completado)"; -$a->strings["Suggest friends"] = "Sugerir amigos"; -$a->strings["Network type: %s"] = "Tipo de red: %s"; -$a->strings["Communications lost with this contact!"] = "¡Se ha perdido la comunicación con este contacto!"; -$a->strings["Fetch further information for feeds"] = "Recaudar informacion complementaria de los feeds"; -$a->strings["Fetch information"] = "Recaudar informacion"; -$a->strings["Fetch information and keywords"] = "Recaudar informacion y palabras claves"; -$a->strings["Contact"] = "Contacto"; -$a->strings["Profile Visibility"] = "Visibilidad del Perfil"; -$a->strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Por favor, selecciona el perfil que quieras mostrar a %s cuando esté viendo tu perfil de forma segura."; -$a->strings["Contact Information / Notes"] = "Información del Contacto / Notas"; -$a->strings["Edit contact notes"] = "Editar notas del contacto"; -$a->strings["Block/Unblock contact"] = "Boquear/Desbloquear contacto"; -$a->strings["Ignore contact"] = "Ignorar contacto"; -$a->strings["Repair URL settings"] = "Configuración de reparación de la dirección"; -$a->strings["View conversations"] = "Ver conversaciones"; -$a->strings["Last update:"] = "Última actualización:"; -$a->strings["Update public posts"] = "Actualizar publicaciones públicas"; -$a->strings["Update now"] = "Actualizar ahora"; -$a->strings["Unignore"] = "Quitar de Ignorados"; -$a->strings["Currently blocked"] = "Bloqueados"; -$a->strings["Currently ignored"] = "Ignorados"; -$a->strings["Currently archived"] = "Archivados"; -$a->strings["Replies/likes to your public posts may still be visible"] = "Los comentarios o \"me gusta\" en tus publicaciones públicas todavía pueden ser visibles."; -$a->strings["Notification for new posts"] = "Notificacion de nuevos temas."; -$a->strings["Send a notification of every new post of this contact"] = "Enviar una notificacion por nuevos temas de este contacto."; -$a->strings["Blacklisted keywords"] = "Lista negra de palabras"; -$a->strings["Comma separated list of keywords that should not be converted to hashtags, when \"Fetch information and keywords\" is selected"] = "Lista separada por comas de palabras claves que no deberian ser convertido en #hashtags cuando \"Recaudar informacion y palabras claves\" es seleccionado"; -$a->strings["Actions"] = "Acciones"; -$a->strings["Contact Settings"] = "Ajustes del contacto"; -$a->strings["Suggestions"] = "Sugerencias"; -$a->strings["Suggest potential friends"] = "Amistades potenciales sugeridas"; -$a->strings["All Contacts"] = "Todos los contactos"; -$a->strings["Show all contacts"] = "Mostrar todos los contactos"; -$a->strings["Unblocked"] = "Desbloqueados"; -$a->strings["Only show unblocked contacts"] = "Mostrar solo contactos sin bloquear"; -$a->strings["Blocked"] = "Bloqueados"; -$a->strings["Only show blocked contacts"] = "Mostrar solo contactos bloqueados"; -$a->strings["Ignored"] = "Ignorados"; -$a->strings["Only show ignored contacts"] = "Mostrar solo contactos ignorados"; -$a->strings["Archived"] = "Archivados"; -$a->strings["Only show archived contacts"] = "Mostrar solo contactos archivados"; -$a->strings["Hidden"] = "Ocultos"; -$a->strings["Only show hidden contacts"] = "Mostrar solo contactos ocultos"; -$a->strings["Search your contacts"] = "Buscar en tus contactos"; -$a->strings["Update"] = "Actualizar"; -$a->strings["Archive"] = "Archivo"; -$a->strings["Unarchive"] = "Sin archivar"; -$a->strings["Batch Actions"] = "Accones en lote"; -$a->strings["View all contacts"] = "Ver todos los contactos"; -$a->strings["Common Friends"] = "Amigos comunes"; -$a->strings["View all common friends"] = "Ver todos los conocidos en común "; -$a->strings["Advanced Contact Settings"] = "Configuración avanzada"; -$a->strings["Mutual Friendship"] = "Amistad recíproca"; -$a->strings["is a fan of yours"] = "es tu fan"; -$a->strings["you are a fan of"] = "eres fan de"; -$a->strings["Toggle Blocked status"] = "Cambiar bloqueados"; -$a->strings["Toggle Ignored status"] = "Cambiar ignorados"; -$a->strings["Toggle Archive status"] = "Cambiar archivados"; -$a->strings["Delete contact"] = "Eliminar contacto"; -$a->strings["Submit Request"] = "Enviar solicitud"; -$a->strings["You already added this contact."] = "Ya has añadido este contacto."; -$a->strings["Diaspora support isn't enabled. Contact can't be added."] = "El soporte de Diaspora* no esta habilitado, el contacto no puede ser agregado."; -$a->strings["OStatus support is disabled. Contact can't be added."] = "El soporte de OStatus no esta habilitado, el contacto no puede ser agregado."; -$a->strings["The network type couldn't be detected. Contact can't be added."] = "No se pudo detectar el tipo de red. Contacto no puede ser agregado."; -$a->strings["Please answer the following:"] = "Por favor responde lo siguiente:"; -$a->strings["Does %s know you?"] = "¿%s te conoce?"; -$a->strings["Add a personal note:"] = "Añade una nota personal:"; -$a->strings["Your Identity Address:"] = "Dirección de tu perfil:"; -$a->strings["Contact added"] = "Contacto añadido"; -$a->strings["Applications"] = "Aplicaciones"; -$a->strings["No installed applications."] = "Sin aplicaciones"; -$a->strings["Do you really want to delete this suggestion?"] = "¿Estás seguro de que quieres borrar esta sugerencia?"; -$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "No hay sugerencias disponibles. Si el sitio web es nuevo inténtalo de nuevo dentro de 24 horas."; -$a->strings["Ignore/Hide"] = "Ignorar/Ocultar"; -$a->strings["Not Extended"] = "No extendido"; -$a->strings["Item has been removed."] = "El elemento ha sido eliminado."; -$a->strings["No contacts in common."] = "Sin contactos en común."; -$a->strings["Welcome to Friendica"] = "Bienvenido a Friendica "; -$a->strings["New Member Checklist"] = "Listado de nuevos miembros"; -$a->strings["We would like to offer some tips and links to help make your experience enjoyable. Click any item to visit the relevant page. A link to this page will be visible from your home page for two weeks after your initial registration and then will quietly disappear."] = "Nos gustaría ofrecerte algunos consejos y enlaces para ayudar a hacer tu experiencia más amena. Pulsa en cualquier elemento para visitar la página correspondiente. Un enlace a esta página será visible desde tu página de inicio durante las dos semanas siguientes a tu inscripción y luego desaparecerá."; -$a->strings["Getting Started"] = "Empezando"; -$a->strings["Friendica Walk-Through"] = "Visita guiada a Friendica"; -$a->strings["On your Quick Start page - find a brief introduction to your profile and network tabs, make some new connections, and find some groups to join."] = "En tu página de Inicio Rápido - busca una introducción breve para tus pestañas de perfil y red, haz algunas conexiones nuevas, y busca algunos grupos a los que unirte."; -$a->strings["Go to Your Settings"] = "Ir a tus ajustes"; -$a->strings["On your Settings page - change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web."] = "En la página de Configuración puedes cambiar tu contraseña inicial. También aparece tu ID (Identity Address). Es parecida a una dirección de correo y te servirá para conectar con gente de redes sociales libres."; -$a->strings["Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you."] = "Revisa las otras configuraciones, especialmente la configuración de privacidad. Un listado de directorio sin publicar es como tener un número de teléfono sin publicar. Normalmente querrás publicar tu listado, a menos que tus amigos y amigos potenciales sepan cómo ponerse en contacto contigo."; -$a->strings["Upload a profile photo if you have not done so already. Studies have shown that people with real photos of themselves are ten times more likely to make friends than people who do not."] = "Sube una foto para tu perfil si no lo has hecho aún. Los estudios han demostrado que la gente que usa fotos suyas reales tienen diez veces más éxito a la hora de entablar amistad que las que no."; -$a->strings["Edit Your Profile"] = "Editar tu perfil"; -$a->strings["Edit your default profile to your liking. Review the settings for hiding your list of friends and hiding the profile from unknown visitors."] = "Edita tu perfil predeterminado como quieras. Revisa la configuración para ocultar tu lista de amigos o tu perfil a los visitantes desconocidos."; -$a->strings["Profile Keywords"] = "Palabras clave del perfil"; -$a->strings["Set some public keywords for your default profile which describe your interests. We may be able to find other people with similar interests and suggest friendships."] = "Define en tu perfil público algunas palabras que describan tus intereses. Así podremos buscar otras personas con los mismos gustos y sugerirte posibles amigos."; -$a->strings["Connecting"] = "Conectando"; -$a->strings["Importing Emails"] = "Importando correos electrónicos"; -$a->strings["Enter your email access information on your Connector Settings page if you wish to import and interact with friends or mailing lists from your email INBOX"] = "Introduce la información para acceder a tu correo en la página de Configuración del conector si quieres importar e interactuar con amigos o listas de correos del buzón de entrada de tu correo electrónico."; -$a->strings["Go to Your Contacts Page"] = "Ir a tu página de contactos"; -$a->strings["Your Contacts page is your gateway to managing friendships and connecting with friends on other networks. Typically you enter their address or site URL in the Add New Contact dialog."] = "Tu página de Contactos es el portal desde donde podrás manejar tus amistades y conectarte con amigos de otras redes. Normalmente introduces su dirección o la dirección de su sitio web en el recuadro \"Añadir contacto nuevo\"."; -$a->strings["Go to Your Site's Directory"] = "Ir al directorio de tu sitio"; -$a->strings["The Directory page lets you find other people in this network or other federated sites. Look for a Connect or Follow link on their profile page. Provide your own Identity Address if requested."] = "El Directorio te permite encontrar otras personas en esta red o en cualquier otro sitio federado. Busca algún enlace de Conectar o Seguir en su perfil. Proporciona tu direción personal si es necesario."; -$a->strings["Finding New People"] = "Encontrando nueva gente"; -$a->strings["On the side panel of the Contacts page are several tools to find new friends. We can match people by interest, look up people by name or interest, and provide suggestions based on network relationships. On a brand new site, friend suggestions will usually begin to be populated within 24 hours."] = "En el panel lateral de la página de Contactos existen varias herramientas para encontrar nuevos amigos. Podemos filtrar personas por sus intereses, buscar personas por nombre o por sus intereses, y ofrecerte sugerencias basadas en sus relaciones de la red. En un sitio nuevo, las sugerencias de amigos por lo general comienzan pasadas las 24 horas."; -$a->strings["Group Your Contacts"] = "Agrupa tus contactos"; -$a->strings["Once you have made some friends, organize them into private conversation groups from the sidebar of your Contacts page and then you can interact with each group privately on your Network page."] = "Una vez que tengas algunos amigos, puedes organizarlos en grupos privados de conversación mediante el memnú en tu página de Contactos y luego puedes interactuar con cada grupo por separado desde tu página de Red."; -$a->strings["Why Aren't My Posts Public?"] = "¿Por qué mis publicaciones no son públicas?"; -$a->strings["Friendica respects your privacy. By default, your posts will only show up to people you've added as friends. For more information, see the help section from the link above."] = "Friendica respeta tu privacidad. Por defecto, tus publicaciones solo se mostrarán a personas que hayas añadido como amistades. Para más información, mira la sección de ayuda en el enlace de más arriba."; -$a->strings["Getting Help"] = "Consiguiendo ayuda"; -$a->strings["Go to the Help Section"] = "Ir a la sección de ayuda"; -$a->strings["Our help pages may be consulted for detail on other program features and resources."] = "Puedes consultar nuestra página de Ayuda para más información y recursos de ayuda."; -$a->strings["Remove My Account"] = "Eliminar mi cuenta"; -$a->strings["This will completely remove your account. Once this has been done it is not recoverable."] = "Esto eliminará por completo tu cuenta. Una vez hecho no se puede deshacer."; -$a->strings["Please enter your password for verification:"] = "Por favor, introduce tu contraseña para la verificación:"; -$a->strings["Mood"] = "Ánimo"; -$a->strings["Set your current mood and tell your friends"] = "Coloca tu ánimo actual y cuéntaselo a tus amigos"; -$a->strings["Item not found"] = "Elemento no encontrado"; -$a->strings["Edit post"] = "Editar publicación"; +$a->strings["Unable to locate original post."] = "No se puede encontrar la publicación original."; +$a->strings["Empty post discarded."] = "Publicación vacía descartada."; +$a->strings["System error. Post not saved."] = "Error del sistema. Mensaje no guardado."; +$a->strings["This message was sent to you by %s, a member of the Friendica social network."] = "Este mensaje te lo ha enviado %s, miembro de la red social Friendica."; +$a->strings["You may visit them online at %s"] = "Los puedes visitar en línea en %s"; +$a->strings["Please contact the sender by replying to this post if you do not wish to receive these messages."] = "Por favor contacta con el remitente respondiendo a este mensaje si no deseas recibir estos mensajes."; +$a->strings["%s posted an update."] = "%s ha publicado una actualización."; $a->strings["Warning: This group contains %s member from a network that doesn't allow non public messages."] = array( 0 => "Aviso: Este grupo contiene %s miembro de una red que no permite mensajes públicos.", 1 => "Aviso: Este grupo contiene %s miembros de una red que no permite mensajes públicos.", @@ -1679,328 +1989,10 @@ $a->strings["Shared Links"] = "Enlaces compartidos"; $a->strings["Interesting Links"] = "Enlaces interesantes"; $a->strings["Starred"] = "Favoritos"; $a->strings["Favourite Posts"] = "Publicaciones favoritas"; -$a->strings["Not available."] = "No disponible"; -$a->strings["Time Conversion"] = "Conversión horária"; -$a->strings["Friendica provides this service for sharing events with other networks and friends in unknown timezones."] = "Friendica ofrece este servicio para compartir eventos con otros servidores de la red friendica y amigos en zonas de horarios desconocidos."; -$a->strings["UTC time: %s"] = "Tiempo UTC: %s"; -$a->strings["Current timezone: %s"] = "Zona horaria actual: %s"; -$a->strings["Converted localtime: %s"] = "Zona horaria local convertida: %s"; -$a->strings["Please select your timezone:"] = "Por favor, selecciona tu zona horaria:"; -$a->strings["The post was created"] = "La publicación fue creada"; -$a->strings["Group created."] = "Grupo creado."; -$a->strings["Could not create group."] = "Imposible crear el grupo."; -$a->strings["Group not found."] = "Grupo no encontrado."; -$a->strings["Group name changed."] = "El nombre del grupo ha cambiado."; -$a->strings["Save Group"] = "Guardar grupo"; -$a->strings["Create a group of contacts/friends."] = "Crea un grupo de contactos/amigos."; -$a->strings["Group removed."] = "Grupo eliminado."; -$a->strings["Unable to remove group."] = "No se puede eliminar el grupo."; -$a->strings["Group Editor"] = "Editor de grupos"; -$a->strings["Members"] = "Miembros"; -$a->strings["This introduction has already been accepted."] = "Esta presentación ya ha sido aceptada."; -$a->strings["Profile location is not valid or does not contain profile information."] = "La dirección del perfil no es válida o no contiene información del perfil."; -$a->strings["Warning: profile location has no identifiable owner name."] = "Aviso: La dirección del perfil no tiene un nombre de propietario identificable."; -$a->strings["Warning: profile location has no profile photo."] = "Aviso: la dirección del perfil no tiene foto de perfil."; -$a->strings["%d required parameter was not found at the given location"] = array( - 0 => "no se encontró %d parámetro requerido en el lugar determinado", - 1 => "no se encontraron %d parámetros requeridos en el lugar determinado", -); -$a->strings["Introduction complete."] = "Presentación completa."; -$a->strings["Unrecoverable protocol error."] = "Error de protocolo irrecuperable."; -$a->strings["Profile unavailable."] = "Perfil no disponible."; -$a->strings["%s has received too many connection requests today."] = "%s ha recibido demasiadas solicitudes de conexión hoy."; -$a->strings["Spam protection measures have been invoked."] = "Han sido activadas las medidas de protección contra spam."; -$a->strings["Friends are advised to please try again in 24 hours."] = "Tus amigos serán avisados para que lo intenten de nuevo pasadas 24 horas."; -$a->strings["Invalid locator"] = "Localizador no válido"; -$a->strings["Invalid email address."] = "Dirección de correo incorrecta"; -$a->strings["This account has not been configured for email. Request failed."] = "Esta cuenta no ha sido configurada para el correo. Fallo de solicitud."; -$a->strings["You have already introduced yourself here."] = "Ya te has presentado aquí."; -$a->strings["Apparently you are already friends with %s."] = "Al parecer, ya eres amigo de %s."; -$a->strings["Invalid profile URL."] = "Dirección de perfil no válida."; -$a->strings["Your introduction has been sent."] = "Tu presentación ha sido enviada."; -$a->strings["Remote subscription can't be done for your network. Please subscribe directly on your system."] = "La subscripción remota no se podrá hacer para tu red. Por favor contacta directamente desde tu sistema."; -$a->strings["Please login to confirm introduction."] = "Inicia sesión para confirmar la presentación."; -$a->strings["Incorrect identity currently logged in. Please login to this profile."] = "Sesión iniciada con la identificación incorrecta. Entra en este perfil."; -$a->strings["Confirm"] = "Confirmar"; -$a->strings["Hide this contact"] = "Ocultar este contacto"; -$a->strings["Welcome home %s."] = "Bienvenido a casa %s"; -$a->strings["Please confirm your introduction/connection request to %s."] = "Por favor, confirma tu solicitud de presentación/conexión con %s."; -$a->strings["Please enter your 'Identity Address' from one of the following supported communications networks:"] = "Por favor introduce tu dirección ID de una de las siguientes redes sociales soportadas:"; -$a->strings["If you are not yet a member of the free social web, follow this link to find a public Friendica site and join us today."] = "Si aun no eres miembro de la red social libre seguí este enlace para encontrara un sitio disponible de friendica y acompañanos hoy mismo"; -$a->strings["Friend/Connection Request"] = "Solicitud de Amistad/Conexión"; -$a->strings["Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca"] = "Ejemplos: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca"; -$a->strings["StatusNet/Federated Social Web"] = "StatusNet/Web Social Federada"; -$a->strings[" - please do not use this form. Instead, enter %s into your Diaspora search bar."] = "(En vez de usar este formulario, introduce %s en la barra de búsqueda de Diaspora."; -$a->strings["Image uploaded but image cropping failed."] = "Imagen recibida, pero ha fallado al recortarla."; -$a->strings["Image size reduction [%s] failed."] = "Ha fallado la reducción de las dimensiones de la imagen [%s]."; -$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Recarga la página o limpia la caché del navegador si la foto nueva no aparece inmediatamente."; -$a->strings["Unable to process image"] = "Imposible procesar la imagen"; -$a->strings["Upload File:"] = "Subir archivo:"; -$a->strings["Select a profile:"] = "Elige un perfil:"; -$a->strings["Upload"] = "Subir"; -$a->strings["or"] = "o"; -$a->strings["skip this step"] = "saltar este paso"; -$a->strings["select a photo from your photo albums"] = "elige una foto de tus álbumes"; -$a->strings["Crop Image"] = "Recortar imagen"; -$a->strings["Please adjust the image cropping for optimum viewing."] = "Por favor, ajusta el recorte de la imagen para optimizarla."; -$a->strings["Done Editing"] = "Editado"; -$a->strings["Image uploaded successfully."] = "Imagen subida con éxito."; -$a->strings["Registration successful. Please check your email for further instructions."] = "Te has registrado con éxito. Por favor, consulta tu correo para más información."; -$a->strings["Failed to send email message. Here your accout details:
      login: %s
      password: %s

      You can change your password after login."] = "Error al intentar de enviar mensaje de correo. Aquí los detalles de su cuenta:
      login: %s
      contraseña: %s

      Puede cambiar su contraseña después de ingresar al sitio."; -$a->strings["Registration successful."] = "Registro exitoso."; -$a->strings["Your registration can not be processed."] = "Tu registro no se puede procesar."; -$a->strings["Your registration is pending approval by the site owner."] = "Tu registro está pendiente de aprobación por el propietario del sitio."; -$a->strings["You may (optionally) fill in this form via OpenID by supplying your OpenID and clicking 'Register'."] = "Puedes (opcionalmente) rellenar este formulario a través de OpenID escribiendo tu OpenID y pulsando en \"Registrar\"."; -$a->strings["If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items."] = "Si no estás familiarizado con OpenID, por favor deja ese campo en blanco y rellena el resto de los elementos."; -$a->strings["Your OpenID (optional): "] = "Tu OpenID (opcional):"; -$a->strings["Include your profile in member directory?"] = "¿Incluir tu perfil en el directorio de miembros?"; -$a->strings["Note for the admin"] = "Nota para el administrador"; -$a->strings["Leave a message for the admin, why you want to join this node"] = "Deje un mensaje para el administrador sobre por qué quiere unirse a este nodo"; -$a->strings["Membership on this site is by invitation only."] = "Sitio solo accesible mediante invitación."; -$a->strings["Your invitation ID: "] = "ID de tu invitación: "; -$a->strings["Your Full Name (e.g. Joe Smith, real or real-looking): "] = "Nombre completo (ej. Joe Smith, real o real aparente):"; -$a->strings["Your Email Address: "] = "Tu dirección de correo: "; -$a->strings["New Password:"] = "Contraseña nueva:"; -$a->strings["Leave empty for an auto generated password."] = "Dejar vacío para autogenerar una contraseña"; -$a->strings["Confirm:"] = "Confirmar:"; -$a->strings["Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be 'nickname@\$sitename'."] = "Elije un apodo. Debe comenzar con una letra. Tu dirección de perfil en este sitio va a ser \"apodo@\$nombredelsitio\"."; -$a->strings["Choose a nickname: "] = "Escoge un apodo: "; -$a->strings["Import your profile to this friendica instance"] = "Importar tu perfil a esta instancia de friendica"; -$a->strings["Display"] = "Interfaz del usuario"; -$a->strings["Social Networks"] = "Redes sociales"; -$a->strings["Connected apps"] = "Aplicaciones conectadas"; -$a->strings["Remove account"] = "Eliminar cuenta"; -$a->strings["Missing some important data!"] = "¡Faltan algunos datos importantes!"; -$a->strings["Failed to connect with email account using the settings provided."] = "Error al conectar con la cuenta de correo mediante la configuración suministrada."; -$a->strings["Email settings updated."] = "Configuración de correo actualizada."; -$a->strings["Features updated"] = "Actualizaciones"; -$a->strings["Relocate message has been send to your contacts"] = "Mensaje de reubicación ha sido enviado a sus contactos."; -$a->strings["Empty passwords are not allowed. Password unchanged."] = "No se permiten contraseñas vacías. La contraseña no ha sido modificada."; -$a->strings["Wrong password."] = "Contraseña incorrecta"; -$a->strings["Password changed."] = "Contraseña modificada."; -$a->strings["Password update failed. Please try again."] = "La actualización de la contraseña ha fallado. Por favor, prueba otra vez."; -$a->strings[" Please use a shorter name."] = " Usa un nombre más corto."; -$a->strings[" Name too short."] = " Nombre demasiado corto."; -$a->strings["Wrong Password"] = "Contraseña incorrecta"; -$a->strings[" Not valid email."] = " Correo no válido."; -$a->strings[" Cannot change to that email."] = " No se puede usar ese correo."; -$a->strings["Private forum has no privacy permissions. Using default privacy group."] = "El foro privado no tiene permisos de privacidad. Usando el grupo de privacidad por defecto."; -$a->strings["Private forum has no privacy permissions and no default privacy group."] = "El foro privado no tiene permisos de privacidad ni grupo por defecto de privacidad."; -$a->strings["Settings updated."] = "Configuración actualizada."; -$a->strings["Add application"] = "Agregar aplicación"; -$a->strings["Consumer Key"] = "Clave del consumidor"; -$a->strings["Consumer Secret"] = "Secreto del consumidor"; -$a->strings["Redirect"] = "Redirigir"; -$a->strings["Icon url"] = "Dirección del ícono"; -$a->strings["You can't edit this application."] = "No puedes editar esta aplicación."; -$a->strings["Connected Apps"] = "Aplicaciones conectadas"; -$a->strings["Client key starts with"] = "Clave de cliente comienza por"; -$a->strings["No name"] = "Sin nombre"; -$a->strings["Remove authorization"] = "Suprimir la autorización"; -$a->strings["No Plugin settings configured"] = "No se ha configurado ningún módulo"; -$a->strings["Plugin Settings"] = "Configuración de los módulos"; -$a->strings["Additional Features"] = "Características adicionales"; -$a->strings["General Social Media Settings"] = "Configuración general de social media "; -$a->strings["Disable intelligent shortening"] = "Deshabilitar recorte inteligente de URL"; -$a->strings["Normally the system tries to find the best link to add to shortened posts. If this option is enabled then every shortened post will always point to the original friendica post."] = "Normalemente el sistema intenta de encontrara el mejor enlace para agregar a envíos recortados (twitter, OStatus). Si esta opción se encuentra habilitado, todo envío recortado apuntara siempre al tema original en friendica."; -$a->strings["Automatically follow any GNU Social (OStatus) followers/mentioners"] = "Automáticamente seguir cualquier GNUsocial (OStatus) seguidores o menciones "; -$a->strings["If you receive a message from an unknown OStatus user, this option decides what to do. If it is checked, a new contact will be created for every unknown user."] = "Cuando se recibe un mensaje de un perfil desconocido de OStatus, esta opción define que hacer.\nSi es habilitado, un nuevo contacto sera creado para cada usuario."; -$a->strings["Default group for OStatus contacts"] = "Grupo por defecto para contactos OStatus"; -$a->strings["Your legacy GNU Social account"] = "Tu cuenta GNU social conectada"; -$a->strings["If you enter your old GNU Social/Statusnet account name here (in the format user@domain.tld), your contacts will be added automatically. The field will be emptied when done."] = "Si agrega su viejo nombre de perfil GNUsocial/Statusnet aqui (en el formato de usuario@dominio.tld), sus contactos serán añadidos automáticamente.\nEl campo sera vaciado cuando termine el proceso. "; -$a->strings["Repair OStatus subscriptions"] = "Reparar subscripciones de OStatus"; -$a->strings["Built-in support for %s connectivity is %s"] = "El soporte integrado de conexión con %s está %s"; -$a->strings["enabled"] = "habilitado"; -$a->strings["disabled"] = "deshabilitado"; -$a->strings["GNU Social (OStatus)"] = "GNUsocial (OStatus)"; -$a->strings["Email access is disabled on this site."] = "El acceso por correo está deshabilitado en esta web."; -$a->strings["Email/Mailbox Setup"] = "Configuración del correo/buzón"; -$a->strings["If you wish to communicate with email contacts using this service (optional), please specify how to connect to your mailbox."] = "Si quieres comunicarte con tus contactos de correo usando este servicio (opcional), por favor, especifica cómo conectar con tu buzón."; -$a->strings["Last successful email check:"] = "Última comprobación del correo con éxito:"; -$a->strings["IMAP server name:"] = "Nombre del servidor IMAP:"; -$a->strings["IMAP port:"] = "Puerto IMAP:"; -$a->strings["Security:"] = "Seguridad:"; -$a->strings["None"] = "Ninguna"; -$a->strings["Email login name:"] = "Nombre de usuario:"; -$a->strings["Email password:"] = "Contraseña:"; -$a->strings["Reply-to address:"] = "Dirección de respuesta:"; -$a->strings["Send public posts to all email contacts:"] = "Enviar publicaciones públicas a todos los contactos de correo:"; -$a->strings["Action after import:"] = "Acción después de importar:"; -$a->strings["Move to folder"] = "Mover a un directorio"; -$a->strings["Move to folder:"] = "Mover al directorio:"; -$a->strings["Display Settings"] = "Configuración Tema/Visualización"; -$a->strings["Display Theme:"] = "Utilizar tema:"; -$a->strings["Mobile Theme:"] = "Tema móvil:"; -$a->strings["Suppress warning of insecure networks"] = "Suprimir el aviso de redes inseguras"; -$a->strings["Should the system suppress the warning that the current group contains members of networks that can't receive non public postings."] = "Debería el sistema suprimir el aviso de que el grupo actual contiene miembros de redes que no pueden recibir publicaciones públicas."; -$a->strings["Update browser every xx seconds"] = "Actualizar navegador cada xx segundos"; -$a->strings["Minimum of 10 seconds. Enter -1 to disable it."] = "Minimo 10 segundos. Ingrese -1 para deshabilitar."; -$a->strings["Number of items to display per page:"] = "Número de elementos a mostrar por página:"; -$a->strings["Maximum of 100 items"] = "Máximo 100 elementos"; -$a->strings["Number of items to display per page when viewed from mobile device:"] = "Cantidad de objetos a visualizar cuando se usa un movil"; -$a->strings["Don't show emoticons"] = "No mostrar emoticones"; -$a->strings["Calendar"] = "Calendario"; -$a->strings["Beginning of week:"] = "Principio de la semana:"; -$a->strings["Don't show notices"] = "No mostrara avisos"; -$a->strings["Infinite scroll"] = "pagina infinita (sroll)"; -$a->strings["Automatic updates only at the top of the network page"] = "Actualizaciones automaticas solo estando al principio de la pagina"; -$a->strings["Bandwith Saver Mode"] = "Modo de guardado de ancho de banda"; -$a->strings["When enabled, embedded content is not displayed on automatic updates, they only show on page reload."] = "Cuando está habilitado, el contenido incrustado no se muestra en las actualizaciones automáticas, sólo en las páginas recargadas."; -$a->strings["General Theme Settings"] = "Ajustes generales de tema"; -$a->strings["Custom Theme Settings"] = "Ajustes personalizados de tema"; -$a->strings["Content Settings"] = "Ajustes de contenido"; -$a->strings["Theme settings"] = "Configuración del Tema"; -$a->strings["Account Types"] = "Tipos de cuenta"; -$a->strings["Personal Page Subtypes"] = "Subtipos de página personal"; -$a->strings["Community Forum Subtypes"] = "Subtipos de foro de comunidad"; -$a->strings["Personal Page"] = "Página personal"; -$a->strings["This account is a regular personal profile"] = "Esta cuenta es un perfil personal corriente"; -$a->strings["Organisation Page"] = "Página de organización"; -$a->strings["This account is a profile for an organisation"] = "Esta cuenta es un perfil de una organización"; -$a->strings["News Page"] = "Página de noticias"; -$a->strings["This account is a news account/reflector"] = "Esta cuenta es una cuenta de noticias/reflectora"; -$a->strings["Community Forum"] = "Foro de la comunidad"; -$a->strings["This account is a community forum where people can discuss with each other"] = "Esta cuenta es un foro de comunidad donde la gente puede debatir con otros"; -$a->strings["Normal Account Page"] = "Página de cuenta normal"; -$a->strings["This account is a normal personal profile"] = "Esta cuenta es el perfil personal normal"; -$a->strings["Soapbox Page"] = "Página de tribuna"; -$a->strings["Automatically approve all connection/friend requests as read-only fans"] = "Acepta automáticamente todas las peticiones de conexión/amistad como seguidores de solo-lectura"; -$a->strings["Public Forum"] = "Foro público"; -$a->strings["Automatically approve all contact requests"] = "Aprovar autimáticamente todas las solicitudes de contacto"; -$a->strings["Automatic Friend Page"] = "Página de Amistad autómatica"; -$a->strings["Automatically approve all connection/friend requests as friends"] = "Aceptar automáticamente todas las solicitudes de conexión/amistad como amigos"; -$a->strings["Private Forum [Experimental]"] = "Foro privado [Experimental]"; -$a->strings["Private forum - approved members only"] = "Foro privado - solo miembros"; -$a->strings["OpenID:"] = "OpenID:"; -$a->strings["(Optional) Allow this OpenID to login to this account."] = "(Opcional) Permitir a este OpenID acceder a esta cuenta."; -$a->strings["Publish your default profile in your local site directory?"] = "¿Quieres publicar tu perfil predeterminado en el directorio local del sitio?"; -$a->strings["Publish your default profile in the global social directory?"] = "¿Quieres publicar tu perfil predeterminado en el directorio social de forma global?"; -$a->strings["Hide your contact/friend list from viewers of your default profile?"] = "¿Quieres ocultar tu lista de contactos/amigos en la vista de tu perfil predeterminado?"; -$a->strings["If enabled, posting public messages to Diaspora and other networks isn't possible."] = "Si habilitado, enviar temas públicos a a Diaspora* y otras redes no es posible. "; -$a->strings["Allow friends to post to your profile page?"] = "¿Permites que tus amigos publiquen en tu página de perfil?"; -$a->strings["Allow friends to tag your posts?"] = "¿Permites a los amigos etiquetar tus publicaciones?"; -$a->strings["Allow us to suggest you as a potential friend to new members?"] = "¿Nos permite recomendarte como amigo potencial a los nuevos miembros?"; -$a->strings["Permit unknown people to send you private mail?"] = "¿Permites que desconocidos te manden correos privados?"; -$a->strings["Profile is not published."] = "El perfil no está publicado."; -$a->strings["Your Identity Address is '%s' or '%s'."] = "Su dirección de identidad es '%s' o '%s'."; -$a->strings["Automatically expire posts after this many days:"] = "Las publicaciones expirarán automáticamente después de estos días:"; -$a->strings["If empty, posts will not expire. Expired posts will be deleted"] = "Si lo dejas vacío no expirarán nunca. Las publicaciones que hayan expirado se borrarán"; -$a->strings["Advanced expiration settings"] = "Configuración avanzada de expiración"; -$a->strings["Advanced Expiration"] = "Expiración avanzada"; -$a->strings["Expire posts:"] = "¿Expiran las publicaciones?"; -$a->strings["Expire personal notes:"] = "¿Expiran las notas personales?"; -$a->strings["Expire starred posts:"] = "¿Expiran los favoritos?"; -$a->strings["Expire photos:"] = "¿Expiran las fotografías?"; -$a->strings["Only expire posts by others:"] = "Solo expiran los mensajes de los demás:"; -$a->strings["Account Settings"] = "Configuración de la cuenta"; -$a->strings["Password Settings"] = "Configuración de la contraseña"; -$a->strings["Leave password fields blank unless changing"] = "Deja la contraseña en blanco si no quieres cambiarla"; -$a->strings["Current Password:"] = "Contraseña actual:"; -$a->strings["Your current password to confirm the changes"] = "Su contraseña actual para confirmar los cambios."; -$a->strings["Password:"] = "Contraseña:"; -$a->strings["Basic Settings"] = "Configuración básica"; -$a->strings["Email Address:"] = "Dirección de correo:"; -$a->strings["Your Timezone:"] = "Zona horaria:"; -$a->strings["Your Language:"] = "Tu idioma:"; -$a->strings["Set the language we use to show you friendica interface and to send you emails"] = "Selecciona el idioma que se usara para la interfaz del usuario y para el envío de correo."; -$a->strings["Default Post Location:"] = "Localización predeterminada:"; -$a->strings["Use Browser Location:"] = "Usar localización del navegador:"; -$a->strings["Security and Privacy Settings"] = "Configuración de seguridad y privacidad"; -$a->strings["Maximum Friend Requests/Day:"] = "Máximo número de peticiones de amistad por día:"; -$a->strings["(to prevent spam abuse)"] = "(para prevenir el abuso de spam)"; -$a->strings["Default Post Permissions"] = "Permisos por defecto para las publicaciones"; -$a->strings["(click to open/close)"] = "(pulsa para abrir/cerrar)"; -$a->strings["Default Private Post"] = "Publicación Privada por defecto"; -$a->strings["Default Public Post"] = "Publicación Pública por defecto"; -$a->strings["Default Permissions for New Posts"] = "Permisos por defecto para nuevas publicaciones"; -$a->strings["Maximum private messages per day from unknown people:"] = "Número máximo de mensajes diarios para desconocidos:"; -$a->strings["Notification Settings"] = "Configuración de notificaciones"; -$a->strings["By default post a status message when:"] = "Publicar en tu estado cuando:"; -$a->strings["accepting a friend request"] = "aceptes una solicitud de amistad"; -$a->strings["joining a forum/community"] = "te unas a un foro/comunidad"; -$a->strings["making an interesting profile change"] = "hagas un cambio interesante en tu perfil"; -$a->strings["Send a notification email when:"] = "Enviar notificación por correo cuando:"; -$a->strings["You receive an introduction"] = "Recibas una presentación"; -$a->strings["Your introductions are confirmed"] = "Tu presentación sea confirmada"; -$a->strings["Someone writes on your profile wall"] = "Alguien escriba en el muro de mi perfil"; -$a->strings["Someone writes a followup comment"] = "Algien escriba en un comentario que sigo"; -$a->strings["You receive a private message"] = "Recibas un mensaje privado"; -$a->strings["You receive a friend suggestion"] = "Recibas una sugerencia de amistad"; -$a->strings["You are tagged in a post"] = "Seas etiquetado en una publicación"; -$a->strings["You are poked/prodded/etc. in a post"] = "Te han tocado/empujado/etc. en una publicación"; -$a->strings["Activate desktop notifications"] = "Activar notificaciones en pantalla."; -$a->strings["Show desktop popup on new notifications"] = "Mostrar notificaciones emergentes en caso de nuevos eventos."; -$a->strings["Text-only notification emails"] = "Notificaciones e-mail de solo texto"; -$a->strings["Send text only notification emails, without the html part"] = "Enviar las notificaciones por correo con formato de solo texto sin html."; -$a->strings["Advanced Account/Page Type Settings"] = "Configuración avanzada de tipo de Cuenta/Página"; -$a->strings["Change the behaviour of this account for special situations"] = "Cambiar el comportamiento de esta cuenta para situaciones especiales"; -$a->strings["Relocate"] = "Relocalizar"; -$a->strings["If you have moved this profile from another server, and some of your contacts don't receive your updates, try pushing this button."] = "Si ha migrado este perfil desde otro servidor aquí y algunos contactos no reciben sus publicaciones intente recomunicar su ubicación a traves este botón. (Como para decir el botón de los botones)"; -$a->strings["Resend relocate message to contacts"] = "Reenviar mensaje de relocalización a los contactos"; -$a->strings["Number of daily wall messages for %s exceeded. Message failed."] = "Excedido el número máximo de mensajes para %s. El mensaje no se ha enviado."; -$a->strings["No recipient selected."] = "Ningún destinatario seleccionado"; -$a->strings["Unable to check your home location."] = "Imposible comprobar tu servidor de inicio."; -$a->strings["Message could not be sent."] = "El mensaje no ha podido ser enviado."; -$a->strings["Message collection failure."] = "Fallo en la recolección de mensajes."; -$a->strings["Message sent."] = "Mensaje enviado."; -$a->strings["No recipient."] = "Sin receptor."; -$a->strings["Send Private Message"] = "Enviar mensaje privado"; -$a->strings["If you wish for %s to respond, please check that the privacy settings on your site allow private mail from unknown senders."] = "Si quieres que %s te responda, asegúrate de que la configuración de privacidad permite enviar correo privado a desconocidos."; -$a->strings["To:"] = "Para:"; -$a->strings["Subject:"] = "Asunto:"; -$a->strings["link"] = "enlace"; -$a->strings["Authorize application connection"] = "Autorizar la conexión de la aplicación"; -$a->strings["Return to your app and insert this Securty Code:"] = "Regresa a tu aplicación e introduce este código de seguridad:"; -$a->strings["Please login to continue."] = "Inicia sesión para continuar."; -$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "¿Quieres autorizar a esta aplicación el acceso a tus mensajes y contactos, y/o crear nuevas publicaciones para ti?"; -$a->strings["Source (bbcode) text:"] = "Texto fuente (bbcode):"; -$a->strings["Source (Diaspora) text to convert to BBcode:"] = "Fuente (Diaspora) para pasar a BBcode:"; -$a->strings["Source input: "] = "Entrada: "; -$a->strings["bb2html (raw HTML): "] = "bb2html (raw HTML): "; -$a->strings["bb2html: "] = "bb2html: "; -$a->strings["bb2html2bb: "] = "bb2html2bb: "; -$a->strings["bb2md: "] = "bb2md: "; -$a->strings["bb2md2html: "] = "bb2md2html: "; -$a->strings["bb2dia2bb: "] = "bb2dia2bb: "; -$a->strings["bb2md2html2bb: "] = "bb2md2html2bb: "; -$a->strings["Source input (Diaspora format): "] = "Fuente (formato Diaspora): "; -$a->strings["diaspora2bb: "] = "diaspora2bb: "; -$a->strings["Unable to locate original post."] = "No se puede encontrar la publicación original."; -$a->strings["Empty post discarded."] = "Publicación vacía descartada."; -$a->strings["System error. Post not saved."] = "Error del sistema. Mensaje no guardado."; -$a->strings["This message was sent to you by %s, a member of the Friendica social network."] = "Este mensaje te lo ha enviado %s, miembro de la red social Friendica."; -$a->strings["You may visit them online at %s"] = "Los puedes visitar en línea en %s"; -$a->strings["Please contact the sender by replying to this post if you do not wish to receive these messages."] = "Por favor contacta con el remitente respondiendo a este mensaje si no deseas recibir estos mensajes."; -$a->strings["%s posted an update."] = "%s ha publicado una actualización."; -$a->strings["Subscribing to OStatus contacts"] = "Subscribir a los contactos de OStatus"; -$a->strings["No contact provided."] = "Sin suministro de datos de contacto."; -$a->strings["Couldn't fetch information for contact."] = "No se ha podido conseguir la información del contacto."; -$a->strings["Couldn't fetch friends for contact."] = "No se ha podido conseguir datos de amigos para contactar."; -$a->strings["success"] = "exito!"; -$a->strings["failed"] = "fallido!"; -$a->strings["%1\$s welcomes %2\$s"] = "%1\$s te da la bienvenida a %2\$s"; -$a->strings["Tips for New Members"] = "Consejos para nuevos miembros"; -$a->strings["Unable to locate contact information."] = "No se puede encontrar información del contacto."; -$a->strings["Do you really want to delete this message?"] = "¿Estás seguro de que quieres borrar este mensaje?"; -$a->strings["Message deleted."] = "Mensaje eliminado."; -$a->strings["Conversation removed."] = "Conversación eliminada."; -$a->strings["No messages."] = "No hay mensajes."; -$a->strings["Message not available."] = "Mensaje no disponibile."; -$a->strings["Delete message"] = "Borrar mensaje"; -$a->strings["Delete conversation"] = "Eliminar conversación"; -$a->strings["No secure communications available. You may be able to respond from the sender's profile page."] = "No hay comunicaciones seguras disponibles. Podrías responder desde la página de perfil del remitente. "; -$a->strings["Send Reply"] = "Enviar respuesta"; -$a->strings["Unknown sender - %s"] = "Remitente desconocido - %s"; -$a->strings["You and %s"] = "Tú y %s"; -$a->strings["%s and You"] = "%s y Tú"; -$a->strings["D, d M Y - g:i A"] = "D, d M Y - g:i A"; -$a->strings["%d message"] = array( - 0 => "%d mensaje", - 1 => "%d mensajes", -); -$a->strings["Manage Identities and/or Pages"] = "Administrar identidades y/o páginas"; -$a->strings["Toggle between different identities or community/group pages which share your account details or which you have been granted \"manage\" permissions"] = "Cambia entre diferentes identidades o páginas de Comunidad/Grupos que comparten los detalles de tu cuenta o sobre los que tienes permisos para administrar"; -$a->strings["Select an identity to manage: "] = "Selecciona una identidad a gestionar:"; +$a->strings["{0} wants to be your friend"] = "{0} quiere ser tu amigo"; +$a->strings["{0} sent you a message"] = "{0} te ha enviado un mensaje"; +$a->strings["{0} requested registration"] = "{0} solicitudes de registro"; +$a->strings["No contacts."] = "Ningún contacto."; $a->strings["via"] = "vía"; $a->strings["Repeat the image"] = "Repetir la imagen"; $a->strings["Will repeat your image to fill the background."] = "Repetirá su imagen para llenar el fondo"; @@ -2010,8 +2002,6 @@ $a->strings["Resize fill and-clip"] = "Reajustar llenado y clip"; $a->strings["Resize to fill and retain aspect ratio."] = "Reajustar para llenar y conservar proporción"; $a->strings["Resize best fit"] = "Reajustar al mejor tamaño"; $a->strings["Resize to best fit and retain aspect ratio."] = "Reajustar al mejor tamaño y conservar proporción"; -$a->strings["Guest"] = "Invitado"; -$a->strings["Visitor"] = "Visitante"; $a->strings["Default"] = "Por defecto"; $a->strings["Note: "] = "Nota:"; $a->strings["Check image permissions if all users are allowed to visit the image"] = "Compruebe los permisos de imagen si se les permite a todos los usuarios visitar la imagen"; @@ -2022,6 +2012,8 @@ $a->strings["Link color"] = "Color de enlace"; $a->strings["Set the background color"] = "Seleccionar el color de fondo"; $a->strings["Content background transparency"] = "Transparencia de contenido de fondo"; $a->strings["Set the background image"] = "Seleccionar la imagen de fondo"; +$a->strings["Guest"] = "Invitado"; +$a->strings["Visitor"] = "Visitante"; $a->strings["Alignment"] = "Alineación"; $a->strings["Left"] = "Izquierda"; $a->strings["Center"] = "Centrado"; @@ -2045,3 +2037,16 @@ $a->strings["darkzero"] = "darkzero"; $a->strings["comix"] = "comix"; $a->strings["slackr"] = "slackr"; $a->strings["Variations"] = "Variaciones"; +$a->strings["Delete this item?"] = "¿Eliminar este elemento?"; +$a->strings["show fewer"] = "ver menos"; +$a->strings["Update %s failed. See error logs."] = "Falló la actualización de %s. Mira los registros de errores."; +$a->strings["Create a New Account"] = "Crear una nueva cuenta"; +$a->strings["Password: "] = "Contraseña: "; +$a->strings["Remember me"] = "Recordarme"; +$a->strings["Or login using OpenID: "] = "O inicia sesión usando OpenID: "; +$a->strings["Forgot your password?"] = "¿Olvidaste la contraseña?"; +$a->strings["Website Terms of Service"] = "Términos de uso del sitio"; +$a->strings["terms of service"] = "Términos de uso"; +$a->strings["Website Privacy Policy"] = "Política de privacidad del sitio"; +$a->strings["privacy policy"] = "Política de privacidad"; +$a->strings["toggle mobile"] = "Cambiar a versión móvil"; diff --git a/view/php/default.php b/view/php/default.php index df9adbc392..e51b531b5a 100644 --- a/view/php/default.php +++ b/view/php/default.php @@ -2,7 +2,7 @@ <?php if(x($page,'title')) echo $page['title'] ?> - + diff --git a/view/php/minimal.php b/view/php/minimal.php index a131e3ec5e..e93aac1125 100644 --- a/view/php/minimal.php +++ b/view/php/minimal.php @@ -2,7 +2,7 @@ <?php if(x($page,'title')) echo $page['title'] ?> - + diff --git a/view/templates/head.tpl b/view/templates/head.tpl index cd6bc52a0f..0f1ec837f8 100644 --- a/view/templates/head.tpl +++ b/view/templates/head.tpl @@ -43,7 +43,7 @@ - + diff --git a/view/templates/notifications_attend_item.tpl b/view/templates/notifications_attend_item.tpl index 6add369cb4..adaa539d12 100644 --- a/view/templates/notifications_attend_item.tpl +++ b/view/templates/notifications_attend_item.tpl @@ -1,4 +1,4 @@ \ No newline at end of file diff --git a/view/templates/notifications_comments_item.tpl b/view/templates/notifications_comments_item.tpl index dfa15df280..2550806713 100644 --- a/view/templates/notifications_comments_item.tpl +++ b/view/templates/notifications_comments_item.tpl @@ -1,4 +1,4 @@ \ No newline at end of file diff --git a/view/templates/notifications_dislikes_item.tpl b/view/templates/notifications_dislikes_item.tpl index dfa15df280..2550806713 100644 --- a/view/templates/notifications_dislikes_item.tpl +++ b/view/templates/notifications_dislikes_item.tpl @@ -1,4 +1,4 @@ \ No newline at end of file diff --git a/view/templates/notifications_friends_item.tpl b/view/templates/notifications_friends_item.tpl index dfa15df280..2550806713 100644 --- a/view/templates/notifications_friends_item.tpl +++ b/view/templates/notifications_friends_item.tpl @@ -1,4 +1,4 @@ \ No newline at end of file diff --git a/view/templates/notifications_likes_item.tpl b/view/templates/notifications_likes_item.tpl index 6add369cb4..adaa539d12 100644 --- a/view/templates/notifications_likes_item.tpl +++ b/view/templates/notifications_likes_item.tpl @@ -1,4 +1,4 @@ \ No newline at end of file diff --git a/view/templates/notifications_network_item.tpl b/view/templates/notifications_network_item.tpl index 64395a83d0..a50b2cf2ad 100644 --- a/view/templates/notifications_network_item.tpl +++ b/view/templates/notifications_network_item.tpl @@ -1,4 +1,4 @@ diff --git a/view/templates/notifications_posts_item.tpl b/view/templates/notifications_posts_item.tpl index dfa15df280..2550806713 100644 --- a/view/templates/notifications_posts_item.tpl +++ b/view/templates/notifications_posts_item.tpl @@ -1,4 +1,4 @@ \ No newline at end of file diff --git a/view/templates/notify.tpl b/view/templates/notify.tpl index dfa15df280..2550806713 100644 --- a/view/templates/notify.tpl +++ b/view/templates/notify.tpl @@ -1,4 +1,4 @@ \ No newline at end of file diff --git a/view/templates/photo_edit.tpl b/view/templates/photo_edit.tpl index d435f7f325..714a97dce5 100644 --- a/view/templates/photo_edit.tpl +++ b/view/templates/photo_edit.tpl @@ -3,6 +3,7 @@
      + {{include file="field_input.tpl" field=$album}} {{include file="field_input.tpl" field=$caption}} diff --git a/view/theme/duepuntozero/config.php b/view/theme/duepuntozero/config.php index edf12c35fa..749a377fc6 100644 --- a/view/theme/duepuntozero/config.php +++ b/view/theme/duepuntozero/config.php @@ -6,60 +6,67 @@ function theme_content(&$a){ - if(!local_user()) - return; + if (!local_user()) { + return; + } - $colorset = get_pconfig( local_user(), 'duepuntozero', 'colorset'); - $user = true; + $colorset = get_pconfig( local_user(), 'duepuntozero', 'colorset'); + $user = true; - return clean_form($a, $colorset, $user); + return clean_form($a, $colorset, $user); } function theme_post(&$a){ - if(! local_user()) - return; - - if (isset($_POST['duepuntozero-settings-submit'])){ - set_pconfig(local_user(), 'duepuntozero', 'colorset', $_POST['duepuntozero_colorset']); - } + + if (! local_user()) { + return; + } + + if (isset($_POST['duepuntozero-settings-submit'])){ + set_pconfig(local_user(), 'duepuntozero', 'colorset', $_POST['duepuntozero_colorset']); + } } function theme_admin(&$a){ - $colorset = get_config( 'duepuntozero', 'colorset'); - $user = false; + $colorset = get_config( 'duepuntozero', 'colorset'); + $user = false; - return clean_form($a, $colorset, $user); + return clean_form($a, $colorset, $user); } function theme_admin_post(&$a){ - if (isset($_POST['duepuntozero-settings-submit'])){ - set_config('duepuntozero', 'colorset', $_POST['duepuntozero_colorset']); - } + if (isset($_POST['duepuntozero-settings-submit'])){ + set_config('duepuntozero', 'colorset', $_POST['duepuntozero_colorset']); + } } - +/// @TODO $a is no longer used function clean_form(&$a, &$colorset, $user){ - $colorset = array( - 'default'=>t('default'), - 'greenzero'=>t('greenzero'), - 'purplezero'=>t('purplezero'), - 'easterbunny'=>t('easterbunny'), - 'darkzero'=>t('darkzero'), - 'comix'=>t('comix'), - 'slackr'=>t('slackr'), - ); - if ($user) { - $color = get_pconfig(local_user(), 'duepuntozero', 'colorset'); - } else { - $color = get_config( 'duepuntozero', 'colorset'); - } - $t = get_markup_template("theme_settings.tpl" ); - $o .= replace_macros($t, array( - '$submit' => t('Submit'), - '$baseurl' => $a->get_baseurl(), - '$title' => t("Theme settings"), - '$colorset' => array('duepuntozero_colorset', t('Variations'), $color, '', $colorset), - )); - return $o; + $colorset = array( + 'default'=>t('default'), + 'greenzero'=>t('greenzero'), + 'purplezero'=>t('purplezero'), + 'easterbunny'=>t('easterbunny'), + 'darkzero'=>t('darkzero'), + 'comix'=>t('comix'), + 'slackr'=>t('slackr'), + ); + + if ($user) { + $color = get_pconfig(local_user(), 'duepuntozero', 'colorset'); + } else { + $color = get_config( 'duepuntozero', 'colorset'); + } + + $t = get_markup_template("theme_settings.tpl" ); + /// @TODO No need for adding string here, $o is not defined + $o .= replace_macros($t, array( + '$submit' => t('Submit'), + '$baseurl' => App::get_baseurl(), + '$title'=> t("Theme settings"), + '$colorset' => array('duepuntozero_colorset', t('Variations'), $color, '', $colorset), + )); + + return $o; } diff --git a/view/theme/frio/config.php b/view/theme/frio/config.php index 2e896d45f6..edd16bd71f 100644 --- a/view/theme/frio/config.php +++ b/view/theme/frio/config.php @@ -2,7 +2,9 @@ require_once('view/theme/frio/php/Image.php'); function theme_content(&$a) { - if(!local_user()) { return;} + if (!local_user()) { + return; + } $arr = array(); $arr["schema"] = get_pconfig(local_user(),'frio', 'schema'); @@ -18,7 +20,10 @@ function theme_content(&$a) { } function theme_post(&$a) { - if(!local_user()) { return;} + if (!local_user()) { + return; + } + if (isset($_POST['frio-settings-submit'])) { set_pconfig(local_user(), 'frio', 'schema', $_POST["frio_schema"]); set_pconfig(local_user(), 'frio', 'nav_bg', $_POST["frio_nav_bg"]); @@ -57,7 +62,7 @@ function frio_form(&$a, $arr) { $t = get_markup_template('theme_settings.tpl'); $o .= replace_macros($t, array( '$submit' => t('Submit'), - '$baseurl' => $a->get_baseurl(), + '$baseurl' => App::get_baseurl(), '$title' => t("Theme settings"), '$schema' => array('frio_schema', t("Select scheme"), $arr["schema"], '', $scheme_choices), '$nav_bg' => array_key_exists("nav_bg", $disable) ? "" : array('frio_nav_bg', t('Navigation bar background color'), $arr['nav_bg']), diff --git a/view/theme/frio/css/style.css b/view/theme/frio/css/style.css index 91b6219f17..74eb25d08b 100644 --- a/view/theme/frio/css/style.css +++ b/view/theme/frio/css/style.css @@ -169,6 +169,10 @@ a#item-delete-selected { line-height: 1.5; border-radius: 3px; } +.btn-xs { + padding: 1px 5px; + font-size: 12px; +} .btn-primary { background: $nav_bg; color: $btn_primary_color !important; @@ -191,7 +195,6 @@ a#item-delete-selected { } .btn-link { -/* color: #6fdbe8;*/ color: $link_color; } .btn-link:focus, .btn-link:hover { @@ -220,20 +223,49 @@ a#item-delete-selected { }*/ .btn-main { - /*background: #6fdbe8;*/ background: $link_color; color: #fff!important; } .btn-main:hover, .btn-main:focus { - /*background: #59d6e4!important;*/ background: $link_hover_color !important; text-decoration: none; } .btn-main:active, .btn-main.active { outline: 0; - /*background: #59d6e4;*/ background: $link_hover_color; } +.toggle.btn { + border: 1px solid transparent; +} +.toggle.btn-xs { + min-width: 45px; +} +.toggle.off { + border-color: #ccc; +} +.toggle .toggle-off, +.toggle .toggle-off:hover { + color: #ccc; + background-color: #eee; + box-shadow: none; +} +.toggle.off .toggle-handle { + background-color: #eee; +} +.toggle-handle { + background-color: #fff; + border-width: 0 1px; + border: 1px solid transparent; + border-color: #ccc; +} +.field.yesno:hover .toggle { + border-color: $link_hover_color; + transition: all 0.25s ease-in-out; +} +.field.yesno:hover .toggle-handle { + background-color: #fff; + transition: all 0.25s ease-in-out; +} .form-control-sm, .input-group-sm>.form-control, .input-group-sm>.input-group-addon, .input-group-sm>.input-group-btn>.btn { padding: .275rem .75rem; @@ -270,6 +302,7 @@ a#item-delete-selected { vertical-align: baseline; background-color: $link_color; border-radius: 4px; + z-index: 1; } aside .badge { opacity: 0.7; @@ -1882,6 +1915,9 @@ ul.dropdown-menu li:hover { -moz-box-shadow: 0 0 3px #dadada; } +.section-title-wrapper { + overflow: hidden; +} /* Profile-page */ #profile-content-standard, #profile-content-advanced { @@ -2208,7 +2244,7 @@ ul li:hover .contact-wrapper a.contact-action-link:hover { margin-left: 20px; } -/* Notifications */ +/* Intro Notifications */ ul.notif-network-list { margin-left: -15px; margin-right: -15px; @@ -2217,17 +2253,12 @@ ul.notif-network-list > li { padding-left: 15px; padding-right: 15px; } -ul.notif-network-list li.unseen { - border-left: 3px solid #f3fcfd; - background-color: #f3fcfd; -} .intro-wrapper.media { overflow: visible; word-wrap: break-word; margin-top: 0; } -.intro-photo-wrapper img.intro-photo, -.notif-item img.notif-image { +.intro-photo-wrapper img.intro-photo { height:80px; width: 80px; border-radius: 4px; @@ -2280,6 +2311,26 @@ ul.notif-network-list > li:hover .intro-action-buttons { margin-top: 5px } +/* Notifications Page */ +ul.notif-network-list li.unseen { + background-color: #f3fcfd; +} +.notif-item img.notif-image { + height: 48px; + width: 48px; + border-radius: 4px; +} +.notif-item .notif-desc-wrapper { + height: 48px; +} +.notif-item .notif-desc-wrapper a { + height: 100%; + display: block; + color: #555; + font-size: 13px; + font-weight: 600; +} + /* Search Page */ /* This is a little bit hacky. Since the search page is used for diferent diff --git a/view/theme/frio/frameworks/bootstrap-toggle/Gruntfile.js b/view/theme/frio/frameworks/bootstrap-toggle/Gruntfile.js new file mode 100644 index 0000000000..9ac6fc5212 --- /dev/null +++ b/view/theme/frio/frameworks/bootstrap-toggle/Gruntfile.js @@ -0,0 +1,37 @@ +module.exports = function(grunt) { + 'use strict'; + + grunt.initConfig({ + clean: ['dist'], + uglify: { + options: { + preserveComments: 'some', + sourceMap: true + }, + build: { + expand: true, + cwd: 'js', + src: ['**/*.js', ['!**/*.min.js']], + dest: 'js', + ext: '.min.js', + } + }, + cssmin: { + options: { + keepBreaks: true + }, + build: { + expand: true, + cwd: 'css', + src: ['**/*.css', ['!**/*.min.css']], + dest: 'css', + ext: '.min.css', + } + } + }); + grunt.loadNpmTasks('grunt-contrib-clean'); + grunt.loadNpmTasks('grunt-contrib-uglify'); + grunt.loadNpmTasks('grunt-contrib-cssmin'); + grunt.registerTask('default', ['clean', 'uglify', 'cssmin']); + +}; \ No newline at end of file diff --git a/view/theme/frio/frameworks/bootstrap-toggle/LICENSE b/view/theme/frio/frameworks/bootstrap-toggle/LICENSE new file mode 100644 index 0000000000..88bb5abfce --- /dev/null +++ b/view/theme/frio/frameworks/bootstrap-toggle/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2011-2014 Min Hur, The New York Times Company + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/view/theme/frio/frameworks/bootstrap-toggle/README.md b/view/theme/frio/frameworks/bootstrap-toggle/README.md new file mode 100644 index 0000000000..301ff034fb --- /dev/null +++ b/view/theme/frio/frameworks/bootstrap-toggle/README.md @@ -0,0 +1,175 @@ +# Bootstrap Toggle +Bootstrap Toggle is a highly flexible Bootstrap plugin that converts checkboxes into toggles. + +Visit http://www.bootstraptoggle.com for demos. + +## Getting Started + +### Installation +You can [download](https://github.com/minhur/bootstrap-toggle/archive/master.zip) the latest version of Bootstrap Toggle or use CDN to load the library. + +`Warning` If you are using Bootstrap v2.3.2, use `bootstrap2-toggle.min.js` and `bootstrap2-toggle.min.css` instead. + +```html + + +``` + +### Bower Install +```bash +bower install bootstrap-toggle +``` + +## Usage + +### Basic example +Simply add `data-toggle="toggle"` to convert checkboxes into toggles. + +```html + +``` + +### Stacked checkboxes +Refer to Bootstrap Form Controls documentation to create stacked checkboxes. Simply add `data-toggle="toggle"` to convert checkboxes into toggles. + +```html +
      + +
      +
      + +
      +``` + +### Inline Checkboxes +Refer to Bootstrap Form Controls documentation to create inline checkboxes. Simply add `data-toggle="toggle"` to a convert checkboxes into toggles. + +```html + + + +``` + +## API + +### Initialize by JavaScript +Initialize toggles with id `toggle-one` with a single line of JavaScript. + +```html + + +``` + +### Options +Options can be passed via data attributes or JavaScript. For data attributes, append the option name to `data-`, as in `data-on="Enabled"`. + +```html + + + +``` + +Name|Type|Default|Description| +---|---|---|--- +on|string/html|"On"|Text of the on toggle +off|string/html|"Off"|Text of the off toggle +size|string|"normal"|Size of the toggle. Possible values are `large`, `normal`, `small`, `mini`. +onstyle|string|"primary"|Style of the on toggle. Possible values are `default`, `primary`, `success`, `info`, `warning`, `danger` +offstyle|string|"default"|Style of the off toggle. Possible values are `default`, `primary`, `success`, `info`, `warning`, `danger` +style|string| |Appends the value to the class attribute of the toggle. This can be used to apply custom styles. Refer to Custom Styles for reference. +width|integer|*null*|Sets the width of the toggle. if set to *null*, width will be calculated. +height|integer|*null*|Sets the height of the toggle. if set to *null*, height will be calculated. + +### Methods +Methods can be used to control toggles directly. + +```html + +``` + +Method|Example|Description +---|---|--- +initialize|$('#toggle-demo').bootstrapToggle()|Initializes the toggle plugin with options +destroy|$('#toggle-demo').bootstrapToggle('destroy')|Destroys the toggle +on|$('#toggle-demo').bootstrapToggle('on')|Sets the toggle to 'On' state +off|$('#toggle-demo').bootstrapToggle('off')|Sets the toggle to 'Off' state +toggle|$('#toggle-demo').bootstrapToggle('toggle')|Toggles the state of the toggle +enable|$('#toggle-demo').bootstrapToggle('enable')|Enables the toggle +disable|$('#toggle-demo').bootstrapToggle('disable')|Disables the toggle + +## Events + +### Event Propagation +Note All events are propagated to and from input element to the toggle. + +You should listen to events from the `` directly rather than look for custom events. + +```html + +
      + +``` + +### API vs Input +This also means that using the API or Input to trigger events will work both ways. + +```html + + + + + + +``` + +### Integration + +#### [KnockoutJS](http://knockoutjs.com) + +A binding for knockout is available here: [aAXEe/knockout-bootstrap-toggle](https://github.com/aAXEe/knockout-bootstrap-toggle) + +## Demos + +Visit http://www.bootstraptoggle.com for demos. diff --git a/view/theme/frio/frameworks/bootstrap-toggle/bower.json b/view/theme/frio/frameworks/bootstrap-toggle/bower.json new file mode 100644 index 0000000000..9d941dff9f --- /dev/null +++ b/view/theme/frio/frameworks/bootstrap-toggle/bower.json @@ -0,0 +1,32 @@ +{ + "name": "bootstrap-toggle", + "description": "Bootstrap Toggle is a highly flexible Bootstrap plugin that converts checkboxes into toggles", + "version": "2.2.1", + "keywords": [ + "bootstrap", + "toggle", + "bootstrap-toggle", + "switch", + "bootstrap-switch" + ], + "homepage": "http://www.bootstraptoggle.com", + "repository": { + "type": "git", + "url": "https://github.com/minhur/bootstrap-toggle.git" + }, + "license": "MIT", + "authors": [ + "Min Hur " + ], + "main": [ + "./js/bootstrap-toggle.min.js", + "./css/bootstrap-toggle.min.css" + ], + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests" + ] +} diff --git a/view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap-toggle.css b/view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap-toggle.css new file mode 100644 index 0000000000..057d08b36f --- /dev/null +++ b/view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap-toggle.css @@ -0,0 +1,83 @@ +/*! ======================================================================== + * Bootstrap Toggle: bootstrap-toggle.css v2.2.0 + * http://www.bootstraptoggle.com + * ======================================================================== + * Copyright 2014 Min Hur, The New York Times Company + * Licensed under MIT + * ======================================================================== */ + + +.checkbox label .toggle, +.checkbox-inline .toggle { + margin-left: -20px; + margin-right: 5px; +} + +.toggle { + position: relative; + overflow: hidden; +} +.toggle input[type="checkbox"] { + display: none; +} +.toggle-group { + position: absolute; + width: 200%; + top: 0; + bottom: 0; + left: 0; + transition: left 0.35s; + -webkit-transition: left 0.35s; + -moz-user-select: none; + -webkit-user-select: none; +} +.toggle.off .toggle-group { + left: -100%; +} +.toggle-on { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 50%; + margin: 0; + border: 0; + border-radius: 0; +} +.toggle-off { + position: absolute; + top: 0; + bottom: 0; + left: 50%; + right: 0; + margin: 0; + border: 0; + border-radius: 0; +} +.toggle-handle { + position: relative; + margin: 0 auto; + padding-top: 0px; + padding-bottom: 0px; + height: 100%; + width: 0px; + border-width: 0 1px; +} + +.toggle.btn { min-width: 59px; min-height: 34px; } +.toggle-on.btn { padding-right: 24px; } +.toggle-off.btn { padding-left: 24px; } + +.toggle.btn-lg { min-width: 79px; min-height: 45px; } +.toggle-on.btn-lg { padding-right: 31px; } +.toggle-off.btn-lg { padding-left: 31px; } +.toggle-handle.btn-lg { width: 40px; } + +.toggle.btn-sm { min-width: 50px; min-height: 30px;} +.toggle-on.btn-sm { padding-right: 20px; } +.toggle-off.btn-sm { padding-left: 20px; } + +.toggle.btn-xs { min-width: 35px; min-height: 22px;} +.toggle-on.btn-xs { padding-right: 12px; } +.toggle-off.btn-xs { padding-left: 12px; } + diff --git a/view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap-toggle.min.css b/view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap-toggle.min.css new file mode 100644 index 0000000000..0d42ed09cd --- /dev/null +++ b/view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap-toggle.min.css @@ -0,0 +1,28 @@ +/*! ======================================================================== + * Bootstrap Toggle: bootstrap-toggle.css v2.2.0 + * http://www.bootstraptoggle.com + * ======================================================================== + * Copyright 2014 Min Hur, The New York Times Company + * Licensed under MIT + * ======================================================================== */ +.checkbox label .toggle,.checkbox-inline .toggle{margin-left:-20px;margin-right:5px} +.toggle{position:relative;overflow:hidden} +.toggle input[type=checkbox]{display:none} +.toggle-group{position:absolute;width:200%;top:0;bottom:0;left:0;transition:left .35s;-webkit-transition:left .35s;-moz-user-select:none;-webkit-user-select:none} +.toggle.off .toggle-group{left:-100%} +.toggle-on{position:absolute;top:0;bottom:0;left:0;right:50%;margin:0;border:0;border-radius:0} +.toggle-off{position:absolute;top:0;bottom:0;left:50%;right:0;margin:0;border:0;border-radius:0} +.toggle-handle{position:relative;margin:0 auto;padding-top:0;padding-bottom:0;height:100%;width:0;border-width:0 1px} +.toggle.btn{min-width:59px;min-height:34px} +.toggle-on.btn{padding-right:24px} +.toggle-off.btn{padding-left:24px} +.toggle.btn-lg{min-width:79px;min-height:45px} +.toggle-on.btn-lg{padding-right:31px} +.toggle-off.btn-lg{padding-left:31px} +.toggle-handle.btn-lg{width:40px} +.toggle.btn-sm{min-width:50px;min-height:30px} +.toggle-on.btn-sm{padding-right:20px} +.toggle-off.btn-sm{padding-left:20px} +.toggle.btn-xs{min-width:35px;min-height:22px} +.toggle-on.btn-xs{padding-right:12px} +.toggle-off.btn-xs{padding-left:12px} \ No newline at end of file diff --git a/view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap2-toggle.css b/view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap2-toggle.css new file mode 100644 index 0000000000..3f48927ed6 --- /dev/null +++ b/view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap2-toggle.css @@ -0,0 +1,85 @@ +/*! ======================================================================== + * Bootstrap Toggle: bootstrap2-toggle.css v2.2.0 + * http://www.bootstraptoggle.com + * ======================================================================== + * Copyright 2014 Min Hur, The New York Times Company + * Licensed under MIT + * ======================================================================== */ + + +label.checkbox .toggle, +label.checkbox.inline .toggle { + margin-left: -20px; + margin-right: 5px; +} +.toggle { + min-width: 40px; + height: 20px; + position: relative; + overflow: hidden; +} +.toggle input[type="checkbox"] { + display: none; +} +.toggle-group { + position: absolute; + width: 200%; + top: 0; + bottom: 0; + left: 0; + transition: left 0.35s; + -webkit-transition: left 0.35s; + -moz-user-select: none; + -webkit-user-select: none; +} +.toggle.off .toggle-group { + left: -100%; +} +.toggle-on { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 50%; + margin: 0; + border: 0; + border-radius: 0; +} +.toggle-off { + position: absolute; + top: 0; + bottom: 0; + left: 50%; + right: 0; + margin: 0; + border: 0; + border-radius: 0; +} +.toggle-handle { + position: relative; + margin: 0 auto; + padding-top: 0px; + padding-bottom: 0px; + height: 100%; + width: 0px; + border-width: 0 1px; +} +.toggle-handle.btn-mini { + top: -1px; +} +.toggle.btn { min-width: 30px; } +.toggle-on.btn { padding-right: 24px; } +.toggle-off.btn { padding-left: 24px; } + +.toggle.btn-large { min-width: 40px; } +.toggle-on.btn-large { padding-right: 35px; } +.toggle-off.btn-large { padding-left: 35px; } + +.toggle.btn-small { min-width: 25px; } +.toggle-on.btn-small { padding-right: 20px; } +.toggle-off.btn-small { padding-left: 20px; } + +.toggle.btn-mini { min-width: 20px; } +.toggle-on.btn-mini { padding-right: 12px; } +.toggle-off.btn-mini { padding-left: 12px; } + diff --git a/view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap2-toggle.min.css b/view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap2-toggle.min.css new file mode 100644 index 0000000000..1509c5730c --- /dev/null +++ b/view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap2-toggle.min.css @@ -0,0 +1,28 @@ +/*! ======================================================================== + * Bootstrap Toggle: bootstrap2-toggle.css v2.2.0 + * http://www.bootstraptoggle.com + * ======================================================================== + * Copyright 2014 Min Hur, The New York Times Company + * Licensed under MIT + * ======================================================================== */ +label.checkbox .toggle,label.checkbox.inline .toggle{margin-left:-20px;margin-right:5px} +.toggle{min-width:40px;height:20px;position:relative;overflow:hidden} +.toggle input[type=checkbox]{display:none} +.toggle-group{position:absolute;width:200%;top:0;bottom:0;left:0;transition:left .35s;-webkit-transition:left .35s;-moz-user-select:none;-webkit-user-select:none} +.toggle.off .toggle-group{left:-100%} +.toggle-on{position:absolute;top:0;bottom:0;left:0;right:50%;margin:0;border:0;border-radius:0} +.toggle-off{position:absolute;top:0;bottom:0;left:50%;right:0;margin:0;border:0;border-radius:0} +.toggle-handle{position:relative;margin:0 auto;padding-top:0;padding-bottom:0;height:100%;width:0;border-width:0 1px} +.toggle-handle.btn-mini{top:-1px} +.toggle.btn{min-width:30px} +.toggle-on.btn{padding-right:24px} +.toggle-off.btn{padding-left:24px} +.toggle.btn-large{min-width:40px} +.toggle-on.btn-large{padding-right:35px} +.toggle-off.btn-large{padding-left:35px} +.toggle.btn-small{min-width:25px} +.toggle-on.btn-small{padding-right:20px} +.toggle-off.btn-small{padding-left:20px} +.toggle.btn-mini{min-width:20px} +.toggle-on.btn-mini{padding-right:12px} +.toggle-off.btn-mini{padding-left:12px} \ No newline at end of file diff --git a/view/theme/frio/frameworks/bootstrap-toggle/js/bootstrap-toggle.js b/view/theme/frio/frameworks/bootstrap-toggle/js/bootstrap-toggle.js new file mode 100644 index 0000000000..533914edd2 --- /dev/null +++ b/view/theme/frio/frameworks/bootstrap-toggle/js/bootstrap-toggle.js @@ -0,0 +1,180 @@ +/*! ======================================================================== + * Bootstrap Toggle: bootstrap-toggle.js v2.2.0 + * http://www.bootstraptoggle.com + * ======================================================================== + * Copyright 2014 Min Hur, The New York Times Company + * Licensed under MIT + * ======================================================================== */ + + + +function ($) { + 'use strict'; + + // TOGGLE PUBLIC CLASS DEFINITION + // ============================== + + var Toggle = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, this.defaults(), options) + this.render() + } + + Toggle.VERSION = '2.2.0' + + Toggle.DEFAULTS = { + on: 'On', + off: 'Off', + onstyle: 'primary', + offstyle: 'default', + size: 'normal', + style: '', + width: null, + height: null + } + + Toggle.prototype.defaults = function() { + return { + on: this.$element.attr('data-on') || Toggle.DEFAULTS.on, + off: this.$element.attr('data-off') || Toggle.DEFAULTS.off, + onstyle: this.$element.attr('data-onstyle') || Toggle.DEFAULTS.onstyle, + offstyle: this.$element.attr('data-offstyle') || Toggle.DEFAULTS.offstyle, + size: this.$element.attr('data-size') || Toggle.DEFAULTS.size, + style: this.$element.attr('data-style') || Toggle.DEFAULTS.style, + width: this.$element.attr('data-width') || Toggle.DEFAULTS.width, + height: this.$element.attr('data-height') || Toggle.DEFAULTS.height + } + } + + Toggle.prototype.render = function () { + this._onstyle = 'btn-' + this.options.onstyle + this._offstyle = 'btn-' + this.options.offstyle + var size = this.options.size === 'large' ? 'btn-lg' + : this.options.size === 'small' ? 'btn-sm' + : this.options.size === 'mini' ? 'btn-xs' + : '' + var $toggleOn = $('