diff options
51 files changed, 3139 insertions, 3337 deletions
diff --git a/Zotlabs/Zot/Auth.php b/Zotlabs/Zot/Auth.php new file mode 100644 index 000000000..fed253923 --- /dev/null +++ b/Zotlabs/Zot/Auth.php @@ -0,0 +1,345 @@ +<?php + +namespace Zotlabs\Zot; + +class Auth { + + protected $test; + protected $test_results; + protected $debug_msg; + + protected $address; + protected $desturl; + protected $sec; + protected $version; + protected $delegate; + protected $success; + protected $delegate_success; + + protected $remote; + protected $remote_service_class; + protected $remote_level; + protected $remote_hub; + protected $dnt; + + function __construct($req) { + + + $this->test = ((array_key_exists('test',$req)) ? intval($req['test']) : 0); + $this->test_results = array('success' => false); + $this->debug_msg = ''; + + $this->success = false; + $this->address = $req['auth']; + $this->desturl = $req['dest']; + $this->sec = $req['sec']; + $this->version = $req['version']; + $this->delegate = $req['delegate']; + + $c = get_sys_channel(); + if(! $c) { + logger('unable to obtain response (sys) channel'); + $this->Debug('no local channels found.'); + $this->Finalise(); + } + + $x = $this->GetHublocs($this->address); + + if($x) { + foreach($x as $xx) { + if($this->Verify($c,$xx)) + break; + } + } + + /** + * @FIXME we really want to save the return_url in the session before we + * visit rmagic. This does however prevent a recursion if you visit + * rmagic directly, as it would otherwise send you back here again. + * But z_root() probably isn't where you really want to go. + */ + + if(strstr($this->desturl,z_root() . '/rmagic')) + goaway(z_root()); + + $this->Finalise(); + + } + + function GetHublocs($address) { + + // Try and find a hubloc for the person attempting to auth. + // Since we're matching by address, we have to return all entries + // some of which may be from re-installed hubs; and we'll need to + // try each sequentially to see if one can pass the test + + $x = q("select * from hubloc left join xchan on xchan_hash = hubloc_hash + where hubloc_addr = '%s' order by hubloc_id desc", + dbesc($address) + ); + + if(! $x) { + // finger them if they can't be found. + $ret = zot_finger($address, null); + if ($ret['success']) { + $j = json_decode($ret['body'], true); + if($j) + import_xchan($j); + $x = q("select * from hubloc left join xchan on xchan_hash = hubloc_hash + where hubloc_addr = '%s' order by hubloc_id desc", + dbesc($address) + ); + } + } + if(! $x) { + logger('mod_zot: auth: unable to finger ' . $address); + $this->Debug('no hubloc found for ' . $address . ' and probing failed.'); + $this->Finalise(); + } + + return $x; + } + + + function Verify($channel,$hubloc) { + + logger('auth request received from ' . $hubloc['hubloc_addr'] ); + + $this->remote = remote_channel(); + $this->remote_service_class = ''; + $this->remote_level = 0; + $this->remote_hub = $hubloc['hubloc_url']; + $this->dnt = 0; + + // check credentials and access + + // If they are already authenticated and haven't changed credentials, + // we can save an expensive network round trip and improve performance. + + // Also check that they are coming from the same site as they authenticated with originally. + + $already_authed = (((remote_channel()) && ($hubloc['hubloc_hash'] == remote_channel()) + && ($hubloc['hubloc_url'] === $_SESSION['remote_hub'])) ? true : false); + + if($this->delegate && $this->delegate !== $_SESSION['delegate_channel']) + $already_authed = false; + + if($already_authed) + return true; + + if(local_channel()) { + + // tell them to logout if they're logged in locally as anything but the target remote account + // in which case just shut up because they don't need to be doing this at all. + + if (get_app()->channel['channel_hash'] == $hubloc['xchan_hash']) { + return true; + } + else { + logger('already authenticated locally as somebody else.'); + notice( t('Remote authentication blocked. You are logged into this site locally. Please logout and retry.') . EOL); + if($this->test) { + $this->Debug('already logged in locally with a conflicting identity.'); + return false; + } + } + return false; + } + + // Auth packets MUST use ultra top-secret hush-hush mode - e.g. the entire packet is encrypted using the + // site private key + // The actual channel sending the packet ($c[0]) is not important, but this provides a + // generic zot packet with a sender which can be verified + + $p = zot_build_packet($channel,$type = 'auth_check', + array(array('guid' => $hubloc['hubloc_guid'],'guid_sig' => $hubloc['hubloc_guid_sig'])), + $hubloc['hubloc_sitekey'], $this->sec); + + $this->Debug('auth check packet created using sitekey ' . $hubloc['hubloc_sitekey']); + $this->Debug('packet contents: ' . $p); + + $result = zot_zot($hubloc['hubloc_callback'],$p); + if(! $result['success']) { + logger('auth_check callback failed.'); + if($this->test) + $this->Debug('auth check request to your site returned .' . print_r($result, true)); + return false; + } + + $j = json_decode($result['body'], true); + if(! $j) { + logger('auth_check json data malformed.'); + if($this->test) + $this->Debug('json malformed: ' . $result['body']); + return false; + } + + $this->Debug('auth check request returned .' . print_r($j, true)); + + if(! $j['success']) + return false; + + // legit response, but we do need to check that this wasn't answered by a man-in-middle + + if (! rsa_verify($this->sec . $hubloc['xchan_hash'],base64url_decode($j['confirm']),$hubloc['xchan_pubkey'])) { + logger('final confirmation failed.'); + if($this->test) + $this->Debug('final confirmation failed. ' . $sec . print_r($j,true) . print_r($hubloc,true)); + return false; + } + + if (array_key_exists('service_class',$j)) + $this->remote_service_class = $j['service_class']; + if (array_key_exists('level',$j)) + $this->remote_level = $j['level']; + if (array_key_exists('DNT',$j)) + $this->dnt = $j['DNT']; + + + // log them in + + if ($this->test) { + // testing only - return the success result + $this->test_results['success'] = true; + $this->Debug('Authentication Success!'); + $this->Finalise(); + } + + $_SESSION['authenticated'] = 1; + + // check for delegation and if all is well, log them in locally with delegation restrictions + + $this->delegate_success = false; + + if($this->delegate) { + $r = q("select * from channel left join xchan on channel_hash = xchan_hash where xchan_addr = '%s' limit 1", + dbesc($this->delegate) + ); + if ($r && intval($r[0]['channel_id'])) { + $allowed = perm_is_allowed($r[0]['channel_id'],$hubloc['xchan_hash'],'delegate'); + if($allowed) { + $_SESSION['delegate_channel'] = $r[0]['channel_id']; + $_SESSION['delegate'] = $hubloc['xchan_hash']; + $_SESSION['account_id'] = intval($r[0]['channel_account_id']); + require_once('include/security.php'); + // this will set the local_channel authentication in the session + change_channel($r[0]['channel_id']); + $this->delegate_success = true; + } + } + } + + if (! $this->delegate_success) { + // normal visitor (remote_channel) login session credentials + $_SESSION['visitor_id'] = $hubloc['xchan_hash']; + $_SESSION['my_url'] = $hubloc['xchan_url']; + $_SESSION['my_address'] = $this->address; + $_SESSION['remote_service_class'] = $this->remote_service_class; + $_SESSION['remote_level'] = $this->remote_level; + $_SESSION['remote_hub'] = $this->remote_hub; + $_SESSION['DNT'] = $this->dnt; + } + + $arr = array('xchan' => $hubloc, 'url' => $this->desturl, 'session' => $_SESSION); + call_hooks('magic_auth_success',$arr); + get_app()->set_observer($hubloc); + require_once('include/security.php'); + get_app()->set_groups(init_groups_visitor($_SESSION['visitor_id'])); + info(sprintf( t('Welcome %s. Remote authentication successful.'),$hubloc['xchan_name'])); + logger('mod_zot: auth success from ' . $hubloc['xchan_addr']); + $this->success = true; + return true; + } + + function Debug($msg) { + $this->debug_msg .= $msg . EOL; + } + + + function Finalise() { + + if($this->test) { + $this->test_results['message'] = $this->debug_msg; + json_return_and_die($this->test_results); + } + + goaway($this->desturl); + } + +} + + +/** + * + * Magic Auth + * ========== + * + * So-called "magic auth" takes place by a special exchange. On the site where the "channel to be authenticated" lives (e.g. $mysite), + * a redirection is made via $mysite/magic to the zot endpoint of the remote site ($remotesite) with special GET parameters. + * + * The endpoint is typically https://$remotesite/post - or whatever was specified as the callback url in prior communications + * (we will bootstrap an address and fetch a zot info packet if possible where no prior communications exist) + * + * Five GET parameters are supplied: + * * auth => the urlencoded webbie (channel@host.domain) of the channel requesting access + * * dest => the desired destination URL (urlencoded) + * * sec => a random string which is also stored on $mysite for use during the verification phase. + * * version => the zot revision + * * delegate => optional urlencoded webbie of a local channel to invoke delegation rights for + * + * * test => (optional 1 or 0 - debugs the authentication exchange and returns a json response instead of redirecting the browser session) + * + * When this packet is received, an "auth-check" zot message is sent to $mysite. + * (e.g. if $_GET['auth'] is foobar@podunk.edu, a zot packet is sent to the podunk.edu zot endpoint, which is typically /post) + * If no information has been recorded about the requesting identity a zot information packet will be retrieved before + * continuing. + * + * The sender of this packet is an arbitrary/random site channel. The recipients will be a single recipient corresponding + * to the guid and guid_sig we have associated with the requesting auth identity + * + * \code{.json} + * { + * "type":"auth_check", + * "sender":{ + * "guid":"kgVFf_...", + * "guid_sig":"PT9-TApz...", + * "url":"http:\/\/podunk.edu", + * "url_sig":"T8Bp7j...", + * "sitekey":"aMtgKTiirXrICP..." + * }, + * "recipients":{ + * { + * "guid":"ZHSqb...", + * "guid_sig":"JsAAXi..." + * } + * } + * "callback":"\/post", + * "version":1, + * "secret":"1eaa661", + * "secret_sig":"eKV968b1..." + * } + * \endcode + * + * auth_check messages MUST use encapsulated encryption. This message is sent to the origination site, which checks the 'secret' to see + * if it is the same as the 'sec' which it passed originally. It also checks the secret_sig which is the secret signed by the + * destination channel's private key and base64url encoded. If everything checks out, a json packet is returned: + * + * \code{.json} + * { + * "success":1, + * "confirm":"q0Ysovd1u...", + * "service_class":(optional) + * "level":(optional) + * "DNT": (optional do-not-track - 1 or 0) + * } + * \endcode + * + * 'confirm' in this case is the base64url encoded RSA signature of the concatenation of 'secret' with the + * base64url encoded whirlpool hash of the requestor's guid and guid_sig; signed with the source channel private key. + * This prevents a man-in-the-middle from inserting a rogue success packet. Upon receipt and successful + * verification of this packet, the destination site will redirect to the original destination URL and indicate a successful remote login. + * Service_class can be used by cooperating sites to provide different access rights based on account rights and subscription plans. It is + * a string whose contents are not defined by protocol. Example: "basic" or "gold". + * + * @param[in,out] App &$a + */ diff --git a/Zotlabs/Zot/Receiver.php b/Zotlabs/Zot/Receiver.php index 6a11bcde0..238de1332 100644 --- a/Zotlabs/Zot/Receiver.php +++ b/Zotlabs/Zot/Receiver.php @@ -127,3 +127,170 @@ class Receiver { } } + + + +/** + * @brief zot communications and messaging. + * + * Sender HTTP posts to this endpoint ($site/post typically) with 'data' parameter set to json zot message packet. + * This packet is optionally encrypted, which we will discover if the json has an 'iv' element. + * $contents => array( 'alg' => 'aes256cbc', 'iv' => initialisation vector, 'key' => decryption key, 'data' => encrypted data); + * $contents->iv and $contents->key are random strings encrypted with this site's RSA public key and then base64url encoded. + * Currently only 'aes256cbc' is used, but this is extensible should that algorithm prove inadequate. + * + * Once decrypted, one will find the normal json_encoded zot message packet. + * + * Defined packet types are: notify, purge, refresh, force_refresh, auth_check, ping, and pickup + * + * Standard packet: (used by notify, purge, refresh, force_refresh, and auth_check) + * \code{.json} + * { + * "type": "notify", + * "sender":{ + * "guid":"kgVFf_1...", + * "guid_sig":"PT9-TApzp...", + * "url":"http:\/\/podunk.edu", + * "url_sig":"T8Bp7j5...", + * }, + * "recipients": { optional recipient array }, + * "callback":"\/post", + * "version":1, + * "secret":"1eaa...", + * "secret_sig": "df89025470fac8..." + * } + * \endcode + * + * Signature fields are all signed with the sender channel private key and base64url encoded. + * Recipients are arrays of guid and guid_sig, which were previously signed with the recipients private + * key and base64url encoded and later obtained via channel discovery. Absence of recipients indicates + * a public message or visible to all potential listeners on this site. + * + * "pickup" packet: + * The pickup packet is sent in response to a notify packet from another site + * \code{.json} + * { + * "type":"pickup", + * "url":"http:\/\/example.com", + * "callback":"http:\/\/example.com\/post", + * "callback_sig":"teE1_fLI...", + * "secret":"1eaa...", + * "secret_sig":"O7nB4_..." + * } + * \endcode + * + * In the pickup packet, the sig fields correspond to the respective data + * element signed with this site's system private key and then base64url encoded. + * The "secret" is the same as the original secret from the notify packet. + * + * If verification is successful, a json structure is returned containing a + * success indicator and an array of type 'pickup'. + * Each pickup element contains the original notify request and a message field + * whose contents are dependent on the message type. + * + * This JSON array is AES encapsulated using the site public key of the site + * that sent the initial zot pickup packet. + * Using the above example, this would be example.com. + * + * \code{.json} + * { + * "success":1, + * "pickup":{ + * "notify":{ + * "type":"notify", + * "sender":{ + * "guid":"kgVFf_...", + * "guid_sig":"PT9-TApz...", + * "url":"http:\/\/z.podunk.edu", + * "url_sig":"T8Bp7j5D..." + * }, + * "callback":"\/post", + * "version":1, + * "secret":"1eaa661..." + * }, + * "message":{ + * "type":"activity", + * "message_id":"10b049ce384cbb2da9467319bc98169ab36290b8bbb403aa0c0accd9cb072e76@podunk.edu", + * "message_top":"10b049ce384cbb2da9467319bc98169ab36290b8bbb403aa0c0accd9cb072e76@podunk.edu", + * "message_parent":"10b049ce384cbb2da9467319bc98169ab36290b8bbb403aa0c0accd9cb072e76@podunk.edu", + * "created":"2012-11-20 04:04:16", + * "edited":"2012-11-20 04:04:16", + * "title":"", + * "body":"Hi Nickordo", + * "app":"", + * "verb":"post", + * "object_type":"", + * "target_type":"", + * "permalink":"", + * "location":"", + * "longlat":"", + * "owner":{ + * "name":"Indigo", + * "address":"indigo@podunk.edu", + * "url":"http:\/\/podunk.edu", + * "photo":{ + * "mimetype":"image\/jpeg", + * "src":"http:\/\/podunk.edu\/photo\/profile\/m\/5" + * }, + * "guid":"kgVFf_...", + * "guid_sig":"PT9-TAp...", + * }, + * "author":{ + * "name":"Indigo", + * "address":"indigo@podunk.edu", + * "url":"http:\/\/podunk.edu", + * "photo":{ + * "mimetype":"image\/jpeg", + * "src":"http:\/\/podunk.edu\/photo\/profile\/m\/5" + * }, + * "guid":"kgVFf_...", + * "guid_sig":"PT9-TAp..." + * } + * } + * } + * } + * \endcode + * + * Currently defined message types are 'activity', 'mail', 'profile', 'location' + * and 'channel_sync', which each have different content schemas. + * + * Ping packet: + * A ping packet does not require any parameters except the type. It may or may + * not be encrypted. + * + * \code{.json} + * { + * "type": "ping" + * } + * \endcode + * + * On receipt of a ping packet a ping response will be returned: + * + * \code{.json} + * { + * "success" : 1, + * "site" { + * "url": "http:\/\/podunk.edu", + * "url_sig": "T8Bp7j5...", + * "sitekey": "-----BEGIN PUBLIC KEY----- + * MIICIjANBgkqhkiG9w0BAQE..." + * } + * } + * \endcode + * + * The ping packet can be used to verify that a site has not been re-installed, and to + * initiate corrective action if it has. The url_sig is signed with the site private key + * and base64url encoded - and this should verify with the enclosed sitekey. Failure to + * verify indicates the site is corrupt or otherwise unable to communicate using zot. + * This return packet is not otherwise verified, so should be compared with other + * results obtained from this site which were verified prior to taking action. For instance + * if you have one verified result with this signature and key, and other records for this + * url which have different signatures and keys, it indicates that the site was re-installed + * and corrective action may commence (remove or mark invalid any entries with different + * signatures). + * If you have no records which match this url_sig and key - no corrective action should + * be taken as this packet may have been returned by an imposter. + * + * @param[in,out] App &$a + */ + @@ -83,7 +83,7 @@ $DIRECTORY_FALLBACK_SERVERS = array( 'https://zothub.com', 'https://hubzilla.site', 'https://red.zottel.red', - 'https://gravizot.de', + 'https://hub.pixelbits.de', 'https://my.federated.social', 'https://hubzilla.nl' ); @@ -704,11 +704,18 @@ class App { 'smarty3' => '}}' ); + // These represent the URL which was used to access the page + private $scheme; private $hostname; - private $baseurl; private $path; + // This is our standardised URL - regardless of what was used + // to access the page + + private $baseurl; + + /** * App constructor. */ @@ -1324,7 +1331,7 @@ function check_config(&$a) { * */ - $r = q("SELECT * FROM `addon` WHERE `installed` = 1"); + $r = q("SELECT * FROM addon WHERE installed = 1"); if($r) $installed = $r; else diff --git a/doc/database/db_abook.bb b/doc/database/db_abook.bb index 2e4b9c4a7..364429884 100644 --- a/doc/database/db_abook.bb +++ b/doc/database/db_abook.bb @@ -39,8 +39,9 @@ [tr][td]abook_unconnected[/td][td]currently unused. Projected usage is to indicate "one-way" connections which were insitgated on this end but are still pending on the remote end. [/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td] [tr][td]abook_self[/td][td]is a special case where the owner is the target. Every channel has one abook entry with abook_self and with a target abook_xchan set to channel.channel_hash . When this flag is present, abook_my_perms is the default permissions granted to all new connections and several other fields are unused.[/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td] [tr][td]abook_feed[/td][td]indicates this connection is an RSS/Atom feed and may trigger special handling.[/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td] -[tr][td]abook_incl[/td][td]connection filter allow rules separated by LF[/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td] -[tr][td]abook_excl[/td][td]connection filter deny rules separated by LF[/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td] +[tr][td]abook_incl[/td][td]connection filter allow rules separated by LF[/td][td]text[/td][td]NO[/td][td]MUL[/td][td]0[/td][td] +[tr][td]abook_excl[/td][td]connection filter deny rules separated by LF[/td][td]text[/td][td]NO[/td][td]MUL[/td][td]0[/td][td] +[tr][td]abook_instance[/td][td]comma separated list of site urls of all channel clones that this connection is connected with (used only for singleton networks which don't support cloning)[/td][td]text[/td][td]NO[/td][td]MUL[/td][td]0[/td][td] [/table] diff --git a/doc/hidden_configs.bb b/doc/hidden_configs.bb index b06df641f..8a02a23f2 100644 --- a/doc/hidden_configs.bb +++ b/doc/hidden_configs.bb @@ -65,7 +65,7 @@ This document assumes you're an administrator. this website. Can be overwritten by user settings. [b]system > projecthome[/b] Set the project homepage as the homepage of your hub. - [b]system > workflowchannelnext[/b] + [b]system > workflow_channel_next[/b] The page to direct users to immediately after creating a channel. [b]system > max_daily_registrations[/b] Set the maximum number of new registrations allowed on any day. diff --git a/include/account.php b/include/account.php index b3a520fd4..e448bdcc6 100644 --- a/include/account.php +++ b/include/account.php @@ -67,7 +67,7 @@ function check_account_invite($invite_code) { $result['message'] .= t('An invitation is required.') . EOL; } $r = q("select * from register where `hash` = '%s' limit 1", dbesc($invite_code)); - if(! results($r)) { + if(! $r) { $result['message'] .= t('Invitation could not be verified.') . EOL; } } @@ -718,4 +718,4 @@ function upgrade_message($bbcode = false) { function upgrade_bool_message($bbcode = false) { $x = upgrade_link($bbcode); return t('This action is not available under your subscription plan.') . (($x) ? ' ' . $x : '') ; -}
\ No newline at end of file +} diff --git a/include/api.php b/include/api.php index e60583a01..f37e0669f 100644 --- a/include/api.php +++ b/include/api.php @@ -1,10 +1,10 @@ <?php /** @file */ -require_once("bbcode.php"); -require_once("datetime.php"); -require_once("conversation.php"); -require_once("oauth.php"); -require_once("html2plain.php"); +require_once("include/bbcode.php"); +require_once("include/datetime.php"); +require_once("include/conversation.php"); +require_once("include/oauth.php"); +require_once("include/html2plain.php"); require_once('include/security.php'); require_once('include/photos.php'); require_once('include/items.php'); @@ -112,8 +112,11 @@ require_once('include/api_auth.php'); break; case "json": header ("Content-Type: application/json"); - foreach($r as $rr) + foreach($r as $rr) { + if(! $rr) + $rr = array(); $json = json_encode($rr); + } if ($_GET['callback']) $json = $_GET['callback']."(".$json.")"; return $json; @@ -852,13 +855,24 @@ require_once('include/api_auth.php'); $_REQUEST['type'] = 'wall'; if(x($_FILES,'media')) { - $_FILES['userfile'] = $_FILES['media']; - // upload the image if we have one - $_REQUEST['silent']='1'; //tell wall_upload function to return img info instead of echo - require_once('mod/wall_attach.php'); - $media = wall_attach_post($a); - if(strlen($media)>0) - $_REQUEST['body'] .= "\n\n".$media; + $num_uploads = count($_FILES['media']['name']); + for($x = 0; $x < $num_uploads; $x ++) { + $_FILES['userfile'] = array(); + $_FILES['userfile']['name'] = $_FILES['media']['name'][$x]; + $_FILES['userfile']['type'] = $_FILES['media']['type'][$x]; + $_FILES['userfile']['tmp_name'] = $_FILES['media']['tmp_name'][$x]; + $_FILES['userfile']['error'] = $_FILES['media']['error'][$x]; + $_FILES['userfile']['size'] = $_FILES['media']['size'][$x]; + + // upload each image if we have any + $_REQUEST['silent']='1'; //tell wall_upload function to return img info instead of echo + require_once('mod/wall_attach.php'); + $a->data['api_info'] = $user_info; + $media = wall_attach_post($a); + + if(strlen($media)>0) + $_REQUEST['body'] .= "\n\n" . $media; + } } } @@ -870,6 +884,7 @@ require_once('include/api_auth.php'); // this should output the last post (the one we just posted). return api_status_show($a,$type); } + api_register_func('api/statuses/update_with_media','api_statuses_update', true); api_register_func('api/statuses/update','api_statuses_update', true); @@ -1078,6 +1093,8 @@ require_once('include/api_auth.php'); 'contributors' => '' ); $status_info['user'] = $user_info; + if(array_key_exists('status',$status_info['user'])) + unset($status_info['user']['status']); } return api_apply_template("status", $type, array('$status' => $status_info)); @@ -1319,6 +1336,8 @@ require_once('include/api_auth.php'); // params $id = intval(argv(3)); + if(! $id) + $id = $_REQUEST['id']; logger('API: api_statuses_show: '.$id); @@ -1335,10 +1354,12 @@ require_once('include/api_auth.php'); $r = q("select * from item where true $item_normal $sql_extra", intval($id) ); + xchan_query($r,true); $ret = api_format_items($r,$user_info); + if ($conversation) { $data = array('$statuses' => $ret); return api_apply_template("timeline", $type, $data); @@ -2298,28 +2319,28 @@ require_once('include/api_auth.php'); api_register_func('api/direct_messages','api_direct_messages_inbox',true); - function api_oauth_request_token(&$a, $type){ try{ - $oauth = new FKOAuth1(); - $req = OAuthRequest::from_request(); -logger('Req: ' . var_export($req,true)); + $oauth = new ZotOAuth1(); + $req = OAuth1Request::from_request(); + logger('Req: ' . var_export($req,true),LOGGER_DATA); $r = $oauth->fetch_request_token($req); }catch(Exception $e){ logger('oauth_exception: ' . print_r($e->getMessage(),true)); - echo "error=". OAuthUtil::urlencode_rfc3986($e->getMessage()); + echo "error=". OAuth1Util::urlencode_rfc3986($e->getMessage()); killme(); } echo $r; killme(); } + function api_oauth_access_token(&$a, $type){ try{ - $oauth = new FKOAuth1(); - $req = OAuthRequest::from_request(); + $oauth = new ZotOAuth1(); + $req = OAuth1Request::from_request(); $r = $oauth->fetch_access_token($req); }catch(Exception $e){ - echo "error=". OAuthUtil::urlencode_rfc3986($e->getMessage()); killme(); + echo "error=". OAuth1Util::urlencode_rfc3986($e->getMessage()); killme(); } echo $r; killme(); diff --git a/include/api_auth.php b/include/api_auth.php index ee9db3f55..26a9df8d4 100644 --- a/include/api_auth.php +++ b/include/api_auth.php @@ -1,17 +1,19 @@ <?php /** @file */ -require_once("oauth.php"); - - /** - * Simple HTTP Login + * API Login via basic-auth or OAuth */ function api_login(&$a){ + + $record = null; + + require_once('include/oauth.php'); + // login with oauth try { - $oauth = new FKOAuth1(); - $req = OAuthRequest::from_request(); + $oauth = new ZotOAuth1(); + $req = OAuth1Request::from_request(); list($consumer,$token) = $oauth->verify_request($req); @@ -23,16 +25,14 @@ function api_login(&$a){ call_hooks('logged_in', $a->user); return; } - echo __file__.__line__.__function__."<pre>"; -// var_dump($consumer, $token); - die(); + killme(); } catch(Exception $e) { - logger(__file__.__line__.__function__."\n".$e); + logger($e->getMessage()); } - - // workaround for HTTP-auth in CGI mode + // workarounds for HTTP-auth in CGI mode + if(x($_SERVER,'REDIRECT_REMOTE_USER')) { $userpass = base64_decode(substr($_SERVER["REDIRECT_REMOTE_USER"],6)) ; if(strlen($userpass)) { @@ -51,45 +51,49 @@ function api_login(&$a){ } } + require_once('include/auth.php'); + require_once('include/security.php'); - if (!isset($_SERVER['PHP_AUTH_USER'])) { - logger('API_login: ' . print_r($_SERVER,true), LOGGER_DEBUG); - header('WWW-Authenticate: Basic realm="Red"'); - header('HTTP/1.0 401 Unauthorized'); - die('This api requires login'); - } - // process normal login request - require_once('include/auth.php'); - $channel_login = 0; - $record = account_verify_password($_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']); - if(! $record) { - $r = q("select * from channel where channel_address = '%s' limit 1", + + if(isset($_SERVER['PHP_AUTH_USER'])) { + $channel_login = 0; + $record = account_verify_password($_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']); + if(! $record) { + $r = q("select * from channel left join account on account.account_id = channel.channel_account_id + where channel.channel_address = '%s' limit 1", dbesc($_SERVER['PHP_AUTH_USER']) ); if ($r) { - $x = q("select * from account where account_id = %d limit 1", - intval($r[0]['channel_account_id']) - ); - if ($x) { - $record = account_verify_password($x[0]['account_email'],$_SERVER['PHP_AUTH_PW']); + $record = account_verify_password($r[0]['account_email'],$_SERVER['PHP_AUTH_PW']); if($record) $channel_login = $r[0]['channel_id']; } } - if(! $record) { - logger('API_login failure: ' . print_r($_SERVER,true), LOGGER_DEBUG); - header('WWW-Authenticate: Basic realm="Red"'); - header('HTTP/1.0 401 Unauthorized'); - die('This api requires login'); - } } - require_once('include/security.php'); - authenticate_success($record); + if($record) { + authenticate_success($record); - if($channel_login) - change_channel($channel_login); + if($channel_login) + change_channel($channel_login); + + $_SESSION['allow_api'] = true; + return true; + } + else { + $_SERVER['PHP_AUTH_PW'] = '*****'; + logger('API_login failure: ' . print_r($_SERVER,true), LOGGER_DEBUG); + log_failed_login('API login failure'); + retry_basic_auth(); + } - $_SESSION['allow_api'] = true; } + + +function retry_basic_auth() { + header('WWW-Authenticate: Basic realm="Hubzilla"'); + header('HTTP/1.0 401 Unauthorized'); + echo('This api requires login'); + killme(); +}
\ No newline at end of file diff --git a/include/attach.php b/include/attach.php index 36b971712..20e8b7444 100644 --- a/include/attach.php +++ b/include/attach.php @@ -430,7 +430,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { $observer = $x[0]; } - logger('arr: ' . print_r($arr,true)); + logger('arr: ' . print_r($arr,true), LOGGER_DATA); if(! perm_is_allowed($channel_id,$observer_hash, 'write_storage')) { $ret['message'] = t('Permission denied.'); diff --git a/include/conversation.php b/include/conversation.php index 3b534dc69..747bb5d0a 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -1227,7 +1227,7 @@ function status_editor($a, $x, $popup = false) { '$wait' => t('Please wait'), '$permset' => t('Permission settings'), '$shortpermset' => t('permissions'), - '$ptyp' => (($notes_cid) ? 'note' : 'wall'), + '$ptyp' => '', '$content' => ((x($x,'body')) ? htmlspecialchars($x['body'], ENT_COMPAT,'UTF-8') : ''), '$attachment' => ((x($x, 'attachment')) ? $x['attachment'] : ''), '$post_id' => '', diff --git a/include/follow.php b/include/follow.php index 40ad2c299..97be82da7 100644 --- a/include/follow.php +++ b/include/follow.php @@ -161,6 +161,7 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false) } } if($r) { + $xchan = $r[0]; $xchan_hash = $r[0]['xchan_hash']; $their_perms = 0; } @@ -172,7 +173,7 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false) return $result; } - $x = array('channel_id' => $uid, 'follow_address' => $url, 'xchan' => $r[0], 'allowed' => 1); + $x = array('channel_id' => $uid, 'follow_address' => $url, 'xchan' => $r[0], 'allowed' => 1, 'singleton' => 0); call_hooks('follow_allow',$x); @@ -180,7 +181,7 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false) $result['message'] = t('Protocol disabled.'); return $result; } - + $singleton = intval($x['singleton']); if((local_channel()) && $uid == local_channel()) { $aid = get_account_id(); @@ -221,13 +222,22 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false) return $result; } - $r = q("select abook_xchan from abook where abook_xchan = '%s' and abook_channel = %d limit 1", + $r = q("select abook_xchan, abook_instance from abook where abook_xchan = '%s' and abook_channel = %d limit 1", dbesc($xchan_hash), intval($uid) ); if($r) { - $x = q("update abook set abook_their_perms = %d where abook_id = %d", + $abook_instance = $r[0]['abook_instance']; + + if(($singleton) && strpos($abook_instance,z_root()) === false) { + if($abook_instance) + $abook_instance .= ','; + $abook_instance .= z_root(); + } + + $x = q("update abook set abook_their_perms = %d, abook_instance = '%s' where abook_id = %d", intval($their_perms), + dbesc($abook_instance), intval($r[0]['abook_id']) ); } @@ -237,8 +247,8 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false) if($closeness === false) $closeness = 80; - $r = q("insert into abook ( abook_account, abook_channel, abook_closeness, abook_xchan, abook_feed, abook_their_perms, abook_my_perms, abook_created, abook_updated ) - values( %d, %d, %d, '%s', %d, %d, %d, '%s', '%s' ) ", + $r = q("insert into abook ( abook_account, abook_channel, abook_closeness, abook_xchan, abook_feed, abook_their_perms, abook_my_perms, abook_created, abook_updated, abook_instance ) + values( %d, %d, %d, '%s', %d, %d, %d, '%s', '%s', '%s' ) ", intval($aid), intval($uid), intval($closeness), @@ -247,7 +257,8 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false) intval(($is_http) ? $their_perms|PERMS_R_STREAM|PERMS_A_REPUBLISH : $their_perms), intval($my_perms), dbesc(datetime_convert()), - dbesc(datetime_convert()) + dbesc(datetime_convert()), + dbesc(($singleton) ? z_root() : '') ); } diff --git a/include/identity.php b/include/identity.php index 95ade3b28..98ba26bd8 100644 --- a/include/identity.php +++ b/include/identity.php @@ -896,12 +896,6 @@ function profile_load(&$a, $nickname, $profile = '') { $_SESSION['theme'] = $p[0]['channel_theme']; -// $a->set_template_engine(); // reset the template engine to the default in case the user's theme doesn't specify one - -// $theme_info_file = "view/theme/".current_theme()."/php/theme.php"; -// if (file_exists($theme_info_file)){ -// require_once($theme_info_file); -// } } /** diff --git a/include/items.php b/include/items.php index ef1867c14..8c2e7deb2 100755 --- a/include/items.php +++ b/include/items.php @@ -2349,7 +2349,7 @@ function item_store($arr, $allow_exec = false) { return $ret; } - if($arr['obj_type'] == ACTIVITY_OBJ_NOTE) + if(($arr['obj_type'] == ACTIVITY_OBJ_NOTE) && (! $arr['object'])) $arr['obj_type'] = ACTIVITY_OBJ_COMMENT; // is the new message multi-level threaded? @@ -2870,6 +2870,7 @@ function send_status_notifications($post_id,$item) { if($x) { foreach($x as $xx) { if($xx['author_xchan'] === $r[0]['channel_hash']) { + $notify = true; // check for an unfollow thread activity - we should probably decode the obj and check the id diff --git a/include/network.php b/include/network.php index 5895d302b..68452c3d1 100644 --- a/include/network.php +++ b/include/network.php @@ -1883,3 +1883,16 @@ function check_channelallowed($hash) { return $retvalue; } +function deliverable_singleton($xchan) { + $r = q("select abook_instance from abook where abook_xchan = '%s' limit 1", + dbesc($xchan['xchan_hash']) + ); + if($r) { + if(! $r[0]['abook_instance']) + return true; + if(strpos($r[0]['abook_instance'],z_root()) !== false) + return true; + } + return false; +} + diff --git a/include/notifier.php b/include/notifier.php index b7830285a..66b6160e4 100644 --- a/include/notifier.php +++ b/include/notifier.php @@ -57,6 +57,8 @@ require_once('include/html2plain.php'); * purge_all channel_id * expire channel_id * relay item_id (item was relayed to owner, we will deliver it as owner) + * single_activity item_id (deliver to a singleton network from the appropriate clone) + * single_mail mail_id (deliver to a singleton network from the appropriate clone) * location channel_id * request channel_id xchan_hash message_id * rating xlink_id diff --git a/include/oauth.php b/include/oauth.php index 80336f906..f3d144158 100644 --- a/include/oauth.php +++ b/include/oauth.php @@ -1,4 +1,5 @@ <?php /** @file */ + /** * OAuth server * Based on oauth2-php <http://code.google.com/p/oauth2-php/> @@ -9,16 +10,17 @@ define('REQUEST_TOKEN_DURATION', 300); define('ACCESS_TOKEN_DURATION', 31536000); require_once("library/OAuth1.php"); -require_once("library/oauth2-php/lib/OAuth2.inc"); -class FKOAuthDataStore extends OAuthDataStore { - function gen_token(){ +//require_once("library/oauth2-php/lib/OAuth2.inc"); + +class ZotOAuth1DataStore extends OAuth1DataStore { + + function gen_token(){ return md5(base64_encode(pack('N6', mt_rand(), mt_rand(), mt_rand(), mt_rand(), mt_rand(), uniqid()))); - } + } - function lookup_consumer($consumer_key) { - logger(__function__.":".$consumer_key); -// echo "<pre>"; var_dump($consumer_key); killme(); + function lookup_consumer($consumer_key) { + logger('consumer_key: ' . $consumer_key, LOGGER_DEBUG); $r = q("SELECT client_id, pw, redirect_uri FROM clients WHERE client_id = '%s'", dbesc($consumer_key) @@ -26,13 +28,14 @@ class FKOAuthDataStore extends OAuthDataStore { if($r) { get_app()->set_oauth_key($consumer_key); - return new OAuthConsumer($r[0]['client_id'],$r[0]['pw'],$r[0]['redirect_uri']); + return new OAuth1Consumer($r[0]['client_id'],$r[0]['pw'],$r[0]['redirect_uri']); } return null; - } + } - function lookup_token($consumer, $token_type, $token) { - logger(__function__.":".$consumer.", ". $token_type.", ".$token); + function lookup_token($consumer, $token_type, $token) { + + logger(__function__.":".$consumer.", ". $token_type.", ".$token, LOGGER_DEBUG); $r = q("SELECT id, secret, scope, expires, uid FROM tokens WHERE client_id = '%s' AND scope = '%s' AND id = '%s'", dbesc($consumer->key), @@ -41,17 +44,16 @@ class FKOAuthDataStore extends OAuthDataStore { ); if (count($r)){ - $ot=new OAuthToken($r[0]['id'],$r[0]['secret']); + $ot=new OAuth1Token($r[0]['id'],$r[0]['secret']); $ot->scope=$r[0]['scope']; $ot->expires = $r[0]['expires']; $ot->uid = $r[0]['uid']; return $ot; } return null; - } + } - function lookup_nonce($consumer, $token, $nonce, $timestamp) { -// echo __file__.":".__line__."<pre>"; var_dump($consumer,$key); killme(); + function lookup_nonce($consumer, $token, $nonce, $timestamp) { $r = q("SELECT id, secret FROM tokens WHERE client_id = '%s' AND id = '%s' AND expires = %d", dbesc($consumer->key), @@ -60,12 +62,14 @@ class FKOAuthDataStore extends OAuthDataStore { ); if (count($r)) - return new OAuthToken($r[0]['id'],$r[0]['secret']); + return new OAuth1Token($r[0]['id'],$r[0]['secret']); return null; - } + } + + function new_request_token($consumer, $callback = null) { + + logger(__function__.":".$consumer.", ". $callback, LOGGER_DEBUG); - function new_request_token($consumer, $callback = null) { - logger(__function__.":".$consumer.", ". $callback); $key = $this->gen_token(); $sec = $this->gen_token(); @@ -82,29 +86,31 @@ class FKOAuthDataStore extends OAuthDataStore { 'request', time()+intval(REQUEST_TOKEN_DURATION)); - if (!$r) return null; - return new OAuthToken($key,$sec); - } + if(! $r) + return null; + return new OAuth1Token($key,$sec); + } - function new_access_token($token, $consumer, $verifier = null) { - logger(__function__.":".$token.", ". $consumer.", ". $verifier); - - // return a new access token attached to this consumer - // for the user associated with this token if the request token - // is authorized - // should also invalidate the request token - - $ret=Null; + function new_access_token($token, $consumer, $verifier = null) { + + logger(__function__.":".$token.", ". $consumer.", ". $verifier, LOGGER_DEBUG); - // get user for this verifier - $uverifier = get_config("oauth", $verifier); - logger(__function__.":".$verifier.",".$uverifier); - if (is_null($verifier) || ($uverifier!==false)){ + // return a new access token attached to this consumer + // for the user associated with this token if the request token + // is authorized + // should also invalidate the request token + + $ret=Null; + + // get user for this verifier + $uverifier = get_config("oauth", $verifier); + logger(__function__.":".$verifier.",".$uverifier, LOGGER_DEBUG); + if (is_null($verifier) || ($uverifier!==false)) { - $key = $this->gen_token(); - $sec = $this->gen_token(); + $key = $this->gen_token(); + $sec = $this->gen_token(); - $r = q("INSERT INTO tokens (id, secret, client_id, scope, expires, uid) VALUES ('%s','%s','%s','%s', %d, %d)", + $r = q("INSERT INTO tokens (id, secret, client_id, scope, expires, uid) VALUES ('%s','%s','%s','%s', %d, %d)", dbesc($key), dbesc($sec), dbesc($consumer->key), @@ -112,81 +118,70 @@ class FKOAuthDataStore extends OAuthDataStore { time()+intval(ACCESS_TOKEN_DURATION), intval($uverifier)); - if ($r) - $ret = new OAuthToken($key,$sec); - } + if ($r) + $ret = new OAuth1Token($key,$sec); + } - q("DELETE FROM tokens WHERE id='%s'", $token->key); + q("DELETE FROM tokens WHERE id='%s'", $token->key); - if (!is_null($ret) && $uverifier!==false){ - del_config("oauth", $verifier); - /* $apps = get_pconfig($uverifier, "oauth", "apps"); - if ($apps===false) $apps=array(); - $apps[] = $consumer->key; - set_pconfig($uverifier, "oauth", "apps", $apps);*/ + if (!is_null($ret) && $uverifier!==false) { + del_config("oauth", $verifier); + + // $apps = get_pconfig($uverifier, "oauth", "apps"); + // if ($apps===false) $apps=array(); + // $apps[] = $consumer->key; + // set_pconfig($uverifier, "oauth", "apps", $apps); + } + return $ret; } - - return $ret; - - } } -class FKOAuth1 extends OAuthServer { +class ZotOAuth1 extends OAuth1Server { function __construct() { - parent::__construct(new FKOAuthDataStore()); - $this->add_signature_method(new OAuthSignatureMethod_PLAINTEXT()); - $this->add_signature_method(new OAuthSignatureMethod_HMAC_SHA1()); + parent::__construct(new ZotOAuth1DataStore()); + $this->add_signature_method(new OAuth1SignatureMethod_PLAINTEXT()); + $this->add_signature_method(new OAuth1SignatureMethod_HMAC_SHA1()); } function loginUser($uid){ - logger("RedOAuth1::loginUser $uid"); - $a = get_app(); + + logger("ZotOAuth1::loginUser $uid"); + $r = q("SELECT * FROM channel WHERE channel_id = %d LIMIT 1", intval($uid) ); if(count($r)){ $record = $r[0]; } else { - logger('FKOAuth1::loginUser failure: ' . print_r($_SERVER,true), LOGGER_DEBUG); - header('HTTP/1.0 401 Unauthorized'); - die('This api requires login'); + logger('ZotOAuth1::loginUser failure: ' . print_r($_SERVER,true), LOGGER_DEBUG); + header('HTTP/1.0 401 Unauthorized'); + echo('This api requires login'); + killme(); } $_SESSION['uid'] = $record['channel_id']; - $_SESSION['theme'] = $record['channel_theme']; - $_SESSION['account_id'] = $record['channel_account_id']; - $_SESSION['mobile_theme'] = get_pconfig($record['channel_id'], 'system', 'mobile_theme'); - $_SESSION['authenticated'] = 1; - $_SESSION['my_url'] = $a->get_baseurl() . '/channel/' . $record['channel_address']; $_SESSION['addr'] = $_SERVER['REMOTE_ADDR']; - $_SESSION['allow_api'] = true; + $x = q("select * from account where account_id = %d limit 1", intval($record['channel_account_id']) ); - if($x) - $a->account = $x[0]; - - change_channel($record['channel_id']); - - $a->channel = $record; - - if(strlen($a->channel['channel_timezone'])) { - date_default_timezone_set($a->channel['channel_timezone']); + if($x) { + require_once('include/security.php'); + authenticate_success($x[0],true,false,true,true); + $_SESSION['allow_api'] = true; } - -// q("UPDATE `user` SET `login_date` = '%s' WHERE `uid` = %d LIMIT 1", -// dbesc(datetime_convert()), -// intval($_SESSION['uid']) -// ); -// -// call_hooks('logged_in', $a->user); } } + /* + * + + not yet used + class FKOAuth2 extends OAuth2 { private function db_secret($client_secret){ diff --git a/include/photos.php b/include/photos.php index c7360a956..15aa8ee17 100644 --- a/include/photos.php +++ b/include/photos.php @@ -377,7 +377,7 @@ function photo_upload($channel, $observer, $args) { $arr['item_thread_top'] = 1; $arr['item_private'] = intval($acl->is_private()); $arr['plink'] = z_root() . '/channel/' . $channel['channel_address'] . '/?f=&mid=' . $arr['mid']; - $arr['body'] = (($object) ? $args['body'] : $body . "\r\n" . $args['body']); + $arr['body'] = (($object) ? $args['body'] : $body . "\r\n" . $args['body']); // this one is tricky because the item and the photo have the same permissions, those of the photo. diff --git a/include/security.php b/include/security.php index 9a25d9e0e..d4ebe0024 100644 --- a/include/security.php +++ b/include/security.php @@ -93,6 +93,7 @@ function change_channel($change_channel) { $ret = false; if($change_channel) { + $r = q("select channel.*, xchan.* from channel left join xchan on channel.channel_hash = xchan.xchan_hash where channel_id = %d and channel_account_id = %d and channel_removed = 0 limit 1", intval($change_channel), intval(get_account_id()) @@ -136,14 +137,14 @@ function change_channel($change_channel) { } /** - * @brief Creates an addiontal SQL where statement to check permissions. + * @brief Creates an additional SQL where statement to check permissions. * * @param int $owner_id - * @param bool $remote_verified default false, not used at all - * @param string $groups this param is not used at all + * @param bool $remote_observer - if unset use current observer * * @return string additional SQL where statement */ + function permissions_sql($owner_id, $remote_observer = null) { $local_channel = local_channel(); @@ -208,8 +209,7 @@ function permissions_sql($owner_id, $remote_observer = null) { * @brief Creates an addiontal SQL where statement to check permissions for an item. * * @param int $owner_id - * @param bool $remote_verified default false, not used at all - * @param string $groups this param is not used at all + * @param bool $remote_observer, use current observer if unset * * @return string additional SQL where statement */ @@ -400,11 +400,9 @@ function check_form_security_token_ForbiddenOnErr($typename = '', $formname = 'f } -// Returns an array of group id's this contact is a member of. -// This array will only contain group id's related to the uid of this -// DFRN contact. They are *not* neccessarily unique across the entire site. +// Returns an array of group hash id's on this entire site (across all channels) that this connection is a member of. +// var $contact_id = xchan_hash of connection -if(! function_exists('init_groups_visitor')) { function init_groups_visitor($contact_id) { $groups = array(); $r = q("SELECT hash FROM `groups` left join group_member on groups.id = group_member.gid WHERE xchan = '%s' ", @@ -415,7 +413,7 @@ function init_groups_visitor($contact_id) { $groups[] = $rr['hash']; } return $groups; -}} +} diff --git a/include/zot.php b/include/zot.php index 276afb03e..390407e4e 100644 --- a/include/zot.php +++ b/include/zot.php @@ -3798,6 +3798,7 @@ function zotinfo($arr) { $ret['site'] = array(); $ret['site']['url'] = z_root(); $ret['site']['url_sig'] = base64url_encode(rsa_sign(z_root(),$e['channel_prvkey'])); + $ret['site']['zot_auth'] = z_root() . '/magic'; $dirmode = get_config('system','directory_mode'); if(($dirmode === false) || ($dirmode == DIRECTORY_MODE_NORMAL)) diff --git a/install/INSTALL.txt b/install/INSTALL.txt index 25852497b..8ca74c23b 100644 --- a/install/INSTALL.txt +++ b/install/INSTALL.txt @@ -382,3 +382,8 @@ stuff on your server that might access MySQL, and Hubzilla's poller which needs MySQL access, too. A good setting for a medium-sized hub might be to keep MySQL's max_connections at 100 and set mpm_prefork's MaxRequestWorkers to 70. + +Here you can read more about Apache performance tuning: +https://httpd.apache.org/docs/2.4/misc/perf-tuning.html + +There are tons of scripts to help you with fine-tuning your Apache installation. Just search with your favorite search engine 'apache fine-tuning script'. diff --git a/library/OAuth1.php b/library/OAuth1.php index b790655af..0a6b20b0a 100644 --- a/library/OAuth1.php +++ b/library/OAuth1.php @@ -3,11 +3,11 @@ /* Generic exception class */ -class OAuthException extends Exception { +class OAuth1Exception extends Exception { // pass } -class OAuthConsumer { +class OAuth1Consumer { public $key; public $secret; @@ -18,11 +18,11 @@ class OAuthConsumer { } function __toString() { - return "OAuthConsumer[key=$this->key,secret=$this->secret]"; + return "OAuth1Consumer[key=$this->key,secret=$this->secret]"; } } -class OAuthToken { +class OAuth1Token { // access tokens and request tokens public $key; public $secret; @@ -46,9 +46,9 @@ class OAuthToken { */ function to_string() { return "oauth_token=" . - OAuthUtil::urlencode_rfc3986($this->key) . + OAuth1Util::urlencode_rfc3986($this->key) . "&oauth_token_secret=" . - OAuthUtil::urlencode_rfc3986($this->secret); + OAuth1Util::urlencode_rfc3986($this->secret); } function __toString() { @@ -60,7 +60,7 @@ class OAuthToken { * A class for implementing a Signature Method * See section 9 ("Signing Requests") in the spec */ -abstract class OAuthSignatureMethod { +abstract class OAuth1SignatureMethod { /** * Needs to return the name of the Signature Method (ie HMAC-SHA1) * @return string @@ -70,20 +70,20 @@ abstract class OAuthSignatureMethod { /** * Build up the signature * NOTE: The output of this function MUST NOT be urlencoded. - * the encoding is handled in OAuthRequest when the final + * the encoding is handled in OAuth1Request when the final * request is serialized - * @param OAuthRequest $request - * @param OAuthConsumer $consumer - * @param OAuthToken $token + * @param OAuth1Request $request + * @param OAuth1Consumer $consumer + * @param OAuth1Token $token * @return string */ abstract public function build_signature($request, $consumer, $token); /** * Verifies that a given signature is correct - * @param OAuthRequest $request - * @param OAuthConsumer $consumer - * @param OAuthToken $token + * @param OAuth1Request $request + * @param OAuth1Consumer $consumer + * @param OAuth1Token $token * @param string $signature * @return bool */ @@ -101,7 +101,7 @@ abstract class OAuthSignatureMethod { * character (ASCII code 38) even if empty. * - Chapter 9.2 ("HMAC-SHA1") */ -class OAuthSignatureMethod_HMAC_SHA1 extends OAuthSignatureMethod { +class OAuth1SignatureMethod_HMAC_SHA1 extends OAuth1SignatureMethod { function get_name() { return "HMAC-SHA1"; } @@ -115,7 +115,7 @@ class OAuthSignatureMethod_HMAC_SHA1 extends OAuthSignatureMethod { ($token) ? $token->secret : "" ); - $key_parts = OAuthUtil::urlencode_rfc3986($key_parts); + $key_parts = OAuth1Util::urlencode_rfc3986($key_parts); $key = implode('&', $key_parts); @@ -129,7 +129,7 @@ class OAuthSignatureMethod_HMAC_SHA1 extends OAuthSignatureMethod { * over a secure channel such as HTTPS. It does not use the Signature Base String. * - Chapter 9.4 ("PLAINTEXT") */ -class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod { +class OAuth1SignatureMethod_PLAINTEXT extends OAuth1SignatureMethod { public function get_name() { return "PLAINTEXT"; } @@ -141,7 +141,7 @@ class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod { * - Chapter 9.4.1 ("Generating Signatures") * * Please note that the second encoding MUST NOT happen in the SignatureMethod, as - * OAuthRequest handles this! + * OAuth1Request handles this! */ public function build_signature($request, $consumer, $token) { $key_parts = array( @@ -149,7 +149,7 @@ class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod { ($token) ? $token->secret : "" ); - $key_parts = OAuthUtil::urlencode_rfc3986($key_parts); + $key_parts = OAuth1Util::urlencode_rfc3986($key_parts); $key = implode('&', $key_parts); $request->base_string = $key; @@ -165,7 +165,7 @@ class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod { * specification. * - Chapter 9.3 ("RSA-SHA1") */ -abstract class OAuthSignatureMethod_RSA_SHA1 extends OAuthSignatureMethod { +abstract class OAuth1SignatureMethod_RSA_SHA1 extends OAuth1SignatureMethod { public function get_name() { return "RSA-SHA1"; } @@ -224,7 +224,7 @@ abstract class OAuthSignatureMethod_RSA_SHA1 extends OAuthSignatureMethod { } } -class OAuthRequest { +class OAuth1Request { private $parameters; private $http_method; private $http_url; @@ -235,7 +235,7 @@ class OAuthRequest { function __construct($http_method, $http_url, $parameters=NULL) { @$parameters or $parameters = array(); - $parameters = array_merge( OAuthUtil::parse_parameters(parse_url($http_url, PHP_URL_QUERY)), $parameters); + $parameters = array_merge( OAuth1Util::parse_parameters(parse_url($http_url, PHP_URL_QUERY)), $parameters); $this->parameters = $parameters; $this->http_method = $http_method; $this->http_url = $http_url; @@ -262,10 +262,10 @@ class OAuthRequest { // parsed parameter-list if (!$parameters) { // Find request headers - $request_headers = OAuthUtil::get_headers(); + $request_headers = OAuth1Util::get_headers(); // Parse the query-string to find GET parameters - $parameters = OAuthUtil::parse_parameters($_SERVER['QUERY_STRING']); + $parameters = OAuth1Util::parse_parameters($_SERVER['QUERY_STRING']); // It's a POST request of the proper content-type, so parse POST // parameters and add those overriding any duplicates from GET @@ -274,7 +274,7 @@ class OAuthRequest { "application/x-www-form-urlencoded") ) { - $post_data = OAuthUtil::parse_parameters( + $post_data = OAuth1Util::parse_parameters( file_get_contents(self::$POST_INPUT) ); $parameters = array_merge($parameters, $post_data); @@ -283,7 +283,7 @@ class OAuthRequest { // We have a Authorization-header with OAuth data. Parse the header // and add those overriding any duplicates from GET or POST if (@substr($request_headers['Authorization'], 0, 6) == "OAuth ") { - $header_parameters = OAuthUtil::split_header( + $header_parameters = OAuth1Util::split_header( $request_headers['Authorization'] ); $parameters = array_merge($parameters, $header_parameters); @@ -296,7 +296,7 @@ class OAuthRequest { $http_url = substr($http_url, 0, strpos($http_url,$parameters['q'])+strlen($parameters['q'])); unset( $parameters['q'] ); - return new OAuthRequest($http_method, $http_url, $parameters); + return new OAuth1Request($http_method, $http_url, $parameters); } /** @@ -304,16 +304,16 @@ class OAuthRequest { */ public static function from_consumer_and_token($consumer, $token, $http_method, $http_url, $parameters=NULL) { @$parameters or $parameters = array(); - $defaults = array("oauth_version" => OAuthRequest::$version, - "oauth_nonce" => OAuthRequest::generate_nonce(), - "oauth_timestamp" => OAuthRequest::generate_timestamp(), + $defaults = array("oauth_version" => OAuth1Request::$version, + "oauth_nonce" => OAuth1Request::generate_nonce(), + "oauth_timestamp" => OAuth1Request::generate_timestamp(), "oauth_consumer_key" => $consumer->key); if ($token) $defaults['oauth_token'] = $token->key; $parameters = array_merge($defaults, $parameters); - return new OAuthRequest($http_method, $http_url, $parameters); + return new OAuth1Request($http_method, $http_url, $parameters); } public function set_parameter($name, $value, $allow_duplicates = true) { @@ -357,7 +357,7 @@ class OAuthRequest { unset($params['oauth_signature']); } - return OAuthUtil::build_http_query($params); + return OAuth1Util::build_http_query($params); } /** @@ -374,7 +374,7 @@ class OAuthRequest { $this->get_signable_parameters() ); - $parts = OAuthUtil::urlencode_rfc3986($parts); + $parts = OAuth1Util::urlencode_rfc3986($parts); return implode('&', $parts); } @@ -423,7 +423,7 @@ class OAuthRequest { * builds the data one would send in a POST request */ public function to_postdata() { - return OAuthUtil::build_http_query($this->parameters); + return OAuth1Util::build_http_query($this->parameters); } /** @@ -432,7 +432,7 @@ class OAuthRequest { public function to_header($realm=null) { $first = true; if($realm) { - $out = 'Authorization: OAuth realm="' . OAuthUtil::urlencode_rfc3986($realm) . '"'; + $out = 'Authorization: OAuth realm="' . OAuth1Util::urlencode_rfc3986($realm) . '"'; $first = false; } else $out = 'Authorization: OAuth'; @@ -441,12 +441,12 @@ class OAuthRequest { foreach ($this->parameters as $k => $v) { if (substr($k, 0, 5) != "oauth") continue; if (is_array($v)) { - throw new OAuthException('Arrays not supported in headers'); + throw new OAuth1Exception('Arrays not supported in headers'); } $out .= ($first) ? ' ' : ','; - $out .= OAuthUtil::urlencode_rfc3986($k) . + $out .= OAuth1Util::urlencode_rfc3986($k) . '="' . - OAuthUtil::urlencode_rfc3986($v) . + OAuth1Util::urlencode_rfc3986($v) . '"'; $first = false; } @@ -491,7 +491,7 @@ class OAuthRequest { } } -class OAuthServer { +class OAuth1Server { protected $timestamp_threshold = 300; // in seconds, five minutes protected $version = '1.0'; // hi blaine protected $signature_methods = array(); @@ -572,7 +572,7 @@ class OAuthServer { $version = '1.0'; } if ($version !== $this->version) { - throw new OAuthException("OAuth version '$version' not supported"); + throw new OAuth1Exception("OAuth1 version '$version' not supported"); } return $version; } @@ -587,12 +587,12 @@ class OAuthServer { if (!$signature_method) { // According to chapter 7 ("Accessing Protected Ressources") the signature-method // parameter is required, and we can't just fallback to PLAINTEXT - throw new OAuthException('No signature method parameter. This parameter is required'); + throw new OAuth1Exception('No signature method parameter. This parameter is required'); } if (!in_array($signature_method, array_keys($this->signature_methods))) { - throw new OAuthException( + throw new OAuth1Exception( "Signature method '$signature_method' not supported " . "try one of the following: " . implode(", ", array_keys($this->signature_methods)) @@ -607,12 +607,12 @@ class OAuthServer { private function get_consumer(&$request) { $consumer_key = @$request->get_parameter("oauth_consumer_key"); if (!$consumer_key) { - throw new OAuthException("Invalid consumer key"); + throw new OAuth1Exception("Invalid consumer key"); } $consumer = $this->data_store->lookup_consumer($consumer_key); if (!$consumer) { - throw new OAuthException("Invalid consumer"); + throw new OAuth1Exception("Invalid consumer"); } return $consumer; @@ -627,7 +627,7 @@ class OAuthServer { $consumer, $token_type, $token_field ); if (!$token) { - throw new OAuthException("Invalid $token_type token: $token_field"); + throw new OAuth1Exception("Invalid $token_type token: $token_field"); } return $token; } @@ -656,7 +656,7 @@ class OAuthServer { if (!$valid_sig) { - throw new OAuthException("Invalid signature"); + throw new OAuth1Exception("Invalid signature"); } } @@ -665,14 +665,14 @@ class OAuthServer { */ private function check_timestamp($timestamp) { if( ! $timestamp ) - throw new OAuthException( + throw new OAuth1Exception( 'Missing timestamp parameter. The parameter is required' ); // verify that timestamp is recentish $now = time(); if (abs($now - $timestamp) > $this->timestamp_threshold) { - throw new OAuthException( + throw new OAuth1Exception( "Expired timestamp, yours $timestamp, ours $now" ); } @@ -683,7 +683,7 @@ class OAuthServer { */ private function check_nonce($consumer, $token, $nonce, $timestamp) { if( ! $nonce ) - throw new OAuthException( + throw new OAuth1Exception( 'Missing nonce parameter. The parameter is required' ); @@ -695,13 +695,13 @@ class OAuthServer { $timestamp ); if ($found) { - throw new OAuthException("Nonce already used: $nonce"); + throw new OAuth1Exception("Nonce already used: $nonce"); } } } -class OAuthDataStore { +class OAuth1DataStore { function lookup_consumer($consumer_key) { // implement me } @@ -727,10 +727,10 @@ class OAuthDataStore { } -class OAuthUtil { +class OAuth1Util { public static function urlencode_rfc3986($input) { if (is_array($input)) { - return array_map(array('OAuthUtil', 'urlencode_rfc3986'), $input); + return array_map(array('OAuth1Util', 'urlencode_rfc3986'), $input); } else if (is_scalar($input)) { return str_replace( '+', @@ -762,7 +762,7 @@ class OAuthUtil { $header_name = $matches[2][0]; $header_content = (isset($matches[5])) ? $matches[5][0] : $matches[4][0]; if (preg_match('/^oauth_/', $header_name) || !$only_allow_oauth_parameters) { - $params[$header_name] = OAuthUtil::urldecode_rfc3986($header_content); + $params[$header_name] = OAuth1Util::urldecode_rfc3986($header_content); } $offset = $match[1] + strlen($match[0]); } @@ -834,8 +834,8 @@ class OAuthUtil { $parsed_parameters = array(); foreach ($pairs as $pair) { $split = explode('=', $pair, 2); - $parameter = OAuthUtil::urldecode_rfc3986($split[0]); - $value = isset($split[1]) ? OAuthUtil::urldecode_rfc3986($split[1]) : ''; + $parameter = OAuth1Util::urldecode_rfc3986($split[0]); + $value = isset($split[1]) ? OAuth1Util::urldecode_rfc3986($split[1]) : ''; if (isset($parsed_parameters[$parameter])) { // We have already recieved parameter(s) with this name, so add to the list @@ -859,8 +859,8 @@ class OAuthUtil { if (!$params) return ''; // Urlencode both keys and values - $keys = OAuthUtil::urlencode_rfc3986(array_keys($params)); - $values = OAuthUtil::urlencode_rfc3986(array_values($params)); + $keys = OAuth1Util::urlencode_rfc3986(array_keys($params)); + $values = OAuth1Util::urlencode_rfc3986(array_values($params)); $params = array_combine($keys, $values); // Parameters are sorted by name, using lexicographical byte value ordering. @@ -885,5 +885,3 @@ class OAuthUtil { return implode('&', $pairs); } } - -?> diff --git a/library/cacert.pem b/library/cacert.pem index 739128024..ef43898ab 100644 --- a/library/cacert.pem +++ b/library/cacert.pem @@ -4078,3 +4078,33 @@ Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= -----END CERTIFICATE----- + +Lets Encrypt +============ +-----BEGIN CERTIFICATE----- +MIIEqDCCA5CgAwIBAgIRAJgT9HUT5XULQ+dDHpceRL0wDQYJKoZIhvcNAQELBQAw +PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD +Ew5EU1QgUm9vdCBDQSBYMzAeFw0xNTEwMTkyMjMzMzZaFw0yMDEwMTkyMjMzMzZa +MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD +ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAJzTDPBa5S5Ht3JdN4OzaGMw6tc1Jhkl4b2+NfFwki+3uEtB +BaupnjUIWOyxKsRohwuj43Xk5vOnYnG6eYFgH9eRmp/z0HhncchpDpWRz/7mmelg +PEjMfspNdxIknUcbWuu57B43ABycrHunBerOSuu9QeU2mLnL/W08lmjfIypCkAyG +dGfIf6WauFJhFBM/ZemCh8vb+g5W9oaJ84U/l4avsNwa72sNlRZ9xCugZbKZBDZ1 +gGusSvMbkEl4L6KWTyogJSkExnTA0DHNjzE4lRa6qDO4Q/GxH8Mwf6J5MRM9LTb4 +4/zyM2q5OTHFr8SNDR1kFjOq+oQpttQLwNh9w5MCAwEAAaOCAZIwggGOMBIGA1Ud +EwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMH8GCCsGAQUFBwEBBHMwcTAy +BggrBgEFBQcwAYYmaHR0cDovL2lzcmcudHJ1c3RpZC5vY3NwLmlkZW50cnVzdC5j +b20wOwYIKwYBBQUHMAKGL2h0dHA6Ly9hcHBzLmlkZW50cnVzdC5jb20vcm9vdHMv +ZHN0cm9vdGNheDMucDdjMB8GA1UdIwQYMBaAFMSnsaR7LHH62+FLkHX/xBVghYkQ +MFQGA1UdIARNMEswCAYGZ4EMAQIBMD8GCysGAQQBgt8TAQEBMDAwLgYIKwYBBQUH +AgEWImh0dHA6Ly9jcHMucm9vdC14MS5sZXRzZW5jcnlwdC5vcmcwPAYDVR0fBDUw +MzAxoC+gLYYraHR0cDovL2NybC5pZGVudHJ1c3QuY29tL0RTVFJPT1RDQVgzQ1JM +LmNybDATBgNVHR4EDDAKoQgwBoIELm1pbDAdBgNVHQ4EFgQUqEpqYwR93brm0Tm3 +pkVl7/Oo7KEwDQYJKoZIhvcNAQELBQADggEBANHIIkus7+MJiZZQsY14cCoBG1hd +v0J20/FyWo5ppnfjL78S2k4s2GLRJ7iD9ZDKErndvbNFGcsW+9kKK/TnY21hp4Dd +ITv8S9ZYQ7oaoqs7HwhEMY9sibED4aXw09xrJZTC9zK1uIfW6t5dHQjuOWv+HHoW +ZnupyxpsEUlEaFb+/SCI4KCSBdAsYxAcsHYI5xxEI4LutHp6s3OT2FuO90WfdsIk +6q78OMSdn875bNjdBYAqxUp2/LEIHfDBkLoQz0hFJmwAbYahqKaLn73PAAm1X2kj +f1w8DdnkabOLGeOVcj9LQ+s67vBykx4anTjURkbqZslUEUsn2k5xeua2zUk= +-----END CERTIFICATE----- diff --git a/library/certs/cacert.pem b/library/certs/cacert.pem index 1ff34f9b5..e4da7fc15 100644 --- a/library/certs/cacert.pem +++ b/library/certs/cacert.pem @@ -3986,3 +3986,33 @@ PDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe/v5WOaHIz16eGWRGENoX kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su -----END CERTIFICATE----- + +Lets Encrypt +============ +-----BEGIN CERTIFICATE----- +MIIEqDCCA5CgAwIBAgIRAJgT9HUT5XULQ+dDHpceRL0wDQYJKoZIhvcNAQELBQAw +PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD +Ew5EU1QgUm9vdCBDQSBYMzAeFw0xNTEwMTkyMjMzMzZaFw0yMDEwMTkyMjMzMzZa +MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD +ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAJzTDPBa5S5Ht3JdN4OzaGMw6tc1Jhkl4b2+NfFwki+3uEtB +BaupnjUIWOyxKsRohwuj43Xk5vOnYnG6eYFgH9eRmp/z0HhncchpDpWRz/7mmelg +PEjMfspNdxIknUcbWuu57B43ABycrHunBerOSuu9QeU2mLnL/W08lmjfIypCkAyG +dGfIf6WauFJhFBM/ZemCh8vb+g5W9oaJ84U/l4avsNwa72sNlRZ9xCugZbKZBDZ1 +gGusSvMbkEl4L6KWTyogJSkExnTA0DHNjzE4lRa6qDO4Q/GxH8Mwf6J5MRM9LTb4 +4/zyM2q5OTHFr8SNDR1kFjOq+oQpttQLwNh9w5MCAwEAAaOCAZIwggGOMBIGA1Ud +EwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMH8GCCsGAQUFBwEBBHMwcTAy +BggrBgEFBQcwAYYmaHR0cDovL2lzcmcudHJ1c3RpZC5vY3NwLmlkZW50cnVzdC5j +b20wOwYIKwYBBQUHMAKGL2h0dHA6Ly9hcHBzLmlkZW50cnVzdC5jb20vcm9vdHMv +ZHN0cm9vdGNheDMucDdjMB8GA1UdIwQYMBaAFMSnsaR7LHH62+FLkHX/xBVghYkQ +MFQGA1UdIARNMEswCAYGZ4EMAQIBMD8GCysGAQQBgt8TAQEBMDAwLgYIKwYBBQUH +AgEWImh0dHA6Ly9jcHMucm9vdC14MS5sZXRzZW5jcnlwdC5vcmcwPAYDVR0fBDUw +MzAxoC+gLYYraHR0cDovL2NybC5pZGVudHJ1c3QuY29tL0RTVFJPT1RDQVgzQ1JM +LmNybDATBgNVHR4EDDAKoQgwBoIELm1pbDAdBgNVHQ4EFgQUqEpqYwR93brm0Tm3 +pkVl7/Oo7KEwDQYJKoZIhvcNAQELBQADggEBANHIIkus7+MJiZZQsY14cCoBG1hd +v0J20/FyWo5ppnfjL78S2k4s2GLRJ7iD9ZDKErndvbNFGcsW+9kKK/TnY21hp4Dd +ITv8S9ZYQ7oaoqs7HwhEMY9sibED4aXw09xrJZTC9zK1uIfW6t5dHQjuOWv+HHoW +ZnupyxpsEUlEaFb+/SCI4KCSBdAsYxAcsHYI5xxEI4LutHp6s3OT2FuO90WfdsIk +6q78OMSdn875bNjdBYAqxUp2/LEIHfDBkLoQz0hFJmwAbYahqKaLn73PAAm1X2kj +f1w8DdnkabOLGeOVcj9LQ+s67vBykx4anTjURkbqZslUEUsn2k5xeua2zUk= +-----END CERTIFICATE----- diff --git a/library/ical.php b/library/ical.php deleted file mode 100644 index 6bb26bad8..000000000 --- a/library/ical.php +++ /dev/null @@ -1,379 +0,0 @@ -<?php -/** - * This PHP-Class should only read a iCal-File (*.ics), parse it and give an - * array with its content. - * - * PHP Version 5 - * - * @category Parser - * @package Ics-parser - * @author Martin Thoma <info@martin-thoma.de> - * @license http://www.opensource.org/licenses/mit-license.php MIT License - * @version SVN: <svn_id> - * @link http://code.google.com/p/ics-parser/ - * @example $ical = new ical('MyCal.ics'); - * print_r( $ical->events() ); - */ - -/** - * This example demonstrates how the Ics-Parser should be used. - * - * PHP Version 5 - * - * @category Example - * @package Ics-parser - * @author Martin Thoma <info@martin-thoma.de> - * @license http://www.opensource.org/licenses/mit-license.php MIT License - * @version SVN: <svn_id> - * @link http://code.google.com/p/ics-parser/ - * @example $ical = new ical('MyCal.ics'); - * print_r( $ical->get_event_array() ); - -require 'class.iCalReader.php'; - -$ical = new ICal('MyCal.ics'); -$events = $ical->events(); - -$date = $events[0]['DTSTART']; -echo "The ical date: "; -echo $date; -echo "<br/>"; - -echo "The Unix timestamp: "; -echo $ical->iCalDateToUnixTimestamp($date); -echo "<br/>"; - -echo "The number of events: "; -echo $ical->event_count; -echo "<br/>"; - -echo "The number of todos: "; -echo $ical->todo_count; -echo "<br/>"; -echo "<hr/><hr/>"; - -foreach ($events as $event) { - echo "SUMMARY: ".$event['SUMMARY']."<br/>"; - echo "DTSTART: ".$event['DTSTART']." - UNIX-Time: ".$ical->iCalDateToUnixTimestamp($event['DTSTART'])."<br/>"; - echo "DTEND: ".$event['DTEND']."<br/>"; - echo "DTSTAMP: ".$event['DTSTAMP']."<br/>"; - echo "UID: ".$event['UID']."<br/>"; - echo "CREATED: ".$event['CREATED']."<br/>"; - echo "DESCRIPTION: ".$event['DESCRIPTION']."<br/>"; - echo "LAST-MODIFIED: ".$event['LAST-MODIFIED']."<br/>"; - echo "LOCATION: ".$event['LOCATION']."<br/>"; - echo "SEQUENCE: ".$event['SEQUENCE']."<br/>"; - echo "STATUS: ".$event['STATUS']."<br/>"; - echo "TRANSP: ".$event['TRANSP']."<br/>"; - echo "<hr/>"; -} - - (end example) - * - * - */ - -// error_reporting(E_ALL); - -/** - * This is the iCal-class - * - * @category Parser - * @package Ics-parser - * @author Martin Thoma <info@martin-thoma.de> - * @license http://www.opensource.org/licenses/mit-license.php MIT License - * @link http://code.google.com/p/ics-parser/ - * - * @param {string} filename The name of the file which should be parsed - * @constructor - */ -class ICal -{ - /* How many ToDos are in this ical? */ - public /** @type {int} */ $todo_count = 0; - - /* How many events are in this ical? */ - public /** @type {int} */ $event_count = 0; - - /* The parsed calendar */ - public /** @type {Array} */ $cal; - - /* Which keyword has been added to cal at last? */ - private /** @type {string} */ $_lastKeyWord; - - /** - * Creates the iCal-Object - * - * @param {string} $filename The path to the iCal-file - * - * @return Object The iCal-Object - */ - public function __construct($filename) - { - if (!$filename) { - return false; - } - - $lines = file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); - if (stristr($lines[0], 'BEGIN:VCALENDAR') === false) { - return false; - } else { - // TODO: Fix multiline-description problem (see http://tools.ietf.org/html/rfc2445#section-4.8.1.5) - foreach ($lines as $line) { - $line = trim($line); - $add = $this->keyValueFromString($line); - if ($add === false) { - $this->addCalendarComponentWithKeyAndValue($type, false, $line); - continue; - } - - list($keyword, $value) = $add; - - switch ($line) { - // http://www.kanzaki.com/docs/ical/vtodo.html - case "BEGIN:VTODO": - $this->todo_count++; - $type = "VTODO"; - break; - - // http://www.kanzaki.com/docs/ical/vevent.html - case "BEGIN:VEVENT": - //echo "vevent gematcht"; - $this->event_count++; - $type = "VEVENT"; - break; - - //all other special strings - case "BEGIN:VCALENDAR": - case "BEGIN:DAYLIGHT": - // http://www.kanzaki.com/docs/ical/vtimezone.html - case "BEGIN:VTIMEZONE": - case "BEGIN:STANDARD": - $type = $value; - break; - case "END:VTODO": // end special text - goto VCALENDAR key - case "END:VEVENT": - case "END:VCALENDAR": - case "END:DAYLIGHT": - case "END:VTIMEZONE": - case "END:STANDARD": - $type = "VCALENDAR"; - break; - default: - $this->addCalendarComponentWithKeyAndValue($type, - $keyword, - $value); - break; - } - } - return $this->cal; - } - } - - /** - * Add to $this->ical array one value and key. - * - * @param {string} $component This could be VTODO, VEVENT, VCALENDAR, ... - * @param {string} $keyword The keyword, for example DTSTART - * @param {string} $value The value, for example 20110105T090000Z - * - * @return {None} - */ - public function addCalendarComponentWithKeyAndValue($component, - $keyword, - $value) - { - if ($keyword == false) { - $keyword = $this->last_keyword; - switch ($component) { - case 'VEVENT': - $value = $this->cal[$component][$this->event_count - 1] - [$keyword].$value; - break; - case 'VTODO' : - $value = $this->cal[$component][$this->todo_count - 1] - [$keyword].$value; - break; - } - } - - if (stristr($keyword, "DTSTART") or stristr($keyword, "DTEND")) { - $keyword = explode(";", $keyword); - $keyword = $keyword[0]; - } - - switch ($component) { - case "VTODO": - $this->cal[$component][$this->todo_count - 1][$keyword] = $value; - //$this->cal[$component][$this->todo_count]['Unix'] = $unixtime; - break; - case "VEVENT": - $this->cal[$component][$this->event_count - 1][$keyword] = $value; - break; - default: - $this->cal[$component][$keyword] = $value; - break; - } - $this->last_keyword = $keyword; - } - - /** - * Get a key-value pair of a string. - * - * @param {string} $text which is like "VCALENDAR:Begin" or "LOCATION:" - * - * @return {array} array("VCALENDAR", "Begin") - */ - public function keyValueFromString($text) - { - preg_match("/([^:]+)[:]([\w\W]*)/", $text, $matches); - if (count($matches) == 0) { - return false; - } - $matches = array_splice($matches, 1, 2); - return $matches; - } - - /** - * Return Unix timestamp from ical date time format - * - * @param {string} $icalDate A Date in the format YYYYMMDD[T]HHMMSS[Z] or - * YYYYMMDD[T]HHMMSS - * - * @return {int} - */ - public function iCalDateToUnixTimestamp($icalDate) - { - $icalDate = str_replace('T', '', $icalDate); - $icalDate = str_replace('Z', '', $icalDate); - - $pattern = '/([0-9]{4})'; // 1: YYYY - $pattern .= '([0-9]{2})'; // 2: MM - $pattern .= '([0-9]{2})'; // 3: DD - $pattern .= '([0-9]{0,2})'; // 4: HH - $pattern .= '([0-9]{0,2})'; // 5: MM - $pattern .= '([0-9]{0,2})/'; // 6: SS - preg_match($pattern, $icalDate, $date); - - // Unix timestamp can't represent dates before 1970 - if ($date[1] <= 1970) { - return false; - } - // Unix timestamps after 03:14:07 UTC 2038-01-19 might cause an overflow - // if 32 bit integers are used. - $timestamp = mktime((int)$date[4], - (int)$date[5], - (int)$date[6], - (int)$date[2], - (int)$date[3], - (int)$date[1]); - return $timestamp; - } - - /** - * Returns an array of arrays with all events. Every event is an associative - * array and each property is an element it. - * - * @return {array} - */ - public function events() - { - $array = $this->cal; - return $array['VEVENT']; - } - - /** - * Returns a boolean value whether thr current calendar has events or not - * - * @return {boolean} - */ - public function hasEvents() - { - return ( count($this->events()) > 0 ? true : false ); - } - - /** - * Returns false when the current calendar has no events in range, else the - * events. - * - * Note that this function makes use of a UNIX timestamp. This might be a - * problem on January the 29th, 2038. - * See http://en.wikipedia.org/wiki/Unix_time#Representing_the_number - * - * @param {boolean} $rangeStart Either true or false - * @param {boolean} $rangeEnd Either true or false - * - * @return {mixed} - */ - public function eventsFromRange($rangeStart = false, $rangeEnd = false) - { - $events = $this->sortEventsWithOrder($this->events(), SORT_ASC); - - if (!$events) { - return false; - } - - $extendedEvents = array(); - - if ($rangeStart !== false) { - $rangeStart = new DateTime(); - } - - if ($rangeEnd !== false or $rangeEnd <= 0) { - $rangeEnd = new DateTime('2038/01/18'); - } else { - $rangeEnd = new DateTime($rangeEnd); - } - - $rangeStart = $rangeStart->format('U'); - $rangeEnd = $rangeEnd->format('U'); - - - - // loop through all events by adding two new elements - foreach ($events as $anEvent) { - $timestamp = $this->iCalDateToUnixTimestamp($anEvent['DTSTART']); - if ($timestamp >= $rangeStart && $timestamp <= $rangeEnd) { - $extendedEvents[] = $anEvent; - } - } - - return $extendedEvents; - } - - /** - * Returns a boolean value whether thr current calendar has events or not - * - * @param {array} $events An array with events. - * @param {array} $sortOrder Either SORT_ASC, SORT_DESC, SORT_REGULAR, - * SORT_NUMERIC, SORT_STRING - * - * @return {boolean} - */ - public function sortEventsWithOrder($events, $sortOrder = SORT_ASC) - { - $extendedEvents = array(); - - // loop through all events by adding two new elements - foreach ($events as $anEvent) { - if (!array_key_exists('UNIX_TIMESTAMP', $anEvent)) { - $anEvent['UNIX_TIMESTAMP'] = - $this->iCalDateToUnixTimestamp($anEvent['DTSTART']); - } - - if (!array_key_exists('REAL_DATETIME', $anEvent)) { - $anEvent['REAL_DATETIME'] = - date("d.m.Y", $anEvent['UNIX_TIMESTAMP']); - } - - $extendedEvents[] = $anEvent; - } - - foreach ($extendedEvents as $key => $value) { - $timestamp[$key] = $value['UNIX_TIMESTAMP']; - } - array_multisort($timestamp, $sortOrder, $extendedEvents); - - return $extendedEvents; - } -} diff --git a/library/twitteroauth.php b/library/twitteroauth.php index a40949534..d6fb1b3a2 100644 --- a/library/twitteroauth.php +++ b/library/twitteroauth.php @@ -6,8 +6,8 @@ * The first PHP Library to support OAuth for Twitter's REST API. */ -/* Load OAuth lib. You can find it at http://oauth.net */ -if(!class_exists('OAuthException')) +/* Load OAuth1 lib. You can find it at http://oauth.net */ +if(!class_exists('OAuth1Exception')) require_once('library/OAuth1.php'); /** @@ -58,10 +58,10 @@ class TwitterOAuth { * construct TwitterOAuth object */ function __construct($consumer_key, $consumer_secret, $oauth_token = NULL, $oauth_token_secret = NULL) { - $this->sha1_method = new OAuthSignatureMethod_HMAC_SHA1(); - $this->consumer = new OAuthConsumer($consumer_key, $consumer_secret); + $this->sha1_method = new OAuth1SignatureMethod_HMAC_SHA1(); + $this->consumer = new OAuth1Consumer($consumer_key, $consumer_secret); if (!empty($oauth_token) && !empty($oauth_token_secret)) { - $this->token = new OAuthConsumer($oauth_token, $oauth_token_secret); + $this->token = new OAuth1Consumer($oauth_token, $oauth_token_secret); } else { $this->token = NULL; } @@ -79,8 +79,8 @@ class TwitterOAuth { $parameters['oauth_callback'] = $oauth_callback; } $request = $this->oAuthRequest($this->requestTokenURL(), 'GET', $parameters); - $token = OAuthUtil::parse_parameters($request); - $this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']); + $token = OAuth1Util::parse_parameters($request); + $this->token = new OAuth1Consumer($token['oauth_token'], $token['oauth_token_secret']); return $token; } @@ -115,8 +115,8 @@ class TwitterOAuth { $parameters['oauth_verifier'] = $oauth_verifier; } $request = $this->oAuthRequest($this->accessTokenURL(), 'GET', $parameters); - $token = OAuthUtil::parse_parameters($request); - $this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']); + $token = OAuth1Util::parse_parameters($request); + $this->token = new OAuth1Consumer($token['oauth_token'], $token['oauth_token_secret']); return $token; } @@ -135,8 +135,8 @@ class TwitterOAuth { $parameters['x_auth_password'] = $password; $parameters['x_auth_mode'] = 'client_auth'; $request = $this->oAuthRequest($this->accessTokenURL(), 'POST', $parameters); - $token = OAuthUtil::parse_parameters($request); - $this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']); + $token = OAuth1Util::parse_parameters($request); + $this->token = new OAuth1Consumer($token['oauth_token'], $token['oauth_token_secret']); return $token; } @@ -180,7 +180,7 @@ class TwitterOAuth { if (strrpos($url, 'https://') !== 0 && strrpos($url, 'http://') !== 0) { $url = "{$this->host}{$url}.{$this->format}"; } - $request = OAuthRequest::from_consumer_and_token($this->consumer, $this->token, $method, $url, $parameters); + $request = OAuth1Request::from_consumer_and_token($this->consumer, $this->token, $method, $url, $parameters); $request->sign_request($this->sha1_method, $this->consumer, $this->token); switch ($method) { case 'GET': diff --git a/mod/admin.php b/mod/admin.php index 4b7cb3cd9..bac0148e0 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -243,7 +243,7 @@ function admin_page_site_post(&$a){ $not_allowed_email = ((x($_POST,'not_allowed_email')) ? notags(trim($_POST['not_allowed_email'])) : ''); $block_public = ((x($_POST,'block_public')) ? True : False); $force_publish = ((x($_POST,'publish_all')) ? True : False); - $disable_discover_tab = ((x($_POST,'disable_discover_tab')) ? True : False); + $disable_discover_tab = ((x($_POST,'disable_discover_tab')) ? False : True); $login_on_homepage = ((x($_POST,'login_on_homepage')) ? True : False); $global_directory = ((x($_POST,'directory_submit_url')) ? notags(trim($_POST['directory_submit_url'])) : ''); $no_community_page = !((x($_POST,'no_community_page')) ? True : False); @@ -425,6 +425,13 @@ function admin_page_site(&$a) { // SSL_POLICY_FULL => t("Force all links to use SSL") // ); + $discover_tab = get_config('system','disable_discover_tab'); + // $disable public streams by default + if($discover_tab === false) + $discover_tab = 1; + // now invert the logic for the setting. + $discover_tab = (1 - $discover_tab); + $homelogin = get_config('system','login_on_homepage'); @@ -461,7 +468,7 @@ function admin_page_site(&$a) { '$block_public' => array('block_public', t("Block public"), get_config('system','block_public'), t("Check to block public access to all otherwise public personal pages on this site unless you are currently logged in.")), '$verify_email' => array('verify_email', t("Verify Email Addresses"), get_config('system','verify_email'), t("Check to verify email addresses used in account registration (recommended).")), '$force_publish' => array('publish_all', t("Force publish"), get_config('system','publish_all'), t("Check to force all profiles on this site to be listed in the site directory.")), - '$disable_discover_tab' => array('disable_discover_tab', t("Disable discovery tab"), get_config('system','disable_discover_tab'), t("Remove the tab in the network view with public content pulled from sources chosen for this site.")), + '$disable_discover_tab' => array('disable_discover_tab', t('Import Public Streams'), $discover_tab, t('Import and allow access to public content pulled from other sites. Warning: this content is unmoderated.')), '$login_on_homepage' => array('login_on_homepage', t("login on Homepage"),((intval($homelogin) || $homelogin === false) ? 1 : '') , t("Present a login box to visitors on the home page if no other content has been configured.")), '$directory_server' => (($dir_choices) ? array('directory_server', t("Directory Server URL"), get_config('system','directory_server'), t("Default directory server"), $dir_choices) : null), diff --git a/mod/api.php b/mod/api.php index 08978ee96..232349292 100644 --- a/mod/api.php +++ b/mod/api.php @@ -35,42 +35,40 @@ function api_post(&$a) { } function api_content(&$a) { - if ($a->cmd=='api/oauth/authorize'){ + if($a->cmd=='api/oauth/authorize'){ + /* * api/oauth/authorize interact with the user. return a standard page */ $a->page['template'] = "minimal"; - - + // get consumer/client from request token try { - $request = OAuthRequest::from_request(); + $request = OAuth1Request::from_request(); } catch(Exception $e) { echo "<pre>"; var_dump($e); killme(); } - if (x($_POST,'oauth_yes')){ + if(x($_POST,'oauth_yes')){ $app = oauth_get_client($request); if (is_null($app)) return "Invalid request. Unknown token."; - $consumer = new OAuthConsumer($app['client_id'], $app['pw'], $app['redirect_uri']); + $consumer = new OAuth1Consumer($app['client_id'], $app['pw'], $app['redirect_uri']); $verifier = md5($app['secret'].local_channel()); set_config("oauth", $verifier, local_channel()); - if ($consumer->callback_url!=null) { + if($consumer->callback_url!=null) { $params = $request->get_parameters(); $glue="?"; if (strstr($consumer->callback_url,$glue)) $glue="?"; - goaway($consumer->callback_url.$glue."oauth_token=".OAuthUtil::urlencode_rfc3986($params['oauth_token'])."&oauth_verifier=".OAuthUtil::urlencode_rfc3986($verifier)); + goaway($consumer->callback_url . $glue . "oauth_token=" . OAuth1Util::urlencode_rfc3986($params['oauth_token']) . "&oauth_verifier=" . OAuth1Util::urlencode_rfc3986($verifier)); killme(); } - - - + $tpl = get_markup_template("oauth_authorize_done.tpl"); $o = replace_macros($tpl, array( '$title' => t('Authorize application connection'), @@ -79,8 +77,6 @@ function api_content(&$a) { )); return $o; - - } diff --git a/mod/cloud.php b/mod/cloud.php index efb33f935..67fc199bf 100644 --- a/mod/cloud.php +++ b/mod/cloud.php @@ -73,36 +73,18 @@ function cloud_init(&$a) { $server->addPlugin($lockPlugin); -/* This next bit should no longer be needed... */ - - // The next section of code allows us to bypass prompting for http-auth if a - // FILE is being accessed anonymously and permissions allow this. This way - // one can create hotlinks to public media files in their cloud and anonymous - // viewers won't get asked to login. - // If a DIRECTORY is accessed or there are permission issues accessing the - // file and we aren't previously authenticated via zot, prompt for HTTP-auth. - // This will be the default case for mounting a DAV directory. - // In order to avoid prompting for passwords for viewing a DIRECTORY, add - // the URL query parameter 'davguest=1'. - -// $isapublic_file = false; -// $davguest = ((x($_SESSION, 'davguest')) ? true : false); - -// if ((! $auth->observer) && ($_SERVER['REQUEST_METHOD'] === 'GET')) { -// try { -// $x = RedFileData('/' . $a->cmd, $auth); -// if($x instanceof RedDAV\RedFile) -// $isapublic_file = true; -// } -// catch (Exception $e) { -// $isapublic_file = false; -// } -// } - -// if ((! $auth->observer) && (! $isapublic_file) && (! $davguest)) { -// logger('mod_cloud: auth exception'); -// http_status_exit(401, 'Permission denied.'); -// } + $is_readable = false; + + if($_SERVER['REQUEST_METHOD'] === 'GET') { + try { + $x = RedFileData('/' . $a->cmd, $auth); + } + catch(\Exception $e) { + if($e instanceof Sabre\DAV\Exception\Forbidden) { + http_status_exit(401, 'Permission denied.'); + } + } + } require_once('include/RedDAV/RedBrowser.php'); // provide a directory view for the cloud in Hubzilla diff --git a/mod/fbrowser.php b/mod/fbrowser.php index 90b554edd..13abbfd8a 100644 --- a/mod/fbrowser.php +++ b/mod/fbrowser.php @@ -57,13 +57,8 @@ function fbrowser_content($a){ $types = $ph->supportedTypes(); $ext = $types[$rr['type']]; - if($a->get_template_engine() === 'internal') { - $filename_e = template_escape($rr['filename']); - } - else { - $filename_e = $rr['filename']; - } - + $filename_e = $rr['filename']; + return array( $a->get_baseurl() . '/photo/' . $rr['resource_id'] . '-' . $rr['hiq'] . '.' .$ext, $filename_e, diff --git a/mod/home.php b/mod/home.php index bf2463bbc..bfac17eab 100644 --- a/mod/home.php +++ b/mod/home.php @@ -72,7 +72,7 @@ function home_content(&$a, $update = 0, $load = false) { $sitename = get_config('system','sitename'); if($sitename) - $o .= '<h1>' . sprintf( t("Welcome to %s") ,$sitename) . '</h1>'; + $o .= '<h1 class="home-welcome">' . sprintf( t("Welcome to %s") ,$sitename) . '</h1>'; $loginbox = get_config('system','login_on_homepage'); if(intval($loginbox) || $loginbox === false) diff --git a/mod/invite.php b/mod/invite.php index 1af5fc1f8..e8bb74ee2 100644 --- a/mod/invite.php +++ b/mod/invite.php @@ -50,23 +50,6 @@ function invite_post(&$a) { continue; } - if($invonly && ($x || is_site_admin())) { - $code = autoname(8) . rand(1000,9999); - $nmessage = str_replace('$invite_code',$code,$message); - - $r = q("INSERT INTO `register` (`hash`,`created`) VALUES ('%s', '%s') ", - dbesc($code), - dbesc(datetime_convert()) - ); - - if(! is_site_admin()) { - $x --; - if($x >= 0) - set_pconfig(local_channel(),'system','invites_remaining',$x); - else - return; - } - } else $nmessage = $message; @@ -117,6 +100,23 @@ function invite_content(&$a) { } } + if($invonly && ($x || is_site_admin())) { + $invite_code = autoname(8) . rand(1000,9999); + $nmessage = str_replace('$invite_code',$invite_code,$message); + + $r = q("INSERT INTO `register` (`hash`,`created`) VALUES ('%s', '%s') ", + dbesc($invite_code), + dbesc(datetime_convert()) + ); + + if(! is_site_admin()) { + $x --; + if($x >= 0) + set_pconfig(local_channel(),'system','invites_remaining',$x); + else + return; + } + } $ob = $a->get_observer(); if(! $ob) diff --git a/mod/item.php b/mod/item.php index f32ff8844..b3ef57529 100644 --- a/mod/item.php +++ b/mod/item.php @@ -107,6 +107,7 @@ function item_post(&$a) { $layout_mid = ((x($_REQUEST,'layout_mid')) ? escape_tags($_REQUEST['layout_mid']): ''); $plink = ((x($_REQUEST,'permalink')) ? escape_tags($_REQUEST['permalink']) : ''); $obj_type = ((x($_REQUEST,'obj_type')) ? escape_tags($_REQUEST['obj_type']) : ACTIVITY_OBJ_NOTE); + // allow API to bulk load a bunch of imported items with sending out a bunch of posts. $nopush = ((x($_REQUEST,'nopush')) ? intval($_REQUEST['nopush']) : 0); diff --git a/mod/photos.php b/mod/photos.php index 5b3367d40..b0d9bc631 100644 --- a/mod/photos.php +++ b/mod/photos.php @@ -698,12 +698,7 @@ function photos_content(&$a) { $album_edit = null; if(($album !== t('Profile Photos')) && ($album !== 'Profile Photos') && ($album !== 'Contact Photos') && ($album !== t('Contact Photos'))) { if($can_post) { - if($a->get_template_engine() === 'internal') { - $album_e = template_escape($album); - } - else { - $album_e = $album; - } + $album_e = $album; $albums = ((array_key_exists('albums', $a->data)) ? $a->data['albums'] : photos_albums_list($a->data['channel'],$a->data['observer'])); // @fixme - syncronise actions with DAV diff --git a/mod/post.php b/mod/post.php index d1a53e7a6..6555a16c2 100644 --- a/mod/post.php +++ b/mod/post.php @@ -9,478 +9,15 @@ require_once('include/zot.php'); -/** - * @brief HTTP POST entry point for Zot. - * - * Most access to this endpoint is via the post method. - * Here we will pick out the magic auth params which arrive as a get request, - * and the only communications to arrive this way. - * - * Magic Auth - * ========== - * - * So-called "magic auth" takes place by a special exchange. On the site where the "channel to be authenticated" lives (e.g. $mysite), - * a redirection is made via $mysite/magic to the zot endpoint of the remote site ($remotesite) with special GET parameters. - * - * The endpoint is typically https://$remotesite/post - or whatever was specified as the callback url in prior communications - * (we will bootstrap an address and fetch a zot info packet if possible where no prior communications exist) - * - * Five GET parameters are supplied: - * * auth => the urlencoded webbie (channel@host.domain) of the channel requesting access - * * dest => the desired destination URL (urlencoded) - * * sec => a random string which is also stored on $mysite for use during the verification phase. - * * version => the zot revision - * * delegate => optional urlencoded webbie of a local channel to invoke delegation rights for - * - * When this packet is received, an "auth-check" zot message is sent to $mysite. - * (e.g. if $_GET['auth'] is foobar@podunk.edu, a zot packet is sent to the podunk.edu zot endpoint, which is typically /post) - * If no information has been recorded about the requesting identity a zot information packet will be retrieved before - * continuing. - * - * The sender of this packet is an arbitrary/random site channel. The recipients will be a single recipient corresponding - * to the guid and guid_sig we have associated with the requesting auth identity - * - * \code{.json} - * { - * "type":"auth_check", - * "sender":{ - * "guid":"kgVFf_...", - * "guid_sig":"PT9-TApz...", - * "url":"http:\/\/podunk.edu", - * "url_sig":"T8Bp7j..." - * }, - * "recipients":{ - * { - * "guid":"ZHSqb...", - * "guid_sig":"JsAAXi..." - * } - * } - * "callback":"\/post", - * "version":1, - * "secret":"1eaa661", - * "secret_sig":"eKV968b1..." - * } - * \endcode - * - * auth_check messages MUST use encapsulated encryption. This message is sent to the origination site, which checks the 'secret' to see - * if it is the same as the 'sec' which it passed originally. It also checks the secret_sig which is the secret signed by the - * destination channel's private key and base64url encoded. If everything checks out, a json packet is returned: - * - * \code{.json} - * { - * "success":1, - * "confirm":"q0Ysovd1u...", - * "service_class":(optional) - * "level":(optional) - * } - * \endcode - * - * 'confirm' in this case is the base64url encoded RSA signature of the concatenation of 'secret' with the - * base64url encoded whirlpool hash of the requestor's guid and guid_sig; signed with the source channel private key. - * This prevents a man-in-the-middle from inserting a rogue success packet. Upon receipt and successful - * verification of this packet, the destination site will redirect to the original destination URL and indicate a successful remote login. - * Service_class can be used by cooperating sites to provide different access rights based on account rights and subscription plans. It is - * a string whose contents are not defined by protocol. Example: "basic" or "gold". - * - * @param[in,out] App &$a - */ function post_init(&$a) { if (array_key_exists('auth', $_REQUEST)) { - - $ret = array('success' => false, 'message' => ''); - - logger('mod_zot: auth request received.'); - $address = $_REQUEST['auth']; - $desturl = $_REQUEST['dest']; - $sec = $_REQUEST['sec']; - $version = $_REQUEST['version']; - $delegate = $_REQUEST['delegate']; - - $test = ((x($_REQUEST, 'test')) ? intval($_REQUEST['test']) : 0); - - // They are authenticating ultimately to the site and not to a particular channel. - // Any channel will do, providing it's currently active. We just need to have an - // identity to attach to the packet we send back. So find one. - - $c = q("select * from channel where channel_removed = 0 limit 1"); - - if (! $c) { - // nobody here - logger('mod_zot: auth: unable to find a response channel'); - if ($test) { - $ret['message'] .= 'no local channels found.' . EOL; - json_return_and_die($ret); - } - - goaway($desturl); - } - - // Try and find a hubloc for the person attempting to auth - $x = q("select * from hubloc left join xchan on xchan_hash = hubloc_hash where hubloc_addr = '%s' order by hubloc_id desc", - dbesc($address) - ); - - if (! $x) { - // finger them if they can't be found. - $ret = zot_finger($address, null); - if ($ret['success']) { - $j = json_decode($ret['body'], true); - if ($j) - import_xchan($j); - $x = q("select * from hubloc left join xchan on xchan_hash = hubloc_hash where hubloc_addr = '%s' order by hubloc_id desc", - dbesc($address) - ); - } - } - if(! $x) { - logger('mod_zot: auth: unable to finger ' . $address); - - if($test) { - $ret['message'] .= 'no hubloc found for ' . $address . ' and probing failed.' . EOL; - json_return_and_die($ret); - } - - goaway($desturl); - } - - - foreach($x as $xx) { - logger('mod_zot: auth request received from ' . $xx['hubloc_addr'] ); - - // check credentials and access - - // If they are already authenticated and haven't changed credentials, - // we can save an expensive network round trip and improve performance. - - $remote = remote_channel(); - $result = null; - $remote_service_class = ''; - $remote_level = 0; - $remote_hub = $xx['hubloc_url']; - $DNT = 0; - - // Also check that they are coming from the same site as they authenticated with originally. - - $already_authed = ((($remote) && ($xx['hubloc_hash'] == $remote) && ($xx['hubloc_url'] === $_SESSION['remote_hub'])) ? true : false); - if($delegate && $delegate !== $_SESSION['delegate_channel']) - $already_authed = false; - - $j = array(); - - if (! $already_authed) { - - // Auth packets MUST use ultra top-secret hush-hush mode - e.g. the entire packet is encrypted using the site private key - // The actual channel sending the packet ($c[0]) is not important, but this provides a generic zot packet with a sender - // which can be verified - - $p = zot_build_packet($c[0],$type = 'auth_check', array(array('guid' => $xx['hubloc_guid'],'guid_sig' => $xx['hubloc_guid_sig'])), $xx['hubloc_sitekey'], $sec); - if ($test) { - $ret['message'] .= 'auth check packet created using sitekey ' . $xx['hubloc_sitekey'] . EOL; - $ret['message'] .= 'packet contents: ' . $p . EOL; - } - - $result = zot_zot($xx['hubloc_callback'],$p); - - if (! $result['success']) { - logger('mod_zot: auth_check callback failed.'); - if ($test) { - $ret['message'] .= 'auth check request to your site returned .' . print_r($result, true) . EOL; - continue; - } - continue; - } - $j = json_decode($result['body'], true); - if (! $j) { - logger('mod_zot: auth_check json data malformed.'); - if($test) { - $ret['message'] .= 'json malformed: ' . $result['body'] . EOL; - continue; - } - } - } - - if ($test) { - $ret['message'] .= 'auth check request returned .' . print_r($j, true) . EOL; - } - - if ($already_authed || $j['success']) { - if ($j['success']) { - // legit response, but we do need to check that this wasn't answered by a man-in-middle - if (! rsa_verify($sec . $xx['xchan_hash'],base64url_decode($j['confirm']),$xx['xchan_pubkey'])) { - logger('mod_zot: auth: final confirmation failed.'); - if ($test) { - $ret['message'] .= 'final confirmation failed. ' . $sec . print_r($j,true) . print_r($xx,true); - continue; - } - - continue; - } - if (array_key_exists('service_class',$j)) - $remote_service_class = $j['service_class']; - if (array_key_exists('level',$j)) - $remote_level = $j['level']; - if (array_key_exists('DNT',$j)) - $DNT = $j['DNT']; - } - // everything is good... maybe - if(local_channel()) { - - // tell them to logout if they're logged in locally as anything but the target remote account - // in which case just shut up because they don't need to be doing this at all. - - if ($a->channel['channel_hash'] != $xx['xchan_hash']) { - logger('mod_zot: auth: already authenticated locally as somebody else.'); - notice( t('Remote authentication blocked. You are logged into this site locally. Please logout and retry.') . EOL); - if ($test) { - $ret['message'] .= 'already logged in locally with a conflicting identity.' . EOL; - continue; - } - } - continue; - } - - // log them in - - if ($test) { - $ret['success'] = true; - $ret['message'] .= 'Authentication Success!' . EOL; - json_return_and_die($ret); - } - - $delegation_success = false; - if ($delegate) { - $r = q("select * from channel left join xchan on channel_hash = xchan_hash where xchan_addr = '%s' limit 1", - dbesc($delegate) - ); - if ($r && intval($r[0]['channel_id'])) { - $allowed = perm_is_allowed($r[0]['channel_id'],$xx['xchan_hash'],'delegate'); - if ($allowed) { - $_SESSION['delegate_channel'] = $r[0]['channel_id']; - $_SESSION['delegate'] = $xx['xchan_hash']; - $_SESSION['account_id'] = intval($r[0]['channel_account_id']); - require_once('include/security.php'); - change_channel($r[0]['channel_id']); - $delegation_success = true; - } - } - } - - $_SESSION['authenticated'] = 1; - if (! $delegation_success) { - $_SESSION['visitor_id'] = $xx['xchan_hash']; - $_SESSION['my_url'] = $xx['xchan_url']; - $_SESSION['my_address'] = $address; - $_SESSION['remote_service_class'] = $remote_service_class; - $_SESSION['remote_level'] = $remote_level; - $_SESSION['remote_hub'] = $remote_hub; - $_SESSION['DNT'] = $DNT; - } - - $arr = array('xchan' => $xx, 'url' => $desturl, 'session' => $_SESSION); - call_hooks('magic_auth_success',$arr); - $a->set_observer($xx); - require_once('include/security.php'); - $a->set_groups(init_groups_visitor($_SESSION['visitor_id'])); - info(sprintf( t('Welcome %s. Remote authentication successful.'),$xx['xchan_name'])); - logger('mod_zot: auth success from ' . $xx['xchan_addr']); - } - else { - if ($test) { - $ret['message'] .= 'auth failure. ' . print_r($_REQUEST,true) . print_r($j,true) . EOL; - continue; - } - logger('mod_zot: magic-auth failure - not authenticated: ' . $xx['xchan_addr']); - } - - if ($test) { - $ret['message'] .= 'auth failure fallthrough ' . print_r($_REQUEST,true) . print_r($j,true) . EOL; - continue; - } - } - - /** - * @FIXME we really want to save the return_url in the session before we - * visit rmagic. This does however prevent a recursion if you visit - * rmagic directly, as it would otherwise send you back here again. - * But z_root() probably isn't where you really want to go. - */ - - if(strstr($desturl,z_root() . '/rmagic')) - goaway(z_root()); - - if ($test) { - json_return_and_die($ret); - } - - goaway($desturl); + require_once('Zotlabs/Zot/Auth.php'); + $x = new Zotlabs\Zot\Auth($_REQUEST); + exit; } -} - -/** - * @brief zot communications and messaging. - * - * Sender HTTP posts to this endpoint ($site/post typically) with 'data' parameter set to json zot message packet. - * This packet is optionally encrypted, which we will discover if the json has an 'iv' element. - * $contents => array( 'alg' => 'aes256cbc', 'iv' => initialisation vector, 'key' => decryption key, 'data' => encrypted data); - * $contents->iv and $contents->key are random strings encrypted with this site's RSA public key and then base64url encoded. - * Currently only 'aes256cbc' is used, but this is extensible should that algorithm prove inadequate. - * - * Once decrypted, one will find the normal json_encoded zot message packet. - * - * Defined packet types are: notify, purge, refresh, force_refresh, auth_check, ping, and pickup - * - * Standard packet: (used by notify, purge, refresh, force_refresh, and auth_check) - * \code{.json} - * { - * "type": "notify", - * "sender":{ - * "guid":"kgVFf_1...", - * "guid_sig":"PT9-TApzp...", - * "url":"http:\/\/podunk.edu", - * "url_sig":"T8Bp7j5...", - * }, - * "recipients": { optional recipient array }, - * "callback":"\/post", - * "version":1, - * "secret":"1eaa...", - * "secret_sig": "df89025470fac8..." - * } - * \endcode - * - * Signature fields are all signed with the sender channel private key and base64url encoded. - * Recipients are arrays of guid and guid_sig, which were previously signed with the recipients private - * key and base64url encoded and later obtained via channel discovery. Absence of recipients indicates - * a public message or visible to all potential listeners on this site. - * - * "pickup" packet: - * The pickup packet is sent in response to a notify packet from another site - * \code{.json} - * { - * "type":"pickup", - * "url":"http:\/\/example.com", - * "callback":"http:\/\/example.com\/post", - * "callback_sig":"teE1_fLI...", - * "secret":"1eaa...", - * "secret_sig":"O7nB4_..." - * } - * \endcode - * - * In the pickup packet, the sig fields correspond to the respective data - * element signed with this site's system private key and then base64url encoded. - * The "secret" is the same as the original secret from the notify packet. - * - * If verification is successful, a json structure is returned containing a - * success indicator and an array of type 'pickup'. - * Each pickup element contains the original notify request and a message field - * whose contents are dependent on the message type. - * - * This JSON array is AES encapsulated using the site public key of the site - * that sent the initial zot pickup packet. - * Using the above example, this would be example.com. - * - * \code{.json} - * { - * "success":1, - * "pickup":{ - * "notify":{ - * "type":"notify", - * "sender":{ - * "guid":"kgVFf_...", - * "guid_sig":"PT9-TApz...", - * "url":"http:\/\/z.podunk.edu", - * "url_sig":"T8Bp7j5D..." - * }, - * "callback":"\/post", - * "version":1, - * "secret":"1eaa661..." - * }, - * "message":{ - * "type":"activity", - * "message_id":"10b049ce384cbb2da9467319bc98169ab36290b8bbb403aa0c0accd9cb072e76@podunk.edu", - * "message_top":"10b049ce384cbb2da9467319bc98169ab36290b8bbb403aa0c0accd9cb072e76@podunk.edu", - * "message_parent":"10b049ce384cbb2da9467319bc98169ab36290b8bbb403aa0c0accd9cb072e76@podunk.edu", - * "created":"2012-11-20 04:04:16", - * "edited":"2012-11-20 04:04:16", - * "title":"", - * "body":"Hi Nickordo", - * "app":"", - * "verb":"post", - * "object_type":"", - * "target_type":"", - * "permalink":"", - * "location":"", - * "longlat":"", - * "owner":{ - * "name":"Indigo", - * "address":"indigo@podunk.edu", - * "url":"http:\/\/podunk.edu", - * "photo":{ - * "mimetype":"image\/jpeg", - * "src":"http:\/\/podunk.edu\/photo\/profile\/m\/5" - * }, - * "guid":"kgVFf_...", - * "guid_sig":"PT9-TAp...", - * }, - * "author":{ - * "name":"Indigo", - * "address":"indigo@podunk.edu", - * "url":"http:\/\/podunk.edu", - * "photo":{ - * "mimetype":"image\/jpeg", - * "src":"http:\/\/podunk.edu\/photo\/profile\/m\/5" - * }, - * "guid":"kgVFf_...", - * "guid_sig":"PT9-TAp..." - * } - * } - * } - * } - * \endcode - * - * Currently defined message types are 'activity', 'mail', 'profile', 'location' - * and 'channel_sync', which each have different content schemas. - * - * Ping packet: - * A ping packet does not require any parameters except the type. It may or may - * not be encrypted. - * - * \code{.json} - * { - * "type": "ping" - * } - * \endcode - * - * On receipt of a ping packet a ping response will be returned: - * - * \code{.json} - * { - * "success" : 1, - * "site" { - * "url": "http:\/\/podunk.edu", - * "url_sig": "T8Bp7j5...", - * "sitekey": "-----BEGIN PUBLIC KEY----- - * MIICIjANBgkqhkiG9w0BAQE..." - * } - * } - * \endcode - * - * The ping packet can be used to verify that a site has not been re-installed, and to - * initiate corrective action if it has. The url_sig is signed with the site private key - * and base64url encoded - and this should verify with the enclosed sitekey. Failure to - * verify indicates the site is corrupt or otherwise unable to communicate using zot. - * This return packet is not otherwise verified, so should be compared with other - * results obtained from this site which were verified prior to taking action. For instance - * if you have one verified result with this signature and key, and other records for this - * url which have different signatures and keys, it indicates that the site was re-installed - * and corrective action may commence (remove or mark invalid any entries with different - * signatures). - * If you have no records which match this url_sig and key - no corrective action should - * be taken as this packet may have been returned by an imposter. - * - * @param[in,out] App &$a - */ +} function post_post(&$a) { diff --git a/mod/subthread.php b/mod/subthread.php index 74d742b6a..ce087806e 100755 --- a/mod/subthread.php +++ b/mod/subthread.php @@ -147,7 +147,6 @@ function subthread_content(&$a) { $arr['deny_cid'] = $item['deny_cid']; $arr['deny_gid'] = $item['deny_gid']; - $post = item_store($arr); $post_id = $post['item_id']; diff --git a/mod/wall_attach.php b/mod/wall_attach.php index 8677c2b83..f52a4f2e5 100644 --- a/mod/wall_attach.php +++ b/mod/wall_attach.php @@ -6,14 +6,16 @@ require_once('include/photos.php'); function wall_attach_post(&$a) { - if(argc() > 1) - $channel = get_channel_by_nick(argv(1)); - elseif($_FILES['media']) { - require_once('include/api.php'); - $user_info = api_get_user($a); + $using_api = false; + + if($a->data['api_info'] && array_key_exists('media',$_FILES)) { + $using_api = true; + $user_info = $a->data['api_info']; $nick = $user_info['screen_name']; $channel = get_channel_by_nick($user_info['screen_name']); - } + } + elseif(argc() > 1) + $channel = get_channel_by_nick(argv(1)); if(! $channel) killme(); @@ -49,12 +51,16 @@ function wall_attach_post(&$a) { } if(intval($r['data']['is_photo'])) { - echo "\n\n" . $r['body'] . "\n\n"; - if($using_api) - return; - killme(); + $s = "\n\n" . $r['body'] . "\n\n"; + } + else { + $s = "\n\n" . '[attachment]' . $r['data']['hash'] . ',' . $r['data']['revision'] . '[/attachment]' . "\n"; } - echo "\n\n" . '[attachment]' . $r['data']['hash'] . ',' . $r['data']['revision'] . '[/attachment]' . "\n"; + + if($using_api) + return $s; + + echo $s; killme(); } diff --git a/util/hmessages.po b/util/hmessages.po index 2cd008851..9357552b3 100644 --- a/util/hmessages.po +++ b/util/hmessages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 2015-12-04.1236\n" +"Project-Id-Version: 2015-12-11.1243\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-12-04 00:03-0800\n" +"POT-Creation-Date: 2015-12-11 00:03-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../../include/Contact.php:101 ../../include/identity.php:953 +#: ../../include/Contact.php:101 ../../include/identity.php:947 #: ../../include/widgets.php:137 ../../include/widgets.php:175 #: ../../include/conversation.php:953 ../../mod/match.php:64 #: ../../mod/directory.php:318 ../../mod/suggest.php:52 @@ -76,25 +76,25 @@ msgstr "" #: ../../mod/editwebpage.php:125 ../../mod/profile.php:64 #: ../../mod/profile.php:72 ../../mod/api.php:26 ../../mod/api.php:31 #: ../../mod/fsuggest.php:78 ../../mod/sources.php:66 -#: ../../mod/notifications.php:66 ../../mod/photos.php:70 -#: ../../mod/profile_photo.php:341 ../../mod/profile_photo.php:354 -#: ../../mod/thing.php:271 ../../mod/thing.php:291 ../../mod/thing.php:328 -#: ../../mod/editblock.php:65 ../../mod/network.php:12 -#: ../../mod/pdledit.php:21 ../../mod/register.php:72 +#: ../../mod/notifications.php:66 ../../mod/invite.php:13 +#: ../../mod/invite.php:87 ../../mod/profile_photo.php:341 +#: ../../mod/profile_photo.php:354 ../../mod/thing.php:271 +#: ../../mod/thing.php:291 ../../mod/thing.php:328 ../../mod/editblock.php:65 +#: ../../mod/network.php:12 ../../mod/pdledit.php:21 ../../mod/register.php:72 #: ../../mod/editlayout.php:63 ../../mod/editlayout.php:87 #: ../../mod/settings.php:568 ../../mod/webpages.php:69 #: ../../mod/appman.php:66 ../../mod/layouts.php:69 ../../mod/layouts.php:76 -#: ../../mod/layouts.php:87 ../../mod/locs.php:83 ../../mod/invite.php:13 -#: ../../mod/invite.php:104 ../../mod/regmod.php:17 ../../mod/channel.php:100 -#: ../../mod/channel.php:214 ../../mod/channel.php:254 -#: ../../mod/editpost.php:13 ../../mod/chat.php:94 ../../mod/chat.php:99 -#: ../../mod/viewsrc.php:14 ../../mod/authtest.php:13 -#: ../../mod/connections.php:29 ../../mod/manage.php:6 ../../mod/menu.php:74 -#: ../../mod/mail.php:118 ../../mod/service_limits.php:7 -#: ../../mod/suggest.php:26 ../../mod/events.php:260 ../../mod/message.php:16 -#: ../../mod/block.php:22 ../../mod/block.php:72 ../../mod/mitem.php:111 -#: ../../mod/sharedwithme.php:7 ../../mod/viewconnections.php:22 -#: ../../mod/viewconnections.php:27 ../../index.php:182 ../../index.php:365 +#: ../../mod/layouts.php:87 ../../mod/locs.php:83 ../../mod/regmod.php:17 +#: ../../mod/channel.php:100 ../../mod/channel.php:214 +#: ../../mod/channel.php:254 ../../mod/photos.php:70 ../../mod/editpost.php:13 +#: ../../mod/chat.php:94 ../../mod/chat.php:99 ../../mod/viewsrc.php:14 +#: ../../mod/authtest.php:13 ../../mod/connections.php:29 +#: ../../mod/manage.php:6 ../../mod/menu.php:74 ../../mod/mail.php:126 +#: ../../mod/service_limits.php:7 ../../mod/suggest.php:26 +#: ../../mod/events.php:260 ../../mod/message.php:16 ../../mod/block.php:22 +#: ../../mod/block.php:72 ../../mod/mitem.php:111 ../../mod/sharedwithme.php:7 +#: ../../mod/viewconnections.php:22 ../../mod/viewconnections.php:27 +#: ../../index.php:182 ../../index.php:365 msgid "Permission denied." msgstr "" @@ -148,16 +148,16 @@ msgstr "" msgid "Schedule Outbox" msgstr "" -#: ../../include/RedDAV/RedBrowser.php:164 ../../include/widgets.php:1331 +#: ../../include/RedDAV/RedBrowser.php:164 ../../include/widgets.php:1330 #: ../../include/conversation.php:1027 ../../include/apps.php:360 -#: ../../include/apps.php:415 ../../mod/photos.php:759 -#: ../../mod/photos.php:1198 +#: ../../include/apps.php:415 ../../mod/photos.php:754 +#: ../../mod/photos.php:1195 msgid "Unknown" msgstr "" #: ../../include/RedDAV/RedBrowser.php:226 ../../include/conversation.php:1629 #: ../../include/nav.php:93 ../../include/apps.php:135 -#: ../../mod/fbrowser.php:114 +#: ../../mod/fbrowser.php:109 msgid "Files" msgstr "" @@ -178,12 +178,12 @@ msgstr "" #: ../../include/RedDAV/RedBrowser.php:231 #: ../../include/RedDAV/RedBrowser.php:305 ../../include/widgets.php:1343 -#: ../../mod/photos.php:784 ../../mod/photos.php:1317 -#: ../../mod/profile_photo.php:453 +#: ../../mod/profile_photo.php:453 ../../mod/photos.php:781 +#: ../../mod/photos.php:1316 msgid "Upload" msgstr "" -#: ../../include/RedDAV/RedBrowser.php:235 ../../mod/admin.php:974 +#: ../../include/RedDAV/RedBrowser.php:235 ../../mod/admin.php:981 #: ../../mod/settings.php:588 ../../mod/settings.php:614 #: ../../mod/sharedwithme.php:95 msgid "Name" @@ -218,10 +218,10 @@ msgstr "" #: ../../include/RedDAV/RedBrowser.php:241 ../../include/conversation.php:657 #: ../../include/ItemObject.php:120 ../../include/apps.php:260 #: ../../mod/group.php:173 ../../mod/blocks.php:155 ../../mod/connedit.php:551 -#: ../../mod/editwebpage.php:223 ../../mod/photos.php:1129 -#: ../../mod/thing.php:258 ../../mod/editblock.php:181 ../../mod/admin.php:809 -#: ../../mod/admin.php:968 ../../mod/editlayout.php:179 -#: ../../mod/settings.php:649 ../../mod/webpages.php:183 +#: ../../mod/editwebpage.php:223 ../../mod/thing.php:258 +#: ../../mod/editblock.php:181 ../../mod/admin.php:816 ../../mod/admin.php:975 +#: ../../mod/editlayout.php:179 ../../mod/settings.php:649 +#: ../../mod/webpages.php:183 ../../mod/photos.php:1126 msgid "Delete" msgstr "" @@ -252,7 +252,7 @@ msgid "Delete this item?" msgstr "" #: ../../include/js_strings.php:6 ../../include/ItemObject.php:696 -#: ../../mod/photos.php:1047 ../../mod/photos.php:1165 +#: ../../mod/photos.php:1044 ../../mod/photos.php:1162 msgid "Comment" msgstr "" @@ -325,17 +325,17 @@ msgstr "" #: ../../mod/poke.php:171 ../../mod/profiles.php:675 #: ../../mod/connedit.php:715 ../../mod/fsuggest.php:108 #: ../../mod/sources.php:104 ../../mod/sources.php:138 -#: ../../mod/import.php:527 ../../mod/photos.php:637 ../../mod/photos.php:1008 -#: ../../mod/photos.php:1048 ../../mod/photos.php:1166 ../../mod/thing.php:313 +#: ../../mod/import.php:527 ../../mod/invite.php:142 ../../mod/thing.php:313 #: ../../mod/thing.php:359 ../../mod/import_items.php:122 -#: ../../mod/pdledit.php:58 ../../mod/admin.php:435 ../../mod/admin.php:802 -#: ../../mod/admin.php:966 ../../mod/admin.php:1103 ../../mod/admin.php:1297 -#: ../../mod/admin.php:1382 ../../mod/settings.php:586 +#: ../../mod/pdledit.php:58 ../../mod/admin.php:442 ../../mod/admin.php:809 +#: ../../mod/admin.php:973 ../../mod/admin.php:1110 ../../mod/admin.php:1304 +#: ../../mod/admin.php:1389 ../../mod/settings.php:586 #: ../../mod/settings.php:698 ../../mod/settings.php:726 #: ../../mod/settings.php:749 ../../mod/settings.php:834 #: ../../mod/settings.php:1023 ../../mod/appman.php:99 ../../mod/locs.php:116 -#: ../../mod/invite.php:142 ../../mod/xchan.php:11 ../../mod/chat.php:184 -#: ../../mod/chat.php:213 ../../mod/mail.php:372 ../../mod/events.php:461 +#: ../../mod/xchan.php:11 ../../mod/photos.php:637 ../../mod/photos.php:1005 +#: ../../mod/photos.php:1045 ../../mod/photos.php:1163 ../../mod/chat.php:184 +#: ../../mod/chat.php:213 ../../mod/mail.php:380 ../../mod/events.php:461 #: ../../mod/events.php:658 ../../mod/mitem.php:231 #: ../../view/theme/redbasic/php/config.php:99 msgid "Submit" @@ -663,8 +663,8 @@ msgid "Visible to specific connections." msgstr "" #: ../../include/items.php:4319 ../../mod/filestorage.php:27 -#: ../../mod/thing.php:86 ../../mod/admin.php:127 ../../mod/admin.php:1005 -#: ../../mod/admin.php:1210 ../../mod/display.php:36 ../../mod/viewsrc.php:20 +#: ../../mod/thing.php:86 ../../mod/admin.php:127 ../../mod/admin.php:1012 +#: ../../mod/admin.php:1217 ../../mod/display.php:36 ../../mod/viewsrc.php:20 msgid "Item not found." msgstr "" @@ -690,36 +690,6 @@ msgstr "" msgid "Connection not found." msgstr "" -#: ../../include/network.php:630 -msgid "view full size" -msgstr "" - -#: ../../include/network.php:1608 ../../include/enotify.php:57 -msgid "$Projectname Notification" -msgstr "" - -#: ../../include/network.php:1609 ../../include/enotify.php:58 -msgid "$projectname" -msgstr "" - -#: ../../include/network.php:1611 ../../include/enotify.php:60 -msgid "Thank You," -msgstr "" - -#: ../../include/network.php:1613 ../../include/enotify.php:62 -#, php-format -msgid "%s Administrator" -msgstr "" - -#: ../../include/network.php:1655 ../../include/account.php:316 -#: ../../include/account.php:343 ../../include/account.php:403 -msgid "Administrator" -msgstr "" - -#: ../../include/network.php:1669 -msgid "No Subject" -msgstr "" - #: ../../include/event.php:22 ../../include/bb2diaspora.php:471 #: ../../include/text.php:1392 msgid "l F d, Y \\@ g:i A" @@ -735,7 +705,7 @@ msgstr "" msgid "Finishes:" msgstr "" -#: ../../include/event.php:52 ../../include/identity.php:1004 +#: ../../include/event.php:52 ../../include/identity.php:998 #: ../../include/bb2diaspora.php:493 ../../include/text.php:1407 #: ../../mod/directory.php:304 msgid "Location:" @@ -830,206 +800,206 @@ msgstr "" msgid "Requested profile is not available." msgstr "" -#: ../../include/identity.php:966 ../../mod/profiles.php:782 +#: ../../include/identity.php:960 ../../mod/profiles.php:782 msgid "Change profile photo" msgstr "" -#: ../../include/identity.php:972 +#: ../../include/identity.php:966 msgid "Profiles" msgstr "" -#: ../../include/identity.php:972 +#: ../../include/identity.php:966 msgid "Manage/edit profiles" msgstr "" -#: ../../include/identity.php:973 ../../mod/profiles.php:783 +#: ../../include/identity.php:967 ../../mod/profiles.php:783 msgid "Create New Profile" msgstr "" -#: ../../include/identity.php:976 ../../include/nav.php:90 +#: ../../include/identity.php:970 ../../include/nav.php:90 msgid "Edit Profile" msgstr "" -#: ../../include/identity.php:988 ../../mod/profiles.php:794 +#: ../../include/identity.php:982 ../../mod/profiles.php:794 msgid "Profile Image" msgstr "" -#: ../../include/identity.php:991 +#: ../../include/identity.php:985 msgid "visible to everybody" msgstr "" -#: ../../include/identity.php:992 ../../mod/profiles.php:677 +#: ../../include/identity.php:986 ../../mod/profiles.php:677 #: ../../mod/profiles.php:798 msgid "Edit visibility" msgstr "" -#: ../../include/identity.php:1008 ../../include/identity.php:1248 +#: ../../include/identity.php:1002 ../../include/identity.php:1242 msgid "Gender:" msgstr "" -#: ../../include/identity.php:1009 ../../include/identity.php:1292 +#: ../../include/identity.php:1003 ../../include/identity.php:1286 msgid "Status:" msgstr "" -#: ../../include/identity.php:1010 ../../include/identity.php:1303 +#: ../../include/identity.php:1004 ../../include/identity.php:1297 msgid "Homepage:" msgstr "" -#: ../../include/identity.php:1011 +#: ../../include/identity.php:1005 msgid "Online Now" msgstr "" -#: ../../include/identity.php:1095 ../../include/identity.php:1173 +#: ../../include/identity.php:1089 ../../include/identity.php:1167 #: ../../mod/ping.php:318 msgid "g A l F d" msgstr "" -#: ../../include/identity.php:1096 ../../include/identity.php:1174 +#: ../../include/identity.php:1090 ../../include/identity.php:1168 msgid "F d" msgstr "" -#: ../../include/identity.php:1141 ../../include/identity.php:1213 +#: ../../include/identity.php:1135 ../../include/identity.php:1207 #: ../../mod/ping.php:341 msgid "[today]" msgstr "" -#: ../../include/identity.php:1152 +#: ../../include/identity.php:1146 msgid "Birthday Reminders" msgstr "" -#: ../../include/identity.php:1153 +#: ../../include/identity.php:1147 msgid "Birthdays this week:" msgstr "" -#: ../../include/identity.php:1206 +#: ../../include/identity.php:1200 msgid "[No description]" msgstr "" -#: ../../include/identity.php:1224 +#: ../../include/identity.php:1218 msgid "Event Reminders" msgstr "" -#: ../../include/identity.php:1225 +#: ../../include/identity.php:1219 msgid "Events this week:" msgstr "" -#: ../../include/identity.php:1238 ../../include/identity.php:1355 +#: ../../include/identity.php:1232 ../../include/identity.php:1349 #: ../../include/apps.php:138 ../../mod/profperm.php:112 msgid "Profile" msgstr "" -#: ../../include/identity.php:1246 ../../mod/settings.php:1029 +#: ../../include/identity.php:1240 ../../mod/settings.php:1029 msgid "Full Name:" msgstr "" -#: ../../include/identity.php:1253 +#: ../../include/identity.php:1247 msgid "Like this channel" msgstr "" -#: ../../include/identity.php:1264 ../../include/taxonomy.php:414 +#: ../../include/identity.php:1258 ../../include/taxonomy.php:414 #: ../../include/conversation.php:1721 ../../include/ItemObject.php:179 -#: ../../mod/photos.php:1086 +#: ../../mod/photos.php:1083 msgctxt "noun" msgid "Like" msgid_plural "Likes" msgstr[0] "" msgstr[1] "" -#: ../../include/identity.php:1277 +#: ../../include/identity.php:1271 msgid "j F, Y" msgstr "" -#: ../../include/identity.php:1278 +#: ../../include/identity.php:1272 msgid "j F" msgstr "" -#: ../../include/identity.php:1285 +#: ../../include/identity.php:1279 msgid "Birthday:" msgstr "" -#: ../../include/identity.php:1289 ../../mod/directory.php:299 +#: ../../include/identity.php:1283 ../../mod/directory.php:299 msgid "Age:" msgstr "" -#: ../../include/identity.php:1298 +#: ../../include/identity.php:1292 #, php-format msgid "for %1$d %2$s" msgstr "" -#: ../../include/identity.php:1301 ../../mod/profiles.php:699 +#: ../../include/identity.php:1295 ../../mod/profiles.php:699 msgid "Sexual Preference:" msgstr "" -#: ../../include/identity.php:1305 ../../mod/profiles.php:701 +#: ../../include/identity.php:1299 ../../mod/profiles.php:701 #: ../../mod/directory.php:315 msgid "Hometown:" msgstr "" -#: ../../include/identity.php:1307 +#: ../../include/identity.php:1301 msgid "Tags:" msgstr "" -#: ../../include/identity.php:1309 ../../mod/profiles.php:702 +#: ../../include/identity.php:1303 ../../mod/profiles.php:702 msgid "Political Views:" msgstr "" -#: ../../include/identity.php:1311 +#: ../../include/identity.php:1305 msgid "Religion:" msgstr "" -#: ../../include/identity.php:1313 ../../mod/directory.php:317 +#: ../../include/identity.php:1307 ../../mod/directory.php:317 msgid "About:" msgstr "" -#: ../../include/identity.php:1315 +#: ../../include/identity.php:1309 msgid "Hobbies/Interests:" msgstr "" -#: ../../include/identity.php:1317 ../../mod/profiles.php:705 +#: ../../include/identity.php:1311 ../../mod/profiles.php:705 msgid "Likes:" msgstr "" -#: ../../include/identity.php:1319 ../../mod/profiles.php:706 +#: ../../include/identity.php:1313 ../../mod/profiles.php:706 msgid "Dislikes:" msgstr "" -#: ../../include/identity.php:1321 +#: ../../include/identity.php:1315 msgid "Contact information and Social Networks:" msgstr "" -#: ../../include/identity.php:1323 +#: ../../include/identity.php:1317 msgid "My other channels:" msgstr "" -#: ../../include/identity.php:1325 +#: ../../include/identity.php:1319 msgid "Musical interests:" msgstr "" -#: ../../include/identity.php:1327 +#: ../../include/identity.php:1321 msgid "Books, literature:" msgstr "" -#: ../../include/identity.php:1329 +#: ../../include/identity.php:1323 msgid "Television:" msgstr "" -#: ../../include/identity.php:1331 +#: ../../include/identity.php:1325 msgid "Film/dance/culture/entertainment:" msgstr "" -#: ../../include/identity.php:1333 +#: ../../include/identity.php:1327 msgid "Love/Romance:" msgstr "" -#: ../../include/identity.php:1335 +#: ../../include/identity.php:1329 msgid "Work/employment:" msgstr "" -#: ../../include/identity.php:1337 +#: ../../include/identity.php:1331 msgid "School/education:" msgstr "" -#: ../../include/identity.php:1357 +#: ../../include/identity.php:1351 msgid "Like this thing" msgstr "" @@ -1095,13 +1065,13 @@ msgid "Other networks and post services" msgstr "" #: ../../include/acl_selectors.php:249 ../../mod/filestorage.php:147 -#: ../../mod/photos.php:631 ../../mod/photos.php:1001 ../../mod/thing.php:310 -#: ../../mod/thing.php:356 ../../mod/chat.php:211 +#: ../../mod/thing.php:310 ../../mod/thing.php:356 ../../mod/photos.php:631 +#: ../../mod/photos.php:998 ../../mod/chat.php:211 msgid "Permissions" msgstr "" #: ../../include/acl_selectors.php:250 ../../include/ItemObject.php:384 -#: ../../mod/photos.php:1218 +#: ../../mod/photos.php:1215 msgid "Close" msgstr "" @@ -1263,7 +1233,7 @@ msgstr "" #: ../../include/widgets.php:192 ../../include/text.php:868 #: ../../include/text.php:880 ../../mod/rbmark.php:28 ../../mod/rbmark.php:100 -#: ../../mod/admin.php:1442 ../../mod/admin.php:1462 ../../mod/filer.php:49 +#: ../../mod/admin.php:1449 ../../mod/admin.php:1469 ../../mod/filer.php:49 msgid "Save" msgstr "" @@ -1356,8 +1326,8 @@ msgid "Channel Sources" msgstr "" #: ../../include/widgets.php:554 ../../include/nav.php:202 -#: ../../include/apps.php:134 ../../mod/admin.php:1064 -#: ../../mod/admin.php:1264 +#: ../../include/apps.php:134 ../../mod/admin.php:1071 +#: ../../mod/admin.php:1271 msgid "Settings" msgstr "" @@ -1493,7 +1463,7 @@ msgstr "" msgid "For Developers" msgstr "" -#: ../../include/widgets.php:1214 ../../mod/admin.php:434 +#: ../../include/widgets.php:1214 ../../mod/admin.php:441 msgid "Site" msgstr "" @@ -1501,17 +1471,17 @@ msgstr "" msgid "Accounts" msgstr "" -#: ../../include/widgets.php:1216 ../../mod/admin.php:965 +#: ../../include/widgets.php:1216 ../../mod/admin.php:972 msgid "Channels" msgstr "" -#: ../../include/widgets.php:1217 ../../mod/admin.php:1062 -#: ../../mod/admin.php:1102 +#: ../../include/widgets.php:1217 ../../mod/admin.php:1069 +#: ../../mod/admin.php:1109 msgid "Plugins" msgstr "" -#: ../../include/widgets.php:1218 ../../mod/admin.php:1262 -#: ../../mod/admin.php:1296 +#: ../../include/widgets.php:1218 ../../mod/admin.php:1269 +#: ../../mod/admin.php:1303 msgid "Themes" msgstr "" @@ -1528,7 +1498,7 @@ msgid "DB updates" msgstr "" #: ../../include/widgets.php:1239 ../../include/widgets.php:1245 -#: ../../mod/admin.php:1381 +#: ../../mod/admin.php:1388 msgid "Logs" msgstr "" @@ -1544,12 +1514,12 @@ msgstr "" msgid "User registrations waiting for confirmation" msgstr "" -#: ../../include/widgets.php:1325 ../../mod/photos.php:753 -#: ../../mod/photos.php:1286 +#: ../../include/widgets.php:1324 ../../mod/photos.php:748 +#: ../../mod/photos.php:1283 msgid "View Photo" msgstr "" -#: ../../include/widgets.php:1341 ../../mod/photos.php:782 +#: ../../include/widgets.php:1341 ../../mod/photos.php:779 msgid "Edit Album" msgstr "" @@ -2206,42 +2176,42 @@ msgctxt "mood" msgid "%1$s is %2$s" msgstr "" -#: ../../include/conversation.php:574 ../../mod/photos.php:1063 +#: ../../include/conversation.php:574 ../../mod/photos.php:1060 msgctxt "title" msgid "Likes" msgstr "" -#: ../../include/conversation.php:574 ../../mod/photos.php:1063 +#: ../../include/conversation.php:574 ../../mod/photos.php:1060 msgctxt "title" msgid "Dislikes" msgstr "" -#: ../../include/conversation.php:575 ../../mod/photos.php:1064 +#: ../../include/conversation.php:575 ../../mod/photos.php:1061 msgctxt "title" msgid "Agree" msgstr "" -#: ../../include/conversation.php:575 ../../mod/photos.php:1064 +#: ../../include/conversation.php:575 ../../mod/photos.php:1061 msgctxt "title" msgid "Disagree" msgstr "" -#: ../../include/conversation.php:575 ../../mod/photos.php:1064 +#: ../../include/conversation.php:575 ../../mod/photos.php:1061 msgctxt "title" msgid "Abstain" msgstr "" -#: ../../include/conversation.php:576 ../../mod/photos.php:1065 +#: ../../include/conversation.php:576 ../../mod/photos.php:1062 msgctxt "title" msgid "Attending" msgstr "" -#: ../../include/conversation.php:576 ../../mod/photos.php:1065 +#: ../../include/conversation.php:576 ../../mod/photos.php:1062 msgctxt "title" msgid "Not attending" msgstr "" -#: ../../include/conversation.php:576 ../../mod/photos.php:1065 +#: ../../include/conversation.php:576 ../../mod/photos.php:1062 msgctxt "title" msgid "Might attend" msgstr "" @@ -2296,8 +2266,8 @@ msgstr "" #: ../../include/conversation.php:740 ../../include/conversation.php:1227 #: ../../include/ItemObject.php:389 ../../mod/editwebpage.php:190 -#: ../../mod/photos.php:1029 ../../mod/editblock.php:150 -#: ../../mod/editlayout.php:148 ../../mod/editpost.php:129 +#: ../../mod/editblock.php:150 ../../mod/editlayout.php:148 +#: ../../mod/photos.php:1026 ../../mod/editpost.php:129 msgid "Please wait" msgstr "" @@ -2403,8 +2373,8 @@ msgstr "" msgid "Visible to <strong>everybody</strong>" msgstr "" -#: ../../include/conversation.php:1155 ../../mod/mail.php:194 -#: ../../mod/mail.php:308 +#: ../../include/conversation.php:1155 ../../mod/mail.php:202 +#: ../../mod/mail.php:316 msgid "Please enter a link URL:" msgstr "" @@ -2429,21 +2399,21 @@ msgid "Where are you right now?" msgstr "" #: ../../include/conversation.php:1161 ../../mod/editpost.php:56 -#: ../../mod/mail.php:195 ../../mod/mail.php:309 +#: ../../mod/mail.php:203 ../../mod/mail.php:317 msgid "Expires YYYY-MM-DD HH:MM" msgstr "" #: ../../include/conversation.php:1169 ../../include/page_widgets.php:40 #: ../../include/ItemObject.php:706 ../../mod/editwebpage.php:212 -#: ../../mod/photos.php:1049 ../../mod/editblock.php:171 -#: ../../mod/webpages.php:188 ../../mod/editpost.php:149 +#: ../../mod/editblock.php:171 ../../mod/webpages.php:188 +#: ../../mod/photos.php:1046 ../../mod/editpost.php:149 #: ../../mod/events.php:458 msgid "Preview" msgstr "" #: ../../include/conversation.php:1192 ../../mod/blocks.php:154 -#: ../../mod/photos.php:1028 ../../mod/webpages.php:182 -#: ../../mod/layouts.php:184 +#: ../../mod/webpages.php:182 ../../mod/layouts.php:184 +#: ../../mod/photos.php:1025 msgid "Share" msgstr "" @@ -2497,7 +2467,7 @@ msgstr "" #: ../../include/conversation.php:1206 ../../mod/editwebpage.php:183 #: ../../mod/editblock.php:143 ../../mod/editlayout.php:141 -#: ../../mod/editpost.php:119 ../../mod/mail.php:240 ../../mod/mail.php:370 +#: ../../mod/editpost.php:119 ../../mod/mail.php:248 ../../mod/mail.php:378 msgid "Attach file" msgstr "" @@ -2507,7 +2477,7 @@ msgstr "" #: ../../include/conversation.php:1208 ../../mod/editwebpage.php:184 #: ../../mod/editblock.php:144 ../../mod/editlayout.php:142 -#: ../../mod/editpost.php:120 ../../mod/mail.php:241 ../../mod/mail.php:371 +#: ../../mod/editpost.php:120 ../../mod/mail.php:249 ../../mod/mail.php:379 msgid "Insert web link" msgstr "" @@ -2590,7 +2560,7 @@ msgstr "" #: ../../include/conversation.php:1252 ../../mod/editwebpage.php:217 #: ../../mod/editblock.php:176 ../../mod/editlayout.php:173 -#: ../../mod/editpost.php:155 ../../mod/mail.php:245 ../../mod/mail.php:375 +#: ../../mod/editpost.php:155 ../../mod/mail.php:253 ../../mod/mail.php:383 msgid "Set expiration date" msgstr "" @@ -2599,7 +2569,7 @@ msgid "Set publish date" msgstr "" #: ../../include/conversation.php:1257 ../../include/ItemObject.php:709 -#: ../../mod/editpost.php:157 ../../mod/mail.php:247 ../../mod/mail.php:377 +#: ../../mod/editpost.php:157 ../../mod/mail.php:255 ../../mod/mail.php:385 msgid "Encrypt text" msgstr "" @@ -2607,8 +2577,8 @@ msgstr "" msgid "OK" msgstr "" -#: ../../include/conversation.php:1260 ../../mod/fbrowser.php:82 -#: ../../mod/fbrowser.php:117 ../../mod/tagrm.php:11 ../../mod/tagrm.php:134 +#: ../../include/conversation.php:1260 ../../mod/fbrowser.php:77 +#: ../../mod/fbrowser.php:112 ../../mod/tagrm.php:11 ../../mod/tagrm.php:134 #: ../../mod/settings.php:587 ../../mod/settings.php:613 #: ../../mod/editpost.php:160 msgid "Cancel" @@ -2667,7 +2637,7 @@ msgstr "" msgid "Posts flagged as SPAM" msgstr "" -#: ../../include/conversation.php:1601 ../../mod/admin.php:973 +#: ../../include/conversation.php:1601 ../../mod/admin.php:980 msgid "Channel" msgstr "" @@ -2719,13 +2689,13 @@ msgid "Manage Webpages" msgstr "" #: ../../include/conversation.php:1697 ../../include/ItemObject.php:175 -#: ../../include/ItemObject.php:187 ../../mod/photos.php:1082 -#: ../../mod/photos.php:1094 +#: ../../include/ItemObject.php:187 ../../mod/photos.php:1079 +#: ../../mod/photos.php:1091 msgid "View all" msgstr "" #: ../../include/conversation.php:1724 ../../include/ItemObject.php:184 -#: ../../mod/photos.php:1091 +#: ../../mod/photos.php:1088 msgctxt "noun" msgid "Dislike" msgid_plural "Dislikes" @@ -2823,7 +2793,7 @@ msgid "RSS/Atom" msgstr "" #: ../../include/contact_selectors.php:79 ../../mod/id.php:15 -#: ../../mod/id.php:16 ../../mod/admin.php:805 ../../mod/admin.php:814 +#: ../../mod/id.php:16 ../../mod/admin.php:812 ../../mod/admin.php:821 #: ../../boot.php:1483 msgid "Email" msgstr "" @@ -2922,7 +2892,7 @@ msgid_plural "%d invitations available" msgstr[0] "" msgstr[1] "" -#: ../../include/contact_widgets.php:19 ../../mod/admin.php:439 +#: ../../include/contact_widgets.php:19 ../../mod/admin.php:446 msgid "Advanced" msgstr "" @@ -2975,6 +2945,23 @@ msgstr[1] "" msgid "show more" msgstr "" +#: ../../include/enotify.php:57 ../../include/network.php:1608 +msgid "$Projectname Notification" +msgstr "" + +#: ../../include/enotify.php:58 ../../include/network.php:1609 +msgid "$projectname" +msgstr "" + +#: ../../include/enotify.php:60 ../../include/network.php:1611 +msgid "Thank You," +msgstr "" + +#: ../../include/enotify.php:62 ../../include/network.php:1613 +#, php-format +msgid "%s Administrator" +msgstr "" + #: ../../include/enotify.php:96 #, php-format msgid "%s <!item_type!>" @@ -3169,19 +3156,19 @@ msgstr "" msgid "Channel was deleted and no longer exists." msgstr "" -#: ../../include/follow.php:152 ../../include/follow.php:180 +#: ../../include/follow.php:152 ../../include/follow.php:181 msgid "Protocol disabled." msgstr "" -#: ../../include/follow.php:170 +#: ../../include/follow.php:171 msgid "Channel discovery failed." msgstr "" -#: ../../include/follow.php:196 +#: ../../include/follow.php:197 msgid "local account not found." msgstr "" -#: ../../include/follow.php:220 +#: ../../include/follow.php:221 msgid "Cannot connect to yourself." msgstr "" @@ -3687,7 +3674,7 @@ msgstr "" #: ../../include/dir_fns.php:143 ../../mod/filestorage.php:151 #: ../../mod/filestorage.php:159 ../../mod/removeme.php:60 #: ../../mod/connedit.php:635 ../../mod/connedit.php:684 ../../mod/api.php:106 -#: ../../mod/photos.php:626 ../../mod/admin.php:410 ../../mod/settings.php:577 +#: ../../mod/admin.php:410 ../../mod/settings.php:577 ../../mod/photos.php:626 #: ../../mod/menu.php:96 ../../mod/menu.php:153 ../../mod/events.php:447 #: ../../mod/events.php:448 ../../mod/events.php:457 ../../mod/mitem.php:154 #: ../../mod/mitem.php:155 ../../mod/mitem.php:228 ../../mod/mitem.php:229 @@ -3699,8 +3686,8 @@ msgstr "" #: ../../include/dir_fns.php:141 ../../include/dir_fns.php:142 #: ../../include/dir_fns.php:143 ../../mod/filestorage.php:151 #: ../../mod/filestorage.php:159 ../../mod/removeme.php:60 -#: ../../mod/api.php:105 ../../mod/photos.php:626 ../../mod/admin.php:412 -#: ../../mod/settings.php:577 ../../mod/menu.php:96 ../../mod/menu.php:153 +#: ../../mod/api.php:105 ../../mod/admin.php:412 ../../mod/settings.php:577 +#: ../../mod/photos.php:626 ../../mod/menu.php:96 ../../mod/menu.php:153 #: ../../mod/events.php:447 ../../mod/events.php:448 ../../mod/events.php:457 #: ../../mod/mitem.php:154 ../../mod/mitem.php:155 ../../mod/mitem.php:228 #: ../../mod/mitem.php:229 ../../view/theme/redbasic/php/config.php:104 @@ -3727,7 +3714,7 @@ msgstr "" msgid "Add new connections to this collection (privacy group)" msgstr "" -#: ../../include/group.php:251 ../../mod/admin.php:814 +#: ../../include/group.php:251 ../../mod/admin.php:821 msgid "All Channels" msgstr "" @@ -3759,12 +3746,12 @@ msgstr "" msgid "Unable to verify channel signature" msgstr "" -#: ../../include/zot.php:2259 +#: ../../include/zot.php:2275 #, php-format msgid "Unable to verify site signature for %s" msgstr "" -#: ../../include/zot.php:3586 +#: ../../include/zot.php:3601 msgid "invalid target signature" msgstr "" @@ -3799,6 +3786,19 @@ msgstr "" msgid "Edited" msgstr "" +#: ../../include/network.php:630 +msgid "view full size" +msgstr "" + +#: ../../include/network.php:1655 ../../include/account.php:316 +#: ../../include/account.php:343 ../../include/account.php:403 +msgid "Administrator" +msgstr "" + +#: ../../include/network.php:1669 +msgid "No Subject" +msgstr "" + #: ../../include/dba/dba_driver.php:141 #, php-format msgid "Cannot locate DNS info for database server '%s'" @@ -3873,11 +3873,11 @@ msgstr "" msgid "Add Tag" msgstr "" -#: ../../include/ItemObject.php:254 ../../mod/photos.php:1026 +#: ../../include/ItemObject.php:254 ../../mod/photos.php:1023 msgid "I like this (toggle)" msgstr "" -#: ../../include/ItemObject.php:255 ../../mod/photos.php:1027 +#: ../../include/ItemObject.php:255 ../../mod/photos.php:1024 msgid "I don't like this (toggle)" msgstr "" @@ -3933,18 +3933,18 @@ msgstr "" msgid "Mark all seen" msgstr "" -#: ../../include/ItemObject.php:378 ../../mod/photos.php:1212 +#: ../../include/ItemObject.php:378 ../../mod/photos.php:1209 msgctxt "noun" msgid "Likes" msgstr "" -#: ../../include/ItemObject.php:379 ../../mod/photos.php:1213 +#: ../../include/ItemObject.php:379 ../../mod/photos.php:1210 msgctxt "noun" msgid "Dislikes" msgstr "" -#: ../../include/ItemObject.php:694 ../../mod/photos.php:1045 -#: ../../mod/photos.php:1163 +#: ../../include/ItemObject.php:694 ../../mod/photos.php:1042 +#: ../../mod/photos.php:1160 msgid "This is you" msgstr "" @@ -3960,78 +3960,6 @@ msgstr "" msgid "Video" msgstr "" -#: ../../include/account.php:27 -msgid "Not a valid email address" -msgstr "" - -#: ../../include/account.php:29 -msgid "Your email domain is not among those allowed on this site" -msgstr "" - -#: ../../include/account.php:35 -msgid "Your email address is already registered at this site." -msgstr "" - -#: ../../include/account.php:67 -msgid "An invitation is required." -msgstr "" - -#: ../../include/account.php:71 -msgid "Invitation could not be verified." -msgstr "" - -#: ../../include/account.php:121 -msgid "Please enter the required information." -msgstr "" - -#: ../../include/account.php:188 -msgid "Failed to store account information." -msgstr "" - -#: ../../include/account.php:248 -#, php-format -msgid "Registration confirmation for %s" -msgstr "" - -#: ../../include/account.php:314 -#, php-format -msgid "Registration request at %s" -msgstr "" - -#: ../../include/account.php:338 -msgid "your registration password" -msgstr "" - -#: ../../include/account.php:341 ../../include/account.php:401 -#, php-format -msgid "Registration details for %s" -msgstr "" - -#: ../../include/account.php:410 -msgid "Account approved." -msgstr "" - -#: ../../include/account.php:449 -#, php-format -msgid "Registration revoked for %s" -msgstr "" - -#: ../../include/account.php:494 -msgid "Account verified. Please login." -msgstr "" - -#: ../../include/account.php:707 ../../include/account.php:709 -msgid "Click here to upgrade." -msgstr "" - -#: ../../include/account.php:715 -msgid "This action exceeds the limits set by your subscription plan." -msgstr "" - -#: ../../include/account.php:720 -msgid "This action is not available under your subscription plan." -msgstr "" - #: ../../include/apps.php:128 msgid "Site Admin" msgstr "" @@ -4212,12 +4140,84 @@ msgstr "" msgid "Custom/Expert Mode" msgstr "" -#: ../../include/photo/photo_driver.php:719 ../../mod/photos.php:94 -#: ../../mod/photos.php:699 ../../mod/profile_photo.php:147 +#: ../../include/photo/photo_driver.php:719 ../../mod/profile_photo.php:147 #: ../../mod/profile_photo.php:239 ../../mod/profile_photo.php:379 +#: ../../mod/photos.php:94 ../../mod/photos.php:699 msgid "Profile Photos" msgstr "" +#: ../../include/account.php:27 +msgid "Not a valid email address" +msgstr "" + +#: ../../include/account.php:29 +msgid "Your email domain is not among those allowed on this site" +msgstr "" + +#: ../../include/account.php:35 +msgid "Your email address is already registered at this site." +msgstr "" + +#: ../../include/account.php:67 +msgid "An invitation is required." +msgstr "" + +#: ../../include/account.php:71 +msgid "Invitation could not be verified." +msgstr "" + +#: ../../include/account.php:121 +msgid "Please enter the required information." +msgstr "" + +#: ../../include/account.php:188 +msgid "Failed to store account information." +msgstr "" + +#: ../../include/account.php:248 +#, php-format +msgid "Registration confirmation for %s" +msgstr "" + +#: ../../include/account.php:314 +#, php-format +msgid "Registration request at %s" +msgstr "" + +#: ../../include/account.php:338 +msgid "your registration password" +msgstr "" + +#: ../../include/account.php:341 ../../include/account.php:401 +#, php-format +msgid "Registration details for %s" +msgstr "" + +#: ../../include/account.php:410 +msgid "Account approved." +msgstr "" + +#: ../../include/account.php:449 +#, php-format +msgid "Registration revoked for %s" +msgstr "" + +#: ../../include/account.php:494 +msgid "Account verified. Please login." +msgstr "" + +#: ../../include/account.php:707 ../../include/account.php:709 +msgid "Click here to upgrade." +msgstr "" + +#: ../../include/account.php:715 +msgid "This action exceeds the limits set by your subscription plan." +msgstr "" + +#: ../../include/account.php:720 +msgid "This action is not available under your subscription plan." +msgstr "" + #: ../../mod/filestorage.php:82 msgid "Permission Denied." msgstr "" @@ -4419,7 +4419,8 @@ msgstr "" msgid "OpenID protocol error. No ID returned." msgstr "" -#: ../../mod/openid.php:72 ../../mod/openid.php:179 ../../mod/post.php:285 +#: ../../mod/openid.php:72 ../../mod/openid.php:179 +#: ../../Zotlabs/Zot/Auth.php:248 #, php-format msgid "Welcome %s. Remote authentication successful." msgstr "" @@ -4828,7 +4829,7 @@ msgstr "" msgid "System check" msgstr "" -#: ../../mod/setup.php:285 ../../mod/photos.php:914 ../../mod/events.php:653 +#: ../../mod/setup.php:285 ../../mod/photos.php:911 ../../mod/events.php:653 #: ../../mod/events.php:660 msgid "Next" msgstr "" @@ -5215,15 +5216,6 @@ msgstr "" msgid "My Connections Bookmarks" msgstr "" -#: ../../mod/home.php:57 ../../mod/home.php:65 ../../mod/siteinfo.php:61 -msgid "$Projectname" -msgstr "" - -#: ../../mod/home.php:75 -#, php-format -msgid "Welcome to %s" -msgstr "" - #: ../../mod/pconfig.php:27 ../../mod/pconfig.php:60 msgid "This setting requires special processing and editing has been blocked." msgstr "" @@ -5328,7 +5320,7 @@ msgstr "" msgid "Interests" msgstr "" -#: ../../mod/profiles.php:457 ../../mod/admin.php:974 +#: ../../mod/profiles.php:457 ../../mod/admin.php:981 msgid "Address" msgstr "" @@ -5581,11 +5573,11 @@ msgstr "" msgid "View recent posts and comments" msgstr "" -#: ../../mod/connedit.php:519 ../../mod/admin.php:811 +#: ../../mod/connedit.php:519 ../../mod/admin.php:818 msgid "Unblock" msgstr "" -#: ../../mod/connedit.php:519 ../../mod/admin.php:810 +#: ../../mod/connedit.php:519 ../../mod/admin.php:817 msgid "Block" msgstr "" @@ -5741,7 +5733,7 @@ msgid "" "communication." msgstr "" -#: ../../mod/connedit.php:710 ../../mod/admin.php:807 +#: ../../mod/connedit.php:710 ../../mod/admin.php:814 msgid "Approve" msgstr "" @@ -6054,7 +6046,7 @@ msgstr "" msgid "Select a tag to remove: " msgstr "" -#: ../../mod/tagrm.php:133 ../../mod/photos.php:954 +#: ../../mod/tagrm.php:133 ../../mod/photos.php:951 msgid "Remove" msgstr "" @@ -6322,155 +6314,73 @@ msgid "" "only once and leave this page open until finished." msgstr "" -#: ../../mod/photos.php:79 -msgid "Page owner information could not be retrieved." -msgstr "" - -#: ../../mod/photos.php:100 -msgid "Album not found." -msgstr "" - -#: ../../mod/photos.php:127 -msgid "Delete Album" +#: ../../mod/invite.php:25 +msgid "Total invitation limit exceeded." msgstr "" -#: ../../mod/photos.php:171 ../../mod/photos.php:1009 -msgid "Delete Photo" +#: ../../mod/invite.php:49 +#, php-format +msgid "%s : Not a valid email address." msgstr "" -#: ../../mod/photos.php:501 -msgid "No photos selected" +#: ../../mod/invite.php:59 +msgid "Please join us on $Projectname" msgstr "" -#: ../../mod/photos.php:550 -msgid "Access to this item is restricted." +#: ../../mod/invite.php:70 +msgid "Invitation limit exceeded. Please contact your site administrator." msgstr "" -#: ../../mod/photos.php:589 +#: ../../mod/invite.php:75 #, php-format -msgid "%1$.2f MB of %2$.2f MB photo storage used." +msgid "%s : Message delivery failed." msgstr "" -#: ../../mod/photos.php:592 +#: ../../mod/invite.php:79 #, php-format -msgid "%1$.2f MB photo storage used." -msgstr "" - -#: ../../mod/photos.php:620 -msgid "Upload Photos" -msgstr "" - -#: ../../mod/photos.php:624 -msgid "Enter an album name" -msgstr "" - -#: ../../mod/photos.php:625 -msgid "or select an existing album (doubleclick)" -msgstr "" - -#: ../../mod/photos.php:626 -msgid "Create a status post for this upload" -msgstr "" - -#: ../../mod/photos.php:627 -msgid "Caption (optional):" -msgstr "" - -#: ../../mod/photos.php:628 -msgid "Description (optional):" -msgstr "" - -#: ../../mod/photos.php:655 -msgid "Album name could not be decoded" -msgstr "" - -#: ../../mod/photos.php:699 ../../mod/photos.php:1236 -#: ../../mod/photos.php:1253 -msgid "Contact Photos" -msgstr "" - -#: ../../mod/photos.php:727 -msgid "Show Newest First" -msgstr "" - -#: ../../mod/photos.php:729 -msgid "Show Oldest First" -msgstr "" - -#: ../../mod/photos.php:827 -msgid "Permission denied. Access to this item may be restricted." -msgstr "" - -#: ../../mod/photos.php:829 -msgid "Photo not available" -msgstr "" - -#: ../../mod/photos.php:887 -msgid "Use as profile photo" -msgstr "" - -#: ../../mod/photos.php:894 -msgid "Private Photo" -msgstr "" - -#: ../../mod/photos.php:905 ../../mod/events.php:652 ../../mod/events.php:659 -msgid "Previous" -msgstr "" - -#: ../../mod/photos.php:909 -msgid "View Full Size" -msgstr "" - -#: ../../mod/photos.php:988 -msgid "Edit photo" -msgstr "" - -#: ../../mod/photos.php:990 -msgid "Rotate CW (right)" -msgstr "" - -#: ../../mod/photos.php:991 -msgid "Rotate CCW (left)" -msgstr "" +msgid "%d message sent." +msgid_plural "%d messages sent." +msgstr[0] "" +msgstr[1] "" -#: ../../mod/photos.php:994 -msgid "Enter a new album name" +#: ../../mod/invite.php:98 +msgid "You have no more invitations available" msgstr "" -#: ../../mod/photos.php:995 -msgid "or select an existing one (doubleclick)" +#: ../../mod/invite.php:129 +msgid "Send invitations" msgstr "" -#: ../../mod/photos.php:998 -msgid "Caption" +#: ../../mod/invite.php:130 +msgid "Enter email addresses, one per line:" msgstr "" -#: ../../mod/photos.php:1000 -msgid "Add a Tag" +#: ../../mod/invite.php:131 ../../mod/mail.php:246 +msgid "Your message:" msgstr "" -#: ../../mod/photos.php:1004 -msgid "Example: @bob, @Barbara_Jensen, @jim@example.com" +#: ../../mod/invite.php:132 +msgid "Please join my community on $Projectname." msgstr "" -#: ../../mod/photos.php:1007 -msgid "Flag as adult in album view" +#: ../../mod/invite.php:134 +msgid "You will need to supply this invitation code: " msgstr "" -#: ../../mod/photos.php:1199 -msgid "In This Photo:" +#: ../../mod/invite.php:135 +msgid "1. Register at any $Projectname location (they are all inter-connected)" msgstr "" -#: ../../mod/photos.php:1204 -msgid "Map" +#: ../../mod/invite.php:137 +msgid "2. Enter my $Projectname network address into the site searchbar." msgstr "" -#: ../../mod/photos.php:1292 -msgid "View Album" +#: ../../mod/invite.php:138 +msgid "or visit " msgstr "" -#: ../../mod/photos.php:1315 -msgid "Recent Photos" +#: ../../mod/invite.php:140 +msgid "3. Click [Connect]" msgstr "" #: ../../mod/probe.php:24 ../../mod/probe.php:30 @@ -6782,7 +6692,7 @@ msgstr "" msgid "I am over 13 years of age and accept the %s for this website" msgstr "" -#: ../../mod/register.php:207 ../../mod/admin.php:436 +#: ../../mod/register.php:207 ../../mod/admin.php:443 msgid "Registration" msgstr "" @@ -6842,10 +6752,10 @@ msgstr "" msgid "Message queues" msgstr "" -#: ../../mod/admin.php:198 ../../mod/admin.php:433 ../../mod/admin.php:532 -#: ../../mod/admin.php:800 ../../mod/admin.php:964 ../../mod/admin.php:1061 -#: ../../mod/admin.php:1101 ../../mod/admin.php:1261 ../../mod/admin.php:1295 -#: ../../mod/admin.php:1380 +#: ../../mod/admin.php:198 ../../mod/admin.php:440 ../../mod/admin.php:539 +#: ../../mod/admin.php:807 ../../mod/admin.php:971 ../../mod/admin.php:1068 +#: ../../mod/admin.php:1108 ../../mod/admin.php:1268 ../../mod/admin.php:1302 +#: ../../mod/admin.php:1387 msgid "Administration" msgstr "" @@ -6857,7 +6767,7 @@ msgstr "" msgid "Registered accounts" msgstr "" -#: ../../mod/admin.php:203 ../../mod/admin.php:536 +#: ../../mod/admin.php:203 ../../mod/admin.php:543 msgid "Pending registrations" msgstr "" @@ -6865,7 +6775,7 @@ msgstr "" msgid "Registered channels" msgstr "" -#: ../../mod/admin.php:205 ../../mod/admin.php:537 +#: ../../mod/admin.php:205 ../../mod/admin.php:544 msgid "Active plugins" msgstr "" @@ -6909,638 +6819,638 @@ msgstr "" msgid "My site offers free accounts with optional paid upgrades" msgstr "" -#: ../../mod/admin.php:437 +#: ../../mod/admin.php:444 msgid "File upload" msgstr "" -#: ../../mod/admin.php:438 +#: ../../mod/admin.php:445 msgid "Policies" msgstr "" -#: ../../mod/admin.php:443 +#: ../../mod/admin.php:450 msgid "Site name" msgstr "" -#: ../../mod/admin.php:444 +#: ../../mod/admin.php:451 msgid "Banner/Logo" msgstr "" -#: ../../mod/admin.php:445 +#: ../../mod/admin.php:452 msgid "Administrator Information" msgstr "" -#: ../../mod/admin.php:445 +#: ../../mod/admin.php:452 msgid "" "Contact information for site administrators. Displayed on siteinfo page. " "BBCode can be used here" msgstr "" -#: ../../mod/admin.php:446 +#: ../../mod/admin.php:453 msgid "System language" msgstr "" -#: ../../mod/admin.php:447 +#: ../../mod/admin.php:454 msgid "System theme" msgstr "" -#: ../../mod/admin.php:447 +#: ../../mod/admin.php:454 msgid "" "Default system theme - may be over-ridden by user profiles - <a href='#' " "id='cnftheme'>change theme settings</a>" msgstr "" -#: ../../mod/admin.php:448 +#: ../../mod/admin.php:455 msgid "Mobile system theme" msgstr "" -#: ../../mod/admin.php:448 +#: ../../mod/admin.php:455 msgid "Theme for mobile devices" msgstr "" -#: ../../mod/admin.php:450 +#: ../../mod/admin.php:457 msgid "Allow Feeds as Connections" msgstr "" -#: ../../mod/admin.php:450 +#: ../../mod/admin.php:457 msgid "(Heavy system resource usage)" msgstr "" -#: ../../mod/admin.php:451 +#: ../../mod/admin.php:458 msgid "Maximum image size" msgstr "" -#: ../../mod/admin.php:451 +#: ../../mod/admin.php:458 msgid "" "Maximum size in bytes of uploaded images. Default is 0, which means no " "limits." msgstr "" -#: ../../mod/admin.php:452 +#: ../../mod/admin.php:459 msgid "Does this site allow new member registration?" msgstr "" -#: ../../mod/admin.php:453 +#: ../../mod/admin.php:460 msgid "Which best describes the types of account offered by this hub?" msgstr "" -#: ../../mod/admin.php:454 +#: ../../mod/admin.php:461 msgid "Register text" msgstr "" -#: ../../mod/admin.php:454 +#: ../../mod/admin.php:461 msgid "Will be displayed prominently on the registration page." msgstr "" -#: ../../mod/admin.php:455 +#: ../../mod/admin.php:462 msgid "Site homepage to show visitors (default: login box)" msgstr "" -#: ../../mod/admin.php:455 +#: ../../mod/admin.php:462 msgid "" "example: 'public' to show public stream, 'page/sys/home' to show a system " "webpage called 'home' or 'include:home.html' to include a file." msgstr "" -#: ../../mod/admin.php:456 +#: ../../mod/admin.php:463 msgid "Preserve site homepage URL" msgstr "" -#: ../../mod/admin.php:456 +#: ../../mod/admin.php:463 msgid "" "Present the site homepage in a frame at the original location instead of " "redirecting" msgstr "" -#: ../../mod/admin.php:457 +#: ../../mod/admin.php:464 msgid "Accounts abandoned after x days" msgstr "" -#: ../../mod/admin.php:457 +#: ../../mod/admin.php:464 msgid "" "Will not waste system resources polling external sites for abandonded " "accounts. Enter 0 for no time limit." msgstr "" -#: ../../mod/admin.php:458 +#: ../../mod/admin.php:465 msgid "Allowed friend domains" msgstr "" -#: ../../mod/admin.php:458 +#: ../../mod/admin.php:465 msgid "" "Comma separated list of domains which are allowed to establish friendships " "with this site. Wildcards are accepted. Empty to allow any domains" msgstr "" -#: ../../mod/admin.php:459 +#: ../../mod/admin.php:466 msgid "Allowed email domains" msgstr "" -#: ../../mod/admin.php:459 +#: ../../mod/admin.php:466 msgid "" "Comma separated list of domains which are allowed in email addresses for " "registrations to this site. Wildcards are accepted. Empty to allow any " "domains" msgstr "" -#: ../../mod/admin.php:460 +#: ../../mod/admin.php:467 msgid "Not allowed email domains" msgstr "" -#: ../../mod/admin.php:460 +#: ../../mod/admin.php:467 msgid "" "Comma separated list of domains which are not allowed in email addresses for " "registrations to this site. Wildcards are accepted. Empty to allow any " "domains, unless allowed domains have been defined." msgstr "" -#: ../../mod/admin.php:461 +#: ../../mod/admin.php:468 msgid "Block public" msgstr "" -#: ../../mod/admin.php:461 +#: ../../mod/admin.php:468 msgid "" "Check to block public access to all otherwise public personal pages on this " "site unless you are currently logged in." msgstr "" -#: ../../mod/admin.php:462 +#: ../../mod/admin.php:469 msgid "Verify Email Addresses" msgstr "" -#: ../../mod/admin.php:462 +#: ../../mod/admin.php:469 msgid "" "Check to verify email addresses used in account registration (recommended)." msgstr "" -#: ../../mod/admin.php:463 +#: ../../mod/admin.php:470 msgid "Force publish" msgstr "" -#: ../../mod/admin.php:463 +#: ../../mod/admin.php:470 msgid "" "Check to force all profiles on this site to be listed in the site directory." msgstr "" -#: ../../mod/admin.php:464 -msgid "Disable discovery tab" +#: ../../mod/admin.php:471 +msgid "Import Public Streams" msgstr "" -#: ../../mod/admin.php:464 +#: ../../mod/admin.php:471 msgid "" -"Remove the tab in the network view with public content pulled from sources " -"chosen for this site." +"Import and allow access to public content pulled from other sites. Warning: " +"this content is unmoderated." msgstr "" -#: ../../mod/admin.php:465 +#: ../../mod/admin.php:472 msgid "login on Homepage" msgstr "" -#: ../../mod/admin.php:465 +#: ../../mod/admin.php:472 msgid "" "Present a login box to visitors on the home page if no other content has " "been configured." msgstr "" -#: ../../mod/admin.php:467 +#: ../../mod/admin.php:474 msgid "Directory Server URL" msgstr "" -#: ../../mod/admin.php:467 +#: ../../mod/admin.php:474 msgid "Default directory server" msgstr "" -#: ../../mod/admin.php:469 +#: ../../mod/admin.php:476 msgid "Proxy user" msgstr "" -#: ../../mod/admin.php:470 +#: ../../mod/admin.php:477 msgid "Proxy URL" msgstr "" -#: ../../mod/admin.php:471 +#: ../../mod/admin.php:478 msgid "Network timeout" msgstr "" -#: ../../mod/admin.php:471 +#: ../../mod/admin.php:478 msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." msgstr "" -#: ../../mod/admin.php:472 +#: ../../mod/admin.php:479 msgid "Delivery interval" msgstr "" -#: ../../mod/admin.php:472 +#: ../../mod/admin.php:479 msgid "" "Delay background delivery processes by this many seconds to reduce system " "load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 " "for large dedicated servers." msgstr "" -#: ../../mod/admin.php:473 +#: ../../mod/admin.php:480 msgid "Deliveries per process" msgstr "" -#: ../../mod/admin.php:473 +#: ../../mod/admin.php:480 msgid "" "Number of deliveries to attempt in a single operating system process. Adjust " "if necessary to tune system performance. Recommend: 1-5." msgstr "" -#: ../../mod/admin.php:474 +#: ../../mod/admin.php:481 msgid "Poll interval" msgstr "" -#: ../../mod/admin.php:474 +#: ../../mod/admin.php:481 msgid "" "Delay background polling processes by this many seconds to reduce system " "load. If 0, use delivery interval." msgstr "" -#: ../../mod/admin.php:475 +#: ../../mod/admin.php:482 msgid "Maximum Load Average" msgstr "" -#: ../../mod/admin.php:475 +#: ../../mod/admin.php:482 msgid "" "Maximum system load before delivery and poll processes are deferred - " "default 50." msgstr "" -#: ../../mod/admin.php:476 +#: ../../mod/admin.php:483 msgid "Expiration period in days for imported (matrix/network) content" msgstr "" -#: ../../mod/admin.php:476 +#: ../../mod/admin.php:483 msgid "0 for no expiration of imported content" msgstr "" -#: ../../mod/admin.php:524 +#: ../../mod/admin.php:531 msgid "No server found" msgstr "" -#: ../../mod/admin.php:531 ../../mod/admin.php:814 +#: ../../mod/admin.php:538 ../../mod/admin.php:821 msgid "ID" msgstr "" -#: ../../mod/admin.php:531 +#: ../../mod/admin.php:538 msgid "for channel" msgstr "" -#: ../../mod/admin.php:531 +#: ../../mod/admin.php:538 msgid "on server" msgstr "" -#: ../../mod/admin.php:531 +#: ../../mod/admin.php:538 msgid "Status" msgstr "" -#: ../../mod/admin.php:533 +#: ../../mod/admin.php:540 msgid "Server" msgstr "" -#: ../../mod/admin.php:550 +#: ../../mod/admin.php:557 msgid "Update has been marked successful" msgstr "" -#: ../../mod/admin.php:560 +#: ../../mod/admin.php:567 #, php-format msgid "Executing %s failed. Check system logs." msgstr "" -#: ../../mod/admin.php:563 +#: ../../mod/admin.php:570 #, php-format msgid "Update %s was successfully applied." msgstr "" -#: ../../mod/admin.php:567 +#: ../../mod/admin.php:574 #, php-format msgid "Update %s did not return a status. Unknown if it succeeded." msgstr "" -#: ../../mod/admin.php:570 +#: ../../mod/admin.php:577 #, php-format msgid "Update function %s could not be found." msgstr "" -#: ../../mod/admin.php:586 +#: ../../mod/admin.php:593 msgid "No failed updates." msgstr "" -#: ../../mod/admin.php:590 +#: ../../mod/admin.php:597 msgid "Failed Updates" msgstr "" -#: ../../mod/admin.php:592 +#: ../../mod/admin.php:599 msgid "Mark success (if update was manually applied)" msgstr "" -#: ../../mod/admin.php:593 +#: ../../mod/admin.php:600 msgid "Attempt to execute this update step automatically" msgstr "" -#: ../../mod/admin.php:625 +#: ../../mod/admin.php:632 msgid "Queue Statistics" msgstr "" -#: ../../mod/admin.php:626 +#: ../../mod/admin.php:633 msgid "Total Entries" msgstr "" -#: ../../mod/admin.php:627 +#: ../../mod/admin.php:634 msgid "Priority" msgstr "" -#: ../../mod/admin.php:628 +#: ../../mod/admin.php:635 msgid "Destination URL" msgstr "" -#: ../../mod/admin.php:629 +#: ../../mod/admin.php:636 msgid "Mark hub permanently offline" msgstr "" -#: ../../mod/admin.php:630 +#: ../../mod/admin.php:637 msgid "Empty queue for this hub" msgstr "" -#: ../../mod/admin.php:631 +#: ../../mod/admin.php:638 msgid "Last known contact" msgstr "" -#: ../../mod/admin.php:667 +#: ../../mod/admin.php:674 #, php-format msgid "%s account blocked/unblocked" msgid_plural "%s account blocked/unblocked" msgstr[0] "" msgstr[1] "" -#: ../../mod/admin.php:675 +#: ../../mod/admin.php:682 #, php-format msgid "%s account deleted" msgid_plural "%s accounts deleted" msgstr[0] "" msgstr[1] "" -#: ../../mod/admin.php:711 +#: ../../mod/admin.php:718 msgid "Account not found" msgstr "" -#: ../../mod/admin.php:723 +#: ../../mod/admin.php:730 #, php-format msgid "Account '%s' deleted" msgstr "" -#: ../../mod/admin.php:731 +#: ../../mod/admin.php:738 #, php-format msgid "Account '%s' blocked" msgstr "" -#: ../../mod/admin.php:739 +#: ../../mod/admin.php:746 #, php-format msgid "Account '%s' unblocked" msgstr "" -#: ../../mod/admin.php:801 ../../mod/admin.php:813 +#: ../../mod/admin.php:808 ../../mod/admin.php:820 msgid "Users" msgstr "" -#: ../../mod/admin.php:803 ../../mod/admin.php:967 +#: ../../mod/admin.php:810 ../../mod/admin.php:974 msgid "select all" msgstr "" -#: ../../mod/admin.php:804 +#: ../../mod/admin.php:811 msgid "User registrations waiting for confirm" msgstr "" -#: ../../mod/admin.php:805 +#: ../../mod/admin.php:812 msgid "Request date" msgstr "" -#: ../../mod/admin.php:806 +#: ../../mod/admin.php:813 msgid "No registrations." msgstr "" -#: ../../mod/admin.php:808 +#: ../../mod/admin.php:815 msgid "Deny" msgstr "" -#: ../../mod/admin.php:814 +#: ../../mod/admin.php:821 msgid "Register date" msgstr "" -#: ../../mod/admin.php:814 +#: ../../mod/admin.php:821 msgid "Last login" msgstr "" -#: ../../mod/admin.php:814 +#: ../../mod/admin.php:821 msgid "Expires" msgstr "" -#: ../../mod/admin.php:814 +#: ../../mod/admin.php:821 msgid "Service Class" msgstr "" -#: ../../mod/admin.php:816 +#: ../../mod/admin.php:823 msgid "" "Selected accounts will be deleted!\\n\\nEverything these accounts had posted " "on this site will be permanently deleted!\\n\\nAre you sure?" msgstr "" -#: ../../mod/admin.php:817 +#: ../../mod/admin.php:824 msgid "" "The account {0} will be deleted!\\n\\nEverything this account has posted on " "this site will be permanently deleted!\\n\\nAre you sure?" msgstr "" -#: ../../mod/admin.php:853 +#: ../../mod/admin.php:860 #, php-format msgid "%s channel censored/uncensored" msgid_plural "%s channels censored/uncensored" msgstr[0] "" msgstr[1] "" -#: ../../mod/admin.php:862 +#: ../../mod/admin.php:869 #, php-format msgid "%s channel code allowed/disallowed" msgid_plural "%s channels code allowed/disallowed" msgstr[0] "" msgstr[1] "" -#: ../../mod/admin.php:869 +#: ../../mod/admin.php:876 #, php-format msgid "%s channel deleted" msgid_plural "%s channels deleted" msgstr[0] "" msgstr[1] "" -#: ../../mod/admin.php:889 +#: ../../mod/admin.php:896 msgid "Channel not found" msgstr "" -#: ../../mod/admin.php:900 +#: ../../mod/admin.php:907 #, php-format msgid "Channel '%s' deleted" msgstr "" -#: ../../mod/admin.php:912 +#: ../../mod/admin.php:919 #, php-format msgid "Channel '%s' censored" msgstr "" -#: ../../mod/admin.php:912 +#: ../../mod/admin.php:919 #, php-format msgid "Channel '%s' uncensored" msgstr "" -#: ../../mod/admin.php:923 +#: ../../mod/admin.php:930 #, php-format msgid "Channel '%s' code allowed" msgstr "" -#: ../../mod/admin.php:923 +#: ../../mod/admin.php:930 #, php-format msgid "Channel '%s' code disallowed" msgstr "" -#: ../../mod/admin.php:969 +#: ../../mod/admin.php:976 msgid "Censor" msgstr "" -#: ../../mod/admin.php:970 +#: ../../mod/admin.php:977 msgid "Uncensor" msgstr "" -#: ../../mod/admin.php:971 +#: ../../mod/admin.php:978 msgid "Allow Code" msgstr "" -#: ../../mod/admin.php:972 +#: ../../mod/admin.php:979 msgid "Disallow Code" msgstr "" -#: ../../mod/admin.php:974 +#: ../../mod/admin.php:981 msgid "UID" msgstr "" -#: ../../mod/admin.php:976 +#: ../../mod/admin.php:983 msgid "" "Selected channels will be deleted!\\n\\nEverything that was posted in these " "channels on this site will be permanently deleted!\\n\\nAre you sure?" msgstr "" -#: ../../mod/admin.php:977 +#: ../../mod/admin.php:984 msgid "" "The channel {0} will be deleted!\\n\\nEverything that was posted in this " "channel on this site will be permanently deleted!\\n\\nAre you sure?" msgstr "" -#: ../../mod/admin.php:1017 +#: ../../mod/admin.php:1024 #, php-format msgid "Plugin %s disabled." msgstr "" -#: ../../mod/admin.php:1021 +#: ../../mod/admin.php:1028 #, php-format msgid "Plugin %s enabled." msgstr "" -#: ../../mod/admin.php:1031 ../../mod/admin.php:1234 +#: ../../mod/admin.php:1038 ../../mod/admin.php:1241 msgid "Disable" msgstr "" -#: ../../mod/admin.php:1034 ../../mod/admin.php:1236 +#: ../../mod/admin.php:1041 ../../mod/admin.php:1243 msgid "Enable" msgstr "" -#: ../../mod/admin.php:1063 ../../mod/admin.php:1263 +#: ../../mod/admin.php:1070 ../../mod/admin.php:1270 msgid "Toggle" msgstr "" -#: ../../mod/admin.php:1071 ../../mod/admin.php:1273 +#: ../../mod/admin.php:1078 ../../mod/admin.php:1280 msgid "Author: " msgstr "" -#: ../../mod/admin.php:1072 ../../mod/admin.php:1274 +#: ../../mod/admin.php:1079 ../../mod/admin.php:1281 msgid "Maintainer: " msgstr "" -#: ../../mod/admin.php:1199 +#: ../../mod/admin.php:1206 msgid "No themes found." msgstr "" -#: ../../mod/admin.php:1255 +#: ../../mod/admin.php:1262 msgid "Screenshot" msgstr "" -#: ../../mod/admin.php:1301 +#: ../../mod/admin.php:1308 msgid "[Experimental]" msgstr "" -#: ../../mod/admin.php:1302 +#: ../../mod/admin.php:1309 msgid "[Unsupported]" msgstr "" -#: ../../mod/admin.php:1326 +#: ../../mod/admin.php:1333 msgid "Log settings updated." msgstr "" -#: ../../mod/admin.php:1383 +#: ../../mod/admin.php:1390 msgid "Clear" msgstr "" -#: ../../mod/admin.php:1389 +#: ../../mod/admin.php:1396 msgid "Debugging" msgstr "" -#: ../../mod/admin.php:1390 +#: ../../mod/admin.php:1397 msgid "Log file" msgstr "" -#: ../../mod/admin.php:1390 +#: ../../mod/admin.php:1397 msgid "" "Must be writable by web server. Relative to your Red top-level directory." msgstr "" -#: ../../mod/admin.php:1391 +#: ../../mod/admin.php:1398 msgid "Log level" msgstr "" -#: ../../mod/admin.php:1437 +#: ../../mod/admin.php:1444 msgid "New Profile Field" msgstr "" -#: ../../mod/admin.php:1438 ../../mod/admin.php:1458 +#: ../../mod/admin.php:1445 ../../mod/admin.php:1465 msgid "Field nickname" msgstr "" -#: ../../mod/admin.php:1438 ../../mod/admin.php:1458 +#: ../../mod/admin.php:1445 ../../mod/admin.php:1465 msgid "System name of field" msgstr "" -#: ../../mod/admin.php:1439 ../../mod/admin.php:1459 +#: ../../mod/admin.php:1446 ../../mod/admin.php:1466 msgid "Input type" msgstr "" -#: ../../mod/admin.php:1440 ../../mod/admin.php:1460 +#: ../../mod/admin.php:1447 ../../mod/admin.php:1467 msgid "Field Name" msgstr "" -#: ../../mod/admin.php:1440 ../../mod/admin.php:1460 +#: ../../mod/admin.php:1447 ../../mod/admin.php:1467 msgid "Label on profile pages" msgstr "" -#: ../../mod/admin.php:1441 ../../mod/admin.php:1461 +#: ../../mod/admin.php:1448 ../../mod/admin.php:1468 msgid "Help text" msgstr "" -#: ../../mod/admin.php:1441 ../../mod/admin.php:1461 +#: ../../mod/admin.php:1448 ../../mod/admin.php:1468 msgid "Additional info (optional)" msgstr "" -#: ../../mod/admin.php:1451 +#: ../../mod/admin.php:1458 msgid "Field definition not found" msgstr "" -#: ../../mod/admin.php:1457 +#: ../../mod/admin.php:1464 msgid "Edit Profile Field" msgstr "" @@ -8258,101 +8168,193 @@ msgstr "" msgid "Use this form to drop the location if the hub is no longer operating." msgstr "" -#: ../../mod/invite.php:25 -msgid "Total invitation limit exceeded." +#: ../../mod/home.php:57 ../../mod/home.php:65 ../../mod/siteinfo.php:61 +msgid "$Projectname" msgstr "" -#: ../../mod/invite.php:49 +#: ../../mod/home.php:75 #, php-format -msgid "%s : Not a valid email address." +msgid "Welcome to %s" msgstr "" -#: ../../mod/invite.php:76 -msgid "Please join us on $Projectname" +#: ../../mod/regmod.php:11 +msgid "Please login." msgstr "" -#: ../../mod/invite.php:87 -msgid "Invitation limit exceeded. Please contact your site administrator." +#: ../../mod/xchan.php:6 +msgid "Xchan Lookup" msgstr "" -#: ../../mod/invite.php:92 +#: ../../mod/xchan.php:9 +msgid "Lookup xchan beginning with (or webbie): " +msgstr "" + +#: ../../mod/xchan.php:37 ../../mod/menu.php:162 ../../mod/mitem.php:116 +msgid "Not found." +msgstr "" + +#: ../../mod/channel.php:25 ../../mod/chat.php:19 +msgid "You must be logged in to see this page." +msgstr "" + +#: ../../mod/channel.php:97 +msgid "Insufficient permissions. Request redirected to profile page." +msgstr "" + +#: ../../mod/attach.php:9 +msgid "Item not available." +msgstr "" + +#: ../../mod/photos.php:79 +msgid "Page owner information could not be retrieved." +msgstr "" + +#: ../../mod/photos.php:100 +msgid "Album not found." +msgstr "" + +#: ../../mod/photos.php:127 +msgid "Delete Album" +msgstr "" + +#: ../../mod/photos.php:171 ../../mod/photos.php:1006 +msgid "Delete Photo" +msgstr "" + +#: ../../mod/photos.php:501 +msgid "No photos selected" +msgstr "" + +#: ../../mod/photos.php:550 +msgid "Access to this item is restricted." +msgstr "" + +#: ../../mod/photos.php:589 #, php-format -msgid "%s : Message delivery failed." +msgid "%1$.2f MB of %2$.2f MB photo storage used." msgstr "" -#: ../../mod/invite.php:96 +#: ../../mod/photos.php:592 #, php-format -msgid "%d message sent." -msgid_plural "%d messages sent." -msgstr[0] "" -msgstr[1] "" +msgid "%1$.2f MB photo storage used." +msgstr "" -#: ../../mod/invite.php:115 -msgid "You have no more invitations available" +#: ../../mod/photos.php:620 +msgid "Upload Photos" msgstr "" -#: ../../mod/invite.php:129 -msgid "Send invitations" +#: ../../mod/photos.php:624 +msgid "Enter an album name" msgstr "" -#: ../../mod/invite.php:130 -msgid "Enter email addresses, one per line:" +#: ../../mod/photos.php:625 +msgid "or select an existing album (doubleclick)" msgstr "" -#: ../../mod/invite.php:131 ../../mod/mail.php:238 -msgid "Your message:" +#: ../../mod/photos.php:626 +msgid "Create a status post for this upload" msgstr "" -#: ../../mod/invite.php:132 -msgid "Please join my community on $Projectname." +#: ../../mod/photos.php:627 +msgid "Caption (optional):" msgstr "" -#: ../../mod/invite.php:134 -msgid "You will need to supply this invitation code: " +#: ../../mod/photos.php:628 +msgid "Description (optional):" msgstr "" -#: ../../mod/invite.php:135 -msgid "1. Register at any $Projectname location (they are all inter-connected)" +#: ../../mod/photos.php:655 +msgid "Album name could not be decoded" msgstr "" -#: ../../mod/invite.php:137 -msgid "2. Enter my $Projectname network address into the site searchbar." +#: ../../mod/photos.php:699 ../../mod/photos.php:1233 +#: ../../mod/photos.php:1250 +msgid "Contact Photos" msgstr "" -#: ../../mod/invite.php:138 -msgid "or visit " +#: ../../mod/photos.php:722 +msgid "Show Newest First" msgstr "" -#: ../../mod/invite.php:140 -msgid "3. Click [Connect]" +#: ../../mod/photos.php:724 +msgid "Show Oldest First" msgstr "" -#: ../../mod/regmod.php:11 -msgid "Please login." +#: ../../mod/photos.php:824 +msgid "Permission denied. Access to this item may be restricted." msgstr "" -#: ../../mod/xchan.php:6 -msgid "Xchan Lookup" +#: ../../mod/photos.php:826 +msgid "Photo not available" msgstr "" -#: ../../mod/xchan.php:9 -msgid "Lookup xchan beginning with (or webbie): " +#: ../../mod/photos.php:884 +msgid "Use as profile photo" msgstr "" -#: ../../mod/xchan.php:37 ../../mod/menu.php:162 ../../mod/mitem.php:116 -msgid "Not found." +#: ../../mod/photos.php:891 +msgid "Private Photo" msgstr "" -#: ../../mod/channel.php:25 ../../mod/chat.php:19 -msgid "You must be logged in to see this page." +#: ../../mod/photos.php:902 ../../mod/events.php:652 ../../mod/events.php:659 +msgid "Previous" msgstr "" -#: ../../mod/channel.php:97 -msgid "Insufficient permissions. Request redirected to profile page." +#: ../../mod/photos.php:906 +msgid "View Full Size" msgstr "" -#: ../../mod/attach.php:9 -msgid "Item not available." +#: ../../mod/photos.php:985 +msgid "Edit photo" +msgstr "" + +#: ../../mod/photos.php:987 +msgid "Rotate CW (right)" +msgstr "" + +#: ../../mod/photos.php:988 +msgid "Rotate CCW (left)" +msgstr "" + +#: ../../mod/photos.php:991 +msgid "Enter a new album name" +msgstr "" + +#: ../../mod/photos.php:992 +msgid "or select an existing one (doubleclick)" +msgstr "" + +#: ../../mod/photos.php:995 +msgid "Caption" +msgstr "" + +#: ../../mod/photos.php:997 +msgid "Add a Tag" +msgstr "" + +#: ../../mod/photos.php:1001 +msgid "Example: @bob, @Barbara_Jensen, @jim@example.com" +msgstr "" + +#: ../../mod/photos.php:1004 +msgid "Flag as adult in album view" +msgstr "" + +#: ../../mod/photos.php:1196 +msgid "In This Photo:" +msgstr "" + +#: ../../mod/photos.php:1201 +msgid "Map" +msgstr "" + +#: ../../mod/photos.php:1289 +msgid "View Album" +msgstr "" + +#: ../../mod/photos.php:1300 ../../mod/photos.php:1313 +#: ../../mod/photos.php:1314 +msgid "Recent Photos" msgstr "" #: ../../mod/lockview.php:37 @@ -8744,95 +8746,89 @@ msgstr "" msgid "Allow bookmarks" msgstr "" -#: ../../mod/mail.php:33 +#: ../../mod/mail.php:34 msgid "Unable to lookup recipient." msgstr "" -#: ../../mod/mail.php:41 +#: ../../mod/mail.php:42 msgid "Unable to communicate with requested channel." msgstr "" -#: ../../mod/mail.php:48 +#: ../../mod/mail.php:49 msgid "Cannot verify requested channel." msgstr "" -#: ../../mod/mail.php:74 +#: ../../mod/mail.php:75 msgid "Selected channel has private message restrictions. Send failed." msgstr "" -#: ../../mod/mail.php:132 +#: ../../mod/mail.php:140 msgid "Messages" msgstr "" -#: ../../mod/mail.php:167 +#: ../../mod/mail.php:175 msgid "Message recalled." msgstr "" -#: ../../mod/mail.php:180 +#: ../../mod/mail.php:188 msgid "Conversation removed." msgstr "" -#: ../../mod/mail.php:223 +#: ../../mod/mail.php:231 msgid "Requested channel is not in this network" msgstr "" -#: ../../mod/mail.php:231 +#: ../../mod/mail.php:239 msgid "Send Private Message" msgstr "" -#: ../../mod/mail.php:232 ../../mod/mail.php:362 +#: ../../mod/mail.php:240 ../../mod/mail.php:370 msgid "To:" msgstr "" -#: ../../mod/mail.php:235 ../../mod/mail.php:364 +#: ../../mod/mail.php:243 ../../mod/mail.php:372 msgid "Subject:" msgstr "" -#: ../../mod/mail.php:242 +#: ../../mod/mail.php:250 msgid "Send" msgstr "" -#: ../../mod/mail.php:334 +#: ../../mod/mail.php:342 msgid "Delete message" msgstr "" -#: ../../mod/mail.php:335 +#: ../../mod/mail.php:343 msgid "Delivery report" msgstr "" -#: ../../mod/mail.php:336 +#: ../../mod/mail.php:344 msgid "Recall message" msgstr "" -#: ../../mod/mail.php:338 +#: ../../mod/mail.php:346 msgid "Message has been recalled." msgstr "" -#: ../../mod/mail.php:355 +#: ../../mod/mail.php:363 msgid "Delete Conversation" msgstr "" -#: ../../mod/mail.php:357 +#: ../../mod/mail.php:365 msgid "" "No secure communications available. You <strong>may</strong> be able to " "respond from the sender's profile page." msgstr "" -#: ../../mod/mail.php:361 +#: ../../mod/mail.php:369 msgid "Send Reply" msgstr "" -#: ../../mod/mail.php:366 +#: ../../mod/mail.php:374 #, php-format msgid "Your message for %s (%s):" msgstr "" -#: ../../mod/post.php:234 -msgid "" -"Remote authentication blocked. You are logged into this site locally. Please " -"logout and retry." -msgstr "" - #: ../../mod/service_limits.php:19 msgid "No service class restrictions found." msgstr "" @@ -9368,3 +9364,9 @@ msgstr "" #, php-format msgid "[hubzilla] Cron tasks not running on %s" msgstr "" + +#: ../../Zotlabs/Zot/Auth.php:140 +msgid "" +"Remote authentication blocked. You are logged into this site locally. Please " +"logout and retry." +msgstr "" diff --git a/version.inc b/version.inc index 97ba9c359..e71192c92 100644 --- a/version.inc +++ b/version.inc @@ -1 +1 @@ -2015-12-07.1239 +2015-12-14.1246 diff --git a/view/css/mod_home.css b/view/css/mod_home.css new file mode 100644 index 000000000..d4cf37253 --- /dev/null +++ b/view/css/mod_home.css @@ -0,0 +1,15 @@ +.home-welcome { + text-align: center; +} + +.generic-content-wrapper-styled { + margin-left: auto; + margin-right: auto; + max-width: 420px; + font-size: 1.1em; +} + +#login-main { + max-width: 400px; + margin-top: 50px; +} diff --git a/view/css/mod_login.css b/view/css/mod_login.css new file mode 100644 index 000000000..a086c50df --- /dev/null +++ b/view/css/mod_login.css @@ -0,0 +1,23 @@ +.generic-content-wrapper-styled { + margin-left: auto; + margin-right: auto; + max-width: 420px; + font-size: 1.1em; +} + +#login-main { + max-width: 400px; + margin-top: 50px; +} + +@media (min-width: 768px) and (max-width: 991px) { + #region_1 { + display: none !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + #region_3 { + display: table-cell !important; + } +} diff --git a/view/css/mod_register.css b/view/css/mod_register.css index b662610ae..618b7ce95 100644 --- a/view/css/mod_register.css +++ b/view/css/mod_register.css @@ -1,31 +1,35 @@ h2 { - margin-left: 5%; - margin-top: 5%; + margin: 20px 0 20px 5%; } -#register-form { - font-size: 1.4em; - margin-left: 10%; - margin-top: 5%; +.generic-content-wrapper-styled { + margin-left: auto; + margin-right: auto; + max-width: 820px; + font-size: 1.1em; } -#register-desc, #register-text, #register-sites { + +#register-desc, #register-invite-desc, #register-text, #register-sites { font-weight: bold; margin-bottom: 15px; padding: 8px; border: 1px solid #ccc; } -.register-label { +@media (min-width: 560px) { +.register-label, .register-input { float: left; - width: 275px; + width: 50%; +} } -.register-input { +@media (max-width: 559px) { +.register-label, .register-input { float: left; - width: 275px; - padding: 5px; + max-width: 400px; +} } .register-feedback { diff --git a/view/es/hmessages.po b/view/es/hmessages.po index 27ad2c772..3d1938a07 100644 --- a/view/es/hmessages.po +++ b/view/es/hmessages.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: Redmatrix\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-12-04 00:03-0800\n" -"PO-Revision-Date: 2015-12-06 18:09+0000\n" +"POT-Creation-Date: 2015-12-11 00:03-0800\n" +"PO-Revision-Date: 2015-12-12 12:49+0000\n" "Last-Translator: Manuel Jiménez Friaza <mjfriaza@openmailbox.org>\n" "Language-Team: Spanish (http://www.transifex.com/Friendica/red-matrix/language/es/)\n" "MIME-Version: 1.0\n" @@ -23,7 +23,7 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../include/Contact.php:101 ../../include/identity.php:953 +#: ../../include/Contact.php:101 ../../include/identity.php:947 #: ../../include/widgets.php:137 ../../include/widgets.php:175 #: ../../include/conversation.php:953 ../../mod/match.php:64 #: ../../mod/directory.php:318 ../../mod/suggest.php:52 @@ -82,25 +82,25 @@ msgstr "Sala no encontrada." #: ../../mod/editwebpage.php:125 ../../mod/profile.php:64 #: ../../mod/profile.php:72 ../../mod/api.php:26 ../../mod/api.php:31 #: ../../mod/fsuggest.php:78 ../../mod/sources.php:66 -#: ../../mod/notifications.php:66 ../../mod/photos.php:70 -#: ../../mod/profile_photo.php:341 ../../mod/profile_photo.php:354 -#: ../../mod/thing.php:271 ../../mod/thing.php:291 ../../mod/thing.php:328 -#: ../../mod/editblock.php:65 ../../mod/network.php:12 -#: ../../mod/pdledit.php:21 ../../mod/register.php:72 +#: ../../mod/notifications.php:66 ../../mod/invite.php:13 +#: ../../mod/invite.php:87 ../../mod/profile_photo.php:341 +#: ../../mod/profile_photo.php:354 ../../mod/thing.php:271 +#: ../../mod/thing.php:291 ../../mod/thing.php:328 ../../mod/editblock.php:65 +#: ../../mod/network.php:12 ../../mod/pdledit.php:21 ../../mod/register.php:72 #: ../../mod/editlayout.php:63 ../../mod/editlayout.php:87 #: ../../mod/settings.php:568 ../../mod/webpages.php:69 #: ../../mod/appman.php:66 ../../mod/layouts.php:69 ../../mod/layouts.php:76 -#: ../../mod/layouts.php:87 ../../mod/locs.php:83 ../../mod/invite.php:13 -#: ../../mod/invite.php:104 ../../mod/regmod.php:17 ../../mod/channel.php:100 -#: ../../mod/channel.php:214 ../../mod/channel.php:254 -#: ../../mod/editpost.php:13 ../../mod/chat.php:94 ../../mod/chat.php:99 -#: ../../mod/viewsrc.php:14 ../../mod/authtest.php:13 -#: ../../mod/connections.php:29 ../../mod/manage.php:6 ../../mod/menu.php:74 -#: ../../mod/mail.php:118 ../../mod/service_limits.php:7 -#: ../../mod/suggest.php:26 ../../mod/events.php:260 ../../mod/message.php:16 -#: ../../mod/block.php:22 ../../mod/block.php:72 ../../mod/mitem.php:111 -#: ../../mod/sharedwithme.php:7 ../../mod/viewconnections.php:22 -#: ../../mod/viewconnections.php:27 ../../index.php:182 ../../index.php:365 +#: ../../mod/layouts.php:87 ../../mod/locs.php:83 ../../mod/regmod.php:17 +#: ../../mod/channel.php:100 ../../mod/channel.php:214 +#: ../../mod/channel.php:254 ../../mod/photos.php:70 ../../mod/editpost.php:13 +#: ../../mod/chat.php:94 ../../mod/chat.php:99 ../../mod/viewsrc.php:14 +#: ../../mod/authtest.php:13 ../../mod/connections.php:29 +#: ../../mod/manage.php:6 ../../mod/menu.php:74 ../../mod/mail.php:126 +#: ../../mod/service_limits.php:7 ../../mod/suggest.php:26 +#: ../../mod/events.php:260 ../../mod/message.php:16 ../../mod/block.php:22 +#: ../../mod/block.php:72 ../../mod/mitem.php:111 ../../mod/sharedwithme.php:7 +#: ../../mod/viewconnections.php:22 ../../mod/viewconnections.php:27 +#: ../../index.php:182 ../../index.php:365 msgid "Permission denied." msgstr "Acceso denegado." @@ -154,16 +154,16 @@ msgstr "Programar bandeja de entrada" msgid "Schedule Outbox" msgstr "Programar bandeja de salida" -#: ../../include/RedDAV/RedBrowser.php:164 ../../include/widgets.php:1331 +#: ../../include/RedDAV/RedBrowser.php:164 ../../include/widgets.php:1330 #: ../../include/conversation.php:1027 ../../include/apps.php:360 -#: ../../include/apps.php:415 ../../mod/photos.php:759 -#: ../../mod/photos.php:1198 +#: ../../include/apps.php:415 ../../mod/photos.php:754 +#: ../../mod/photos.php:1195 msgid "Unknown" msgstr "Desconocido" #: ../../include/RedDAV/RedBrowser.php:226 ../../include/conversation.php:1629 #: ../../include/nav.php:93 ../../include/apps.php:135 -#: ../../mod/fbrowser.php:114 +#: ../../mod/fbrowser.php:109 msgid "Files" msgstr "Ficheros" @@ -184,12 +184,12 @@ msgstr "Crear" #: ../../include/RedDAV/RedBrowser.php:231 #: ../../include/RedDAV/RedBrowser.php:305 ../../include/widgets.php:1343 -#: ../../mod/photos.php:784 ../../mod/photos.php:1317 -#: ../../mod/profile_photo.php:453 +#: ../../mod/profile_photo.php:453 ../../mod/photos.php:781 +#: ../../mod/photos.php:1316 msgid "Upload" msgstr "Subir" -#: ../../include/RedDAV/RedBrowser.php:235 ../../mod/admin.php:974 +#: ../../include/RedDAV/RedBrowser.php:235 ../../mod/admin.php:981 #: ../../mod/settings.php:588 ../../mod/settings.php:614 #: ../../mod/sharedwithme.php:95 msgid "Name" @@ -224,10 +224,10 @@ msgstr "Editar" #: ../../include/RedDAV/RedBrowser.php:241 ../../include/conversation.php:657 #: ../../include/ItemObject.php:120 ../../include/apps.php:260 #: ../../mod/group.php:173 ../../mod/blocks.php:155 ../../mod/connedit.php:551 -#: ../../mod/editwebpage.php:223 ../../mod/photos.php:1129 -#: ../../mod/thing.php:258 ../../mod/editblock.php:181 ../../mod/admin.php:809 -#: ../../mod/admin.php:968 ../../mod/editlayout.php:179 -#: ../../mod/settings.php:649 ../../mod/webpages.php:183 +#: ../../mod/editwebpage.php:223 ../../mod/thing.php:258 +#: ../../mod/editblock.php:181 ../../mod/admin.php:816 ../../mod/admin.php:975 +#: ../../mod/editlayout.php:179 ../../mod/settings.php:649 +#: ../../mod/webpages.php:183 ../../mod/photos.php:1126 msgid "Delete" msgstr "Eliminar" @@ -258,7 +258,7 @@ msgid "Delete this item?" msgstr "¿Borrar este elemento?" #: ../../include/js_strings.php:6 ../../include/ItemObject.php:696 -#: ../../mod/photos.php:1047 ../../mod/photos.php:1165 +#: ../../mod/photos.php:1044 ../../mod/photos.php:1162 msgid "Comment" msgstr "Comentar" @@ -331,17 +331,17 @@ msgstr "Describir (opcional)" #: ../../mod/poke.php:171 ../../mod/profiles.php:675 #: ../../mod/connedit.php:715 ../../mod/fsuggest.php:108 #: ../../mod/sources.php:104 ../../mod/sources.php:138 -#: ../../mod/import.php:527 ../../mod/photos.php:637 ../../mod/photos.php:1008 -#: ../../mod/photos.php:1048 ../../mod/photos.php:1166 ../../mod/thing.php:313 +#: ../../mod/import.php:527 ../../mod/invite.php:142 ../../mod/thing.php:313 #: ../../mod/thing.php:359 ../../mod/import_items.php:122 -#: ../../mod/pdledit.php:58 ../../mod/admin.php:435 ../../mod/admin.php:802 -#: ../../mod/admin.php:966 ../../mod/admin.php:1103 ../../mod/admin.php:1297 -#: ../../mod/admin.php:1382 ../../mod/settings.php:586 +#: ../../mod/pdledit.php:58 ../../mod/admin.php:442 ../../mod/admin.php:809 +#: ../../mod/admin.php:973 ../../mod/admin.php:1110 ../../mod/admin.php:1304 +#: ../../mod/admin.php:1389 ../../mod/settings.php:586 #: ../../mod/settings.php:698 ../../mod/settings.php:726 #: ../../mod/settings.php:749 ../../mod/settings.php:834 #: ../../mod/settings.php:1023 ../../mod/appman.php:99 ../../mod/locs.php:116 -#: ../../mod/invite.php:142 ../../mod/xchan.php:11 ../../mod/chat.php:184 -#: ../../mod/chat.php:213 ../../mod/mail.php:372 ../../mod/events.php:461 +#: ../../mod/xchan.php:11 ../../mod/photos.php:637 ../../mod/photos.php:1005 +#: ../../mod/photos.php:1045 ../../mod/photos.php:1163 ../../mod/chat.php:184 +#: ../../mod/chat.php:213 ../../mod/mail.php:380 ../../mod/events.php:461 #: ../../mod/events.php:658 ../../mod/mitem.php:231 #: ../../view/theme/redbasic/php/config.php:99 msgid "Submit" @@ -669,8 +669,8 @@ msgid "Visible to specific connections." msgstr "Visible para conexiones específicas." #: ../../include/items.php:4319 ../../mod/filestorage.php:27 -#: ../../mod/thing.php:86 ../../mod/admin.php:127 ../../mod/admin.php:1005 -#: ../../mod/admin.php:1210 ../../mod/display.php:36 ../../mod/viewsrc.php:20 +#: ../../mod/thing.php:86 ../../mod/admin.php:127 ../../mod/admin.php:1012 +#: ../../mod/admin.php:1217 ../../mod/display.php:36 ../../mod/viewsrc.php:20 msgid "Item not found." msgstr "Elemento no encontrado." @@ -696,36 +696,6 @@ msgstr "Conexión: %s" msgid "Connection not found." msgstr "Conexión no encontrada" -#: ../../include/network.php:630 -msgid "view full size" -msgstr "Ver en el tamaño original" - -#: ../../include/network.php:1608 ../../include/enotify.php:57 -msgid "$Projectname Notification" -msgstr "Notificación de $Projectname" - -#: ../../include/network.php:1609 ../../include/enotify.php:58 -msgid "$projectname" -msgstr "$projectname" - -#: ../../include/network.php:1611 ../../include/enotify.php:60 -msgid "Thank You," -msgstr "Gracias," - -#: ../../include/network.php:1613 ../../include/enotify.php:62 -#, php-format -msgid "%s Administrator" -msgstr "%s Administrador" - -#: ../../include/network.php:1655 ../../include/account.php:316 -#: ../../include/account.php:343 ../../include/account.php:403 -msgid "Administrator" -msgstr "Administrador" - -#: ../../include/network.php:1669 -msgid "No Subject" -msgstr "Sin asunto" - #: ../../include/event.php:22 ../../include/bb2diaspora.php:471 #: ../../include/text.php:1392 msgid "l F d, Y \\@ g:i A" @@ -741,7 +711,7 @@ msgstr "Comienza:" msgid "Finishes:" msgstr "Finaliza:" -#: ../../include/event.php:52 ../../include/identity.php:1004 +#: ../../include/event.php:52 ../../include/identity.php:998 #: ../../include/bb2diaspora.php:493 ../../include/text.php:1407 #: ../../mod/directory.php:304 msgid "Location:" @@ -836,206 +806,206 @@ msgstr "El canal solicitado no está disponible." msgid "Requested profile is not available." msgstr "El perfil solicitado no está disponible." -#: ../../include/identity.php:966 ../../mod/profiles.php:782 +#: ../../include/identity.php:960 ../../mod/profiles.php:782 msgid "Change profile photo" msgstr "Cambiar la foto del perfil" -#: ../../include/identity.php:972 +#: ../../include/identity.php:966 msgid "Profiles" msgstr "Perfiles" -#: ../../include/identity.php:972 +#: ../../include/identity.php:966 msgid "Manage/edit profiles" msgstr "Administrar/editar perfiles" -#: ../../include/identity.php:973 ../../mod/profiles.php:783 +#: ../../include/identity.php:967 ../../mod/profiles.php:783 msgid "Create New Profile" msgstr "Crear un nuevo perfil" -#: ../../include/identity.php:976 ../../include/nav.php:90 +#: ../../include/identity.php:970 ../../include/nav.php:90 msgid "Edit Profile" msgstr "Editar el perfil" -#: ../../include/identity.php:988 ../../mod/profiles.php:794 +#: ../../include/identity.php:982 ../../mod/profiles.php:794 msgid "Profile Image" msgstr "Imagen del perfil" -#: ../../include/identity.php:991 +#: ../../include/identity.php:985 msgid "visible to everybody" msgstr "visible para cualquiera" -#: ../../include/identity.php:992 ../../mod/profiles.php:677 +#: ../../include/identity.php:986 ../../mod/profiles.php:677 #: ../../mod/profiles.php:798 msgid "Edit visibility" msgstr "Editar visibilidad" -#: ../../include/identity.php:1008 ../../include/identity.php:1248 +#: ../../include/identity.php:1002 ../../include/identity.php:1242 msgid "Gender:" msgstr "Género:" -#: ../../include/identity.php:1009 ../../include/identity.php:1292 +#: ../../include/identity.php:1003 ../../include/identity.php:1286 msgid "Status:" msgstr "Estado:" -#: ../../include/identity.php:1010 ../../include/identity.php:1303 +#: ../../include/identity.php:1004 ../../include/identity.php:1297 msgid "Homepage:" msgstr "Página personal:" -#: ../../include/identity.php:1011 +#: ../../include/identity.php:1005 msgid "Online Now" msgstr "Ahora en línea" -#: ../../include/identity.php:1095 ../../include/identity.php:1173 +#: ../../include/identity.php:1089 ../../include/identity.php:1167 #: ../../mod/ping.php:318 msgid "g A l F d" msgstr "g A l d F" -#: ../../include/identity.php:1096 ../../include/identity.php:1174 +#: ../../include/identity.php:1090 ../../include/identity.php:1168 msgid "F d" msgstr "d F" -#: ../../include/identity.php:1141 ../../include/identity.php:1213 +#: ../../include/identity.php:1135 ../../include/identity.php:1207 #: ../../mod/ping.php:341 msgid "[today]" msgstr "[hoy]" -#: ../../include/identity.php:1152 +#: ../../include/identity.php:1146 msgid "Birthday Reminders" msgstr "Recordatorios de cumpleaños" -#: ../../include/identity.php:1153 +#: ../../include/identity.php:1147 msgid "Birthdays this week:" msgstr "Cumpleaños de esta semana:" -#: ../../include/identity.php:1206 +#: ../../include/identity.php:1200 msgid "[No description]" msgstr "[Sin descripción]" -#: ../../include/identity.php:1224 +#: ../../include/identity.php:1218 msgid "Event Reminders" msgstr "Recordatorios de eventos" -#: ../../include/identity.php:1225 +#: ../../include/identity.php:1219 msgid "Events this week:" msgstr "Eventos de esta semana:" -#: ../../include/identity.php:1238 ../../include/identity.php:1355 +#: ../../include/identity.php:1232 ../../include/identity.php:1349 #: ../../include/apps.php:138 ../../mod/profperm.php:112 msgid "Profile" msgstr "Perfil" -#: ../../include/identity.php:1246 ../../mod/settings.php:1029 +#: ../../include/identity.php:1240 ../../mod/settings.php:1029 msgid "Full Name:" msgstr "Nombre completo:" -#: ../../include/identity.php:1253 +#: ../../include/identity.php:1247 msgid "Like this channel" msgstr "Me gusta este canal" -#: ../../include/identity.php:1264 ../../include/taxonomy.php:414 +#: ../../include/identity.php:1258 ../../include/taxonomy.php:414 #: ../../include/conversation.php:1721 ../../include/ItemObject.php:179 -#: ../../mod/photos.php:1086 +#: ../../mod/photos.php:1083 msgctxt "noun" msgid "Like" msgid_plural "Likes" msgstr[0] "Me gusta" msgstr[1] "Me gusta" -#: ../../include/identity.php:1277 +#: ../../include/identity.php:1271 msgid "j F, Y" msgstr "j F Y" -#: ../../include/identity.php:1278 +#: ../../include/identity.php:1272 msgid "j F" msgstr "j F" -#: ../../include/identity.php:1285 +#: ../../include/identity.php:1279 msgid "Birthday:" msgstr "Cumpleaños:" -#: ../../include/identity.php:1289 ../../mod/directory.php:299 +#: ../../include/identity.php:1283 ../../mod/directory.php:299 msgid "Age:" msgstr "Edad:" -#: ../../include/identity.php:1298 +#: ../../include/identity.php:1292 #, php-format msgid "for %1$d %2$s" msgstr "por %1$d %2$s" -#: ../../include/identity.php:1301 ../../mod/profiles.php:699 +#: ../../include/identity.php:1295 ../../mod/profiles.php:699 msgid "Sexual Preference:" msgstr "Orientación sexual:" -#: ../../include/identity.php:1305 ../../mod/profiles.php:701 +#: ../../include/identity.php:1299 ../../mod/profiles.php:701 #: ../../mod/directory.php:315 msgid "Hometown:" msgstr "Ciudad de origen:" -#: ../../include/identity.php:1307 +#: ../../include/identity.php:1301 msgid "Tags:" msgstr "Etiquetas:" -#: ../../include/identity.php:1309 ../../mod/profiles.php:702 +#: ../../include/identity.php:1303 ../../mod/profiles.php:702 msgid "Political Views:" msgstr "Posición política:" -#: ../../include/identity.php:1311 +#: ../../include/identity.php:1305 msgid "Religion:" msgstr "Religión:" -#: ../../include/identity.php:1313 ../../mod/directory.php:317 +#: ../../include/identity.php:1307 ../../mod/directory.php:317 msgid "About:" msgstr "Sobre mí:" -#: ../../include/identity.php:1315 +#: ../../include/identity.php:1309 msgid "Hobbies/Interests:" msgstr "Aficciones/Intereses:" -#: ../../include/identity.php:1317 ../../mod/profiles.php:705 +#: ../../include/identity.php:1311 ../../mod/profiles.php:705 msgid "Likes:" msgstr "Me gusta:" -#: ../../include/identity.php:1319 ../../mod/profiles.php:706 +#: ../../include/identity.php:1313 ../../mod/profiles.php:706 msgid "Dislikes:" msgstr "No me gusta:" -#: ../../include/identity.php:1321 +#: ../../include/identity.php:1315 msgid "Contact information and Social Networks:" msgstr "Información de contacto y redes sociales:" -#: ../../include/identity.php:1323 +#: ../../include/identity.php:1317 msgid "My other channels:" msgstr "Mis otros canales:" -#: ../../include/identity.php:1325 +#: ../../include/identity.php:1319 msgid "Musical interests:" msgstr "Intereses musicales:" -#: ../../include/identity.php:1327 +#: ../../include/identity.php:1321 msgid "Books, literature:" msgstr "Libros, literatura:" -#: ../../include/identity.php:1329 +#: ../../include/identity.php:1323 msgid "Television:" msgstr "Televisión:" -#: ../../include/identity.php:1331 +#: ../../include/identity.php:1325 msgid "Film/dance/culture/entertainment:" msgstr "Cine/danza/cultura/entretenimiento:" -#: ../../include/identity.php:1333 +#: ../../include/identity.php:1327 msgid "Love/Romance:" msgstr "Vida sentimental/amorosa:" -#: ../../include/identity.php:1335 +#: ../../include/identity.php:1329 msgid "Work/employment:" msgstr "Trabajo:" -#: ../../include/identity.php:1337 +#: ../../include/identity.php:1331 msgid "School/education:" msgstr "Estudios:" -#: ../../include/identity.php:1357 +#: ../../include/identity.php:1351 msgid "Like this thing" msgstr "Me gusta esto" @@ -1074,7 +1044,7 @@ msgstr "me gusta" #: ../../include/taxonomy.php:328 msgid "likes" -msgstr "le gusta" +msgstr "gusta de" #: ../../include/taxonomy.php:329 ../../include/ItemObject.php:255 msgid "dislike" @@ -1082,7 +1052,7 @@ msgstr "no me gusta" #: ../../include/taxonomy.php:329 msgid "dislikes" -msgstr "no le gusta" +msgstr "no gusta de" #: ../../include/acl_selectors.php:240 msgid "Visible to your default audience" @@ -1101,13 +1071,13 @@ msgid "Other networks and post services" msgstr "Otras redes y servicios de correo" #: ../../include/acl_selectors.php:249 ../../mod/filestorage.php:147 -#: ../../mod/photos.php:631 ../../mod/photos.php:1001 ../../mod/thing.php:310 -#: ../../mod/thing.php:356 ../../mod/chat.php:211 +#: ../../mod/thing.php:310 ../../mod/thing.php:356 ../../mod/photos.php:631 +#: ../../mod/photos.php:998 ../../mod/chat.php:211 msgid "Permissions" msgstr "Permisos" #: ../../include/acl_selectors.php:250 ../../include/ItemObject.php:384 -#: ../../mod/photos.php:1218 +#: ../../mod/photos.php:1215 msgid "Close" msgstr "Cerrar" @@ -1269,7 +1239,7 @@ msgstr "Notas" #: ../../include/widgets.php:192 ../../include/text.php:868 #: ../../include/text.php:880 ../../mod/rbmark.php:28 ../../mod/rbmark.php:100 -#: ../../mod/admin.php:1442 ../../mod/admin.php:1462 ../../mod/filer.php:49 +#: ../../mod/admin.php:1449 ../../mod/admin.php:1469 ../../mod/filer.php:49 msgid "Save" msgstr "Guardar" @@ -1362,8 +1332,8 @@ msgid "Channel Sources" msgstr "Orígenes de los contenidos del canal" #: ../../include/widgets.php:554 ../../include/nav.php:202 -#: ../../include/apps.php:134 ../../mod/admin.php:1064 -#: ../../mod/admin.php:1264 +#: ../../include/apps.php:134 ../../mod/admin.php:1071 +#: ../../mod/admin.php:1271 msgid "Settings" msgstr "Ajustes" @@ -1499,7 +1469,7 @@ msgstr "Para los administradores" msgid "For Developers" msgstr "Para los desarrolladores" -#: ../../include/widgets.php:1214 ../../mod/admin.php:434 +#: ../../include/widgets.php:1214 ../../mod/admin.php:441 msgid "Site" msgstr "Sitio" @@ -1507,17 +1477,17 @@ msgstr "Sitio" msgid "Accounts" msgstr "Cuentas" -#: ../../include/widgets.php:1216 ../../mod/admin.php:965 +#: ../../include/widgets.php:1216 ../../mod/admin.php:972 msgid "Channels" msgstr "Canales" -#: ../../include/widgets.php:1217 ../../mod/admin.php:1062 -#: ../../mod/admin.php:1102 +#: ../../include/widgets.php:1217 ../../mod/admin.php:1069 +#: ../../mod/admin.php:1109 msgid "Plugins" msgstr "Extensiones" -#: ../../include/widgets.php:1218 ../../mod/admin.php:1262 -#: ../../mod/admin.php:1296 +#: ../../include/widgets.php:1218 ../../mod/admin.php:1269 +#: ../../mod/admin.php:1303 msgid "Themes" msgstr "Temas" @@ -1534,7 +1504,7 @@ msgid "DB updates" msgstr "Actualizaciones de la base de datos" #: ../../include/widgets.php:1239 ../../include/widgets.php:1245 -#: ../../mod/admin.php:1381 +#: ../../mod/admin.php:1388 msgid "Logs" msgstr "Informes" @@ -1550,12 +1520,12 @@ msgstr "Ajustes de la extensión" msgid "User registrations waiting for confirmation" msgstr "Registros de usuarios pendientes de confirmación" -#: ../../include/widgets.php:1325 ../../mod/photos.php:753 -#: ../../mod/photos.php:1286 +#: ../../include/widgets.php:1324 ../../mod/photos.php:748 +#: ../../mod/photos.php:1283 msgid "View Photo" msgstr "Ver foto" -#: ../../include/widgets.php:1341 ../../mod/photos.php:782 +#: ../../include/widgets.php:1341 ../../mod/photos.php:779 msgid "Edit Album" msgstr "Editar álbum" @@ -1757,7 +1727,7 @@ msgstr "Herramienta de afinidad" #: ../../include/features.php:75 msgid "Filter stream activity by depth of relationships" -msgstr "Filtrar la actividad del flujo por profundidad de relaciones" +msgstr "Filtrar el contenido según la profundidad de las relaciones" #: ../../include/features.php:76 msgid "Connection Filtering" @@ -2170,7 +2140,7 @@ msgstr "foto" #: ../../include/conversation.php:126 ../../mod/like.php:113 msgid "channel" -msgstr "canal" +msgstr "el canal" #: ../../include/conversation.php:148 ../../include/text.php:1922 #: ../../mod/like.php:361 ../../mod/subthread.php:83 @@ -2180,7 +2150,7 @@ msgstr "el mensaje de estado" #: ../../include/conversation.php:150 ../../include/text.php:1924 #: ../../mod/tagger.php:53 msgid "comment" -msgstr "comentario" +msgstr "el comentario" #: ../../include/conversation.php:164 ../../mod/like.php:410 #, php-format @@ -2212,42 +2182,42 @@ msgctxt "mood" msgid "%1$s is %2$s" msgstr "%1$s está %2$s" -#: ../../include/conversation.php:574 ../../mod/photos.php:1063 +#: ../../include/conversation.php:574 ../../mod/photos.php:1060 msgctxt "title" msgid "Likes" msgstr "Me gusta" -#: ../../include/conversation.php:574 ../../mod/photos.php:1063 +#: ../../include/conversation.php:574 ../../mod/photos.php:1060 msgctxt "title" msgid "Dislikes" msgstr "No me gusta" -#: ../../include/conversation.php:575 ../../mod/photos.php:1064 +#: ../../include/conversation.php:575 ../../mod/photos.php:1061 msgctxt "title" msgid "Agree" msgstr "De acuerdo" -#: ../../include/conversation.php:575 ../../mod/photos.php:1064 +#: ../../include/conversation.php:575 ../../mod/photos.php:1061 msgctxt "title" msgid "Disagree" msgstr "En desacuerdo" -#: ../../include/conversation.php:575 ../../mod/photos.php:1064 +#: ../../include/conversation.php:575 ../../mod/photos.php:1061 msgctxt "title" msgid "Abstain" msgstr "Abstención" -#: ../../include/conversation.php:576 ../../mod/photos.php:1065 +#: ../../include/conversation.php:576 ../../mod/photos.php:1062 msgctxt "title" msgid "Attending" msgstr "Participaré" -#: ../../include/conversation.php:576 ../../mod/photos.php:1065 +#: ../../include/conversation.php:576 ../../mod/photos.php:1062 msgctxt "title" msgid "Not attending" msgstr "No participaré" -#: ../../include/conversation.php:576 ../../mod/photos.php:1065 +#: ../../include/conversation.php:576 ../../mod/photos.php:1062 msgctxt "title" msgid "Might attend" msgstr "Quizá participe" @@ -2302,8 +2272,8 @@ msgstr "Mostrar en su contexto" #: ../../include/conversation.php:740 ../../include/conversation.php:1227 #: ../../include/ItemObject.php:389 ../../mod/editwebpage.php:190 -#: ../../mod/photos.php:1029 ../../mod/editblock.php:150 -#: ../../mod/editlayout.php:148 ../../mod/editpost.php:129 +#: ../../mod/editblock.php:150 ../../mod/editlayout.php:148 +#: ../../mod/photos.php:1026 ../../mod/editpost.php:129 msgid "Please wait" msgstr "Espere por favor" @@ -2409,8 +2379,8 @@ msgstr "a %s no le gusta esto." msgid "Visible to <strong>everybody</strong>" msgstr "Visible para <strong>cualquiera</strong>" -#: ../../include/conversation.php:1155 ../../mod/mail.php:194 -#: ../../mod/mail.php:308 +#: ../../include/conversation.php:1155 ../../mod/mail.php:202 +#: ../../mod/mail.php:316 msgid "Please enter a link URL:" msgstr "Por favor, introduzca la dirección del enlace:" @@ -2435,21 +2405,21 @@ msgid "Where are you right now?" msgstr "¿Donde está ahora?" #: ../../include/conversation.php:1161 ../../mod/editpost.php:56 -#: ../../mod/mail.php:195 ../../mod/mail.php:309 +#: ../../mod/mail.php:203 ../../mod/mail.php:317 msgid "Expires YYYY-MM-DD HH:MM" msgstr "Caduca YYYY-MM-DD HH:MM" #: ../../include/conversation.php:1169 ../../include/page_widgets.php:40 #: ../../include/ItemObject.php:706 ../../mod/editwebpage.php:212 -#: ../../mod/photos.php:1049 ../../mod/editblock.php:171 -#: ../../mod/webpages.php:188 ../../mod/editpost.php:149 +#: ../../mod/editblock.php:171 ../../mod/webpages.php:188 +#: ../../mod/photos.php:1046 ../../mod/editpost.php:149 #: ../../mod/events.php:458 msgid "Preview" msgstr "Previsualizar" #: ../../include/conversation.php:1192 ../../mod/blocks.php:154 -#: ../../mod/photos.php:1028 ../../mod/webpages.php:182 -#: ../../mod/layouts.php:184 +#: ../../mod/webpages.php:182 ../../mod/layouts.php:184 +#: ../../mod/photos.php:1025 msgid "Share" msgstr "Compartir" @@ -2503,7 +2473,7 @@ msgstr "subir foto" #: ../../include/conversation.php:1206 ../../mod/editwebpage.php:183 #: ../../mod/editblock.php:143 ../../mod/editlayout.php:141 -#: ../../mod/editpost.php:119 ../../mod/mail.php:240 ../../mod/mail.php:370 +#: ../../mod/editpost.php:119 ../../mod/mail.php:248 ../../mod/mail.php:378 msgid "Attach file" msgstr "Adjuntar fichero" @@ -2513,7 +2483,7 @@ msgstr "adjuntar fichero" #: ../../include/conversation.php:1208 ../../mod/editwebpage.php:184 #: ../../mod/editblock.php:144 ../../mod/editlayout.php:142 -#: ../../mod/editpost.php:120 ../../mod/mail.php:241 ../../mod/mail.php:371 +#: ../../mod/editpost.php:120 ../../mod/mail.php:249 ../../mod/mail.php:379 msgid "Insert web link" msgstr "Insertar enlace web" @@ -2596,7 +2566,7 @@ msgstr "Ejemplo: roberto@ejemplo.com, maría@ejemplo.com" #: ../../include/conversation.php:1252 ../../mod/editwebpage.php:217 #: ../../mod/editblock.php:176 ../../mod/editlayout.php:173 -#: ../../mod/editpost.php:155 ../../mod/mail.php:245 ../../mod/mail.php:375 +#: ../../mod/editpost.php:155 ../../mod/mail.php:253 ../../mod/mail.php:383 msgid "Set expiration date" msgstr "Configurar fecha de caducidad" @@ -2605,7 +2575,7 @@ msgid "Set publish date" msgstr "Establecer la fecha de publicación" #: ../../include/conversation.php:1257 ../../include/ItemObject.php:709 -#: ../../mod/editpost.php:157 ../../mod/mail.php:247 ../../mod/mail.php:377 +#: ../../mod/editpost.php:157 ../../mod/mail.php:255 ../../mod/mail.php:385 msgid "Encrypt text" msgstr "Cifrar texto" @@ -2613,8 +2583,8 @@ msgstr "Cifrar texto" msgid "OK" msgstr "OK" -#: ../../include/conversation.php:1260 ../../mod/fbrowser.php:82 -#: ../../mod/fbrowser.php:117 ../../mod/tagrm.php:11 ../../mod/tagrm.php:134 +#: ../../include/conversation.php:1260 ../../mod/fbrowser.php:77 +#: ../../mod/fbrowser.php:112 ../../mod/tagrm.php:11 ../../mod/tagrm.php:134 #: ../../mod/settings.php:587 ../../mod/settings.php:613 #: ../../mod/editpost.php:160 msgid "Cancel" @@ -2626,7 +2596,7 @@ msgstr "Descubrir" #: ../../include/conversation.php:1506 msgid "Imported public streams" -msgstr "Flujos públicos importados" +msgstr "Contenidos públicos importados" #: ../../include/conversation.php:1511 msgid "Commented Order" @@ -2655,7 +2625,7 @@ msgstr "Nuevas" #: ../../include/conversation.php:1538 msgid "Activity Stream - by date" -msgstr "Flujo de actividad - por fecha" +msgstr "Contenido - por fecha" #: ../../include/conversation.php:1544 msgid "Starred" @@ -2673,7 +2643,7 @@ msgstr "Correo basura" msgid "Posts flagged as SPAM" msgstr "Publicaciones marcadas como basura" -#: ../../include/conversation.php:1601 ../../mod/admin.php:973 +#: ../../include/conversation.php:1601 ../../mod/admin.php:980 msgid "Channel" msgstr "Canal" @@ -2725,13 +2695,13 @@ msgid "Manage Webpages" msgstr "Administrar páginas web" #: ../../include/conversation.php:1697 ../../include/ItemObject.php:175 -#: ../../include/ItemObject.php:187 ../../mod/photos.php:1082 -#: ../../mod/photos.php:1094 +#: ../../include/ItemObject.php:187 ../../mod/photos.php:1079 +#: ../../mod/photos.php:1091 msgid "View all" msgstr "Ver todo" #: ../../include/conversation.php:1724 ../../include/ItemObject.php:184 -#: ../../mod/photos.php:1091 +#: ../../mod/photos.php:1088 msgctxt "noun" msgid "Dislike" msgid_plural "Dislikes" @@ -2829,7 +2799,7 @@ msgid "RSS/Atom" msgstr "RSS/Atom" #: ../../include/contact_selectors.php:79 ../../mod/id.php:15 -#: ../../mod/id.php:16 ../../mod/admin.php:805 ../../mod/admin.php:814 +#: ../../mod/id.php:16 ../../mod/admin.php:812 ../../mod/admin.php:821 #: ../../boot.php:1483 msgid "Email" msgstr "Correo electrónico" @@ -2907,7 +2877,7 @@ msgstr "%1$s escribió la siguiente %2$s %3$s" #: ../../include/bbcode.php:259 ../../mod/tagger.php:51 msgid "post" -msgstr "entrada" +msgstr "la entrada" #: ../../include/bbcode.php:547 msgid "Different viewers will see this text differently" @@ -2928,7 +2898,7 @@ msgid_plural "%d invitations available" msgstr[0] "%d invitación pendiente" msgstr[1] "%d invitaciones disponibles" -#: ../../include/contact_widgets.php:19 ../../mod/admin.php:439 +#: ../../include/contact_widgets.php:19 ../../mod/admin.php:446 msgid "Advanced" msgstr "Avanzado" @@ -2981,6 +2951,23 @@ msgstr[1] "%d conexiones en común" msgid "show more" msgstr "mostrar más" +#: ../../include/enotify.php:57 ../../include/network.php:1608 +msgid "$Projectname Notification" +msgstr "Notificación de $Projectname" + +#: ../../include/enotify.php:58 ../../include/network.php:1609 +msgid "$projectname" +msgstr "$projectname" + +#: ../../include/enotify.php:60 ../../include/network.php:1611 +msgid "Thank You," +msgstr "Gracias," + +#: ../../include/enotify.php:62 ../../include/network.php:1613 +#, php-format +msgid "%s Administrator" +msgstr "%s Administrador" + #: ../../include/enotify.php:96 #, php-format msgid "%s <!item_type!>" @@ -3176,19 +3163,19 @@ msgstr "Respuesta incompleta del canal." msgid "Channel was deleted and no longer exists." msgstr "El canal ha sido eliminado y ya no existe." -#: ../../include/follow.php:152 ../../include/follow.php:180 +#: ../../include/follow.php:152 ../../include/follow.php:181 msgid "Protocol disabled." msgstr "Protocolo deshabilitado." -#: ../../include/follow.php:170 +#: ../../include/follow.php:171 msgid "Channel discovery failed." msgstr "El intento de acceder al canal ha fallado." -#: ../../include/follow.php:196 +#: ../../include/follow.php:197 msgid "local account not found." msgstr "No se ha encontrado la cuenta local." -#: ../../include/follow.php:220 +#: ../../include/follow.php:221 msgid "Cannot connect to yourself." msgstr "No puede conectarse consigo mismo." @@ -3492,7 +3479,7 @@ msgstr "un \"ping\"" #: ../../include/text.php:955 msgid "pinged" -msgstr "avisado/a" +msgstr "ha enviado un \"ping\" a" #: ../../include/text.php:956 msgid "prod" @@ -3500,7 +3487,7 @@ msgstr "una incitación" #: ../../include/text.php:956 msgid "prodded" -msgstr "ha recibido una incitación" +msgstr "ha incitado a" #: ../../include/text.php:957 msgid "slap" @@ -3508,7 +3495,7 @@ msgstr "una bofetada" #: ../../include/text.php:957 msgid "slapped" -msgstr "ha recibido una bofetada" +msgstr "ha enviado una bofetada a" #: ../../include/text.php:958 msgid "finger" @@ -3516,7 +3503,7 @@ msgstr "un \"finger\"" #: ../../include/text.php:958 msgid "fingered" -msgstr "ha recibido un \"finger\"" +msgstr "ha enviado un \"finger\" a" #: ../../include/text.php:959 msgid "rebuff" @@ -3524,7 +3511,7 @@ msgstr "un rechazo" #: ../../include/text.php:959 msgid "rebuffed" -msgstr "ha sido rechazado/a" +msgstr "ha enviado un rechazo a" #: ../../include/text.php:969 msgid "happy" @@ -3544,7 +3531,7 @@ msgstr "cansado/a" #: ../../include/text.php:973 msgid "perky" -msgstr "fresco/a" +msgstr "vivaz" #: ../../include/text.php:974 msgid "angry" @@ -3572,7 +3559,7 @@ msgstr "alegre" #: ../../include/text.php:980 msgid "alive" -msgstr "vivo/a" +msgstr "animado/a" #: ../../include/text.php:981 msgid "annoyed" @@ -3694,7 +3681,7 @@ msgstr "Modo seguro" #: ../../include/dir_fns.php:143 ../../mod/filestorage.php:151 #: ../../mod/filestorage.php:159 ../../mod/removeme.php:60 #: ../../mod/connedit.php:635 ../../mod/connedit.php:684 ../../mod/api.php:106 -#: ../../mod/photos.php:626 ../../mod/admin.php:410 ../../mod/settings.php:577 +#: ../../mod/admin.php:410 ../../mod/settings.php:577 ../../mod/photos.php:626 #: ../../mod/menu.php:96 ../../mod/menu.php:153 ../../mod/events.php:447 #: ../../mod/events.php:448 ../../mod/events.php:457 ../../mod/mitem.php:154 #: ../../mod/mitem.php:155 ../../mod/mitem.php:228 ../../mod/mitem.php:229 @@ -3706,8 +3693,8 @@ msgstr "No" #: ../../include/dir_fns.php:141 ../../include/dir_fns.php:142 #: ../../include/dir_fns.php:143 ../../mod/filestorage.php:151 #: ../../mod/filestorage.php:159 ../../mod/removeme.php:60 -#: ../../mod/api.php:105 ../../mod/photos.php:626 ../../mod/admin.php:412 -#: ../../mod/settings.php:577 ../../mod/menu.php:96 ../../mod/menu.php:153 +#: ../../mod/api.php:105 ../../mod/admin.php:412 ../../mod/settings.php:577 +#: ../../mod/photos.php:626 ../../mod/menu.php:96 ../../mod/menu.php:153 #: ../../mod/events.php:447 ../../mod/events.php:448 ../../mod/events.php:457 #: ../../mod/mitem.php:154 ../../mod/mitem.php:155 ../../mod/mitem.php:228 #: ../../mod/mitem.php:229 ../../view/theme/redbasic/php/config.php:104 @@ -3734,7 +3721,7 @@ msgstr "Un grupo suprimido con este nombre ha sido restablecido. <strong>Es posi msgid "Add new connections to this collection (privacy group)" msgstr "Añadir nuevas conexiones a esta colección (privacidad del grupo)" -#: ../../include/group.php:251 ../../mod/admin.php:814 +#: ../../include/group.php:251 ../../mod/admin.php:821 msgid "All Channels" msgstr "Todos los canales" @@ -3766,12 +3753,12 @@ msgstr "Paquete de datos no válido" msgid "Unable to verify channel signature" msgstr "No ha sido posible de verificar la firma del canal" -#: ../../include/zot.php:2259 +#: ../../include/zot.php:2275 #, php-format msgid "Unable to verify site signature for %s" msgstr "No ha sido posible de verificar la firma del sitio para %s" -#: ../../include/zot.php:3586 +#: ../../include/zot.php:3601 msgid "invalid target signature" msgstr "La firma recibida no es válida" @@ -3806,6 +3793,19 @@ msgstr "Creado" msgid "Edited" msgstr "Editado" +#: ../../include/network.php:630 +msgid "view full size" +msgstr "Ver en el tamaño original" + +#: ../../include/network.php:1655 ../../include/account.php:316 +#: ../../include/account.php:343 ../../include/account.php:403 +msgid "Administrator" +msgstr "Administrador" + +#: ../../include/network.php:1669 +msgid "No Subject" +msgstr "Sin asunto" + #: ../../include/dba/dba_driver.php:141 #, php-format msgid "Cannot locate DNS info for database server '%s'" @@ -3880,11 +3880,11 @@ msgstr "preferidas" msgid "Add Tag" msgstr "Añadir etiqueta" -#: ../../include/ItemObject.php:254 ../../mod/photos.php:1026 +#: ../../include/ItemObject.php:254 ../../mod/photos.php:1023 msgid "I like this (toggle)" msgstr "me gusta (cambiar)" -#: ../../include/ItemObject.php:255 ../../mod/photos.php:1027 +#: ../../include/ItemObject.php:255 ../../mod/photos.php:1024 msgid "I don't like this (toggle)" msgstr "No me gusta esto (cambiar)" @@ -3940,18 +3940,18 @@ msgstr "Añadir al calendario" msgid "Mark all seen" msgstr "Marcar todo como visto" -#: ../../include/ItemObject.php:378 ../../mod/photos.php:1212 +#: ../../include/ItemObject.php:378 ../../mod/photos.php:1209 msgctxt "noun" msgid "Likes" msgstr "Me gusta" -#: ../../include/ItemObject.php:379 ../../mod/photos.php:1213 +#: ../../include/ItemObject.php:379 ../../mod/photos.php:1210 msgctxt "noun" msgid "Dislikes" msgstr "No me gusta" -#: ../../include/ItemObject.php:694 ../../mod/photos.php:1045 -#: ../../mod/photos.php:1163 +#: ../../include/ItemObject.php:694 ../../mod/photos.php:1042 +#: ../../mod/photos.php:1160 msgid "This is you" msgstr "Este es usted" @@ -3967,78 +3967,6 @@ msgstr "Insertar enlace" msgid "Video" msgstr "Vídeo" -#: ../../include/account.php:27 -msgid "Not a valid email address" -msgstr "Dirección de correo no válida" - -#: ../../include/account.php:29 -msgid "Your email domain is not among those allowed on this site" -msgstr "Su dirección de correo no pertenece a ninguno de los dominios permitidos en este sitio." - -#: ../../include/account.php:35 -msgid "Your email address is already registered at this site." -msgstr "Su dirección de correo está ya registrada en este sitio." - -#: ../../include/account.php:67 -msgid "An invitation is required." -msgstr "Es obligatorio que le inviten." - -#: ../../include/account.php:71 -msgid "Invitation could not be verified." -msgstr "No se ha podido verificar su invitación." - -#: ../../include/account.php:121 -msgid "Please enter the required information." -msgstr "Por favor introduzca la información requerida." - -#: ../../include/account.php:188 -msgid "Failed to store account information." -msgstr "La información de la cuenta no se ha podido guardar." - -#: ../../include/account.php:248 -#, php-format -msgid "Registration confirmation for %s" -msgstr "Confirmación de registro para %s" - -#: ../../include/account.php:314 -#, php-format -msgid "Registration request at %s" -msgstr "Solicitud de registro en %s" - -#: ../../include/account.php:338 -msgid "your registration password" -msgstr "su contraseña de registro" - -#: ../../include/account.php:341 ../../include/account.php:401 -#, php-format -msgid "Registration details for %s" -msgstr "Detalles del registro de %s" - -#: ../../include/account.php:410 -msgid "Account approved." -msgstr "Cuenta aprobada." - -#: ../../include/account.php:449 -#, php-format -msgid "Registration revoked for %s" -msgstr "Registro revocado para %s" - -#: ../../include/account.php:494 -msgid "Account verified. Please login." -msgstr "Cuenta verificada. Por favor, inicie sesión." - -#: ../../include/account.php:707 ../../include/account.php:709 -msgid "Click here to upgrade." -msgstr "Pulse aquí para actualizar" - -#: ../../include/account.php:715 -msgid "This action exceeds the limits set by your subscription plan." -msgstr "Esta acción supera los límites establecidos por su plan de suscripción " - -#: ../../include/account.php:720 -msgid "This action is not available under your subscription plan." -msgstr "Esta acción no está disponible en su plan de suscripción." - #: ../../include/apps.php:128 msgid "Site Admin" msgstr "Adminstrador del sitio" @@ -4099,7 +4027,7 @@ msgstr "Comprar" #: ../../include/permissions.php:26 msgid "Can view my normal stream and posts" -msgstr "Pueden verse mi flujo de actividad y publicaciones normales" +msgstr "Pueden verse mi actividad y publicaciones normales" #: ../../include/permissions.php:27 msgid "Can view my default channel profile" @@ -4119,7 +4047,7 @@ msgstr "Pueden verse mis páginas web" #: ../../include/permissions.php:33 msgid "Can send me their channel stream and posts" -msgstr "Me pueden enviar sus entradas y flujo de actividad del canal" +msgstr "Me pueden enviar sus entradas y contenidos del canal" #: ../../include/permissions.php:34 msgid "Can post on my channel page (\"wall\")" @@ -4220,12 +4148,84 @@ msgstr "Repositorio de grupo" msgid "Custom/Expert Mode" msgstr "Modo personalizado/experto" -#: ../../include/photo/photo_driver.php:719 ../../mod/photos.php:94 -#: ../../mod/photos.php:699 ../../mod/profile_photo.php:147 +#: ../../include/photo/photo_driver.php:719 ../../mod/profile_photo.php:147 #: ../../mod/profile_photo.php:239 ../../mod/profile_photo.php:379 +#: ../../mod/photos.php:94 ../../mod/photos.php:699 msgid "Profile Photos" msgstr "Fotos del perfil" +#: ../../include/account.php:27 +msgid "Not a valid email address" +msgstr "Dirección de correo no válida" + +#: ../../include/account.php:29 +msgid "Your email domain is not among those allowed on this site" +msgstr "Su dirección de correo no pertenece a ninguno de los dominios permitidos en este sitio." + +#: ../../include/account.php:35 +msgid "Your email address is already registered at this site." +msgstr "Su dirección de correo está ya registrada en este sitio." + +#: ../../include/account.php:67 +msgid "An invitation is required." +msgstr "Es obligatorio que le inviten." + +#: ../../include/account.php:71 +msgid "Invitation could not be verified." +msgstr "No se ha podido verificar su invitación." + +#: ../../include/account.php:121 +msgid "Please enter the required information." +msgstr "Por favor introduzca la información requerida." + +#: ../../include/account.php:188 +msgid "Failed to store account information." +msgstr "La información de la cuenta no se ha podido guardar." + +#: ../../include/account.php:248 +#, php-format +msgid "Registration confirmation for %s" +msgstr "Confirmación de registro para %s" + +#: ../../include/account.php:314 +#, php-format +msgid "Registration request at %s" +msgstr "Solicitud de registro en %s" + +#: ../../include/account.php:338 +msgid "your registration password" +msgstr "su contraseña de registro" + +#: ../../include/account.php:341 ../../include/account.php:401 +#, php-format +msgid "Registration details for %s" +msgstr "Detalles del registro de %s" + +#: ../../include/account.php:410 +msgid "Account approved." +msgstr "Cuenta aprobada." + +#: ../../include/account.php:449 +#, php-format +msgid "Registration revoked for %s" +msgstr "Registro revocado para %s" + +#: ../../include/account.php:494 +msgid "Account verified. Please login." +msgstr "Cuenta verificada. Por favor, inicie sesión." + +#: ../../include/account.php:707 ../../include/account.php:709 +msgid "Click here to upgrade." +msgstr "Pulse aquí para actualizar" + +#: ../../include/account.php:715 +msgid "This action exceeds the limits set by your subscription plan." +msgstr "Esta acción supera los límites establecidos por su plan de suscripción " + +#: ../../include/account.php:720 +msgid "This action is not available under your subscription plan." +msgstr "Esta acción no está disponible en su plan de suscripción." + #: ../../mod/filestorage.php:82 msgid "Permission Denied." msgstr "Permiso denegado" @@ -4427,7 +4427,8 @@ msgstr "No se han encontrado perfiles compatibles" msgid "OpenID protocol error. No ID returned." msgstr "Error del protocolo OpenID. Ningún ID recibido como respuesta." -#: ../../mod/openid.php:72 ../../mod/openid.php:179 ../../mod/post.php:285 +#: ../../mod/openid.php:72 ../../mod/openid.php:179 +#: ../../Zotlabs/Zot/Auth.php:248 #, php-format msgid "Welcome %s. Remote authentication successful." msgstr "Bienvenido %s. La identificación desde su servidor se ha llevado a cabo correctamente." @@ -4833,7 +4834,7 @@ msgstr "Por favor, lea el fichero \"install/INSTALL.txt\"." msgid "System check" msgstr "Verificación del sistema" -#: ../../mod/setup.php:285 ../../mod/photos.php:914 ../../mod/events.php:653 +#: ../../mod/setup.php:285 ../../mod/photos.php:911 ../../mod/events.php:653 #: ../../mod/events.php:660 msgid "Next" msgstr "Siguiente" @@ -5222,15 +5223,6 @@ msgstr "Mis marcadores" msgid "My Connections Bookmarks" msgstr "Marcadores de mis conexiones" -#: ../../mod/home.php:57 ../../mod/home.php:65 ../../mod/siteinfo.php:61 -msgid "$Projectname" -msgstr "$Projectname" - -#: ../../mod/home.php:75 -#, php-format -msgid "Welcome to %s" -msgstr "Bienvenido a %s" - #: ../../mod/pconfig.php:27 ../../mod/pconfig.php:60 msgid "This setting requires special processing and editing has been blocked." msgstr "Este ajuste necesita de un proceso especial y la edición ha sido bloqueada." @@ -5335,7 +5327,7 @@ msgstr "Página personal" msgid "Interests" msgstr "Intereses" -#: ../../mod/profiles.php:457 ../../mod/admin.php:974 +#: ../../mod/profiles.php:457 ../../mod/admin.php:981 msgid "Address" msgstr "Dirección" @@ -5588,11 +5580,11 @@ msgstr "Actividad reciente" msgid "View recent posts and comments" msgstr "Ver publicaciones y comentarios recientes" -#: ../../mod/connedit.php:519 ../../mod/admin.php:811 +#: ../../mod/connedit.php:519 ../../mod/admin.php:818 msgid "Unblock" msgstr "Desbloquear" -#: ../../mod/connedit.php:519 ../../mod/admin.php:810 +#: ../../mod/connedit.php:519 ../../mod/admin.php:817 msgid "Block" msgstr "Bloquear" @@ -5748,7 +5740,7 @@ msgid "" " communication." msgstr "(%s) desearía conectar con usted. por favor, apruebe esta conexión para permitir la comunicación." -#: ../../mod/connedit.php:710 ../../mod/admin.php:807 +#: ../../mod/connedit.php:710 ../../mod/admin.php:814 msgid "Approve" msgstr "Aprobar" @@ -6062,7 +6054,7 @@ msgstr "Eliminar etiqueta del elemento." msgid "Select a tag to remove: " msgstr "Seleccionar una etiqueta para eliminar:" -#: ../../mod/tagrm.php:133 ../../mod/photos.php:954 +#: ../../mod/tagrm.php:133 ../../mod/photos.php:951 msgid "Remove" msgstr "Eliminar" @@ -6331,156 +6323,75 @@ msgid "" "only once and leave this page open until finished." msgstr "Este proceso puede tardar varios minutos en completarse. Por favor envíe el formulario una sola vez y mantenga esta página abierta hasta que termine." -#: ../../mod/photos.php:79 -msgid "Page owner information could not be retrieved." -msgstr "La información del propietario de la página no pudo ser recuperada." - -#: ../../mod/photos.php:100 -msgid "Album not found." -msgstr "Álbum no encontrado." - -#: ../../mod/photos.php:127 -msgid "Delete Album" -msgstr "Borrar álbum" +#: ../../mod/invite.php:25 +msgid "Total invitation limit exceeded." +msgstr "Se ha superado el límite máximo de invitaciones." -#: ../../mod/photos.php:171 ../../mod/photos.php:1009 -msgid "Delete Photo" -msgstr "Borrar foto" +#: ../../mod/invite.php:49 +#, php-format +msgid "%s : Not a valid email address." +msgstr "%s : No es una dirección de correo electrónico válida. " -#: ../../mod/photos.php:501 -msgid "No photos selected" -msgstr "No hay fotos seleccionadas" +#: ../../mod/invite.php:59 +msgid "Please join us on $Projectname" +msgstr "Únase a nosotros en $Projectname" -#: ../../mod/photos.php:550 -msgid "Access to this item is restricted." -msgstr "El acceso a este elemento está restringido." +#: ../../mod/invite.php:70 +msgid "Invitation limit exceeded. Please contact your site administrator." +msgstr "Excedido el límite de invitaciones. Por favor, contacte con el Administrador de su sitio." -#: ../../mod/photos.php:589 +#: ../../mod/invite.php:75 #, php-format -msgid "%1$.2f MB of %2$.2f MB photo storage used." -msgstr "%1$.2f MB de %2$.2f MB de almacenamiento de fotos utilizado." +msgid "%s : Message delivery failed." +msgstr "%s : Falló el envío del mensaje." -#: ../../mod/photos.php:592 +#: ../../mod/invite.php:79 #, php-format -msgid "%1$.2f MB photo storage used." -msgstr "%1$.2f MB de almacenamiento de fotos utilizado." - -#: ../../mod/photos.php:620 -msgid "Upload Photos" -msgstr "Subir fotos" - -#: ../../mod/photos.php:624 -msgid "Enter an album name" -msgstr "Introducir un nombre de álbum" - -#: ../../mod/photos.php:625 -msgid "or select an existing album (doubleclick)" -msgstr "o seleccionar uno existente (doble click)" - -#: ../../mod/photos.php:626 -msgid "Create a status post for this upload" -msgstr "Crear una entrada de estado para esta subida" - -#: ../../mod/photos.php:627 -msgid "Caption (optional):" -msgstr "Título (opcional):" - -#: ../../mod/photos.php:628 -msgid "Description (optional):" -msgstr "Descripción (opcional):" - -#: ../../mod/photos.php:655 -msgid "Album name could not be decoded" -msgstr "El nombre del álbum no ha podido ser descifrado" - -#: ../../mod/photos.php:699 ../../mod/photos.php:1236 -#: ../../mod/photos.php:1253 -msgid "Contact Photos" -msgstr "Fotos de contacto" - -#: ../../mod/photos.php:727 -msgid "Show Newest First" -msgstr "Mostrar lo más reciente primero" - -#: ../../mod/photos.php:729 -msgid "Show Oldest First" -msgstr "Mostrar lo más antiguo primero" - -#: ../../mod/photos.php:827 -msgid "Permission denied. Access to this item may be restricted." -msgstr "Permiso denegado. El acceso a este elemento puede estar restringido." - -#: ../../mod/photos.php:829 -msgid "Photo not available" -msgstr "Foto no disponible" - -#: ../../mod/photos.php:887 -msgid "Use as profile photo" -msgstr "Usar como foto del perfil" - -#: ../../mod/photos.php:894 -msgid "Private Photo" -msgstr "Foto privada" - -#: ../../mod/photos.php:905 ../../mod/events.php:652 ../../mod/events.php:659 -msgid "Previous" -msgstr "Anterior" - -#: ../../mod/photos.php:909 -msgid "View Full Size" -msgstr "Ver tamaño completo" - -#: ../../mod/photos.php:988 -msgid "Edit photo" -msgstr "Editar foto" - -#: ../../mod/photos.php:990 -msgid "Rotate CW (right)" -msgstr "Girar CW (a la derecha)" - -#: ../../mod/photos.php:991 -msgid "Rotate CCW (left)" -msgstr "Girar CCW (a la izquierda)" +msgid "%d message sent." +msgid_plural "%d messages sent." +msgstr[0] "%d mensajes enviados." +msgstr[1] "%d mensajes enviados." -#: ../../mod/photos.php:994 -msgid "Enter a new album name" -msgstr "Introducir un nuevo nombre de álbum" +#: ../../mod/invite.php:98 +msgid "You have no more invitations available" +msgstr "No tiene más invitaciones disponibles" -#: ../../mod/photos.php:995 -msgid "or select an existing one (doubleclick)" -msgstr "o seleccionar uno (doble click) existente" +#: ../../mod/invite.php:129 +msgid "Send invitations" +msgstr "Enviar invitaciones" -#: ../../mod/photos.php:998 -msgid "Caption" -msgstr "Título" +#: ../../mod/invite.php:130 +msgid "Enter email addresses, one per line:" +msgstr "Introduzca las direcciones de correo electrónico, una por línea:" -#: ../../mod/photos.php:1000 -msgid "Add a Tag" -msgstr "Añadir una etiqueta" +#: ../../mod/invite.php:131 ../../mod/mail.php:246 +msgid "Your message:" +msgstr "Su mensaje:" -#: ../../mod/photos.php:1004 -msgid "Example: @bob, @Barbara_Jensen, @jim@example.com" -msgstr "Ejemplos: @eva, @Carmen_Osuna, @jaime@ejemplo.com" +#: ../../mod/invite.php:132 +msgid "Please join my community on $Projectname." +msgstr "Por favor, únase a mi comunidad en $Projectname." -#: ../../mod/photos.php:1007 -msgid "Flag as adult in album view" -msgstr "Marcar como \"solo para adultos\" en el álbum" +#: ../../mod/invite.php:134 +msgid "You will need to supply this invitation code: " +msgstr "Debe proporcionar este código de invitación:" -#: ../../mod/photos.php:1199 -msgid "In This Photo:" -msgstr "En esta foto:" +#: ../../mod/invite.php:135 +msgid "" +"1. Register at any $Projectname location (they are all inter-connected)" +msgstr "1. Regístrese en cualquier sitio de $Projectname (están todos interconectados)" -#: ../../mod/photos.php:1204 -msgid "Map" -msgstr "Mapa" +#: ../../mod/invite.php:137 +msgid "2. Enter my $Projectname network address into the site searchbar." +msgstr "2. Introduzca mi dirección $Projectname en la caja de búsqueda del sitio." -#: ../../mod/photos.php:1292 -msgid "View Album" -msgstr "Ver álbum" +#: ../../mod/invite.php:138 +msgid "or visit " +msgstr "o visite " -#: ../../mod/photos.php:1315 -msgid "Recent Photos" -msgstr "Fotos recientes" +#: ../../mod/invite.php:140 +msgid "3. Click [Connect]" +msgstr "3. Pulse [conectar]" #: ../../mod/probe.php:24 ../../mod/probe.php:30 #, php-format @@ -6793,7 +6704,7 @@ msgstr "Acepto los %s de este sitio" msgid "I am over 13 years of age and accept the %s for this website" msgstr "Tengo más de 13 años de edad y acepto los %s de este sitio" -#: ../../mod/register.php:207 ../../mod/admin.php:436 +#: ../../mod/register.php:207 ../../mod/admin.php:443 msgid "Registration" msgstr "Registro" @@ -6853,10 +6764,10 @@ msgstr "# clones" msgid "Message queues" msgstr "Mensajes en cola" -#: ../../mod/admin.php:198 ../../mod/admin.php:433 ../../mod/admin.php:532 -#: ../../mod/admin.php:800 ../../mod/admin.php:964 ../../mod/admin.php:1061 -#: ../../mod/admin.php:1101 ../../mod/admin.php:1261 ../../mod/admin.php:1295 -#: ../../mod/admin.php:1380 +#: ../../mod/admin.php:198 ../../mod/admin.php:440 ../../mod/admin.php:539 +#: ../../mod/admin.php:807 ../../mod/admin.php:971 ../../mod/admin.php:1068 +#: ../../mod/admin.php:1108 ../../mod/admin.php:1268 ../../mod/admin.php:1302 +#: ../../mod/admin.php:1387 msgid "Administration" msgstr "Administración" @@ -6868,7 +6779,7 @@ msgstr "Sumario" msgid "Registered accounts" msgstr "Cuentas registradas" -#: ../../mod/admin.php:203 ../../mod/admin.php:536 +#: ../../mod/admin.php:203 ../../mod/admin.php:543 msgid "Pending registrations" msgstr "Registros pendientes" @@ -6876,7 +6787,7 @@ msgstr "Registros pendientes" msgid "Registered channels" msgstr "Canales registrados" -#: ../../mod/admin.php:205 ../../mod/admin.php:537 +#: ../../mod/admin.php:205 ../../mod/admin.php:544 msgid "Active plugins" msgstr "Extensiones activas" @@ -6920,638 +6831,638 @@ msgstr "Mi sitio es un servicio gratuito" msgid "My site offers free accounts with optional paid upgrades" msgstr "Mi sitio ofrece cuentas gratuitas con opciones extra de pago" -#: ../../mod/admin.php:437 +#: ../../mod/admin.php:444 msgid "File upload" msgstr "Fichero subido" -#: ../../mod/admin.php:438 +#: ../../mod/admin.php:445 msgid "Policies" msgstr "Políticas" -#: ../../mod/admin.php:443 +#: ../../mod/admin.php:450 msgid "Site name" msgstr "Nombre del sitio" -#: ../../mod/admin.php:444 +#: ../../mod/admin.php:451 msgid "Banner/Logo" msgstr "Banner/Logo" -#: ../../mod/admin.php:445 +#: ../../mod/admin.php:452 msgid "Administrator Information" msgstr "Información del Administrador" -#: ../../mod/admin.php:445 +#: ../../mod/admin.php:452 msgid "" "Contact information for site administrators. Displayed on siteinfo page. " "BBCode can be used here" msgstr "Información de contacto de los administradores del sitio. Visible en la página \"siteinfo\". Se puede usar BBCode" -#: ../../mod/admin.php:446 +#: ../../mod/admin.php:453 msgid "System language" msgstr "Idioma del sistema" -#: ../../mod/admin.php:447 +#: ../../mod/admin.php:454 msgid "System theme" msgstr "Tema gráfico del sistema" -#: ../../mod/admin.php:447 +#: ../../mod/admin.php:454 msgid "" "Default system theme - may be over-ridden by user profiles - <a href='#' " "id='cnftheme'>change theme settings</a>" msgstr "Tema del sistema por defecto - se puede cambiar por cada perfil de usuario - <a href='#' id='cnftheme'>modificar los ajustes del tema</a>" -#: ../../mod/admin.php:448 +#: ../../mod/admin.php:455 msgid "Mobile system theme" msgstr "Tema del sistema para móviles" -#: ../../mod/admin.php:448 +#: ../../mod/admin.php:455 msgid "Theme for mobile devices" msgstr "Tema para dispositivos móviles" -#: ../../mod/admin.php:450 +#: ../../mod/admin.php:457 msgid "Allow Feeds as Connections" -msgstr "Permitir flujos RSS como conexiones" +msgstr "Permitir contenidos RSS como conexiones" -#: ../../mod/admin.php:450 +#: ../../mod/admin.php:457 msgid "(Heavy system resource usage)" msgstr "(Uso intenso de los recursos del sistema)" -#: ../../mod/admin.php:451 +#: ../../mod/admin.php:458 msgid "Maximum image size" msgstr "Tamaño máximo de la imagen" -#: ../../mod/admin.php:451 +#: ../../mod/admin.php:458 msgid "" "Maximum size in bytes of uploaded images. Default is 0, which means no " "limits." msgstr "Tamaño máximo en bytes de la imagen subida. Por defecto, es 0, lo que significa que no hay límites." -#: ../../mod/admin.php:452 +#: ../../mod/admin.php:459 msgid "Does this site allow new member registration?" msgstr "¿Debe este sitio permitir el registro de nuevos miembros?" -#: ../../mod/admin.php:453 +#: ../../mod/admin.php:460 msgid "Which best describes the types of account offered by this hub?" msgstr "¿Cómo describiría el tipo de servicio ofrecido por este servidor?" -#: ../../mod/admin.php:454 +#: ../../mod/admin.php:461 msgid "Register text" msgstr "Texto del registro" -#: ../../mod/admin.php:454 +#: ../../mod/admin.php:461 msgid "Will be displayed prominently on the registration page." msgstr "Se mostrará de forma destacada en la página de registro." -#: ../../mod/admin.php:455 +#: ../../mod/admin.php:462 msgid "Site homepage to show visitors (default: login box)" msgstr "Página personal que se mostrará a los visitantes (por defecto: la página de identificación)" -#: ../../mod/admin.php:455 +#: ../../mod/admin.php:462 msgid "" "example: 'public' to show public stream, 'page/sys/home' to show a system " "webpage called 'home' or 'include:home.html' to include a file." msgstr "ejemplo: 'public' para mostrar contenido público de los usuarios, 'page/sys/home' para mostrar la página web definida como \"home\" o 'include:home.html' para mostrar el contenido de un fichero." -#: ../../mod/admin.php:456 +#: ../../mod/admin.php:463 msgid "Preserve site homepage URL" msgstr "Preservar la dirección de la página personal" -#: ../../mod/admin.php:456 +#: ../../mod/admin.php:463 msgid "" "Present the site homepage in a frame at the original location instead of " "redirecting" msgstr "Presenta la página personal del sitio en un marco en la ubicación original, en vez de redirigirla." -#: ../../mod/admin.php:457 +#: ../../mod/admin.php:464 msgid "Accounts abandoned after x days" msgstr "Cuentas abandonadas después de x días" -#: ../../mod/admin.php:457 +#: ../../mod/admin.php:464 msgid "" "Will not waste system resources polling external sites for abandonded " "accounts. Enter 0 for no time limit." msgstr "Para evitar consumir recursos del sistema intentando poner al día las cuentas abandonadas. Introduzca 0 para no tener límite de tiempo." -#: ../../mod/admin.php:458 +#: ../../mod/admin.php:465 msgid "Allowed friend domains" msgstr "Dominios amigos permitidos" -#: ../../mod/admin.php:458 +#: ../../mod/admin.php:465 msgid "" "Comma separated list of domains which are allowed to establish friendships " "with this site. Wildcards are accepted. Empty to allow any domains" msgstr "Lista separada por comas de dominios a los que está permitido establecer relaciones de amistad con este sitio. Se permiten comodines. Dejar en claro para aceptar cualquier dominio." -#: ../../mod/admin.php:459 +#: ../../mod/admin.php:466 msgid "Allowed email domains" msgstr "Se aceptan dominios de correo electrónico" -#: ../../mod/admin.php:459 +#: ../../mod/admin.php:466 msgid "" "Comma separated list of domains which are allowed in email addresses for " "registrations to this site. Wildcards are accepted. Empty to allow any " "domains" msgstr "Lista separada por comas de los dominios de los que se acepta una dirección de correo electrónico para registros en este sitio. Se permiten comodines. Dejar en claro para aceptar cualquier dominio. " -#: ../../mod/admin.php:460 +#: ../../mod/admin.php:467 msgid "Not allowed email domains" msgstr "No se permiten dominios de correo electrónico" -#: ../../mod/admin.php:460 +#: ../../mod/admin.php:467 msgid "" "Comma separated list of domains which are not allowed in email addresses for" " registrations to this site. Wildcards are accepted. Empty to allow any " "domains, unless allowed domains have been defined." msgstr "Lista separada por comas de los dominios de los que no se acepta una dirección de correo electrónico para registros en este sitio. Se permiten comodines. Dejar en claro para no aceptar cualquier dominio, excepto los que se hayan autorizado." -#: ../../mod/admin.php:461 +#: ../../mod/admin.php:468 msgid "Block public" msgstr "Bloquear páginas públicas" -#: ../../mod/admin.php:461 +#: ../../mod/admin.php:468 msgid "" "Check to block public access to all otherwise public personal pages on this " "site unless you are currently logged in." msgstr "Activar para bloquear el acceso a todas las páginas públicas personales en este sitio, salvo que estén identificadas en el sistema." -#: ../../mod/admin.php:462 +#: ../../mod/admin.php:469 msgid "Verify Email Addresses" msgstr "Verificar las direcciones de correo electrónico" -#: ../../mod/admin.php:462 +#: ../../mod/admin.php:469 msgid "" "Check to verify email addresses used in account registration (recommended)." msgstr "Activar para la verificación de la dirección de correo electrónico en el registro de una cuenta (recomendado)." -#: ../../mod/admin.php:463 +#: ../../mod/admin.php:470 msgid "Force publish" msgstr "Forzar la publicación" -#: ../../mod/admin.php:463 +#: ../../mod/admin.php:470 msgid "" "Check to force all profiles on this site to be listed in the site directory." msgstr "Intentar forzar todos los perfiles para que sean listados en el directorio de este sitio." -#: ../../mod/admin.php:464 -msgid "Disable discovery tab" -msgstr "Desactivar la pestaña \"Descubrir\"" +#: ../../mod/admin.php:471 +msgid "Import Public Streams" +msgstr "Importar contenido público" -#: ../../mod/admin.php:464 +#: ../../mod/admin.php:471 msgid "" -"Remove the tab in the network view with public content pulled from sources " -"chosen for this site." -msgstr "Quitar la pestaña para ver contenido público extraído de las fuentes elegidas por este sitio." +"Import and allow access to public content pulled from other sites. Warning: " +"this content is unmoderated." +msgstr "Importar y permitir acceso al contenido público sacado de otros sitios. Advertencia: este contenido no está moderado, por lo que podría encontrar cosas inapropiadas u ofensivas." -#: ../../mod/admin.php:465 +#: ../../mod/admin.php:472 msgid "login on Homepage" msgstr "acceso a la página personal" -#: ../../mod/admin.php:465 +#: ../../mod/admin.php:472 msgid "" "Present a login box to visitors on the home page if no other content has " "been configured." msgstr "Presentar a los visitantes una casilla de identificación en la página de inicio, si no se ha configurado otro tipo de contenido." -#: ../../mod/admin.php:467 +#: ../../mod/admin.php:474 msgid "Directory Server URL" msgstr "URL del servidor de directorio" -#: ../../mod/admin.php:467 +#: ../../mod/admin.php:474 msgid "Default directory server" msgstr "Servidor de directorio predeterminado" -#: ../../mod/admin.php:469 +#: ../../mod/admin.php:476 msgid "Proxy user" msgstr "Usuario del proxy" -#: ../../mod/admin.php:470 +#: ../../mod/admin.php:477 msgid "Proxy URL" msgstr "Dirección del proxy" -#: ../../mod/admin.php:471 +#: ../../mod/admin.php:478 msgid "Network timeout" msgstr "Tiempo de espera de la red" -#: ../../mod/admin.php:471 +#: ../../mod/admin.php:478 msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." msgstr "Valor en segundos. Poner a 0 para que no haya tiempo límite (no recomendado)" -#: ../../mod/admin.php:472 +#: ../../mod/admin.php:479 msgid "Delivery interval" msgstr "Intervalo de entrega" -#: ../../mod/admin.php:472 +#: ../../mod/admin.php:479 msgid "" "Delay background delivery processes by this many seconds to reduce system " "load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 " "for large dedicated servers." msgstr "Retrasar los procesos de transmisión en segundo plano por esta cantidad de segundos para reducir la carga del sistema. Recomendado: 4-5 para sitios compartidos, 2-3 para servidores virtuales privados, 0-1 para grandes servidores dedicados." -#: ../../mod/admin.php:473 +#: ../../mod/admin.php:480 msgid "Deliveries per process" msgstr "Intentos de envío por proceso" -#: ../../mod/admin.php:473 +#: ../../mod/admin.php:480 msgid "" "Number of deliveries to attempt in a single operating system process. Adjust" " if necessary to tune system performance. Recommend: 1-5." msgstr "Numero de envíos a intentar en un único proceso del sistema operativo. Ajustar si es necesario mejorar el rendimiento. Se recomienda: 1-5." -#: ../../mod/admin.php:474 +#: ../../mod/admin.php:481 msgid "Poll interval" msgstr "Intervalo de sondeo" -#: ../../mod/admin.php:474 +#: ../../mod/admin.php:481 msgid "" "Delay background polling processes by this many seconds to reduce system " "load. If 0, use delivery interval." msgstr "Retrasar el sondeo en segundo plano, en esta cantidad de segundos, para reducir la carga del sistema. Si es 0, usar el intervalo de transmisión." -#: ../../mod/admin.php:475 +#: ../../mod/admin.php:482 msgid "Maximum Load Average" msgstr "Carga media máxima" -#: ../../mod/admin.php:475 +#: ../../mod/admin.php:482 msgid "" "Maximum system load before delivery and poll processes are deferred - " "default 50." msgstr "Carga máxima del sistema antes de que los procesos de transmisión y sondeo se hayan retardado - por defecto, 50." -#: ../../mod/admin.php:476 +#: ../../mod/admin.php:483 msgid "Expiration period in days for imported (matrix/network) content" msgstr "Periodo de caducidad en días para el contenido importado (red)" -#: ../../mod/admin.php:476 +#: ../../mod/admin.php:483 msgid "0 for no expiration of imported content" msgstr "0 para que no caduque el contenido importado" -#: ../../mod/admin.php:524 +#: ../../mod/admin.php:531 msgid "No server found" msgstr "Servidor no encontrado" -#: ../../mod/admin.php:531 ../../mod/admin.php:814 +#: ../../mod/admin.php:538 ../../mod/admin.php:821 msgid "ID" msgstr "ID" -#: ../../mod/admin.php:531 +#: ../../mod/admin.php:538 msgid "for channel" msgstr "por canal" -#: ../../mod/admin.php:531 +#: ../../mod/admin.php:538 msgid "on server" msgstr "en el servidor" -#: ../../mod/admin.php:531 +#: ../../mod/admin.php:538 msgid "Status" msgstr "Estado" -#: ../../mod/admin.php:533 +#: ../../mod/admin.php:540 msgid "Server" msgstr "Servidor" -#: ../../mod/admin.php:550 +#: ../../mod/admin.php:557 msgid "Update has been marked successful" msgstr "La actualización ha sido marcada como exitosa" -#: ../../mod/admin.php:560 +#: ../../mod/admin.php:567 #, php-format msgid "Executing %s failed. Check system logs." msgstr "La ejecución de %s ha fallado. Mirar en los informes del sistema." -#: ../../mod/admin.php:563 +#: ../../mod/admin.php:570 #, php-format msgid "Update %s was successfully applied." msgstr "La actualización de %s se ha realizado exitosamente." -#: ../../mod/admin.php:567 +#: ../../mod/admin.php:574 #, php-format msgid "Update %s did not return a status. Unknown if it succeeded." msgstr "La actualización de %s no ha devuelto ningún estado. No se sabe si ha tenido éxito." -#: ../../mod/admin.php:570 +#: ../../mod/admin.php:577 #, php-format msgid "Update function %s could not be found." msgstr "No se encuentra la función de actualización de %s." -#: ../../mod/admin.php:586 +#: ../../mod/admin.php:593 msgid "No failed updates." msgstr "No ha fallado ninguna actualización." -#: ../../mod/admin.php:590 +#: ../../mod/admin.php:597 msgid "Failed Updates" msgstr "Han fallado las actualizaciones" -#: ../../mod/admin.php:592 +#: ../../mod/admin.php:599 msgid "Mark success (if update was manually applied)" msgstr "Marcar como exitosa (si la actualización se ha hecho manualmente)" -#: ../../mod/admin.php:593 +#: ../../mod/admin.php:600 msgid "Attempt to execute this update step automatically" msgstr "Intentar ejecutar este paso de actualización automáticamente" -#: ../../mod/admin.php:625 +#: ../../mod/admin.php:632 msgid "Queue Statistics" msgstr "Estadísticas de la cola" -#: ../../mod/admin.php:626 +#: ../../mod/admin.php:633 msgid "Total Entries" msgstr "Total de entradas" -#: ../../mod/admin.php:627 +#: ../../mod/admin.php:634 msgid "Priority" msgstr "Prioridad" -#: ../../mod/admin.php:628 +#: ../../mod/admin.php:635 msgid "Destination URL" msgstr "Dirección de destino" -#: ../../mod/admin.php:629 +#: ../../mod/admin.php:636 msgid "Mark hub permanently offline" msgstr "Marcar el servidor como permanentemente fuera de línea" -#: ../../mod/admin.php:630 +#: ../../mod/admin.php:637 msgid "Empty queue for this hub" msgstr "Vaciar la cola para este servidor" -#: ../../mod/admin.php:631 +#: ../../mod/admin.php:638 msgid "Last known contact" msgstr "Último contacto conocido" -#: ../../mod/admin.php:667 +#: ../../mod/admin.php:674 #, php-format msgid "%s account blocked/unblocked" msgid_plural "%s account blocked/unblocked" msgstr[0] "%s cuenta bloqueada/desbloqueada" msgstr[1] "%s cuenta bloqueada/desbloqueada" -#: ../../mod/admin.php:675 +#: ../../mod/admin.php:682 #, php-format msgid "%s account deleted" msgid_plural "%s accounts deleted" msgstr[0] "%s cuentas eliminadas" msgstr[1] "%s cuentas eliminadas" -#: ../../mod/admin.php:711 +#: ../../mod/admin.php:718 msgid "Account not found" msgstr "Cuenta no encontrada" -#: ../../mod/admin.php:723 +#: ../../mod/admin.php:730 #, php-format msgid "Account '%s' deleted" msgstr "La cuenta '%s' ha sido eliminada" -#: ../../mod/admin.php:731 +#: ../../mod/admin.php:738 #, php-format msgid "Account '%s' blocked" msgstr "La cuenta '%s' ha sido bloqueada" -#: ../../mod/admin.php:739 +#: ../../mod/admin.php:746 #, php-format msgid "Account '%s' unblocked" msgstr "La cuenta '%s' ha sido desbloqueada" -#: ../../mod/admin.php:801 ../../mod/admin.php:813 +#: ../../mod/admin.php:808 ../../mod/admin.php:820 msgid "Users" msgstr "Usuarios" -#: ../../mod/admin.php:803 ../../mod/admin.php:967 +#: ../../mod/admin.php:810 ../../mod/admin.php:974 msgid "select all" msgstr "seleccionar todo" -#: ../../mod/admin.php:804 +#: ../../mod/admin.php:811 msgid "User registrations waiting for confirm" msgstr "Registros de usuario en espera de aprobación" -#: ../../mod/admin.php:805 +#: ../../mod/admin.php:812 msgid "Request date" msgstr "Fecha de solicitud" -#: ../../mod/admin.php:806 +#: ../../mod/admin.php:813 msgid "No registrations." msgstr "Sin registros." -#: ../../mod/admin.php:808 +#: ../../mod/admin.php:815 msgid "Deny" msgstr "Rechazar" -#: ../../mod/admin.php:814 +#: ../../mod/admin.php:821 msgid "Register date" msgstr "Fecha de registro" -#: ../../mod/admin.php:814 +#: ../../mod/admin.php:821 msgid "Last login" msgstr "Último acceso" -#: ../../mod/admin.php:814 +#: ../../mod/admin.php:821 msgid "Expires" msgstr "Caduca" -#: ../../mod/admin.php:814 +#: ../../mod/admin.php:821 msgid "Service Class" msgstr "Clase de servicio" -#: ../../mod/admin.php:816 +#: ../../mod/admin.php:823 msgid "" "Selected accounts will be deleted!\\n\\nEverything these accounts had posted" " on this site will be permanently deleted!\\n\\nAre you sure?" msgstr "¡Las cuentas seleccionadas van a ser eliminadas!\\n\\n¡Todo lo que estas cuentas han publicado en este sitio será borrado de forma permanente!\\n\\n¿Está seguro de querer hacerlo?" -#: ../../mod/admin.php:817 +#: ../../mod/admin.php:824 msgid "" "The account {0} will be deleted!\\n\\nEverything this account has posted on " "this site will be permanently deleted!\\n\\nAre you sure?" msgstr "¡La cuenta {0} va a ser eliminada!\\n\\n¡Todo lo que esta cuenta ha publicado en este sitio será borrado de forma permanente!\\n\\n¿Está seguro de querer hacerlo?" -#: ../../mod/admin.php:853 +#: ../../mod/admin.php:860 #, php-format msgid "%s channel censored/uncensored" msgid_plural "%s channels censored/uncensored" msgstr[0] "%s canales censurados/no censurados" msgstr[1] "%s canales censurados/no censurados" -#: ../../mod/admin.php:862 +#: ../../mod/admin.php:869 #, php-format msgid "%s channel code allowed/disallowed" msgid_plural "%s channels code allowed/disallowed" msgstr[0] "%s código permitido/no permitido al canal" msgstr[1] "%s código permitido/no permitido al canal" -#: ../../mod/admin.php:869 +#: ../../mod/admin.php:876 #, php-format msgid "%s channel deleted" msgid_plural "%s channels deleted" msgstr[0] "%s canales eliminados" msgstr[1] "%s canales eliminados" -#: ../../mod/admin.php:889 +#: ../../mod/admin.php:896 msgid "Channel not found" msgstr "Canal no encontrado" -#: ../../mod/admin.php:900 +#: ../../mod/admin.php:907 #, php-format msgid "Channel '%s' deleted" msgstr "Canal '%s' eliminado" -#: ../../mod/admin.php:912 +#: ../../mod/admin.php:919 #, php-format msgid "Channel '%s' censored" msgstr "Canal '%s' censurado" -#: ../../mod/admin.php:912 +#: ../../mod/admin.php:919 #, php-format msgid "Channel '%s' uncensored" msgstr "Canal '%s' no censurado" -#: ../../mod/admin.php:923 +#: ../../mod/admin.php:930 #, php-format msgid "Channel '%s' code allowed" msgstr "Código permitido al canal '%s'" -#: ../../mod/admin.php:923 +#: ../../mod/admin.php:930 #, php-format msgid "Channel '%s' code disallowed" msgstr "Código no permitido al canal '%s'" -#: ../../mod/admin.php:969 +#: ../../mod/admin.php:976 msgid "Censor" msgstr "Censurar" -#: ../../mod/admin.php:970 +#: ../../mod/admin.php:977 msgid "Uncensor" msgstr "No censurar" -#: ../../mod/admin.php:971 +#: ../../mod/admin.php:978 msgid "Allow Code" msgstr "Permitir código" -#: ../../mod/admin.php:972 +#: ../../mod/admin.php:979 msgid "Disallow Code" msgstr "No permitir código" -#: ../../mod/admin.php:974 +#: ../../mod/admin.php:981 msgid "UID" msgstr "UID" -#: ../../mod/admin.php:976 +#: ../../mod/admin.php:983 msgid "" "Selected channels will be deleted!\\n\\nEverything that was posted in these " "channels on this site will be permanently deleted!\\n\\nAre you sure?" msgstr "Los canales seleccionados se eliminarán!\\n\\nTodo lo publicado por estos canales en este sitio se borrarán definitivamente!\\n\\n¿Está seguro de querer hacerlo?" -#: ../../mod/admin.php:977 +#: ../../mod/admin.php:984 msgid "" "The channel {0} will be deleted!\\n\\nEverything that was posted in this " "channel on this site will be permanently deleted!\\n\\nAre you sure?" msgstr "El canal {0} va a ser eliminado!\\n\\nTodo lo publicado por el canal en este sitio se borrará definitivamente!\\n\\n¿Está seguro de querer hacerlo?" -#: ../../mod/admin.php:1017 +#: ../../mod/admin.php:1024 #, php-format msgid "Plugin %s disabled." msgstr "Extensión %s desactivada." -#: ../../mod/admin.php:1021 +#: ../../mod/admin.php:1028 #, php-format msgid "Plugin %s enabled." msgstr "Extensión %s activada." -#: ../../mod/admin.php:1031 ../../mod/admin.php:1234 +#: ../../mod/admin.php:1038 ../../mod/admin.php:1241 msgid "Disable" msgstr "Desactivar" -#: ../../mod/admin.php:1034 ../../mod/admin.php:1236 +#: ../../mod/admin.php:1041 ../../mod/admin.php:1243 msgid "Enable" msgstr "Activar" -#: ../../mod/admin.php:1063 ../../mod/admin.php:1263 +#: ../../mod/admin.php:1070 ../../mod/admin.php:1270 msgid "Toggle" msgstr "Cambiar" -#: ../../mod/admin.php:1071 ../../mod/admin.php:1273 +#: ../../mod/admin.php:1078 ../../mod/admin.php:1280 msgid "Author: " msgstr "Autor:" -#: ../../mod/admin.php:1072 ../../mod/admin.php:1274 +#: ../../mod/admin.php:1079 ../../mod/admin.php:1281 msgid "Maintainer: " msgstr "Mantenedor:" -#: ../../mod/admin.php:1199 +#: ../../mod/admin.php:1206 msgid "No themes found." msgstr "No se han encontrado temas." -#: ../../mod/admin.php:1255 +#: ../../mod/admin.php:1262 msgid "Screenshot" msgstr "Instantánea de pantalla" -#: ../../mod/admin.php:1301 +#: ../../mod/admin.php:1308 msgid "[Experimental]" msgstr "[Experimental]" -#: ../../mod/admin.php:1302 +#: ../../mod/admin.php:1309 msgid "[Unsupported]" msgstr "[No soportado]" -#: ../../mod/admin.php:1326 +#: ../../mod/admin.php:1333 msgid "Log settings updated." msgstr "Actualizado el informe de configuraciones." -#: ../../mod/admin.php:1383 +#: ../../mod/admin.php:1390 msgid "Clear" msgstr "Vaciar" -#: ../../mod/admin.php:1389 +#: ../../mod/admin.php:1396 msgid "Debugging" msgstr "Depuración" -#: ../../mod/admin.php:1390 +#: ../../mod/admin.php:1397 msgid "Log file" msgstr "Fichero de informe" -#: ../../mod/admin.php:1390 +#: ../../mod/admin.php:1397 msgid "" "Must be writable by web server. Relative to your Red top-level directory." msgstr "Debe tener permisos de escritura por el servidor web. La ruta es relativa al directorio de instalación de Hubzilla." -#: ../../mod/admin.php:1391 +#: ../../mod/admin.php:1398 msgid "Log level" msgstr "Nivel de depuración" -#: ../../mod/admin.php:1437 +#: ../../mod/admin.php:1444 msgid "New Profile Field" msgstr "Nuevo campo en el perfil" -#: ../../mod/admin.php:1438 ../../mod/admin.php:1458 +#: ../../mod/admin.php:1445 ../../mod/admin.php:1465 msgid "Field nickname" msgstr "Alias del campo" -#: ../../mod/admin.php:1438 ../../mod/admin.php:1458 +#: ../../mod/admin.php:1445 ../../mod/admin.php:1465 msgid "System name of field" msgstr "Nombre del campo en el sistema" -#: ../../mod/admin.php:1439 ../../mod/admin.php:1459 +#: ../../mod/admin.php:1446 ../../mod/admin.php:1466 msgid "Input type" msgstr "Tipo de entrada" -#: ../../mod/admin.php:1440 ../../mod/admin.php:1460 +#: ../../mod/admin.php:1447 ../../mod/admin.php:1467 msgid "Field Name" msgstr "Nombre del campo" -#: ../../mod/admin.php:1440 ../../mod/admin.php:1460 +#: ../../mod/admin.php:1447 ../../mod/admin.php:1467 msgid "Label on profile pages" msgstr "Etiqueta a mostrar en la página del perfil" -#: ../../mod/admin.php:1441 ../../mod/admin.php:1461 +#: ../../mod/admin.php:1448 ../../mod/admin.php:1468 msgid "Help text" msgstr "Texto de ayuda" -#: ../../mod/admin.php:1441 ../../mod/admin.php:1461 +#: ../../mod/admin.php:1448 ../../mod/admin.php:1468 msgid "Additional info (optional)" msgstr "Información adicional (opcional)" -#: ../../mod/admin.php:1451 +#: ../../mod/admin.php:1458 msgid "Field definition not found" msgstr "Definición del campo no encontrada" -#: ../../mod/admin.php:1457 +#: ../../mod/admin.php:1464 msgid "Edit Profile Field" msgstr "Modificar el campo del perfil" @@ -8270,75 +8181,14 @@ msgstr "Cuando sea posible, elimine una ubicación iniciando sesión en el sitio msgid "Use this form to drop the location if the hub is no longer operating." msgstr "Utilice este formulario para eliminar la dirección si el \"hub\" no está funcionando desde hace tiempo." -#: ../../mod/invite.php:25 -msgid "Total invitation limit exceeded." -msgstr "Se ha superado el límite máximo de invitaciones." - -#: ../../mod/invite.php:49 -#, php-format -msgid "%s : Not a valid email address." -msgstr "%s : No es una dirección de correo electrónico válida. " - -#: ../../mod/invite.php:76 -msgid "Please join us on $Projectname" -msgstr "Únase a nosotros en $Projectname" - -#: ../../mod/invite.php:87 -msgid "Invitation limit exceeded. Please contact your site administrator." -msgstr "Excedido el límite de invitaciones. Por favor, contacte con el Administrador de su sitio." - -#: ../../mod/invite.php:92 -#, php-format -msgid "%s : Message delivery failed." -msgstr "%s : Falló el envío del mensaje." +#: ../../mod/home.php:57 ../../mod/home.php:65 ../../mod/siteinfo.php:61 +msgid "$Projectname" +msgstr "$Projectname" -#: ../../mod/invite.php:96 +#: ../../mod/home.php:75 #, php-format -msgid "%d message sent." -msgid_plural "%d messages sent." -msgstr[0] "%d mensajes enviados." -msgstr[1] "%d mensajes enviados." - -#: ../../mod/invite.php:115 -msgid "You have no more invitations available" -msgstr "No tiene más invitaciones disponibles" - -#: ../../mod/invite.php:129 -msgid "Send invitations" -msgstr "Enviar invitaciones" - -#: ../../mod/invite.php:130 -msgid "Enter email addresses, one per line:" -msgstr "Introduzca las direcciones de correo electrónico, una por línea:" - -#: ../../mod/invite.php:131 ../../mod/mail.php:238 -msgid "Your message:" -msgstr "Su mensaje:" - -#: ../../mod/invite.php:132 -msgid "Please join my community on $Projectname." -msgstr "Por favor, únase a mi comunidad en $Projectname." - -#: ../../mod/invite.php:134 -msgid "You will need to supply this invitation code: " -msgstr "Debe proporcionar este código de invitación:" - -#: ../../mod/invite.php:135 -msgid "" -"1. Register at any $Projectname location (they are all inter-connected)" -msgstr "1. Regístrese en cualquier sitio de $Projectname (están todos interconectados)" - -#: ../../mod/invite.php:137 -msgid "2. Enter my $Projectname network address into the site searchbar." -msgstr "2. Introduzca mi dirección $Projectname en la caja de búsqueda del sitio." - -#: ../../mod/invite.php:138 -msgid "or visit " -msgstr "o visite " - -#: ../../mod/invite.php:140 -msgid "3. Click [Connect]" -msgstr "3. Pulse [conectar]" +msgid "Welcome to %s" +msgstr "Bienvenido a %s" #: ../../mod/regmod.php:11 msgid "Please login." @@ -8368,6 +8218,158 @@ msgstr "Permisos insuficientes. Petición redirigida a la página del perfil." msgid "Item not available." msgstr "Elemento no disponible" +#: ../../mod/photos.php:79 +msgid "Page owner information could not be retrieved." +msgstr "La información del propietario de la página no pudo ser recuperada." + +#: ../../mod/photos.php:100 +msgid "Album not found." +msgstr "Álbum no encontrado." + +#: ../../mod/photos.php:127 +msgid "Delete Album" +msgstr "Borrar álbum" + +#: ../../mod/photos.php:171 ../../mod/photos.php:1006 +msgid "Delete Photo" +msgstr "Borrar foto" + +#: ../../mod/photos.php:501 +msgid "No photos selected" +msgstr "No hay fotos seleccionadas" + +#: ../../mod/photos.php:550 +msgid "Access to this item is restricted." +msgstr "El acceso a este elemento está restringido." + +#: ../../mod/photos.php:589 +#, php-format +msgid "%1$.2f MB of %2$.2f MB photo storage used." +msgstr "%1$.2f MB de %2$.2f MB de almacenamiento de fotos utilizado." + +#: ../../mod/photos.php:592 +#, php-format +msgid "%1$.2f MB photo storage used." +msgstr "%1$.2f MB de almacenamiento de fotos utilizado." + +#: ../../mod/photos.php:620 +msgid "Upload Photos" +msgstr "Subir fotos" + +#: ../../mod/photos.php:624 +msgid "Enter an album name" +msgstr "Introducir un nombre de álbum" + +#: ../../mod/photos.php:625 +msgid "or select an existing album (doubleclick)" +msgstr "o seleccionar uno existente (doble click)" + +#: ../../mod/photos.php:626 +msgid "Create a status post for this upload" +msgstr "Crear una entrada de estado para esta subida" + +#: ../../mod/photos.php:627 +msgid "Caption (optional):" +msgstr "Título (opcional):" + +#: ../../mod/photos.php:628 +msgid "Description (optional):" +msgstr "Descripción (opcional):" + +#: ../../mod/photos.php:655 +msgid "Album name could not be decoded" +msgstr "El nombre del álbum no ha podido ser descifrado" + +#: ../../mod/photos.php:699 ../../mod/photos.php:1233 +#: ../../mod/photos.php:1250 +msgid "Contact Photos" +msgstr "Fotos de contacto" + +#: ../../mod/photos.php:722 +msgid "Show Newest First" +msgstr "Mostrar lo más reciente primero" + +#: ../../mod/photos.php:724 +msgid "Show Oldest First" +msgstr "Mostrar lo más antiguo primero" + +#: ../../mod/photos.php:824 +msgid "Permission denied. Access to this item may be restricted." +msgstr "Permiso denegado. El acceso a este elemento puede estar restringido." + +#: ../../mod/photos.php:826 +msgid "Photo not available" +msgstr "Foto no disponible" + +#: ../../mod/photos.php:884 +msgid "Use as profile photo" +msgstr "Usar como foto del perfil" + +#: ../../mod/photos.php:891 +msgid "Private Photo" +msgstr "Foto privada" + +#: ../../mod/photos.php:902 ../../mod/events.php:652 ../../mod/events.php:659 +msgid "Previous" +msgstr "Anterior" + +#: ../../mod/photos.php:906 +msgid "View Full Size" +msgstr "Ver tamaño completo" + +#: ../../mod/photos.php:985 +msgid "Edit photo" +msgstr "Editar foto" + +#: ../../mod/photos.php:987 +msgid "Rotate CW (right)" +msgstr "Girar CW (a la derecha)" + +#: ../../mod/photos.php:988 +msgid "Rotate CCW (left)" +msgstr "Girar CCW (a la izquierda)" + +#: ../../mod/photos.php:991 +msgid "Enter a new album name" +msgstr "Introducir un nuevo nombre de álbum" + +#: ../../mod/photos.php:992 +msgid "or select an existing one (doubleclick)" +msgstr "o seleccionar uno (doble click) existente" + +#: ../../mod/photos.php:995 +msgid "Caption" +msgstr "Título" + +#: ../../mod/photos.php:997 +msgid "Add a Tag" +msgstr "Añadir una etiqueta" + +#: ../../mod/photos.php:1001 +msgid "Example: @bob, @Barbara_Jensen, @jim@example.com" +msgstr "Ejemplos: @eva, @Carmen_Osuna, @jaime@ejemplo.com" + +#: ../../mod/photos.php:1004 +msgid "Flag as adult in album view" +msgstr "Marcar como \"solo para adultos\" en el álbum" + +#: ../../mod/photos.php:1196 +msgid "In This Photo:" +msgstr "En esta foto:" + +#: ../../mod/photos.php:1201 +msgid "Map" +msgstr "Mapa" + +#: ../../mod/photos.php:1289 +msgid "View Album" +msgstr "Ver álbum" + +#: ../../mod/photos.php:1300 ../../mod/photos.php:1313 +#: ../../mod/photos.php:1314 +msgid "Recent Photos" +msgstr "Fotos recientes" + #: ../../mod/lockview.php:37 msgid "Remote privacy information not available." msgstr "La información privada remota no está disponible." @@ -8757,95 +8759,89 @@ msgstr "El título del menú tal como será visto por los demás" msgid "Allow bookmarks" msgstr "Permitir marcadores" -#: ../../mod/mail.php:33 +#: ../../mod/mail.php:34 msgid "Unable to lookup recipient." msgstr "Imposible asociar a un destinatario." -#: ../../mod/mail.php:41 +#: ../../mod/mail.php:42 msgid "Unable to communicate with requested channel." msgstr "Imposible comunicar con el canal solicitado." -#: ../../mod/mail.php:48 +#: ../../mod/mail.php:49 msgid "Cannot verify requested channel." msgstr "No se puede verificar el canal solicitado." -#: ../../mod/mail.php:74 +#: ../../mod/mail.php:75 msgid "Selected channel has private message restrictions. Send failed." msgstr "El canal seleccionado tiene restricciones sobre los mensajes privados. El envío falló." -#: ../../mod/mail.php:132 +#: ../../mod/mail.php:140 msgid "Messages" msgstr "Mensajes" -#: ../../mod/mail.php:167 +#: ../../mod/mail.php:175 msgid "Message recalled." msgstr "Mensaje revocado." -#: ../../mod/mail.php:180 +#: ../../mod/mail.php:188 msgid "Conversation removed." msgstr "Conversación eliminada." -#: ../../mod/mail.php:223 +#: ../../mod/mail.php:231 msgid "Requested channel is not in this network" msgstr "El canal solicitado no existe en esta red" -#: ../../mod/mail.php:231 +#: ../../mod/mail.php:239 msgid "Send Private Message" msgstr "Enviar un mensaje privado" -#: ../../mod/mail.php:232 ../../mod/mail.php:362 +#: ../../mod/mail.php:240 ../../mod/mail.php:370 msgid "To:" msgstr "Para:" -#: ../../mod/mail.php:235 ../../mod/mail.php:364 +#: ../../mod/mail.php:243 ../../mod/mail.php:372 msgid "Subject:" msgstr "Asunto:" -#: ../../mod/mail.php:242 +#: ../../mod/mail.php:250 msgid "Send" msgstr "Enviar" -#: ../../mod/mail.php:334 +#: ../../mod/mail.php:342 msgid "Delete message" msgstr "Borrar mensaje" -#: ../../mod/mail.php:335 +#: ../../mod/mail.php:343 msgid "Delivery report" msgstr "Informe de transmisión" -#: ../../mod/mail.php:336 +#: ../../mod/mail.php:344 msgid "Recall message" msgstr "Revocar el mensaje" -#: ../../mod/mail.php:338 +#: ../../mod/mail.php:346 msgid "Message has been recalled." msgstr "El mensaje ha sido revocado." -#: ../../mod/mail.php:355 +#: ../../mod/mail.php:363 msgid "Delete Conversation" msgstr "Eliminar conversación" -#: ../../mod/mail.php:357 +#: ../../mod/mail.php:365 msgid "" "No secure communications available. You <strong>may</strong> be able to " "respond from the sender's profile page." msgstr "Comunicación segura no disponible. Pero <strong>puede</strong> responder desde la página del perfil del remitente." -#: ../../mod/mail.php:361 +#: ../../mod/mail.php:369 msgid "Send Reply" msgstr "Responder" -#: ../../mod/mail.php:366 +#: ../../mod/mail.php:374 #, php-format msgid "Your message for %s (%s):" msgstr "Su mensaje para %s (%s):" -#: ../../mod/post.php:234 -msgid "" -"Remote authentication blocked. You are logged into this site locally. Please" -" logout and retry." -msgstr "La autenticación desde su servidor está bloqueada. Ha iniciado sesión localmente. Por favor, salga de la sesión y vuelva a intentarlo." - #: ../../mod/service_limits.php:19 msgid "No service class restrictions found." msgstr "No se han encontrado restricciones sobre esta clase de servicio." @@ -9382,3 +9378,9 @@ msgstr "Las tareas del Planificador/Cron no están funcionando." #, php-format msgid "[hubzilla] Cron tasks not running on %s" msgstr "[hubzilla] Las tareas de Cron no están funcionando en %s" + +#: ../../Zotlabs/Zot/Auth.php:140 +msgid "" +"Remote authentication blocked. You are logged into this site locally. Please" +" logout and retry." +msgstr "La autenticación desde su servidor está bloqueada. Ha iniciado sesión localmente. Por favor, salga de la sesión y vuelva a intentarlo." diff --git a/view/es/hstrings.php b/view/es/hstrings.php index 6b73063b8..2fc5fb861 100644 --- a/view/es/hstrings.php +++ b/view/es/hstrings.php @@ -143,13 +143,6 @@ $a->strings["Collection is empty."] = "La colección está vacía."; $a->strings["Collection: %s"] = "Colección: %s"; $a->strings["Connection: %s"] = "Conexión: %s"; $a->strings["Connection not found."] = "Conexión no encontrada"; -$a->strings["view full size"] = "Ver en el tamaño original"; -$a->strings["\$Projectname Notification"] = "Notificación de \$Projectname"; -$a->strings["\$projectname"] = "\$projectname"; -$a->strings["Thank You,"] = "Gracias,"; -$a->strings["%s Administrator"] = "%s Administrador"; -$a->strings["Administrator"] = "Administrador"; -$a->strings["No Subject"] = "Sin asunto"; $a->strings["l F d, Y \\@ g:i A"] = "l d de F, Y \\@ G:i"; $a->strings["Starts:"] = "Comienza:"; $a->strings["Finishes:"] = "Finaliza:"; @@ -232,9 +225,9 @@ $a->strings["has"] = "tiene"; $a->strings["want"] = "quiero"; $a->strings["wants"] = "quiere"; $a->strings["like"] = "me gusta"; -$a->strings["likes"] = "le gusta"; +$a->strings["likes"] = "gusta de"; $a->strings["dislike"] = "no me gusta"; -$a->strings["dislikes"] = "no le gusta"; +$a->strings["dislikes"] = "no gusta de"; $a->strings["Visible to your default audience"] = "Visible para su público predeterminado."; $a->strings["Show"] = "Mostrar"; $a->strings["Don't show"] = "No mostrar"; @@ -395,7 +388,7 @@ $a->strings["Enable tab to display only Network posts that you've interacted on" $a->strings["Network New Tab"] = "Contenido nuevo"; $a->strings["Enable tab to display all new Network activity"] = "Habilitar una pestaña en la que se muestre solo el contenido nuevo"; $a->strings["Affinity Tool"] = "Herramienta de afinidad"; -$a->strings["Filter stream activity by depth of relationships"] = "Filtrar la actividad del flujo por profundidad de relaciones"; +$a->strings["Filter stream activity by depth of relationships"] = "Filtrar el contenido según la profundidad de las relaciones"; $a->strings["Connection Filtering"] = "Filtrado de conexiones"; $a->strings["Filter incoming posts from connections based on keywords/content"] = "Filtrar publicaciones entrantes de conexiones por palabras clave o contenido"; $a->strings["Suggest Channels"] = "Sugerir canales"; @@ -493,9 +486,9 @@ $a->strings["%1\$s's birthday"] = "Cumpleaños de %1\$s"; $a->strings["Happy Birthday %1\$s"] = "Feliz cumpleaños %1\$s"; $a->strings["Public Timeline"] = "Cronología pública"; $a->strings["photo"] = "foto"; -$a->strings["channel"] = "canal"; +$a->strings["channel"] = "el canal"; $a->strings["status"] = "el mensaje de estado"; -$a->strings["comment"] = "comentario"; +$a->strings["comment"] = "el comentario"; $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 now connected with %2\$s"] = "%1\$s ahora está conectado/a con %2\$s"; @@ -596,14 +589,14 @@ $a->strings["Encrypt text"] = "Cifrar texto"; $a->strings["OK"] = "OK"; $a->strings["Cancel"] = "Cancelar"; $a->strings["Discover"] = "Descubrir"; -$a->strings["Imported public streams"] = "Flujos públicos importados"; +$a->strings["Imported public streams"] = "Contenidos públicos importados"; $a->strings["Commented Order"] = "Comentarios recientes"; $a->strings["Sort by Comment Date"] = "Ordenar por fecha de comentario"; $a->strings["Posted Order"] = "Publicaciones recientes"; $a->strings["Sort by Post Date"] = "Ordenar por fecha de publicación"; $a->strings["Posts that mention or involve you"] = "Publicaciones que le mencionan o involucran"; $a->strings["New"] = "Nuevas"; -$a->strings["Activity Stream - by date"] = "Flujo de actividad - por fecha"; +$a->strings["Activity Stream - by date"] = "Contenido - por fecha"; $a->strings["Starred"] = "Preferidas"; $a->strings["Favourite Posts"] = "Publicaciones favoritas"; $a->strings["Spam"] = "Correo basura"; @@ -677,7 +670,7 @@ $a->strings["layout"] = "disposición"; $a->strings["block"] = "bloque"; $a->strings["menu"] = "menú"; $a->strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s escribió la siguiente %2\$s %3\$s"; -$a->strings["post"] = "entrada"; +$a->strings["post"] = "la entrada"; $a->strings["Different viewers will see this text differently"] = "Visitantes diferentes verán este texto de forma distinta"; $a->strings["$1 spoiler"] = "$1 spoiler"; $a->strings["$1 wrote:"] = "$1 escribió"; @@ -700,6 +693,10 @@ $a->strings["%d connection in common"] = array( 1 => "%d conexiones en común", ); $a->strings["show more"] = "mostrar más"; +$a->strings["\$Projectname Notification"] = "Notificación de \$Projectname"; +$a->strings["\$projectname"] = "\$projectname"; +$a->strings["Thank You,"] = "Gracias,"; +$a->strings["%s Administrator"] = "%s Administrador"; $a->strings["%s <!item_type!>"] = "%s <!item_type!>"; $a->strings["[Hubzilla:Notify] New mail received at %s"] = "[Hubzilla:Aviso] Nuevo mensaje en %s"; $a->strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "%1\$s, %2\$s le ha enviado un nuevo mensaje privado en %3\$s."; @@ -819,27 +816,27 @@ $a->strings["%d Connection"] = array( $a->strings["View Connections"] = "Ver conexiones"; $a->strings["poke"] = "un toque"; $a->strings["ping"] = "un \"ping\""; -$a->strings["pinged"] = "avisado/a"; +$a->strings["pinged"] = "ha enviado un \"ping\" a"; $a->strings["prod"] = "una incitación"; -$a->strings["prodded"] = "ha recibido una incitación"; +$a->strings["prodded"] = "ha incitado a"; $a->strings["slap"] = "una bofetada"; -$a->strings["slapped"] = "ha recibido una bofetada"; +$a->strings["slapped"] = "ha enviado una bofetada a"; $a->strings["finger"] = "un \"finger\""; -$a->strings["fingered"] = "ha recibido un \"finger\""; +$a->strings["fingered"] = "ha enviado un \"finger\" a"; $a->strings["rebuff"] = "un rechazo"; -$a->strings["rebuffed"] = "ha sido rechazado/a"; +$a->strings["rebuffed"] = "ha enviado un rechazo a"; $a->strings["happy"] = "feliz"; $a->strings["sad"] = "triste"; $a->strings["mellow"] = "amable"; $a->strings["tired"] = "cansado/a"; -$a->strings["perky"] = "fresco/a"; +$a->strings["perky"] = "vivaz"; $a->strings["angry"] = "enfadado/a"; $a->strings["stupified"] = "estupefacto/a"; $a->strings["puzzled"] = "perplejo/a"; $a->strings["interested"] = "interesado/a"; $a->strings["bitter"] = "amargado/a"; $a->strings["cheerful"] = "alegre"; -$a->strings["alive"] = "vivo/a"; +$a->strings["alive"] = "animado/a"; $a->strings["annoyed"] = "molesto/a"; $a->strings["anxious"] = "ansioso/a"; $a->strings["cranky"] = "de mal humor"; @@ -892,6 +889,9 @@ $a->strings["Page Link"] = "Vínculo de la página"; $a->strings["Title"] = "Título"; $a->strings["Created"] = "Creado"; $a->strings["Edited"] = "Editado"; +$a->strings["view full size"] = "Ver en el tamaño original"; +$a->strings["Administrator"] = "Administrador"; +$a->strings["No Subject"] = "Sin asunto"; $a->strings["Cannot locate DNS info for database server '%s'"] = "No se ha podido localizar información de DNS para el servidor de base de datos “%s”"; $a->strings["Image exceeds website size limit of %lu bytes"] = "La imagen excede el límite de %lu bytes del sitio"; $a->strings["Image file is empty."] = "El fichero de imagen está vacío. "; @@ -933,23 +933,6 @@ $a->strings["This is you"] = "Este es usted"; $a->strings["Image"] = "Imagen"; $a->strings["Insert Link"] = "Insertar enlace"; $a->strings["Video"] = "Vídeo"; -$a->strings["Not a valid email address"] = "Dirección de correo no válida"; -$a->strings["Your email domain is not among those allowed on this site"] = "Su dirección de correo no pertenece a ninguno de los dominios permitidos en este sitio."; -$a->strings["Your email address is already registered at this site."] = "Su dirección de correo está ya registrada en este sitio."; -$a->strings["An invitation is required."] = "Es obligatorio que le inviten."; -$a->strings["Invitation could not be verified."] = "No se ha podido verificar su invitación."; -$a->strings["Please enter the required information."] = "Por favor introduzca la información requerida."; -$a->strings["Failed to store account information."] = "La información de la cuenta no se ha podido guardar."; -$a->strings["Registration confirmation for %s"] = "Confirmación de registro para %s"; -$a->strings["Registration request at %s"] = "Solicitud de registro en %s"; -$a->strings["your registration password"] = "su contraseña de registro"; -$a->strings["Registration details for %s"] = "Detalles del registro de %s"; -$a->strings["Account approved."] = "Cuenta aprobada."; -$a->strings["Registration revoked for %s"] = "Registro revocado para %s"; -$a->strings["Account verified. Please login."] = "Cuenta verificada. Por favor, inicie sesión."; -$a->strings["Click here to upgrade."] = "Pulse aquí para actualizar"; -$a->strings["This action exceeds the limits set by your subscription plan."] = "Esta acción supera los límites establecidos por su plan de suscripción "; -$a->strings["This action is not available under your subscription plan."] = "Esta acción no está disponible en su plan de suscripción."; $a->strings["Site Admin"] = "Adminstrador del sitio"; $a->strings["Address Book"] = "Libreta de direcciones"; $a->strings["Mood"] = "Estado de ánimo"; @@ -964,12 +947,12 @@ $a->strings["Profile Photo"] = "Foto del perfil"; $a->strings["Update"] = "Actualizar"; $a->strings["Install"] = "Instalar"; $a->strings["Purchase"] = "Comprar"; -$a->strings["Can view my normal stream and posts"] = "Pueden verse mi flujo de actividad y publicaciones normales"; +$a->strings["Can view my normal stream and posts"] = "Pueden verse mi actividad y publicaciones normales"; $a->strings["Can view my default channel profile"] = "Puede verse mi perfil de canal predeterminado."; $a->strings["Can view my connections"] = "Pueden verse mis conexiones"; $a->strings["Can view my file storage and photos"] = "Pueden verse mi repositorio de ficheros y mis fotos"; $a->strings["Can view my webpages"] = "Pueden verse mis páginas web"; -$a->strings["Can send me their channel stream and posts"] = "Me pueden enviar sus entradas y flujo de actividad del canal"; +$a->strings["Can send me their channel stream and posts"] = "Me pueden enviar sus entradas y contenidos del canal"; $a->strings["Can post on my channel page (\"wall\")"] = "Pueden crearse entradas en mi página de inicio del canal (“muro”)"; $a->strings["Can comment on or like my posts"] = "Pueden publicarse comentarios en mis publicaciones o marcar mis entradas con 'me gusta'."; $a->strings["Can send me private mail messages"] = "Se me pueden enviar mensajes privados"; @@ -995,6 +978,23 @@ $a->strings["Celebrity/Soapbox"] = "Página para fans"; $a->strings["Group Repository"] = "Repositorio de grupo"; $a->strings["Custom/Expert Mode"] = "Modo personalizado/experto"; $a->strings["Profile Photos"] = "Fotos del perfil"; +$a->strings["Not a valid email address"] = "Dirección de correo no válida"; +$a->strings["Your email domain is not among those allowed on this site"] = "Su dirección de correo no pertenece a ninguno de los dominios permitidos en este sitio."; +$a->strings["Your email address is already registered at this site."] = "Su dirección de correo está ya registrada en este sitio."; +$a->strings["An invitation is required."] = "Es obligatorio que le inviten."; +$a->strings["Invitation could not be verified."] = "No se ha podido verificar su invitación."; +$a->strings["Please enter the required information."] = "Por favor introduzca la información requerida."; +$a->strings["Failed to store account information."] = "La información de la cuenta no se ha podido guardar."; +$a->strings["Registration confirmation for %s"] = "Confirmación de registro para %s"; +$a->strings["Registration request at %s"] = "Solicitud de registro en %s"; +$a->strings["your registration password"] = "su contraseña de registro"; +$a->strings["Registration details for %s"] = "Detalles del registro de %s"; +$a->strings["Account approved."] = "Cuenta aprobada."; +$a->strings["Registration revoked for %s"] = "Registro revocado para %s"; +$a->strings["Account verified. Please login."] = "Cuenta verificada. Por favor, inicie sesión."; +$a->strings["Click here to upgrade."] = "Pulse aquí para actualizar"; +$a->strings["This action exceeds the limits set by your subscription plan."] = "Esta acción supera los límites establecidos por su plan de suscripción "; +$a->strings["This action is not available under your subscription plan."] = "Esta acción no está disponible en su plan de suscripción."; $a->strings["Permission Denied."] = "Permiso denegado"; $a->strings["File not found."] = "Fichero no encontrado."; $a->strings["Edit file permissions"] = "Modificar los permisos del fichero"; @@ -1214,8 +1214,6 @@ $a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for t $a->strings["Bookmark added"] = "Marcador añadido"; $a->strings["My Bookmarks"] = "Mis marcadores"; $a->strings["My Connections Bookmarks"] = "Marcadores de mis conexiones"; -$a->strings["\$Projectname"] = "\$Projectname"; -$a->strings["Welcome to %s"] = "Bienvenido a %s"; $a->strings["This setting requires special processing and editing has been blocked."] = "Este ajuste necesita de un proceso especial y la edición ha sido bloqueada."; $a->strings["Configuration Editor"] = "Editor de configuración"; $a->strings["Warning: Changing some settings could render your channel inoperable. Please leave this page unless you are comfortable with and knowledgeable about how to correctly use this feature."] = "Atención: El cambio de algunos ajustes puede volver inutilizable su canal. Por favor, abandone la página excepto que esté seguro y sepa cómo usar correctamente esta característica."; @@ -1477,43 +1475,25 @@ $a->strings["For either option, please choose whether to make this hub your new $a->strings["Make this hub my primary location"] = "Convertir este servidor en mi ubicación primaria"; $a->strings["Import existing posts if possible (experimental - limited by available memory"] = "Importar el contenido publicado si es posible (experimental - limitado por la memoria disponible"; $a->strings["This process may take several minutes to complete. Please submit the form only once and leave this page open until finished."] = "Este proceso puede tardar varios minutos en completarse. Por favor envíe el formulario una sola vez y mantenga esta página abierta hasta que termine."; -$a->strings["Page owner information could not be retrieved."] = "La información del propietario de la página no pudo ser recuperada."; -$a->strings["Album not found."] = "Álbum no encontrado."; -$a->strings["Delete Album"] = "Borrar álbum"; -$a->strings["Delete Photo"] = "Borrar foto"; -$a->strings["No photos selected"] = "No hay fotos seleccionadas"; -$a->strings["Access to this item is restricted."] = "El acceso a este elemento está restringido."; -$a->strings["%1$.2f MB of %2$.2f MB photo storage used."] = "%1$.2f MB de %2$.2f MB de almacenamiento de fotos utilizado."; -$a->strings["%1$.2f MB photo storage used."] = "%1$.2f MB de almacenamiento de fotos utilizado."; -$a->strings["Upload Photos"] = "Subir fotos"; -$a->strings["Enter an album name"] = "Introducir un nombre de álbum"; -$a->strings["or select an existing album (doubleclick)"] = "o seleccionar uno existente (doble click)"; -$a->strings["Create a status post for this upload"] = "Crear una entrada de estado para esta subida"; -$a->strings["Caption (optional):"] = "Título (opcional):"; -$a->strings["Description (optional):"] = "Descripción (opcional):"; -$a->strings["Album name could not be decoded"] = "El nombre del álbum no ha podido ser descifrado"; -$a->strings["Contact Photos"] = "Fotos de contacto"; -$a->strings["Show Newest First"] = "Mostrar lo más reciente primero"; -$a->strings["Show Oldest First"] = "Mostrar lo más antiguo primero"; -$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["Use as profile photo"] = "Usar como foto del perfil"; -$a->strings["Private Photo"] = "Foto privada"; -$a->strings["Previous"] = "Anterior"; -$a->strings["View Full Size"] = "Ver tamaño completo"; -$a->strings["Edit photo"] = "Editar foto"; -$a->strings["Rotate CW (right)"] = "Girar CW (a la derecha)"; -$a->strings["Rotate CCW (left)"] = "Girar CCW (a la izquierda)"; -$a->strings["Enter a new album name"] = "Introducir un nuevo nombre de álbum"; -$a->strings["or select an existing one (doubleclick)"] = "o seleccionar uno (doble click) existente"; -$a->strings["Caption"] = "Título"; -$a->strings["Add a Tag"] = "Añadir una etiqueta"; -$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Ejemplos: @eva, @Carmen_Osuna, @jaime@ejemplo.com"; -$a->strings["Flag as adult in album view"] = "Marcar como \"solo para adultos\" en el álbum"; -$a->strings["In This Photo:"] = "En esta foto:"; -$a->strings["Map"] = "Mapa"; -$a->strings["View Album"] = "Ver álbum"; -$a->strings["Recent Photos"] = "Fotos recientes"; +$a->strings["Total invitation limit exceeded."] = "Se ha superado el límite máximo de invitaciones."; +$a->strings["%s : Not a valid email address."] = "%s : No es una dirección de correo electrónico válida. "; +$a->strings["Please join us on \$Projectname"] = "Únase a nosotros en \$Projectname"; +$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Excedido el límite de invitaciones. Por favor, contacte con el Administrador de su sitio."; +$a->strings["%s : Message delivery failed."] = "%s : Falló el envío del mensaje."; +$a->strings["%d message sent."] = array( + 0 => "%d mensajes enviados.", + 1 => "%d mensajes enviados.", +); +$a->strings["You have no more invitations available"] = "No tiene más invitaciones disponibles"; +$a->strings["Send invitations"] = "Enviar invitaciones"; +$a->strings["Enter email addresses, one per line:"] = "Introduzca las direcciones de correo electrónico, una por línea:"; +$a->strings["Your message:"] = "Su mensaje:"; +$a->strings["Please join my community on \$Projectname."] = "Por favor, únase a mi comunidad en \$Projectname."; +$a->strings["You will need to supply this invitation code: "] = "Debe proporcionar este código de invitación:"; +$a->strings["1. Register at any \$Projectname location (they are all inter-connected)"] = "1. Regístrese en cualquier sitio de \$Projectname (están todos interconectados)"; +$a->strings["2. Enter my \$Projectname network address into the site searchbar."] = "2. Introduzca mi dirección \$Projectname en la caja de búsqueda del sitio."; +$a->strings["or visit "] = "o visite "; +$a->strings["3. Click [Connect]"] = "3. Pulse [conectar]"; $a->strings["Fetching URL returns error: %1\$s"] = "Al intentar obtener la dirección, retorna el error: %1\$s"; $a->strings["Image uploaded but image cropping failed."] = "Imagen actualizada, pero el recorte de la imagen ha fallado. "; $a->strings["Image resize failed."] = "El ajuste del tamaño de la imagen ha fallado."; @@ -1628,7 +1608,7 @@ $a->strings["System theme"] = "Tema gráfico del sistema"; $a->strings["Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"] = "Tema del sistema por defecto - se puede cambiar por cada perfil de usuario - <a href='#' id='cnftheme'>modificar los ajustes del tema</a>"; $a->strings["Mobile system theme"] = "Tema del sistema para móviles"; $a->strings["Theme for mobile devices"] = "Tema para dispositivos móviles"; -$a->strings["Allow Feeds as Connections"] = "Permitir flujos RSS como conexiones"; +$a->strings["Allow Feeds as Connections"] = "Permitir contenidos RSS como conexiones"; $a->strings["(Heavy system resource usage)"] = "(Uso intenso de los recursos del sistema)"; $a->strings["Maximum image size"] = "Tamaño máximo de la imagen"; $a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "Tamaño máximo en bytes de la imagen subida. Por defecto, es 0, lo que significa que no hay límites."; @@ -1654,8 +1634,8 @@ $a->strings["Verify Email Addresses"] = "Verificar las direcciones de correo ele $a->strings["Check to verify email addresses used in account registration (recommended)."] = "Activar para la verificación de la dirección de correo electrónico en el registro de una cuenta (recomendado)."; $a->strings["Force publish"] = "Forzar la publicación"; $a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Intentar forzar todos los perfiles para que sean listados en el directorio de este sitio."; -$a->strings["Disable discovery tab"] = "Desactivar la pestaña \"Descubrir\""; -$a->strings["Remove the tab in the network view with public content pulled from sources chosen for this site."] = "Quitar la pestaña para ver contenido público extraído de las fuentes elegidas por este sitio."; +$a->strings["Import Public Streams"] = "Importar contenido público"; +$a->strings["Import and allow access to public content pulled from other sites. Warning: this content is unmoderated."] = "Importar y permitir acceso al contenido público sacado de otros sitios. Advertencia: este contenido no está moderado, por lo que podría encontrar cosas inapropiadas u ofensivas."; $a->strings["login on Homepage"] = "acceso a la página personal"; $a->strings["Present a login box to visitors on the home page if no other content has been configured."] = "Presentar a los visitantes una casilla de identificación en la página de inicio, si no se ha configurado otro tipo de contenido."; $a->strings["Directory Server URL"] = "URL del servidor de directorio"; @@ -1946,25 +1926,8 @@ $a->strings["Sync now"] = "Sincronizar ahora"; $a->strings["Please wait several minutes between consecutive operations."] = "Por favor, espere algunos minutos entre operaciones consecutivas."; $a->strings["When possible, drop a location by logging into that website/hub and removing your channel."] = "Cuando sea posible, elimine una ubicación iniciando sesión en el sitio web o \"hub\" y borrando su canal."; $a->strings["Use this form to drop the location if the hub is no longer operating."] = "Utilice este formulario para eliminar la dirección si el \"hub\" no está funcionando desde hace tiempo."; -$a->strings["Total invitation limit exceeded."] = "Se ha superado el límite máximo de invitaciones."; -$a->strings["%s : Not a valid email address."] = "%s : No es una dirección de correo electrónico válida. "; -$a->strings["Please join us on \$Projectname"] = "Únase a nosotros en \$Projectname"; -$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Excedido el límite de invitaciones. Por favor, contacte con el Administrador de su sitio."; -$a->strings["%s : Message delivery failed."] = "%s : Falló el envío del mensaje."; -$a->strings["%d message sent."] = array( - 0 => "%d mensajes enviados.", - 1 => "%d mensajes enviados.", -); -$a->strings["You have no more invitations available"] = "No tiene más invitaciones disponibles"; -$a->strings["Send invitations"] = "Enviar invitaciones"; -$a->strings["Enter email addresses, one per line:"] = "Introduzca las direcciones de correo electrónico, una por línea:"; -$a->strings["Your message:"] = "Su mensaje:"; -$a->strings["Please join my community on \$Projectname."] = "Por favor, únase a mi comunidad en \$Projectname."; -$a->strings["You will need to supply this invitation code: "] = "Debe proporcionar este código de invitación:"; -$a->strings["1. Register at any \$Projectname location (they are all inter-connected)"] = "1. Regístrese en cualquier sitio de \$Projectname (están todos interconectados)"; -$a->strings["2. Enter my \$Projectname network address into the site searchbar."] = "2. Introduzca mi dirección \$Projectname en la caja de búsqueda del sitio."; -$a->strings["or visit "] = "o visite "; -$a->strings["3. Click [Connect]"] = "3. Pulse [conectar]"; +$a->strings["\$Projectname"] = "\$Projectname"; +$a->strings["Welcome to %s"] = "Bienvenido a %s"; $a->strings["Please login."] = "Por favor, inicie sesión."; $a->strings["Xchan Lookup"] = "Búsqueda de canales"; $a->strings["Lookup xchan beginning with (or webbie): "] = "Buscar un canal (o un \"webbie\") que comience por:"; @@ -1972,6 +1935,43 @@ $a->strings["Not found."] = "No encontrado."; $a->strings["You must be logged in to see this page."] = "Debe haber iniciado sesión para poder ver esta página."; $a->strings["Insufficient permissions. Request redirected to profile page."] = "Permisos insuficientes. Petición redirigida a la página del perfil."; $a->strings["Item not available."] = "Elemento no disponible"; +$a->strings["Page owner information could not be retrieved."] = "La información del propietario de la página no pudo ser recuperada."; +$a->strings["Album not found."] = "Álbum no encontrado."; +$a->strings["Delete Album"] = "Borrar álbum"; +$a->strings["Delete Photo"] = "Borrar foto"; +$a->strings["No photos selected"] = "No hay fotos seleccionadas"; +$a->strings["Access to this item is restricted."] = "El acceso a este elemento está restringido."; +$a->strings["%1$.2f MB of %2$.2f MB photo storage used."] = "%1$.2f MB de %2$.2f MB de almacenamiento de fotos utilizado."; +$a->strings["%1$.2f MB photo storage used."] = "%1$.2f MB de almacenamiento de fotos utilizado."; +$a->strings["Upload Photos"] = "Subir fotos"; +$a->strings["Enter an album name"] = "Introducir un nombre de álbum"; +$a->strings["or select an existing album (doubleclick)"] = "o seleccionar uno existente (doble click)"; +$a->strings["Create a status post for this upload"] = "Crear una entrada de estado para esta subida"; +$a->strings["Caption (optional):"] = "Título (opcional):"; +$a->strings["Description (optional):"] = "Descripción (opcional):"; +$a->strings["Album name could not be decoded"] = "El nombre del álbum no ha podido ser descifrado"; +$a->strings["Contact Photos"] = "Fotos de contacto"; +$a->strings["Show Newest First"] = "Mostrar lo más reciente primero"; +$a->strings["Show Oldest First"] = "Mostrar lo más antiguo primero"; +$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["Use as profile photo"] = "Usar como foto del perfil"; +$a->strings["Private Photo"] = "Foto privada"; +$a->strings["Previous"] = "Anterior"; +$a->strings["View Full Size"] = "Ver tamaño completo"; +$a->strings["Edit photo"] = "Editar foto"; +$a->strings["Rotate CW (right)"] = "Girar CW (a la derecha)"; +$a->strings["Rotate CCW (left)"] = "Girar CCW (a la izquierda)"; +$a->strings["Enter a new album name"] = "Introducir un nuevo nombre de álbum"; +$a->strings["or select an existing one (doubleclick)"] = "o seleccionar uno (doble click) existente"; +$a->strings["Caption"] = "Título"; +$a->strings["Add a Tag"] = "Añadir una etiqueta"; +$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Ejemplos: @eva, @Carmen_Osuna, @jaime@ejemplo.com"; +$a->strings["Flag as adult in album view"] = "Marcar como \"solo para adultos\" en el álbum"; +$a->strings["In This Photo:"] = "En esta foto:"; +$a->strings["Map"] = "Mapa"; +$a->strings["View Album"] = "Ver álbum"; +$a->strings["Recent Photos"] = "Fotos recientes"; $a->strings["Remote privacy information not available."] = "La información privada remota no está disponible."; $a->strings["Visible to:"] = "Visible para:"; $a->strings["Export Channel"] = "Exportar el canal"; @@ -2082,7 +2082,6 @@ $a->strings["Delete Conversation"] = "Eliminar conversación"; $a->strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Comunicación segura no disponible. Pero <strong>puede</strong> responder desde la página del perfil del remitente."; $a->strings["Send Reply"] = "Responder"; $a->strings["Your message for %s (%s):"] = "Su mensaje para %s (%s):"; -$a->strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "La autenticación desde su servidor está bloqueada. Ha iniciado sesión localmente. Por favor, salga de la sesión y vuelva a intentarlo."; $a->strings["No service class restrictions found."] = "No se han encontrado restricciones sobre esta clase de servicio."; $a->strings["Version %s"] = "Versión %s"; $a->strings["Installed plugins/addons/apps:"] = "Extensiones/Aplicaciones instaladas:"; @@ -2213,3 +2212,4 @@ $a->strings["Website SSL certificate is not valid. Please correct."] = "El certi $a->strings["[hubzilla] Website SSL error for %s"] = "[hubzilla] Error SSL del sitio web en %s"; $a->strings["Cron/Scheduled tasks not running."] = "Las tareas del Planificador/Cron no están funcionando."; $a->strings["[hubzilla] Cron tasks not running on %s"] = "[hubzilla] Las tareas de Cron no están funcionando en %s"; +$a->strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "La autenticación desde su servidor está bloqueada. Ha iniciado sesión localmente. Por favor, salga de la sesión y vuelva a intentarlo."; diff --git a/view/js/acl.js b/view/js/acl.js index ed8af478a..6d94b4987 100644 --- a/view/js/acl.js +++ b/view/js/acl.js @@ -39,18 +39,18 @@ function ACL(backend_url, preset) { // no longer called only on submit - call to update whenever a change occurs to the acl list. ACL.prototype.on_submit = function() { - aclfileds = $("#acl-fields").html(""); + aclfields = $("#acl-fields").html(""); $(that.allow_gid).each(function(i,v) { - aclfileds.append("<input type='hidden' name='group_allow[]' value='"+v+"'>"); + aclfields.append("<input type='hidden' name='group_allow[]' value='"+v+"'>"); }); $(that.allow_cid).each(function(i,v) { - aclfileds.append("<input type='hidden' name='contact_allow[]' value='"+v+"'>"); + aclfields.append("<input type='hidden' name='contact_allow[]' value='"+v+"'>"); }); $(that.deny_gid).each(function(i,v) { - aclfileds.append("<input type='hidden' name='group_deny[]' value='"+v+"'>"); + aclfields.append("<input type='hidden' name='group_deny[]' value='"+v+"'>"); }); $(that.deny_cid).each(function(i,v) { - aclfileds.append("<input type='hidden' name='contact_deny[]' value='"+v+"'>"); + aclfields.append("<input type='hidden' name='contact_deny[]' value='"+v+"'>"); }); //areYouSure jquery plugin: recheck the form here diff --git a/view/nl/hmessages.po b/view/nl/hmessages.po index 9029d41a6..d12514ea0 100644 --- a/view/nl/hmessages.po +++ b/view/nl/hmessages.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Redmatrix\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-12-04 00:03-0800\n" -"PO-Revision-Date: 2015-12-07 13:18+0000\n" +"POT-Creation-Date: 2015-12-11 00:03-0800\n" +"PO-Revision-Date: 2015-12-12 15:58+0000\n" "Last-Translator: jeroenpraat <jeroenpraat@xs4all.nl>\n" "Language-Team: Dutch (http://www.transifex.com/Friendica/red-matrix/language/nl/)\n" "MIME-Version: 1.0\n" @@ -18,7 +18,7 @@ msgstr "" "Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../include/Contact.php:101 ../../include/identity.php:953 +#: ../../include/Contact.php:101 ../../include/identity.php:947 #: ../../include/widgets.php:137 ../../include/widgets.php:175 #: ../../include/conversation.php:953 ../../mod/match.php:64 #: ../../mod/directory.php:318 ../../mod/suggest.php:52 @@ -77,25 +77,25 @@ msgstr "Chatkanaal niet gevonden" #: ../../mod/editwebpage.php:125 ../../mod/profile.php:64 #: ../../mod/profile.php:72 ../../mod/api.php:26 ../../mod/api.php:31 #: ../../mod/fsuggest.php:78 ../../mod/sources.php:66 -#: ../../mod/notifications.php:66 ../../mod/photos.php:70 -#: ../../mod/profile_photo.php:341 ../../mod/profile_photo.php:354 -#: ../../mod/thing.php:271 ../../mod/thing.php:291 ../../mod/thing.php:328 -#: ../../mod/editblock.php:65 ../../mod/network.php:12 -#: ../../mod/pdledit.php:21 ../../mod/register.php:72 +#: ../../mod/notifications.php:66 ../../mod/invite.php:13 +#: ../../mod/invite.php:87 ../../mod/profile_photo.php:341 +#: ../../mod/profile_photo.php:354 ../../mod/thing.php:271 +#: ../../mod/thing.php:291 ../../mod/thing.php:328 ../../mod/editblock.php:65 +#: ../../mod/network.php:12 ../../mod/pdledit.php:21 ../../mod/register.php:72 #: ../../mod/editlayout.php:63 ../../mod/editlayout.php:87 #: ../../mod/settings.php:568 ../../mod/webpages.php:69 #: ../../mod/appman.php:66 ../../mod/layouts.php:69 ../../mod/layouts.php:76 -#: ../../mod/layouts.php:87 ../../mod/locs.php:83 ../../mod/invite.php:13 -#: ../../mod/invite.php:104 ../../mod/regmod.php:17 ../../mod/channel.php:100 -#: ../../mod/channel.php:214 ../../mod/channel.php:254 -#: ../../mod/editpost.php:13 ../../mod/chat.php:94 ../../mod/chat.php:99 -#: ../../mod/viewsrc.php:14 ../../mod/authtest.php:13 -#: ../../mod/connections.php:29 ../../mod/manage.php:6 ../../mod/menu.php:74 -#: ../../mod/mail.php:118 ../../mod/service_limits.php:7 -#: ../../mod/suggest.php:26 ../../mod/events.php:260 ../../mod/message.php:16 -#: ../../mod/block.php:22 ../../mod/block.php:72 ../../mod/mitem.php:111 -#: ../../mod/sharedwithme.php:7 ../../mod/viewconnections.php:22 -#: ../../mod/viewconnections.php:27 ../../index.php:182 ../../index.php:365 +#: ../../mod/layouts.php:87 ../../mod/locs.php:83 ../../mod/regmod.php:17 +#: ../../mod/channel.php:100 ../../mod/channel.php:214 +#: ../../mod/channel.php:254 ../../mod/photos.php:70 ../../mod/editpost.php:13 +#: ../../mod/chat.php:94 ../../mod/chat.php:99 ../../mod/viewsrc.php:14 +#: ../../mod/authtest.php:13 ../../mod/connections.php:29 +#: ../../mod/manage.php:6 ../../mod/menu.php:74 ../../mod/mail.php:126 +#: ../../mod/service_limits.php:7 ../../mod/suggest.php:26 +#: ../../mod/events.php:260 ../../mod/message.php:16 ../../mod/block.php:22 +#: ../../mod/block.php:72 ../../mod/mitem.php:111 ../../mod/sharedwithme.php:7 +#: ../../mod/viewconnections.php:22 ../../mod/viewconnections.php:27 +#: ../../index.php:182 ../../index.php:365 msgid "Permission denied." msgstr "Toegang geweigerd" @@ -149,16 +149,16 @@ msgstr "Planning-postvak IN" msgid "Schedule Outbox" msgstr "Planning-postvak UIT" -#: ../../include/RedDAV/RedBrowser.php:164 ../../include/widgets.php:1331 +#: ../../include/RedDAV/RedBrowser.php:164 ../../include/widgets.php:1330 #: ../../include/conversation.php:1027 ../../include/apps.php:360 -#: ../../include/apps.php:415 ../../mod/photos.php:759 -#: ../../mod/photos.php:1198 +#: ../../include/apps.php:415 ../../mod/photos.php:754 +#: ../../mod/photos.php:1195 msgid "Unknown" msgstr "Onbekend" #: ../../include/RedDAV/RedBrowser.php:226 ../../include/conversation.php:1629 #: ../../include/nav.php:93 ../../include/apps.php:135 -#: ../../mod/fbrowser.php:114 +#: ../../mod/fbrowser.php:109 msgid "Files" msgstr "Bestanden" @@ -179,12 +179,12 @@ msgstr "Aanmaken" #: ../../include/RedDAV/RedBrowser.php:231 #: ../../include/RedDAV/RedBrowser.php:305 ../../include/widgets.php:1343 -#: ../../mod/photos.php:784 ../../mod/photos.php:1317 -#: ../../mod/profile_photo.php:453 +#: ../../mod/profile_photo.php:453 ../../mod/photos.php:781 +#: ../../mod/photos.php:1316 msgid "Upload" msgstr "Uploaden" -#: ../../include/RedDAV/RedBrowser.php:235 ../../mod/admin.php:974 +#: ../../include/RedDAV/RedBrowser.php:235 ../../mod/admin.php:981 #: ../../mod/settings.php:588 ../../mod/settings.php:614 #: ../../mod/sharedwithme.php:95 msgid "Name" @@ -219,10 +219,10 @@ msgstr "Bewerken" #: ../../include/RedDAV/RedBrowser.php:241 ../../include/conversation.php:657 #: ../../include/ItemObject.php:120 ../../include/apps.php:260 #: ../../mod/group.php:173 ../../mod/blocks.php:155 ../../mod/connedit.php:551 -#: ../../mod/editwebpage.php:223 ../../mod/photos.php:1129 -#: ../../mod/thing.php:258 ../../mod/editblock.php:181 ../../mod/admin.php:809 -#: ../../mod/admin.php:968 ../../mod/editlayout.php:179 -#: ../../mod/settings.php:649 ../../mod/webpages.php:183 +#: ../../mod/editwebpage.php:223 ../../mod/thing.php:258 +#: ../../mod/editblock.php:181 ../../mod/admin.php:816 ../../mod/admin.php:975 +#: ../../mod/editlayout.php:179 ../../mod/settings.php:649 +#: ../../mod/webpages.php:183 ../../mod/photos.php:1126 msgid "Delete" msgstr "Verwijderen" @@ -253,7 +253,7 @@ msgid "Delete this item?" msgstr "Dit item verwijderen?" #: ../../include/js_strings.php:6 ../../include/ItemObject.php:696 -#: ../../mod/photos.php:1047 ../../mod/photos.php:1165 +#: ../../mod/photos.php:1044 ../../mod/photos.php:1162 msgid "Comment" msgstr "Reactie" @@ -326,17 +326,17 @@ msgstr "Omschrijving (optioneel)" #: ../../mod/poke.php:171 ../../mod/profiles.php:675 #: ../../mod/connedit.php:715 ../../mod/fsuggest.php:108 #: ../../mod/sources.php:104 ../../mod/sources.php:138 -#: ../../mod/import.php:527 ../../mod/photos.php:637 ../../mod/photos.php:1008 -#: ../../mod/photos.php:1048 ../../mod/photos.php:1166 ../../mod/thing.php:313 +#: ../../mod/import.php:527 ../../mod/invite.php:142 ../../mod/thing.php:313 #: ../../mod/thing.php:359 ../../mod/import_items.php:122 -#: ../../mod/pdledit.php:58 ../../mod/admin.php:435 ../../mod/admin.php:802 -#: ../../mod/admin.php:966 ../../mod/admin.php:1103 ../../mod/admin.php:1297 -#: ../../mod/admin.php:1382 ../../mod/settings.php:586 +#: ../../mod/pdledit.php:58 ../../mod/admin.php:442 ../../mod/admin.php:809 +#: ../../mod/admin.php:973 ../../mod/admin.php:1110 ../../mod/admin.php:1304 +#: ../../mod/admin.php:1389 ../../mod/settings.php:586 #: ../../mod/settings.php:698 ../../mod/settings.php:726 #: ../../mod/settings.php:749 ../../mod/settings.php:834 #: ../../mod/settings.php:1023 ../../mod/appman.php:99 ../../mod/locs.php:116 -#: ../../mod/invite.php:142 ../../mod/xchan.php:11 ../../mod/chat.php:184 -#: ../../mod/chat.php:213 ../../mod/mail.php:372 ../../mod/events.php:461 +#: ../../mod/xchan.php:11 ../../mod/photos.php:637 ../../mod/photos.php:1005 +#: ../../mod/photos.php:1045 ../../mod/photos.php:1163 ../../mod/chat.php:184 +#: ../../mod/chat.php:213 ../../mod/mail.php:380 ../../mod/events.php:461 #: ../../mod/events.php:658 ../../mod/mitem.php:231 #: ../../view/theme/redbasic/php/config.php:99 msgid "Submit" @@ -664,8 +664,8 @@ msgid "Visible to specific connections." msgstr "Voor specifieke connecties zichtbaar." #: ../../include/items.php:4319 ../../mod/filestorage.php:27 -#: ../../mod/thing.php:86 ../../mod/admin.php:127 ../../mod/admin.php:1005 -#: ../../mod/admin.php:1210 ../../mod/display.php:36 ../../mod/viewsrc.php:20 +#: ../../mod/thing.php:86 ../../mod/admin.php:127 ../../mod/admin.php:1012 +#: ../../mod/admin.php:1217 ../../mod/display.php:36 ../../mod/viewsrc.php:20 msgid "Item not found." msgstr "Item niet gevonden." @@ -691,36 +691,6 @@ msgstr "Connectie: %s" msgid "Connection not found." msgstr "Connectie niet gevonden." -#: ../../include/network.php:630 -msgid "view full size" -msgstr "volledige grootte tonen" - -#: ../../include/network.php:1608 ../../include/enotify.php:57 -msgid "$Projectname Notification" -msgstr "$Projectname-notificatie" - -#: ../../include/network.php:1609 ../../include/enotify.php:58 -msgid "$projectname" -msgstr "$projectname" - -#: ../../include/network.php:1611 ../../include/enotify.php:60 -msgid "Thank You," -msgstr "Bedankt," - -#: ../../include/network.php:1613 ../../include/enotify.php:62 -#, php-format -msgid "%s Administrator" -msgstr "Beheerder %s" - -#: ../../include/network.php:1655 ../../include/account.php:316 -#: ../../include/account.php:343 ../../include/account.php:403 -msgid "Administrator" -msgstr "Beheerder" - -#: ../../include/network.php:1669 -msgid "No Subject" -msgstr "Geen onderwerp" - #: ../../include/event.php:22 ../../include/bb2diaspora.php:471 #: ../../include/text.php:1392 msgid "l F d, Y \\@ g:i A" @@ -736,7 +706,7 @@ msgstr "Start:" msgid "Finishes:" msgstr "Einde:" -#: ../../include/event.php:52 ../../include/identity.php:1004 +#: ../../include/event.php:52 ../../include/identity.php:998 #: ../../include/bb2diaspora.php:493 ../../include/text.php:1407 #: ../../mod/directory.php:304 msgid "Location:" @@ -831,206 +801,206 @@ msgstr "Opgevraagd kanaal is niet beschikbaar." msgid "Requested profile is not available." msgstr "Opgevraagd profiel is niet beschikbaar" -#: ../../include/identity.php:966 ../../mod/profiles.php:782 +#: ../../include/identity.php:960 ../../mod/profiles.php:782 msgid "Change profile photo" msgstr "Profielfoto veranderen" -#: ../../include/identity.php:972 +#: ../../include/identity.php:966 msgid "Profiles" msgstr "Profielen" -#: ../../include/identity.php:972 +#: ../../include/identity.php:966 msgid "Manage/edit profiles" msgstr "Profielen beheren/bewerken" -#: ../../include/identity.php:973 ../../mod/profiles.php:783 +#: ../../include/identity.php:967 ../../mod/profiles.php:783 msgid "Create New Profile" msgstr "Nieuw profiel aanmaken" -#: ../../include/identity.php:976 ../../include/nav.php:90 +#: ../../include/identity.php:970 ../../include/nav.php:90 msgid "Edit Profile" msgstr "Profiel bewerken" -#: ../../include/identity.php:988 ../../mod/profiles.php:794 +#: ../../include/identity.php:982 ../../mod/profiles.php:794 msgid "Profile Image" msgstr "Profielfoto" -#: ../../include/identity.php:991 +#: ../../include/identity.php:985 msgid "visible to everybody" msgstr "Voor iedereen zichtbaar" -#: ../../include/identity.php:992 ../../mod/profiles.php:677 +#: ../../include/identity.php:986 ../../mod/profiles.php:677 #: ../../mod/profiles.php:798 msgid "Edit visibility" msgstr "Zichtbaarheid bewerken" -#: ../../include/identity.php:1008 ../../include/identity.php:1248 +#: ../../include/identity.php:1002 ../../include/identity.php:1242 msgid "Gender:" msgstr "Geslacht:" -#: ../../include/identity.php:1009 ../../include/identity.php:1292 +#: ../../include/identity.php:1003 ../../include/identity.php:1286 msgid "Status:" msgstr "Status:" -#: ../../include/identity.php:1010 ../../include/identity.php:1303 +#: ../../include/identity.php:1004 ../../include/identity.php:1297 msgid "Homepage:" msgstr "Homepagina:" -#: ../../include/identity.php:1011 +#: ../../include/identity.php:1005 msgid "Online Now" msgstr "Nu online" -#: ../../include/identity.php:1095 ../../include/identity.php:1173 +#: ../../include/identity.php:1089 ../../include/identity.php:1167 #: ../../mod/ping.php:318 msgid "g A l F d" msgstr "G:i, l d F" -#: ../../include/identity.php:1096 ../../include/identity.php:1174 +#: ../../include/identity.php:1090 ../../include/identity.php:1168 msgid "F d" msgstr "d F" -#: ../../include/identity.php:1141 ../../include/identity.php:1213 +#: ../../include/identity.php:1135 ../../include/identity.php:1207 #: ../../mod/ping.php:341 msgid "[today]" msgstr "[vandaag]" -#: ../../include/identity.php:1152 +#: ../../include/identity.php:1146 msgid "Birthday Reminders" msgstr "Verjaardagsherinneringen" -#: ../../include/identity.php:1153 +#: ../../include/identity.php:1147 msgid "Birthdays this week:" msgstr "Verjaardagen deze week:" -#: ../../include/identity.php:1206 +#: ../../include/identity.php:1200 msgid "[No description]" msgstr "[Geen omschrijving]" -#: ../../include/identity.php:1224 +#: ../../include/identity.php:1218 msgid "Event Reminders" msgstr "Herinneringen" -#: ../../include/identity.php:1225 +#: ../../include/identity.php:1219 msgid "Events this week:" msgstr "Gebeurtenissen deze week:" -#: ../../include/identity.php:1238 ../../include/identity.php:1355 +#: ../../include/identity.php:1232 ../../include/identity.php:1349 #: ../../include/apps.php:138 ../../mod/profperm.php:112 msgid "Profile" msgstr "Profiel" -#: ../../include/identity.php:1246 ../../mod/settings.php:1029 +#: ../../include/identity.php:1240 ../../mod/settings.php:1029 msgid "Full Name:" msgstr "Volledige naam:" -#: ../../include/identity.php:1253 +#: ../../include/identity.php:1247 msgid "Like this channel" msgstr "Vind dit kanaal leuk" -#: ../../include/identity.php:1264 ../../include/taxonomy.php:414 +#: ../../include/identity.php:1258 ../../include/taxonomy.php:414 #: ../../include/conversation.php:1721 ../../include/ItemObject.php:179 -#: ../../mod/photos.php:1086 +#: ../../mod/photos.php:1083 msgctxt "noun" msgid "Like" msgid_plural "Likes" msgstr[0] "vindt dit leuk" msgstr[1] "vinden dit leuk" -#: ../../include/identity.php:1277 +#: ../../include/identity.php:1271 msgid "j F, Y" msgstr "F j Y" -#: ../../include/identity.php:1278 +#: ../../include/identity.php:1272 msgid "j F" msgstr "F j" -#: ../../include/identity.php:1285 +#: ../../include/identity.php:1279 msgid "Birthday:" msgstr "Geboortedatum:" -#: ../../include/identity.php:1289 ../../mod/directory.php:299 +#: ../../include/identity.php:1283 ../../mod/directory.php:299 msgid "Age:" msgstr "Leeftijd:" -#: ../../include/identity.php:1298 +#: ../../include/identity.php:1292 #, php-format msgid "for %1$d %2$s" msgstr "voor %1$d %2$s" -#: ../../include/identity.php:1301 ../../mod/profiles.php:699 +#: ../../include/identity.php:1295 ../../mod/profiles.php:699 msgid "Sexual Preference:" msgstr "Seksuele voorkeur:" -#: ../../include/identity.php:1305 ../../mod/profiles.php:701 +#: ../../include/identity.php:1299 ../../mod/profiles.php:701 #: ../../mod/directory.php:315 msgid "Hometown:" msgstr "Oorspronkelijk uit:" -#: ../../include/identity.php:1307 +#: ../../include/identity.php:1301 msgid "Tags:" msgstr "Tags:" -#: ../../include/identity.php:1309 ../../mod/profiles.php:702 +#: ../../include/identity.php:1303 ../../mod/profiles.php:702 msgid "Political Views:" msgstr "Politieke overtuigingen:" -#: ../../include/identity.php:1311 +#: ../../include/identity.php:1305 msgid "Religion:" msgstr "Religie:" -#: ../../include/identity.php:1313 ../../mod/directory.php:317 +#: ../../include/identity.php:1307 ../../mod/directory.php:317 msgid "About:" msgstr "Over:" -#: ../../include/identity.php:1315 +#: ../../include/identity.php:1309 msgid "Hobbies/Interests:" msgstr "Hobby's/interesses:" -#: ../../include/identity.php:1317 ../../mod/profiles.php:705 +#: ../../include/identity.php:1311 ../../mod/profiles.php:705 msgid "Likes:" msgstr "Houdt van:" -#: ../../include/identity.php:1319 ../../mod/profiles.php:706 +#: ../../include/identity.php:1313 ../../mod/profiles.php:706 msgid "Dislikes:" msgstr "Houdt niet van:" -#: ../../include/identity.php:1321 +#: ../../include/identity.php:1315 msgid "Contact information and Social Networks:" msgstr "Contactinformatie en sociale netwerken:" -#: ../../include/identity.php:1323 +#: ../../include/identity.php:1317 msgid "My other channels:" msgstr "Mijn andere kanalen" -#: ../../include/identity.php:1325 +#: ../../include/identity.php:1319 msgid "Musical interests:" msgstr "Muzikale interesses:" -#: ../../include/identity.php:1327 +#: ../../include/identity.php:1321 msgid "Books, literature:" msgstr "Boeken, literatuur:" -#: ../../include/identity.php:1329 +#: ../../include/identity.php:1323 msgid "Television:" msgstr "Televisie:" -#: ../../include/identity.php:1331 +#: ../../include/identity.php:1325 msgid "Film/dance/culture/entertainment:" msgstr "Films/dansen/cultuur/vermaak:" -#: ../../include/identity.php:1333 +#: ../../include/identity.php:1327 msgid "Love/Romance:" msgstr "Liefde/romantiek:" -#: ../../include/identity.php:1335 +#: ../../include/identity.php:1329 msgid "Work/employment:" msgstr "Werk/beroep:" -#: ../../include/identity.php:1337 +#: ../../include/identity.php:1331 msgid "School/education:" msgstr "School/opleiding:" -#: ../../include/identity.php:1357 +#: ../../include/identity.php:1351 msgid "Like this thing" msgstr "Vind dit ding leuk" @@ -1096,13 +1066,13 @@ msgid "Other networks and post services" msgstr "Andere netwerken en diensten" #: ../../include/acl_selectors.php:249 ../../mod/filestorage.php:147 -#: ../../mod/photos.php:631 ../../mod/photos.php:1001 ../../mod/thing.php:310 -#: ../../mod/thing.php:356 ../../mod/chat.php:211 +#: ../../mod/thing.php:310 ../../mod/thing.php:356 ../../mod/photos.php:631 +#: ../../mod/photos.php:998 ../../mod/chat.php:211 msgid "Permissions" msgstr "Permissies" #: ../../include/acl_selectors.php:250 ../../include/ItemObject.php:384 -#: ../../mod/photos.php:1218 +#: ../../mod/photos.php:1215 msgid "Close" msgstr "Sluiten" @@ -1264,7 +1234,7 @@ msgstr "Aantekeningen" #: ../../include/widgets.php:192 ../../include/text.php:868 #: ../../include/text.php:880 ../../mod/rbmark.php:28 ../../mod/rbmark.php:100 -#: ../../mod/admin.php:1442 ../../mod/admin.php:1462 ../../mod/filer.php:49 +#: ../../mod/admin.php:1449 ../../mod/admin.php:1469 ../../mod/filer.php:49 msgid "Save" msgstr "Opslaan" @@ -1357,8 +1327,8 @@ msgid "Channel Sources" msgstr "Kanaalbronnen" #: ../../include/widgets.php:554 ../../include/nav.php:202 -#: ../../include/apps.php:134 ../../mod/admin.php:1064 -#: ../../mod/admin.php:1264 +#: ../../include/apps.php:134 ../../mod/admin.php:1071 +#: ../../mod/admin.php:1271 msgid "Settings" msgstr "Instellingen" @@ -1494,7 +1464,7 @@ msgstr "Voor beheerders" msgid "For Developers" msgstr "Voor ontwikkelaars" -#: ../../include/widgets.php:1214 ../../mod/admin.php:434 +#: ../../include/widgets.php:1214 ../../mod/admin.php:441 msgid "Site" msgstr "Hub-instellingen" @@ -1502,17 +1472,17 @@ msgstr "Hub-instellingen" msgid "Accounts" msgstr "Accounts" -#: ../../include/widgets.php:1216 ../../mod/admin.php:965 +#: ../../include/widgets.php:1216 ../../mod/admin.php:972 msgid "Channels" msgstr "Kanalen" -#: ../../include/widgets.php:1217 ../../mod/admin.php:1062 -#: ../../mod/admin.php:1102 +#: ../../include/widgets.php:1217 ../../mod/admin.php:1069 +#: ../../mod/admin.php:1109 msgid "Plugins" msgstr "Plug-ins" -#: ../../include/widgets.php:1218 ../../mod/admin.php:1262 -#: ../../mod/admin.php:1296 +#: ../../include/widgets.php:1218 ../../mod/admin.php:1269 +#: ../../mod/admin.php:1303 msgid "Themes" msgstr "Thema's" @@ -1529,7 +1499,7 @@ msgid "DB updates" msgstr "Database-updates" #: ../../include/widgets.php:1239 ../../include/widgets.php:1245 -#: ../../mod/admin.php:1381 +#: ../../mod/admin.php:1388 msgid "Logs" msgstr "Logboeken" @@ -1545,12 +1515,12 @@ msgstr "Plug-in-opties" msgid "User registrations waiting for confirmation" msgstr "Accounts die op goedkeuring wachten" -#: ../../include/widgets.php:1325 ../../mod/photos.php:753 -#: ../../mod/photos.php:1286 +#: ../../include/widgets.php:1324 ../../mod/photos.php:748 +#: ../../mod/photos.php:1283 msgid "View Photo" msgstr "Foto weergeven" -#: ../../include/widgets.php:1341 ../../mod/photos.php:782 +#: ../../include/widgets.php:1341 ../../mod/photos.php:779 msgid "Edit Album" msgstr "Album bewerken" @@ -2207,42 +2177,42 @@ msgctxt "mood" msgid "%1$s is %2$s" msgstr "%1$s is %2$s" -#: ../../include/conversation.php:574 ../../mod/photos.php:1063 +#: ../../include/conversation.php:574 ../../mod/photos.php:1060 msgctxt "title" msgid "Likes" msgstr "vinden dit leuk" -#: ../../include/conversation.php:574 ../../mod/photos.php:1063 +#: ../../include/conversation.php:574 ../../mod/photos.php:1060 msgctxt "title" msgid "Dislikes" msgstr "vinden dit niet leuk" -#: ../../include/conversation.php:575 ../../mod/photos.php:1064 +#: ../../include/conversation.php:575 ../../mod/photos.php:1061 msgctxt "title" msgid "Agree" msgstr "eens" -#: ../../include/conversation.php:575 ../../mod/photos.php:1064 +#: ../../include/conversation.php:575 ../../mod/photos.php:1061 msgctxt "title" msgid "Disagree" msgstr "oneens" -#: ../../include/conversation.php:575 ../../mod/photos.php:1064 +#: ../../include/conversation.php:575 ../../mod/photos.php:1061 msgctxt "title" msgid "Abstain" msgstr "onthoudingen" -#: ../../include/conversation.php:576 ../../mod/photos.php:1065 +#: ../../include/conversation.php:576 ../../mod/photos.php:1062 msgctxt "title" msgid "Attending" msgstr "aanwezig" -#: ../../include/conversation.php:576 ../../mod/photos.php:1065 +#: ../../include/conversation.php:576 ../../mod/photos.php:1062 msgctxt "title" msgid "Not attending" msgstr "niet aanwezig" -#: ../../include/conversation.php:576 ../../mod/photos.php:1065 +#: ../../include/conversation.php:576 ../../mod/photos.php:1062 msgctxt "title" msgid "Might attend" msgstr "mogelijk aanwezig" @@ -2297,8 +2267,8 @@ msgstr "In context bekijken" #: ../../include/conversation.php:740 ../../include/conversation.php:1227 #: ../../include/ItemObject.php:389 ../../mod/editwebpage.php:190 -#: ../../mod/photos.php:1029 ../../mod/editblock.php:150 -#: ../../mod/editlayout.php:148 ../../mod/editpost.php:129 +#: ../../mod/editblock.php:150 ../../mod/editlayout.php:148 +#: ../../mod/photos.php:1026 ../../mod/editpost.php:129 msgid "Please wait" msgstr "Even wachten" @@ -2404,8 +2374,8 @@ msgstr "%s vinden dit niet leuk." msgid "Visible to <strong>everybody</strong>" msgstr "Voor <strong>iedereen</strong> zichtbaar" -#: ../../include/conversation.php:1155 ../../mod/mail.php:194 -#: ../../mod/mail.php:308 +#: ../../include/conversation.php:1155 ../../mod/mail.php:202 +#: ../../mod/mail.php:316 msgid "Please enter a link URL:" msgstr "Vul een internetadres/URL in:" @@ -2430,21 +2400,21 @@ msgid "Where are you right now?" msgstr "Waar bevind je je op dit moment?" #: ../../include/conversation.php:1161 ../../mod/editpost.php:56 -#: ../../mod/mail.php:195 ../../mod/mail.php:309 +#: ../../mod/mail.php:203 ../../mod/mail.php:317 msgid "Expires YYYY-MM-DD HH:MM" msgstr "Verloopt op DD-MM-YYYY om HH:MM" #: ../../include/conversation.php:1169 ../../include/page_widgets.php:40 #: ../../include/ItemObject.php:706 ../../mod/editwebpage.php:212 -#: ../../mod/photos.php:1049 ../../mod/editblock.php:171 -#: ../../mod/webpages.php:188 ../../mod/editpost.php:149 +#: ../../mod/editblock.php:171 ../../mod/webpages.php:188 +#: ../../mod/photos.php:1046 ../../mod/editpost.php:149 #: ../../mod/events.php:458 msgid "Preview" msgstr "Voorvertoning" #: ../../include/conversation.php:1192 ../../mod/blocks.php:154 -#: ../../mod/photos.php:1028 ../../mod/webpages.php:182 -#: ../../mod/layouts.php:184 +#: ../../mod/webpages.php:182 ../../mod/layouts.php:184 +#: ../../mod/photos.php:1025 msgid "Share" msgstr "Delen" @@ -2498,7 +2468,7 @@ msgstr "foto uploaden" #: ../../include/conversation.php:1206 ../../mod/editwebpage.php:183 #: ../../mod/editblock.php:143 ../../mod/editlayout.php:141 -#: ../../mod/editpost.php:119 ../../mod/mail.php:240 ../../mod/mail.php:370 +#: ../../mod/editpost.php:119 ../../mod/mail.php:248 ../../mod/mail.php:378 msgid "Attach file" msgstr "Bestand toevoegen" @@ -2508,7 +2478,7 @@ msgstr "bestand toevoegen" #: ../../include/conversation.php:1208 ../../mod/editwebpage.php:184 #: ../../mod/editblock.php:144 ../../mod/editlayout.php:142 -#: ../../mod/editpost.php:120 ../../mod/mail.php:241 ../../mod/mail.php:371 +#: ../../mod/editpost.php:120 ../../mod/mail.php:249 ../../mod/mail.php:379 msgid "Insert web link" msgstr "Weblink invoegen" @@ -2591,7 +2561,7 @@ msgstr "Voorbeeld: bob@voorbeeld.nl, mary@voorbeeld.be" #: ../../include/conversation.php:1252 ../../mod/editwebpage.php:217 #: ../../mod/editblock.php:176 ../../mod/editlayout.php:173 -#: ../../mod/editpost.php:155 ../../mod/mail.php:245 ../../mod/mail.php:375 +#: ../../mod/editpost.php:155 ../../mod/mail.php:253 ../../mod/mail.php:383 msgid "Set expiration date" msgstr "Verloopdatum instellen" @@ -2600,7 +2570,7 @@ msgid "Set publish date" msgstr "Publicatiedatum instellen" #: ../../include/conversation.php:1257 ../../include/ItemObject.php:709 -#: ../../mod/editpost.php:157 ../../mod/mail.php:247 ../../mod/mail.php:377 +#: ../../mod/editpost.php:157 ../../mod/mail.php:255 ../../mod/mail.php:385 msgid "Encrypt text" msgstr "Tekst versleutelen" @@ -2608,8 +2578,8 @@ msgstr "Tekst versleutelen" msgid "OK" msgstr "OK" -#: ../../include/conversation.php:1260 ../../mod/fbrowser.php:82 -#: ../../mod/fbrowser.php:117 ../../mod/tagrm.php:11 ../../mod/tagrm.php:134 +#: ../../include/conversation.php:1260 ../../mod/fbrowser.php:77 +#: ../../mod/fbrowser.php:112 ../../mod/tagrm.php:11 ../../mod/tagrm.php:134 #: ../../mod/settings.php:587 ../../mod/settings.php:613 #: ../../mod/editpost.php:160 msgid "Cancel" @@ -2668,7 +2638,7 @@ msgstr "Spam" msgid "Posts flagged as SPAM" msgstr "Berichten gemarkeerd als SPAM" -#: ../../include/conversation.php:1601 ../../mod/admin.php:973 +#: ../../include/conversation.php:1601 ../../mod/admin.php:980 msgid "Channel" msgstr "Kanaal" @@ -2720,13 +2690,13 @@ msgid "Manage Webpages" msgstr "Webpagina's beheren" #: ../../include/conversation.php:1697 ../../include/ItemObject.php:175 -#: ../../include/ItemObject.php:187 ../../mod/photos.php:1082 -#: ../../mod/photos.php:1094 +#: ../../include/ItemObject.php:187 ../../mod/photos.php:1079 +#: ../../mod/photos.php:1091 msgid "View all" msgstr "Toon alles" #: ../../include/conversation.php:1724 ../../include/ItemObject.php:184 -#: ../../mod/photos.php:1091 +#: ../../mod/photos.php:1088 msgctxt "noun" msgid "Dislike" msgid_plural "Dislikes" @@ -2824,7 +2794,7 @@ msgid "RSS/Atom" msgstr "RSS/Atom" #: ../../include/contact_selectors.php:79 ../../mod/id.php:15 -#: ../../mod/id.php:16 ../../mod/admin.php:805 ../../mod/admin.php:814 +#: ../../mod/id.php:16 ../../mod/admin.php:812 ../../mod/admin.php:821 #: ../../boot.php:1483 msgid "Email" msgstr "E-mail" @@ -2923,7 +2893,7 @@ msgid_plural "%d invitations available" msgstr[0] "%d uitnodiging beschikbaar" msgstr[1] "%d uitnodigingen beschikbaar" -#: ../../include/contact_widgets.php:19 ../../mod/admin.php:439 +#: ../../include/contact_widgets.php:19 ../../mod/admin.php:446 msgid "Advanced" msgstr "Geavanceerd" @@ -2976,6 +2946,23 @@ msgstr[1] "%d gemeenschappelijke connecties" msgid "show more" msgstr "meer connecties weergeven" +#: ../../include/enotify.php:57 ../../include/network.php:1608 +msgid "$Projectname Notification" +msgstr "$Projectname-notificatie" + +#: ../../include/enotify.php:58 ../../include/network.php:1609 +msgid "$projectname" +msgstr "$projectname" + +#: ../../include/enotify.php:60 ../../include/network.php:1611 +msgid "Thank You," +msgstr "Bedankt," + +#: ../../include/enotify.php:62 ../../include/network.php:1613 +#, php-format +msgid "%s Administrator" +msgstr "Beheerder %s" + #: ../../include/enotify.php:96 #, php-format msgid "%s <!item_type!>" @@ -3171,19 +3158,19 @@ msgstr "Antwoord van het kanaal op afstand was niet volledig." msgid "Channel was deleted and no longer exists." msgstr "Kanaal is verwijderd en bestaat niet meer." -#: ../../include/follow.php:152 ../../include/follow.php:180 +#: ../../include/follow.php:152 ../../include/follow.php:181 msgid "Protocol disabled." msgstr "Protocol uitgeschakeld." -#: ../../include/follow.php:170 +#: ../../include/follow.php:171 msgid "Channel discovery failed." msgstr "Kanaal ontdekken mislukt." -#: ../../include/follow.php:196 +#: ../../include/follow.php:197 msgid "local account not found." msgstr "lokale account niet gevonden." -#: ../../include/follow.php:220 +#: ../../include/follow.php:221 msgid "Cannot connect to yourself." msgstr "Kan niet met jezelf verbinden" @@ -3689,7 +3676,7 @@ msgstr "Veilig zoeken" #: ../../include/dir_fns.php:143 ../../mod/filestorage.php:151 #: ../../mod/filestorage.php:159 ../../mod/removeme.php:60 #: ../../mod/connedit.php:635 ../../mod/connedit.php:684 ../../mod/api.php:106 -#: ../../mod/photos.php:626 ../../mod/admin.php:410 ../../mod/settings.php:577 +#: ../../mod/admin.php:410 ../../mod/settings.php:577 ../../mod/photos.php:626 #: ../../mod/menu.php:96 ../../mod/menu.php:153 ../../mod/events.php:447 #: ../../mod/events.php:448 ../../mod/events.php:457 ../../mod/mitem.php:154 #: ../../mod/mitem.php:155 ../../mod/mitem.php:228 ../../mod/mitem.php:229 @@ -3701,8 +3688,8 @@ msgstr "Nee" #: ../../include/dir_fns.php:141 ../../include/dir_fns.php:142 #: ../../include/dir_fns.php:143 ../../mod/filestorage.php:151 #: ../../mod/filestorage.php:159 ../../mod/removeme.php:60 -#: ../../mod/api.php:105 ../../mod/photos.php:626 ../../mod/admin.php:412 -#: ../../mod/settings.php:577 ../../mod/menu.php:96 ../../mod/menu.php:153 +#: ../../mod/api.php:105 ../../mod/admin.php:412 ../../mod/settings.php:577 +#: ../../mod/photos.php:626 ../../mod/menu.php:96 ../../mod/menu.php:153 #: ../../mod/events.php:447 ../../mod/events.php:448 ../../mod/events.php:457 #: ../../mod/mitem.php:154 ../../mod/mitem.php:155 ../../mod/mitem.php:228 #: ../../mod/mitem.php:229 ../../view/theme/redbasic/php/config.php:104 @@ -3729,7 +3716,7 @@ msgstr "Een verwijderde collectie met deze naam is gereactiveerd. Bestaande item msgid "Add new connections to this collection (privacy group)" msgstr "Voeg nieuwe connecties aan deze collectie toe (privacy-groep)" -#: ../../include/group.php:251 ../../mod/admin.php:814 +#: ../../include/group.php:251 ../../mod/admin.php:821 msgid "All Channels" msgstr "Alle kanalen" @@ -3761,12 +3748,12 @@ msgstr "Datapakket ongeldig" msgid "Unable to verify channel signature" msgstr "Kanaalkenmerk kon niet worden geverifieerd. " -#: ../../include/zot.php:2259 +#: ../../include/zot.php:2275 #, php-format msgid "Unable to verify site signature for %s" msgstr "Hubkenmerk voor %s kon niet worden geverifieerd" -#: ../../include/zot.php:3586 +#: ../../include/zot.php:3601 msgid "invalid target signature" msgstr "ongeldig doelkenmerk" @@ -3801,6 +3788,19 @@ msgstr "Aangemaakt" msgid "Edited" msgstr "Bewerkt" +#: ../../include/network.php:630 +msgid "view full size" +msgstr "volledige grootte tonen" + +#: ../../include/network.php:1655 ../../include/account.php:316 +#: ../../include/account.php:343 ../../include/account.php:403 +msgid "Administrator" +msgstr "Beheerder" + +#: ../../include/network.php:1669 +msgid "No Subject" +msgstr "Geen onderwerp" + #: ../../include/dba/dba_driver.php:141 #, php-format msgid "Cannot locate DNS info for database server '%s'" @@ -3875,11 +3875,11 @@ msgstr "met ster" msgid "Add Tag" msgstr "Tag toevoegen" -#: ../../include/ItemObject.php:254 ../../mod/photos.php:1026 +#: ../../include/ItemObject.php:254 ../../mod/photos.php:1023 msgid "I like this (toggle)" msgstr "Vind ik leuk" -#: ../../include/ItemObject.php:255 ../../mod/photos.php:1027 +#: ../../include/ItemObject.php:255 ../../mod/photos.php:1024 msgid "I don't like this (toggle)" msgstr "Vind ik niet leuk" @@ -3935,18 +3935,18 @@ msgstr "Aan agenda toevoegen" msgid "Mark all seen" msgstr "Markeer alles als bekeken" -#: ../../include/ItemObject.php:378 ../../mod/photos.php:1212 +#: ../../include/ItemObject.php:378 ../../mod/photos.php:1209 msgctxt "noun" msgid "Likes" msgstr "vinden dit leuk" -#: ../../include/ItemObject.php:379 ../../mod/photos.php:1213 +#: ../../include/ItemObject.php:379 ../../mod/photos.php:1210 msgctxt "noun" msgid "Dislikes" msgstr "vinden dit niet leuk" -#: ../../include/ItemObject.php:694 ../../mod/photos.php:1045 -#: ../../mod/photos.php:1163 +#: ../../include/ItemObject.php:694 ../../mod/photos.php:1042 +#: ../../mod/photos.php:1160 msgid "This is you" msgstr "Dit ben jij" @@ -3962,78 +3962,6 @@ msgstr "Link invoegen" msgid "Video" msgstr "Video" -#: ../../include/account.php:27 -msgid "Not a valid email address" -msgstr "Geen geldig e-mailadres" - -#: ../../include/account.php:29 -msgid "Your email domain is not among those allowed on this site" -msgstr "Jouw e-maildomein is op deze hub niet toegestaan" - -#: ../../include/account.php:35 -msgid "Your email address is already registered at this site." -msgstr "Jouw e-mailadres is al op deze hub geregistreerd." - -#: ../../include/account.php:67 -msgid "An invitation is required." -msgstr "Een uitnodiging is vereist" - -#: ../../include/account.php:71 -msgid "Invitation could not be verified." -msgstr "Uitnodiging kon niet geverifieerd worden" - -#: ../../include/account.php:121 -msgid "Please enter the required information." -msgstr "Vul de vereiste informatie in." - -#: ../../include/account.php:188 -msgid "Failed to store account information." -msgstr "Account-informatie kon niet opgeslagen worden." - -#: ../../include/account.php:248 -#, php-format -msgid "Registration confirmation for %s" -msgstr "Registratiebevestiging voor %s" - -#: ../../include/account.php:314 -#, php-format -msgid "Registration request at %s" -msgstr "Registratiebevestiging voor %s" - -#: ../../include/account.php:338 -msgid "your registration password" -msgstr "jouw registratiewachtwoord" - -#: ../../include/account.php:341 ../../include/account.php:401 -#, php-format -msgid "Registration details for %s" -msgstr "Registratiegegevens voor %s" - -#: ../../include/account.php:410 -msgid "Account approved." -msgstr "Account goedgekeurd" - -#: ../../include/account.php:449 -#, php-format -msgid "Registration revoked for %s" -msgstr "Registratie ingetrokken voor %s" - -#: ../../include/account.php:494 -msgid "Account verified. Please login." -msgstr "Account is geverifieerd. Je kan inloggen." - -#: ../../include/account.php:707 ../../include/account.php:709 -msgid "Click here to upgrade." -msgstr "Klik hier om te upgraden." - -#: ../../include/account.php:715 -msgid "This action exceeds the limits set by your subscription plan." -msgstr "Deze handeling overschrijdt de beperkingen die voor jouw abonnement gelden." - -#: ../../include/account.php:720 -msgid "This action is not available under your subscription plan." -msgstr "Deze handeling is niet mogelijk met jouw abonnement." - #: ../../include/apps.php:128 msgid "Site Admin" msgstr "Hubbeheerder" @@ -4215,12 +4143,84 @@ msgstr "Groepsopslag" msgid "Custom/Expert Mode" msgstr "Expertmodus/handmatig aanpassen" -#: ../../include/photo/photo_driver.php:719 ../../mod/photos.php:94 -#: ../../mod/photos.php:699 ../../mod/profile_photo.php:147 +#: ../../include/photo/photo_driver.php:719 ../../mod/profile_photo.php:147 #: ../../mod/profile_photo.php:239 ../../mod/profile_photo.php:379 +#: ../../mod/photos.php:94 ../../mod/photos.php:699 msgid "Profile Photos" msgstr "Profielfoto's" +#: ../../include/account.php:27 +msgid "Not a valid email address" +msgstr "Geen geldig e-mailadres" + +#: ../../include/account.php:29 +msgid "Your email domain is not among those allowed on this site" +msgstr "Jouw e-maildomein is op deze hub niet toegestaan" + +#: ../../include/account.php:35 +msgid "Your email address is already registered at this site." +msgstr "Jouw e-mailadres is al op deze hub geregistreerd." + +#: ../../include/account.php:67 +msgid "An invitation is required." +msgstr "Een uitnodiging is vereist" + +#: ../../include/account.php:71 +msgid "Invitation could not be verified." +msgstr "Uitnodiging kon niet geverifieerd worden" + +#: ../../include/account.php:121 +msgid "Please enter the required information." +msgstr "Vul de vereiste informatie in." + +#: ../../include/account.php:188 +msgid "Failed to store account information." +msgstr "Account-informatie kon niet opgeslagen worden." + +#: ../../include/account.php:248 +#, php-format +msgid "Registration confirmation for %s" +msgstr "Registratiebevestiging voor %s" + +#: ../../include/account.php:314 +#, php-format +msgid "Registration request at %s" +msgstr "Registratiebevestiging voor %s" + +#: ../../include/account.php:338 +msgid "your registration password" +msgstr "jouw registratiewachtwoord" + +#: ../../include/account.php:341 ../../include/account.php:401 +#, php-format +msgid "Registration details for %s" +msgstr "Registratiegegevens voor %s" + +#: ../../include/account.php:410 +msgid "Account approved." +msgstr "Account goedgekeurd" + +#: ../../include/account.php:449 +#, php-format +msgid "Registration revoked for %s" +msgstr "Registratie ingetrokken voor %s" + +#: ../../include/account.php:494 +msgid "Account verified. Please login." +msgstr "Account is geverifieerd. Je kan inloggen." + +#: ../../include/account.php:707 ../../include/account.php:709 +msgid "Click here to upgrade." +msgstr "Klik hier om te upgraden." + +#: ../../include/account.php:715 +msgid "This action exceeds the limits set by your subscription plan." +msgstr "Deze handeling overschrijdt de beperkingen die voor jouw abonnement gelden." + +#: ../../include/account.php:720 +msgid "This action is not available under your subscription plan." +msgstr "Deze handeling is niet mogelijk met jouw abonnement." + #: ../../mod/filestorage.php:82 msgid "Permission Denied." msgstr "Toegang geweigerd" @@ -4422,7 +4422,8 @@ msgstr "Geen overeenkomsten" msgid "OpenID protocol error. No ID returned." msgstr "OpenID-protocolfout. Geen ID terugontvangen." -#: ../../mod/openid.php:72 ../../mod/openid.php:179 ../../mod/post.php:285 +#: ../../mod/openid.php:72 ../../mod/openid.php:179 +#: ../../Zotlabs/Zot/Auth.php:248 #, php-format msgid "Welcome %s. Remote authentication successful." msgstr "Welkom %s. Authenticatie op afstand geslaagd." @@ -4828,7 +4829,7 @@ msgstr "Please see the file \"install/INSTALL.txt\"." msgid "System check" msgstr "System check" -#: ../../mod/setup.php:285 ../../mod/photos.php:914 ../../mod/events.php:653 +#: ../../mod/setup.php:285 ../../mod/photos.php:911 ../../mod/events.php:653 #: ../../mod/events.php:660 msgid "Next" msgstr "Volgende" @@ -5217,15 +5218,6 @@ msgstr "Mijn bladwijzers" msgid "My Connections Bookmarks" msgstr "Bladwijzers van mijn connecties" -#: ../../mod/home.php:57 ../../mod/home.php:65 ../../mod/siteinfo.php:61 -msgid "$Projectname" -msgstr "$Projectname" - -#: ../../mod/home.php:75 -#, php-format -msgid "Welcome to %s" -msgstr "Welkom op %s" - #: ../../mod/pconfig.php:27 ../../mod/pconfig.php:60 msgid "This setting requires special processing and editing has been blocked." msgstr "Deze instelling vereist een speciaal proces en bewerken is geblokkeerd." @@ -5330,7 +5322,7 @@ msgstr "Homepage" msgid "Interests" msgstr "Interesses" -#: ../../mod/profiles.php:457 ../../mod/admin.php:974 +#: ../../mod/profiles.php:457 ../../mod/admin.php:981 msgid "Address" msgstr "Kanaaladres" @@ -5583,11 +5575,11 @@ msgstr "Kanaal-activiteit" msgid "View recent posts and comments" msgstr "Recente berichten en reacties weergeven" -#: ../../mod/connedit.php:519 ../../mod/admin.php:811 +#: ../../mod/connedit.php:519 ../../mod/admin.php:818 msgid "Unblock" msgstr "Deblokkeren" -#: ../../mod/connedit.php:519 ../../mod/admin.php:810 +#: ../../mod/connedit.php:519 ../../mod/admin.php:817 msgid "Block" msgstr "Blokkeren" @@ -5743,7 +5735,7 @@ msgid "" " communication." msgstr "(%s) wil met jou verbinden. Keur dit connectieverzoek goed om onderling te kunnen communiceren." -#: ../../mod/connedit.php:710 ../../mod/admin.php:807 +#: ../../mod/connedit.php:710 ../../mod/admin.php:814 msgid "Approve" msgstr "Goedkeuren" @@ -6057,7 +6049,7 @@ msgstr "Verwijder item-tag" msgid "Select a tag to remove: " msgstr "Kies een tag om te verwijderen" -#: ../../mod/tagrm.php:133 ../../mod/photos.php:954 +#: ../../mod/tagrm.php:133 ../../mod/photos.php:951 msgid "Remove" msgstr "Verwijderen" @@ -6326,156 +6318,75 @@ msgid "" "only once and leave this page open until finished." msgstr "Dit proces kan enkele minuten in beslag nemen. Klik maar één keer op opslaan en verlaat deze pagina niet alvorens het proces is voltooid." -#: ../../mod/photos.php:79 -msgid "Page owner information could not be retrieved." -msgstr "Informatie over de pagina-eigenaar werd niet ontvangen." - -#: ../../mod/photos.php:100 -msgid "Album not found." -msgstr "Album niet gevonden." - -#: ../../mod/photos.php:127 -msgid "Delete Album" -msgstr "Verwijder album" +#: ../../mod/invite.php:25 +msgid "Total invitation limit exceeded." +msgstr "Limiet voor aantal uitnodigingen overschreden." -#: ../../mod/photos.php:171 ../../mod/photos.php:1009 -msgid "Delete Photo" -msgstr "Verwijder foto" +#: ../../mod/invite.php:49 +#, php-format +msgid "%s : Not a valid email address." +msgstr "%s : Geen geldig e-mailadres." -#: ../../mod/photos.php:501 -msgid "No photos selected" -msgstr "Geen foto's geselecteerd" +#: ../../mod/invite.php:59 +msgid "Please join us on $Projectname" +msgstr "Uitnodiging voor $Projectname" -#: ../../mod/photos.php:550 -msgid "Access to this item is restricted." -msgstr "Toegang tot dit item is beperkt." +#: ../../mod/invite.php:70 +msgid "Invitation limit exceeded. Please contact your site administrator." +msgstr "Limiet voor aantal uitnodigingen overschreden. Neem contact op met je hub-beheerder." -#: ../../mod/photos.php:589 +#: ../../mod/invite.php:75 #, php-format -msgid "%1$.2f MB of %2$.2f MB photo storage used." -msgstr "%1$.2f MB van %2$.2f MB aan foto-opslag gebruikt." +msgid "%s : Message delivery failed." +msgstr "%s: Aflevering bericht mislukt." -#: ../../mod/photos.php:592 +#: ../../mod/invite.php:79 #, php-format -msgid "%1$.2f MB photo storage used." -msgstr "%1$.2f MB aan foto-opslag gebruikt." - -#: ../../mod/photos.php:620 -msgid "Upload Photos" -msgstr "Foto's uploaden" - -#: ../../mod/photos.php:624 -msgid "Enter an album name" -msgstr "Vul een albumnaam in" - -#: ../../mod/photos.php:625 -msgid "or select an existing album (doubleclick)" -msgstr "of kies een bestaand album (dubbelklikken)" - -#: ../../mod/photos.php:626 -msgid "Create a status post for this upload" -msgstr "Plaats een bericht voor deze upload." - -#: ../../mod/photos.php:627 -msgid "Caption (optional):" -msgstr "Bijschrift (optioneel):" - -#: ../../mod/photos.php:628 -msgid "Description (optional):" -msgstr "Omschrijving (optioneel):" - -#: ../../mod/photos.php:655 -msgid "Album name could not be decoded" -msgstr "Albumnaam kon niet gedecodeerd worden" - -#: ../../mod/photos.php:699 ../../mod/photos.php:1236 -#: ../../mod/photos.php:1253 -msgid "Contact Photos" -msgstr "Connectiefoto's" - -#: ../../mod/photos.php:727 -msgid "Show Newest First" -msgstr "Nieuwste eerst weergeven" - -#: ../../mod/photos.php:729 -msgid "Show Oldest First" -msgstr "Oudste eerst weergeven" - -#: ../../mod/photos.php:827 -msgid "Permission denied. Access to this item may be restricted." -msgstr "Toegang geweigerd. Toegang tot dit item kan zijn beperkt." - -#: ../../mod/photos.php:829 -msgid "Photo not available" -msgstr "Foto niet aanwezig" - -#: ../../mod/photos.php:887 -msgid "Use as profile photo" -msgstr "Als profielfoto gebruiken" - -#: ../../mod/photos.php:894 -msgid "Private Photo" -msgstr "Privéfoto" - -#: ../../mod/photos.php:905 ../../mod/events.php:652 ../../mod/events.php:659 -msgid "Previous" -msgstr "Vorige" - -#: ../../mod/photos.php:909 -msgid "View Full Size" -msgstr "Volledige grootte weergeven" - -#: ../../mod/photos.php:988 -msgid "Edit photo" -msgstr "Foto bewerken" - -#: ../../mod/photos.php:990 -msgid "Rotate CW (right)" -msgstr "Draai met de klok mee (naar rechts)" - -#: ../../mod/photos.php:991 -msgid "Rotate CCW (left)" -msgstr "Draai tegen de klok in (naar links)" +msgid "%d message sent." +msgid_plural "%d messages sent." +msgstr[0] "%d bericht verzonden." +msgstr[1] "%d berichten verzonden." -#: ../../mod/photos.php:994 -msgid "Enter a new album name" -msgstr "Vul een nieuwe albumnaam in" +#: ../../mod/invite.php:98 +msgid "You have no more invitations available" +msgstr "Je hebt geen uitnodigingen meer beschikbaar" -#: ../../mod/photos.php:995 -msgid "or select an existing one (doubleclick)" -msgstr "of kies een bestaand album (dubbelklikken)" +#: ../../mod/invite.php:129 +msgid "Send invitations" +msgstr "Uitnodigingen verzenden" -#: ../../mod/photos.php:998 -msgid "Caption" -msgstr "Bijschrift" +#: ../../mod/invite.php:130 +msgid "Enter email addresses, one per line:" +msgstr "Voer e-mailadressen in, één per regel:" -#: ../../mod/photos.php:1000 -msgid "Add a Tag" -msgstr "Tag toevoegen" +#: ../../mod/invite.php:131 ../../mod/mail.php:246 +msgid "Your message:" +msgstr "Jouw bericht:" -#: ../../mod/photos.php:1004 -msgid "Example: @bob, @Barbara_Jensen, @jim@example.com" -msgstr "Voorbeeld: @bob, @Barbara_Jansen, @jan@voorbeeld.nl" +#: ../../mod/invite.php:132 +msgid "Please join my community on $Projectname." +msgstr "Hierbij nodig ik je uit om mij, en andere vrienden en kennissen, op $Projectname te vergezellen. Lees meer over $Projectname op https://redmatrix.me." -#: ../../mod/photos.php:1007 -msgid "Flag as adult in album view" -msgstr "Markeer als voor volwassenen in albumweergave" +#: ../../mod/invite.php:134 +msgid "You will need to supply this invitation code: " +msgstr "Je moet deze uitnodigingscode opgeven: " -#: ../../mod/photos.php:1199 -msgid "In This Photo:" -msgstr "Op deze foto:" +#: ../../mod/invite.php:135 +msgid "" +"1. Register at any $Projectname location (they are all inter-connected)" +msgstr "1. Registreer je op een willekeurige $Projectname-hub (ze zijn allemaal onderling met elkaar verbonden):" -#: ../../mod/photos.php:1204 -msgid "Map" -msgstr "Kaart" +#: ../../mod/invite.php:137 +msgid "2. Enter my $Projectname network address into the site searchbar." +msgstr "2. Nadat je bent ingelogd en een kanaal hebt aangemaakt kan je mijn $Projectname-kanaaladres in het zoekveld invullen:" -#: ../../mod/photos.php:1292 -msgid "View Album" -msgstr "Album weergeven" +#: ../../mod/invite.php:138 +msgid "or visit " +msgstr "of bezoek " -#: ../../mod/photos.php:1315 -msgid "Recent Photos" -msgstr "Recente foto's" +#: ../../mod/invite.php:140 +msgid "3. Click [Connect]" +msgstr "3. Klik op [+ Verbinden]" #: ../../mod/probe.php:24 ../../mod/probe.php:30 #, php-format @@ -6788,7 +6699,7 @@ msgstr "Ik accepteer de %s van deze $Projectname-hub" msgid "I am over 13 years of age and accept the %s for this website" msgstr "Ik accepteer de %s van deze $Projectname-hub" -#: ../../mod/register.php:207 ../../mod/admin.php:436 +#: ../../mod/register.php:207 ../../mod/admin.php:443 msgid "Registration" msgstr "Registratie" @@ -6848,10 +6759,10 @@ msgstr "# klonen" msgid "Message queues" msgstr "Berichtenwachtrij" -#: ../../mod/admin.php:198 ../../mod/admin.php:433 ../../mod/admin.php:532 -#: ../../mod/admin.php:800 ../../mod/admin.php:964 ../../mod/admin.php:1061 -#: ../../mod/admin.php:1101 ../../mod/admin.php:1261 ../../mod/admin.php:1295 -#: ../../mod/admin.php:1380 +#: ../../mod/admin.php:198 ../../mod/admin.php:440 ../../mod/admin.php:539 +#: ../../mod/admin.php:807 ../../mod/admin.php:971 ../../mod/admin.php:1068 +#: ../../mod/admin.php:1108 ../../mod/admin.php:1268 ../../mod/admin.php:1302 +#: ../../mod/admin.php:1387 msgid "Administration" msgstr "Beheer" @@ -6863,7 +6774,7 @@ msgstr "Samenvatting" msgid "Registered accounts" msgstr "Geregistreerde accounts" -#: ../../mod/admin.php:203 ../../mod/admin.php:536 +#: ../../mod/admin.php:203 ../../mod/admin.php:543 msgid "Pending registrations" msgstr "Accounts die op goedkeuring wachten" @@ -6871,7 +6782,7 @@ msgstr "Accounts die op goedkeuring wachten" msgid "Registered channels" msgstr "Geregistreerde kanalen" -#: ../../mod/admin.php:205 ../../mod/admin.php:537 +#: ../../mod/admin.php:205 ../../mod/admin.php:544 msgid "Active plugins" msgstr "Ingeschakelde plug-ins" @@ -6915,638 +6826,638 @@ msgstr "Mijn $Projectname-hub kent alleen gratis toegang" msgid "My site offers free accounts with optional paid upgrades" msgstr "Mijn $Projectname-hub biedt gratis accounts aan met betaalde uitbreidingen als optie" -#: ../../mod/admin.php:437 +#: ../../mod/admin.php:444 msgid "File upload" msgstr "Bestand uploaden" -#: ../../mod/admin.php:438 +#: ../../mod/admin.php:445 msgid "Policies" msgstr "Beleid" -#: ../../mod/admin.php:443 +#: ../../mod/admin.php:450 msgid "Site name" msgstr "Naam van deze $Projectname-hub" -#: ../../mod/admin.php:444 +#: ../../mod/admin.php:451 msgid "Banner/Logo" msgstr "Banner/logo" -#: ../../mod/admin.php:445 +#: ../../mod/admin.php:452 msgid "Administrator Information" msgstr "Informatie over de beheerder van deze hub" -#: ../../mod/admin.php:445 +#: ../../mod/admin.php:452 msgid "" "Contact information for site administrators. Displayed on siteinfo page. " "BBCode can be used here" msgstr "Contactinformatie voor hub-beheerders. Getoond op pagina met hub-informatie. Er kan hier bbcode gebruikt worden." -#: ../../mod/admin.php:446 +#: ../../mod/admin.php:453 msgid "System language" msgstr "Standaardtaal" -#: ../../mod/admin.php:447 +#: ../../mod/admin.php:454 msgid "System theme" msgstr "Standaardthema" -#: ../../mod/admin.php:447 +#: ../../mod/admin.php:454 msgid "" "Default system theme - may be over-ridden by user profiles - <a href='#' " "id='cnftheme'>change theme settings</a>" msgstr "Standaardthema voor $Projectname-hub (kan door lid veranderd worden) - <a href='#' id='cnftheme'>verander thema-instellingen</a>" -#: ../../mod/admin.php:448 +#: ../../mod/admin.php:455 msgid "Mobile system theme" msgstr "Standaardthema voor mobiel" -#: ../../mod/admin.php:448 +#: ../../mod/admin.php:455 msgid "Theme for mobile devices" msgstr "Thema voor mobiele apparaten" -#: ../../mod/admin.php:450 +#: ../../mod/admin.php:457 msgid "Allow Feeds as Connections" msgstr "Sta feeds toe als connecties" -#: ../../mod/admin.php:450 +#: ../../mod/admin.php:457 msgid "(Heavy system resource usage)" msgstr "(sterk negatieve invloed op systeembronnen hub)" -#: ../../mod/admin.php:451 +#: ../../mod/admin.php:458 msgid "Maximum image size" msgstr "Maximale grootte van afbeeldingen" -#: ../../mod/admin.php:451 +#: ../../mod/admin.php:458 msgid "" "Maximum size in bytes of uploaded images. Default is 0, which means no " "limits." msgstr "Maximale grootte in bytes voor afbeeldingen die worden geüpload. Standaard is 0, wat geen limiet betekend." -#: ../../mod/admin.php:452 +#: ../../mod/admin.php:459 msgid "Does this site allow new member registration?" msgstr "Staat deze hub nieuwe accounts toe?" -#: ../../mod/admin.php:453 +#: ../../mod/admin.php:460 msgid "Which best describes the types of account offered by this hub?" msgstr "Wat voor soort accounts biedt deze $Projectname-hub aan? Kies wat het meest in de buurt komt." -#: ../../mod/admin.php:454 +#: ../../mod/admin.php:461 msgid "Register text" msgstr "Tekst tijdens registratie" -#: ../../mod/admin.php:454 +#: ../../mod/admin.php:461 msgid "Will be displayed prominently on the registration page." msgstr "Tekst dat op de pagina voor het registreren van nieuwe accounts wordt getoond." -#: ../../mod/admin.php:455 +#: ../../mod/admin.php:462 msgid "Site homepage to show visitors (default: login box)" msgstr "Homepagina van deze hub die aan bezoekers wordt getoond (standaard: inlogformulier)" -#: ../../mod/admin.php:455 +#: ../../mod/admin.php:462 msgid "" "example: 'public' to show public stream, 'page/sys/home' to show a system " "webpage called 'home' or 'include:home.html' to include a file." msgstr "voorbeeld: 'public' om de openbare stream te tonen, 'page/sys/home' om de webpagina 'home' van het systeemkanaal te tonen of 'include:home.html' om een gewoon bestand te gebruiken." -#: ../../mod/admin.php:456 +#: ../../mod/admin.php:463 msgid "Preserve site homepage URL" msgstr "Behoudt de URL van de hub (/)" -#: ../../mod/admin.php:456 +#: ../../mod/admin.php:463 msgid "" "Present the site homepage in a frame at the original location instead of " "redirecting" msgstr "Toon de homepagina van de hub in een frame op de oorspronkelijke locatie (/), i.p.v. een doorverwijzing naar een andere locatie (bv. .../home.html)" -#: ../../mod/admin.php:457 +#: ../../mod/admin.php:464 msgid "Accounts abandoned after x days" msgstr "Accounts als verlaten beschouwen na zoveel aantal dagen:" -#: ../../mod/admin.php:457 +#: ../../mod/admin.php:464 msgid "" "Will not waste system resources polling external sites for abandonded " "accounts. Enter 0 for no time limit." msgstr "Zal geen systeembronnen verspillen door polling van externe hubs voor verlaten accounts. Vul 0 in voor geen tijdslimiet." -#: ../../mod/admin.php:458 +#: ../../mod/admin.php:465 msgid "Allowed friend domains" msgstr "Toegestane domeinen" -#: ../../mod/admin.php:458 +#: ../../mod/admin.php:465 msgid "" "Comma separated list of domains which are allowed to establish friendships " "with this site. Wildcards are accepted. Empty to allow any domains" msgstr "Komma-gescheiden lijst van domeinen waarvan kanalen connecties kunnen aangaan met kanalen op deze $Projectname-hub. Wildcards zijn toegestaan.\nLaat leeg om alle domeinen toe te laten." -#: ../../mod/admin.php:459 +#: ../../mod/admin.php:466 msgid "Allowed email domains" msgstr "Toegestane e-maildomeinen" -#: ../../mod/admin.php:459 +#: ../../mod/admin.php:466 msgid "" "Comma separated list of domains which are allowed in email addresses for " "registrations to this site. Wildcards are accepted. Empty to allow any " "domains" msgstr "Door komma's gescheiden lijst met e-maildomeinen waarvan e-mailadressen op deze hub mogen registeren. Wildcards zijn toegestaan. Laat leeg om alle domeinen toe te laten." -#: ../../mod/admin.php:460 +#: ../../mod/admin.php:467 msgid "Not allowed email domains" msgstr "Niet toegestane e-maildomeinen" -#: ../../mod/admin.php:460 +#: ../../mod/admin.php:467 msgid "" "Comma separated list of domains which are not allowed in email addresses for" " registrations to this site. Wildcards are accepted. Empty to allow any " "domains, unless allowed domains have been defined." msgstr "Door komma's gescheiden lijst met e-maildomeinen waarvan e-mailadressen niet op deze hub mogen registeren. Wildcards zijn toegestaan. Laat leeg om alle domeinen toe te staan, tenzij er toegestane domeinen zijn ingesteld. " -#: ../../mod/admin.php:461 +#: ../../mod/admin.php:468 msgid "Block public" msgstr "Openbare toegang blokkeren" -#: ../../mod/admin.php:461 +#: ../../mod/admin.php:468 msgid "" "Check to block public access to all otherwise public personal pages on this " "site unless you are currently logged in." msgstr "Vink dit aan om alle normaliter openbare persoonlijke pagina's op deze hub alleen toegankelijk te maken voor ingelogde leden." -#: ../../mod/admin.php:462 +#: ../../mod/admin.php:469 msgid "Verify Email Addresses" msgstr "E-mailadres verifieren" -#: ../../mod/admin.php:462 +#: ../../mod/admin.php:469 msgid "" "Check to verify email addresses used in account registration (recommended)." msgstr "Inschakelen om e-mailadressen te verifiëren die tijdens de accountregistratie worden gebruikt (aanbevolen)." -#: ../../mod/admin.php:463 +#: ../../mod/admin.php:470 msgid "Force publish" msgstr "Dwing kanaalvermelding af" -#: ../../mod/admin.php:463 +#: ../../mod/admin.php:470 msgid "" "Check to force all profiles on this site to be listed in the site directory." msgstr "Vink dit aan om af te dwingen dat alle kanalen op deze hub in de kanalengids worden vermeld." -#: ../../mod/admin.php:464 -msgid "Disable discovery tab" -msgstr "Ontdekkingstab" +#: ../../mod/admin.php:471 +msgid "Import Public Streams" +msgstr "Openbare streams importeren" -#: ../../mod/admin.php:464 +#: ../../mod/admin.php:471 msgid "" -"Remove the tab in the network view with public content pulled from sources " -"chosen for this site." -msgstr "Verwijder de tab in de matrix-weergave waarin zich een selectie aan openbare berichten bevindt, die automatisch voor deze hub zijn uitgekozen." +"Import and allow access to public content pulled from other sites. Warning: " +"this content is unmoderated." +msgstr "Toegang verlenen tot openbare berichten die vanuit andere hubs worden geïmporteerd. Waarschuwing: de inhoud van deze berichten wordt niet gemodereerd." -#: ../../mod/admin.php:465 +#: ../../mod/admin.php:472 msgid "login on Homepage" msgstr "Inlogformulier op de homepagina" -#: ../../mod/admin.php:465 +#: ../../mod/admin.php:472 msgid "" "Present a login box to visitors on the home page if no other content has " "been configured." msgstr "Toon een inlogformulier voor bezoekers op de homepagina wanneer geen andere inhoud is geconfigureerd. " -#: ../../mod/admin.php:467 +#: ../../mod/admin.php:474 msgid "Directory Server URL" msgstr "Server-URL voor de kanalengids" -#: ../../mod/admin.php:467 +#: ../../mod/admin.php:474 msgid "Default directory server" msgstr "Standaardserver voor de kanalengids" -#: ../../mod/admin.php:469 +#: ../../mod/admin.php:476 msgid "Proxy user" msgstr "Gebruikersnaam proxy" -#: ../../mod/admin.php:470 +#: ../../mod/admin.php:477 msgid "Proxy URL" msgstr "URL proxy" -#: ../../mod/admin.php:471 +#: ../../mod/admin.php:478 msgid "Network timeout" msgstr "Netwerktimeout" -#: ../../mod/admin.php:471 +#: ../../mod/admin.php:478 msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." msgstr "Waarde is in seconden. Zet op 0 voor onbeperkt (niet aanbevolen)" -#: ../../mod/admin.php:472 +#: ../../mod/admin.php:479 msgid "Delivery interval" msgstr "Afleveringsinterval" -#: ../../mod/admin.php:472 +#: ../../mod/admin.php:479 msgid "" "Delay background delivery processes by this many seconds to reduce system " "load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 " "for large dedicated servers." msgstr "Vertraag de achtergrondprocessen voor het afleveren met een aantal seconden om de systeembelasting te verminderen. Aanbevolen: 4-5 voor shared hosts, 2-3 voor virtual private servers (VPS) en 0-1 voor grote dedicated servers." -#: ../../mod/admin.php:473 +#: ../../mod/admin.php:480 msgid "Deliveries per process" msgstr "Leveringen per serverproces" -#: ../../mod/admin.php:473 +#: ../../mod/admin.php:480 msgid "" "Number of deliveries to attempt in a single operating system process. Adjust" " if necessary to tune system performance. Recommend: 1-5." msgstr "Aantal leveringen die aan één serverproces worden meegegeven. Pas dit aan wanneer het nodig is om systeemprestaties te verbeteren. Aangeraden: 1-5" -#: ../../mod/admin.php:474 +#: ../../mod/admin.php:481 msgid "Poll interval" msgstr "Poll-interval" -#: ../../mod/admin.php:474 +#: ../../mod/admin.php:481 msgid "" "Delay background polling processes by this many seconds to reduce system " "load. If 0, use delivery interval." msgstr "De achtergrondprocessen voor het afleveren met zoveel seconden vertragen om de systeembelasting te verminderen. 0 om de afleveringsinterval te gebruiken." -#: ../../mod/admin.php:475 +#: ../../mod/admin.php:482 msgid "Maximum Load Average" msgstr "Maximaal gemiddelde systeembelasting" -#: ../../mod/admin.php:475 +#: ../../mod/admin.php:482 msgid "" "Maximum system load before delivery and poll processes are deferred - " "default 50." msgstr "Maximale systeembelasting voordat de afleverings- en polllingsprocessen worden uitgesteld. Standaard is 50." -#: ../../mod/admin.php:476 +#: ../../mod/admin.php:483 msgid "Expiration period in days for imported (matrix/network) content" msgstr "Aantal dagen waarna geïmporteerde inhoud uit iemands matrix/netwerk-pagina wordt verwijderd." -#: ../../mod/admin.php:476 +#: ../../mod/admin.php:483 msgid "0 for no expiration of imported content" msgstr "Dit geldt alleen voor inhoud van andere kanalen, dus niet voor iemands eigen kanaal. 0 voor het niet verwijderen van geïmporteerde inhoud." -#: ../../mod/admin.php:524 +#: ../../mod/admin.php:531 msgid "No server found" msgstr "Geen hub gevonden" -#: ../../mod/admin.php:531 ../../mod/admin.php:814 +#: ../../mod/admin.php:538 ../../mod/admin.php:821 msgid "ID" msgstr "ID" -#: ../../mod/admin.php:531 +#: ../../mod/admin.php:538 msgid "for channel" msgstr "voor kanaal" -#: ../../mod/admin.php:531 +#: ../../mod/admin.php:538 msgid "on server" msgstr "op hub" -#: ../../mod/admin.php:531 +#: ../../mod/admin.php:538 msgid "Status" msgstr "Status" -#: ../../mod/admin.php:533 +#: ../../mod/admin.php:540 msgid "Server" msgstr "Hubbeheer" -#: ../../mod/admin.php:550 +#: ../../mod/admin.php:557 msgid "Update has been marked successful" msgstr "Update is als succesvol gemarkeerd" -#: ../../mod/admin.php:560 +#: ../../mod/admin.php:567 #, php-format msgid "Executing %s failed. Check system logs." msgstr "Uitvoeren van %s is mislukt. Controleer systeemlogboek." -#: ../../mod/admin.php:563 +#: ../../mod/admin.php:570 #, php-format msgid "Update %s was successfully applied." msgstr "Update %s was geslaagd." -#: ../../mod/admin.php:567 +#: ../../mod/admin.php:574 #, php-format msgid "Update %s did not return a status. Unknown if it succeeded." msgstr "Update %s gaf geen melding. Het is daarom niet bekend of deze geslaagd is." -#: ../../mod/admin.php:570 +#: ../../mod/admin.php:577 #, php-format msgid "Update function %s could not be found." msgstr "Update-functie %s kon niet gevonden worden." -#: ../../mod/admin.php:586 +#: ../../mod/admin.php:593 msgid "No failed updates." msgstr "Geen mislukte updates." -#: ../../mod/admin.php:590 +#: ../../mod/admin.php:597 msgid "Failed Updates" msgstr "Mislukte updates" -#: ../../mod/admin.php:592 +#: ../../mod/admin.php:599 msgid "Mark success (if update was manually applied)" msgstr "Markeer als geslaagd (wanneer de update handmatig was uitgevoerd)" -#: ../../mod/admin.php:593 +#: ../../mod/admin.php:600 msgid "Attempt to execute this update step automatically" msgstr "Poging om deze stap van de update automatisch uit te voeren." -#: ../../mod/admin.php:625 +#: ../../mod/admin.php:632 msgid "Queue Statistics" msgstr "Wachtrij-statistieken" -#: ../../mod/admin.php:626 +#: ../../mod/admin.php:633 msgid "Total Entries" msgstr "Aantal vermeldingen" -#: ../../mod/admin.php:627 +#: ../../mod/admin.php:634 msgid "Priority" msgstr "Prioriteit" -#: ../../mod/admin.php:628 +#: ../../mod/admin.php:635 msgid "Destination URL" msgstr "Doel-URL" -#: ../../mod/admin.php:629 +#: ../../mod/admin.php:636 msgid "Mark hub permanently offline" msgstr "Hub als permanent offline markeren" -#: ../../mod/admin.php:630 +#: ../../mod/admin.php:637 msgid "Empty queue for this hub" msgstr "Berichtenwachtrij voor deze hub legen" -#: ../../mod/admin.php:631 +#: ../../mod/admin.php:638 msgid "Last known contact" msgstr "Voor het laatst contact" -#: ../../mod/admin.php:667 +#: ../../mod/admin.php:674 #, php-format msgid "%s account blocked/unblocked" msgid_plural "%s account blocked/unblocked" msgstr[0] "%s account geblokkeerd/gedeblokkeerd" msgstr[1] "%s accounts geblokkeerd/gedeblokkeerd" -#: ../../mod/admin.php:675 +#: ../../mod/admin.php:682 #, php-format msgid "%s account deleted" msgid_plural "%s accounts deleted" msgstr[0] "%s account verwijderd" msgstr[1] "%s accounts verwijderd" -#: ../../mod/admin.php:711 +#: ../../mod/admin.php:718 msgid "Account not found" msgstr "Account niet gevonden" -#: ../../mod/admin.php:723 +#: ../../mod/admin.php:730 #, php-format msgid "Account '%s' deleted" msgstr "Account '%s' verwijderd" -#: ../../mod/admin.php:731 +#: ../../mod/admin.php:738 #, php-format msgid "Account '%s' blocked" msgstr "Account '%s' geblokkeerd" -#: ../../mod/admin.php:739 +#: ../../mod/admin.php:746 #, php-format msgid "Account '%s' unblocked" msgstr "Account '%s' gedeblokkeerd" -#: ../../mod/admin.php:801 ../../mod/admin.php:813 +#: ../../mod/admin.php:808 ../../mod/admin.php:820 msgid "Users" msgstr "Accounts" -#: ../../mod/admin.php:803 ../../mod/admin.php:967 +#: ../../mod/admin.php:810 ../../mod/admin.php:974 msgid "select all" msgstr "alles selecteren" -#: ../../mod/admin.php:804 +#: ../../mod/admin.php:811 msgid "User registrations waiting for confirm" msgstr "Accounts die op goedkeuring wachten" -#: ../../mod/admin.php:805 +#: ../../mod/admin.php:812 msgid "Request date" msgstr "Tijd/datum verzoek" -#: ../../mod/admin.php:806 +#: ../../mod/admin.php:813 msgid "No registrations." msgstr "Geen verzoeken." -#: ../../mod/admin.php:808 +#: ../../mod/admin.php:815 msgid "Deny" msgstr "Afkeuren" -#: ../../mod/admin.php:814 +#: ../../mod/admin.php:821 msgid "Register date" msgstr "Geregistreerd" -#: ../../mod/admin.php:814 +#: ../../mod/admin.php:821 msgid "Last login" msgstr "Laatste keer ingelogd" -#: ../../mod/admin.php:814 +#: ../../mod/admin.php:821 msgid "Expires" msgstr "Verloopt" -#: ../../mod/admin.php:814 +#: ../../mod/admin.php:821 msgid "Service Class" msgstr "Abonnementen" -#: ../../mod/admin.php:816 +#: ../../mod/admin.php:823 msgid "" "Selected accounts will be deleted!\\n\\nEverything these accounts had posted" " on this site will be permanently deleted!\\n\\nAre you sure?" msgstr "Geselecteerde accounts (met bijbehorende kanalen) worden verwijderd!\\n\\nAlles wat deze accounts op deze hub hebben gepubliceerd wordt definitief verwijderd!\\n\\Weet je het zeker?" -#: ../../mod/admin.php:817 +#: ../../mod/admin.php:824 msgid "" "The account {0} will be deleted!\\n\\nEverything this account has posted on " "this site will be permanently deleted!\\n\\nAre you sure?" msgstr "Account {0} (met bijbehorende kanalen) wordt verwijderd !\\n\\nAlles wat dit account op deze hub heeft gepubliceerd wordt definitief verwijderd!\\n\\nWeet je het zeker?" -#: ../../mod/admin.php:853 +#: ../../mod/admin.php:860 #, php-format msgid "%s channel censored/uncensored" msgid_plural "%s channels censored/uncensored" msgstr[0] "%s kanaal gecensureerd/ongecensureerd" msgstr[1] "%s kanalen gecensureerd/ongecensureerd" -#: ../../mod/admin.php:862 +#: ../../mod/admin.php:869 #, php-format msgid "%s channel code allowed/disallowed" msgid_plural "%s channels code allowed/disallowed" msgstr[0] "Scripts toegestaan/niet toegestaan voor %s kanaal" msgstr[1] "Scripts toegestaan/niet toegestaan voor %s kanalen" -#: ../../mod/admin.php:869 +#: ../../mod/admin.php:876 #, php-format msgid "%s channel deleted" msgid_plural "%s channels deleted" msgstr[0] "%s kanaal verwijderd" msgstr[1] "%s kanalen verwijderd" -#: ../../mod/admin.php:889 +#: ../../mod/admin.php:896 msgid "Channel not found" msgstr "Kanaal niet gevonden" -#: ../../mod/admin.php:900 +#: ../../mod/admin.php:907 #, php-format msgid "Channel '%s' deleted" msgstr "Kanaal '%s' verwijderd" -#: ../../mod/admin.php:912 +#: ../../mod/admin.php:919 #, php-format msgid "Channel '%s' censored" msgstr "Kanaal '%s' gecensureerd" -#: ../../mod/admin.php:912 +#: ../../mod/admin.php:919 #, php-format msgid "Channel '%s' uncensored" msgstr "Kanaal '%s' ongecensureerd" -#: ../../mod/admin.php:923 +#: ../../mod/admin.php:930 #, php-format msgid "Channel '%s' code allowed" msgstr "Scripts toegestaan voor kanaal '%s'" -#: ../../mod/admin.php:923 +#: ../../mod/admin.php:930 #, php-format msgid "Channel '%s' code disallowed" msgstr "Scripts niet toegestaan voor kanaal '%s'" -#: ../../mod/admin.php:969 +#: ../../mod/admin.php:976 msgid "Censor" msgstr "Censureren" -#: ../../mod/admin.php:970 +#: ../../mod/admin.php:977 msgid "Uncensor" msgstr "Niet censureren" -#: ../../mod/admin.php:971 +#: ../../mod/admin.php:978 msgid "Allow Code" msgstr "Scripts toestaan" -#: ../../mod/admin.php:972 +#: ../../mod/admin.php:979 msgid "Disallow Code" msgstr "Scripts niet toestaan" -#: ../../mod/admin.php:974 +#: ../../mod/admin.php:981 msgid "UID" msgstr "UID" -#: ../../mod/admin.php:976 +#: ../../mod/admin.php:983 msgid "" "Selected channels will be deleted!\\n\\nEverything that was posted in these " "channels on this site will be permanently deleted!\\n\\nAre you sure?" msgstr "Geselecteerde kanalen worden verwijderd!\\n\\nAlles wat in deze kanalen op deze hub werd gepubliceerd wordt definitief verwijderd!\\n\\nWeet je het zeker?" -#: ../../mod/admin.php:977 +#: ../../mod/admin.php:984 msgid "" "The channel {0} will be deleted!\\n\\nEverything that was posted in this " "channel on this site will be permanently deleted!\\n\\nAre you sure?" msgstr "Kanaal {0} wordt verwijderd!\\n\\nAlles wat in dit kanaal op deze hub werd gepubliceerd wordt definitief verwijderd!\\n\\nWeet je het zeker?" -#: ../../mod/admin.php:1017 +#: ../../mod/admin.php:1024 #, php-format msgid "Plugin %s disabled." msgstr "Plug-in %s uitgeschakeld." -#: ../../mod/admin.php:1021 +#: ../../mod/admin.php:1028 #, php-format msgid "Plugin %s enabled." msgstr "Plug-in %s ingeschakeld" -#: ../../mod/admin.php:1031 ../../mod/admin.php:1234 +#: ../../mod/admin.php:1038 ../../mod/admin.php:1241 msgid "Disable" msgstr "Uitschakelen" -#: ../../mod/admin.php:1034 ../../mod/admin.php:1236 +#: ../../mod/admin.php:1041 ../../mod/admin.php:1243 msgid "Enable" msgstr "Inschakelen" -#: ../../mod/admin.php:1063 ../../mod/admin.php:1263 +#: ../../mod/admin.php:1070 ../../mod/admin.php:1270 msgid "Toggle" msgstr "Omschakelen" -#: ../../mod/admin.php:1071 ../../mod/admin.php:1273 +#: ../../mod/admin.php:1078 ../../mod/admin.php:1280 msgid "Author: " msgstr "Auteur: " -#: ../../mod/admin.php:1072 ../../mod/admin.php:1274 +#: ../../mod/admin.php:1079 ../../mod/admin.php:1281 msgid "Maintainer: " msgstr "Beheerder: " -#: ../../mod/admin.php:1199 +#: ../../mod/admin.php:1206 msgid "No themes found." msgstr "Geen thema's gevonden" -#: ../../mod/admin.php:1255 +#: ../../mod/admin.php:1262 msgid "Screenshot" msgstr "Schermafdruk" -#: ../../mod/admin.php:1301 +#: ../../mod/admin.php:1308 msgid "[Experimental]" msgstr "[Experimenteel]" -#: ../../mod/admin.php:1302 +#: ../../mod/admin.php:1309 msgid "[Unsupported]" msgstr "[Niet ondersteund]" -#: ../../mod/admin.php:1326 +#: ../../mod/admin.php:1333 msgid "Log settings updated." msgstr "Logboek-instellingen bijgewerkt." -#: ../../mod/admin.php:1383 +#: ../../mod/admin.php:1390 msgid "Clear" msgstr "Leegmaken" -#: ../../mod/admin.php:1389 +#: ../../mod/admin.php:1396 msgid "Debugging" msgstr "Debuggen" -#: ../../mod/admin.php:1390 +#: ../../mod/admin.php:1397 msgid "Log file" msgstr "Logbestand" -#: ../../mod/admin.php:1390 +#: ../../mod/admin.php:1397 msgid "" "Must be writable by web server. Relative to your Red top-level directory." msgstr "Moet door de webserver beschrijfbaar zijn. Relatief ten opzichte van de bovenste map van je $Projectname-installatie." -#: ../../mod/admin.php:1391 +#: ../../mod/admin.php:1398 msgid "Log level" msgstr "Logniveau" -#: ../../mod/admin.php:1437 +#: ../../mod/admin.php:1444 msgid "New Profile Field" msgstr "Nieuw profielveld" -#: ../../mod/admin.php:1438 ../../mod/admin.php:1458 +#: ../../mod/admin.php:1445 ../../mod/admin.php:1465 msgid "Field nickname" msgstr "Bijnaam voor veld" -#: ../../mod/admin.php:1438 ../../mod/admin.php:1458 +#: ../../mod/admin.php:1445 ../../mod/admin.php:1465 msgid "System name of field" msgstr "Systeemnaam voor veld" -#: ../../mod/admin.php:1439 ../../mod/admin.php:1459 +#: ../../mod/admin.php:1446 ../../mod/admin.php:1466 msgid "Input type" msgstr "Invoertype" -#: ../../mod/admin.php:1440 ../../mod/admin.php:1460 +#: ../../mod/admin.php:1447 ../../mod/admin.php:1467 msgid "Field Name" msgstr "Veldnaam" -#: ../../mod/admin.php:1440 ../../mod/admin.php:1460 +#: ../../mod/admin.php:1447 ../../mod/admin.php:1467 msgid "Label on profile pages" msgstr "Tekstlabel voor op profielpagina's" -#: ../../mod/admin.php:1441 ../../mod/admin.php:1461 +#: ../../mod/admin.php:1448 ../../mod/admin.php:1468 msgid "Help text" msgstr "Helptekst" -#: ../../mod/admin.php:1441 ../../mod/admin.php:1461 +#: ../../mod/admin.php:1448 ../../mod/admin.php:1468 msgid "Additional info (optional)" msgstr "Extra informatie (optioneel)" -#: ../../mod/admin.php:1451 +#: ../../mod/admin.php:1458 msgid "Field definition not found" msgstr "Velddefinitie niet gevonden" -#: ../../mod/admin.php:1457 +#: ../../mod/admin.php:1464 msgid "Edit Profile Field" msgstr "Profielveld bewerken" @@ -8265,75 +8176,14 @@ msgstr "Wij adviseren, wanneer dit (nog) mogelijk is, de locatie te verwijderen msgid "Use this form to drop the location if the hub is no longer operating." msgstr "Gebruik dit formulier om de locatie te verwijderen wanneer de hub van de kloon niet meer operationeel is." -#: ../../mod/invite.php:25 -msgid "Total invitation limit exceeded." -msgstr "Limiet voor aantal uitnodigingen overschreden." - -#: ../../mod/invite.php:49 -#, php-format -msgid "%s : Not a valid email address." -msgstr "%s : Geen geldig e-mailadres." - -#: ../../mod/invite.php:76 -msgid "Please join us on $Projectname" -msgstr "Uitnodiging voor $Projectname" - -#: ../../mod/invite.php:87 -msgid "Invitation limit exceeded. Please contact your site administrator." -msgstr "Limiet voor aantal uitnodigingen overschreden. Neem contact op met je hub-beheerder." - -#: ../../mod/invite.php:92 -#, php-format -msgid "%s : Message delivery failed." -msgstr "%s: Aflevering bericht mislukt." +#: ../../mod/home.php:57 ../../mod/home.php:65 ../../mod/siteinfo.php:61 +msgid "$Projectname" +msgstr "$Projectname" -#: ../../mod/invite.php:96 +#: ../../mod/home.php:75 #, php-format -msgid "%d message sent." -msgid_plural "%d messages sent." -msgstr[0] "%d bericht verzonden." -msgstr[1] "%d berichten verzonden." - -#: ../../mod/invite.php:115 -msgid "You have no more invitations available" -msgstr "Je hebt geen uitnodigingen meer beschikbaar" - -#: ../../mod/invite.php:129 -msgid "Send invitations" -msgstr "Uitnodigingen verzenden" - -#: ../../mod/invite.php:130 -msgid "Enter email addresses, one per line:" -msgstr "Voer e-mailadressen in, één per regel:" - -#: ../../mod/invite.php:131 ../../mod/mail.php:238 -msgid "Your message:" -msgstr "Jouw bericht:" - -#: ../../mod/invite.php:132 -msgid "Please join my community on $Projectname." -msgstr "Hierbij nodig ik je uit om mij, en andere vrienden en kennissen, op $Projectname te vergezellen. Lees meer over $Projectname op https://redmatrix.me." - -#: ../../mod/invite.php:134 -msgid "You will need to supply this invitation code: " -msgstr "Je moet deze uitnodigingscode opgeven:" - -#: ../../mod/invite.php:135 -msgid "" -"1. Register at any $Projectname location (they are all inter-connected)" -msgstr "1. Registreer je op een willekeurige $Projectname-hub (ze zijn allemaal onderling met elkaar verbonden):" - -#: ../../mod/invite.php:137 -msgid "2. Enter my $Projectname network address into the site searchbar." -msgstr "2. Nadat je bent ingelogd en een kanaal hebt aangemaakt kan je mijn $Projectname-kanaaladres in het zoekveld invullen:" - -#: ../../mod/invite.php:138 -msgid "or visit " -msgstr "of bezoek " - -#: ../../mod/invite.php:140 -msgid "3. Click [Connect]" -msgstr "3. Klik op [+ Verbinden]" +msgid "Welcome to %s" +msgstr "Welkom op %s" #: ../../mod/regmod.php:11 msgid "Please login." @@ -8363,6 +8213,158 @@ msgstr "Onvoldoende permissies. Doorgestuurd naar profielpagina." msgid "Item not available." msgstr "Item is niet aanwezig." +#: ../../mod/photos.php:79 +msgid "Page owner information could not be retrieved." +msgstr "Informatie over de pagina-eigenaar werd niet ontvangen." + +#: ../../mod/photos.php:100 +msgid "Album not found." +msgstr "Album niet gevonden." + +#: ../../mod/photos.php:127 +msgid "Delete Album" +msgstr "Verwijder album" + +#: ../../mod/photos.php:171 ../../mod/photos.php:1006 +msgid "Delete Photo" +msgstr "Verwijder foto" + +#: ../../mod/photos.php:501 +msgid "No photos selected" +msgstr "Geen foto's geselecteerd" + +#: ../../mod/photos.php:550 +msgid "Access to this item is restricted." +msgstr "Toegang tot dit item is beperkt." + +#: ../../mod/photos.php:589 +#, php-format +msgid "%1$.2f MB of %2$.2f MB photo storage used." +msgstr "%1$.2f MB van %2$.2f MB aan foto-opslag gebruikt." + +#: ../../mod/photos.php:592 +#, php-format +msgid "%1$.2f MB photo storage used." +msgstr "%1$.2f MB aan foto-opslag gebruikt." + +#: ../../mod/photos.php:620 +msgid "Upload Photos" +msgstr "Foto's uploaden" + +#: ../../mod/photos.php:624 +msgid "Enter an album name" +msgstr "Vul een albumnaam in" + +#: ../../mod/photos.php:625 +msgid "or select an existing album (doubleclick)" +msgstr "of kies een bestaand album (dubbelklikken)" + +#: ../../mod/photos.php:626 +msgid "Create a status post for this upload" +msgstr "Plaats een bericht voor deze upload." + +#: ../../mod/photos.php:627 +msgid "Caption (optional):" +msgstr "Bijschrift (optioneel):" + +#: ../../mod/photos.php:628 +msgid "Description (optional):" +msgstr "Omschrijving (optioneel):" + +#: ../../mod/photos.php:655 +msgid "Album name could not be decoded" +msgstr "Albumnaam kon niet gedecodeerd worden" + +#: ../../mod/photos.php:699 ../../mod/photos.php:1233 +#: ../../mod/photos.php:1250 +msgid "Contact Photos" +msgstr "Connectiefoto's" + +#: ../../mod/photos.php:722 +msgid "Show Newest First" +msgstr "Nieuwste eerst weergeven" + +#: ../../mod/photos.php:724 +msgid "Show Oldest First" +msgstr "Oudste eerst weergeven" + +#: ../../mod/photos.php:824 +msgid "Permission denied. Access to this item may be restricted." +msgstr "Toegang geweigerd. Toegang tot dit item kan zijn beperkt." + +#: ../../mod/photos.php:826 +msgid "Photo not available" +msgstr "Foto niet aanwezig" + +#: ../../mod/photos.php:884 +msgid "Use as profile photo" +msgstr "Als profielfoto gebruiken" + +#: ../../mod/photos.php:891 +msgid "Private Photo" +msgstr "Privéfoto" + +#: ../../mod/photos.php:902 ../../mod/events.php:652 ../../mod/events.php:659 +msgid "Previous" +msgstr "Vorige" + +#: ../../mod/photos.php:906 +msgid "View Full Size" +msgstr "Volledige grootte weergeven" + +#: ../../mod/photos.php:985 +msgid "Edit photo" +msgstr "Foto bewerken" + +#: ../../mod/photos.php:987 +msgid "Rotate CW (right)" +msgstr "Draai met de klok mee (naar rechts)" + +#: ../../mod/photos.php:988 +msgid "Rotate CCW (left)" +msgstr "Draai tegen de klok in (naar links)" + +#: ../../mod/photos.php:991 +msgid "Enter a new album name" +msgstr "Vul een nieuwe albumnaam in" + +#: ../../mod/photos.php:992 +msgid "or select an existing one (doubleclick)" +msgstr "of kies een bestaand album (dubbelklikken)" + +#: ../../mod/photos.php:995 +msgid "Caption" +msgstr "Bijschrift" + +#: ../../mod/photos.php:997 +msgid "Add a Tag" +msgstr "Tag toevoegen" + +#: ../../mod/photos.php:1001 +msgid "Example: @bob, @Barbara_Jensen, @jim@example.com" +msgstr "Voorbeeld: @bob, @Barbara_Jansen, @jan@voorbeeld.nl" + +#: ../../mod/photos.php:1004 +msgid "Flag as adult in album view" +msgstr "Markeer als voor volwassenen in albumweergave" + +#: ../../mod/photos.php:1196 +msgid "In This Photo:" +msgstr "Op deze foto:" + +#: ../../mod/photos.php:1201 +msgid "Map" +msgstr "Kaart" + +#: ../../mod/photos.php:1289 +msgid "View Album" +msgstr "Album weergeven" + +#: ../../mod/photos.php:1300 ../../mod/photos.php:1313 +#: ../../mod/photos.php:1314 +msgid "Recent Photos" +msgstr "Recente foto's" + #: ../../mod/lockview.php:37 msgid "Remote privacy information not available." msgstr "Privacy-informatie op afstand niet beschikbaar." @@ -8752,95 +8754,89 @@ msgstr "Titel van menu zoals anderen dat zien." msgid "Allow bookmarks" msgstr "Bladwijzers toestaan" -#: ../../mod/mail.php:33 +#: ../../mod/mail.php:34 msgid "Unable to lookup recipient." msgstr "Niet in staat om ontvanger op te zoeken." -#: ../../mod/mail.php:41 +#: ../../mod/mail.php:42 msgid "Unable to communicate with requested channel." msgstr "Niet in staat om met het aangevraagde kanaal te communiceren." -#: ../../mod/mail.php:48 +#: ../../mod/mail.php:49 msgid "Cannot verify requested channel." msgstr "Kan opgevraagd kanaal niet verifieren" -#: ../../mod/mail.php:74 +#: ../../mod/mail.php:75 msgid "Selected channel has private message restrictions. Send failed." msgstr "Gekozen kanaal heeft restricties voor privéberichten. Verzenden mislukt." -#: ../../mod/mail.php:132 +#: ../../mod/mail.php:140 msgid "Messages" msgstr "Berichten" -#: ../../mod/mail.php:167 +#: ../../mod/mail.php:175 msgid "Message recalled." msgstr "Bericht ingetrokken." -#: ../../mod/mail.php:180 +#: ../../mod/mail.php:188 msgid "Conversation removed." msgstr "Conversatie verwijderd" -#: ../../mod/mail.php:223 +#: ../../mod/mail.php:231 msgid "Requested channel is not in this network" msgstr "Opgevraagd kanaal is niet in dit netwerk beschikbaar" -#: ../../mod/mail.php:231 +#: ../../mod/mail.php:239 msgid "Send Private Message" msgstr "Privébericht versturen" -#: ../../mod/mail.php:232 ../../mod/mail.php:362 +#: ../../mod/mail.php:240 ../../mod/mail.php:370 msgid "To:" msgstr "Aan:" -#: ../../mod/mail.php:235 ../../mod/mail.php:364 +#: ../../mod/mail.php:243 ../../mod/mail.php:372 msgid "Subject:" msgstr "Onderwerp:" -#: ../../mod/mail.php:242 +#: ../../mod/mail.php:250 msgid "Send" msgstr "Verzenden" -#: ../../mod/mail.php:334 +#: ../../mod/mail.php:342 msgid "Delete message" msgstr "Bericht verwijderen" -#: ../../mod/mail.php:335 +#: ../../mod/mail.php:343 msgid "Delivery report" msgstr "Afleveringsrapport" -#: ../../mod/mail.php:336 +#: ../../mod/mail.php:344 msgid "Recall message" msgstr "Bericht intrekken" -#: ../../mod/mail.php:338 +#: ../../mod/mail.php:346 msgid "Message has been recalled." msgstr "Bericht is ingetrokken." -#: ../../mod/mail.php:355 +#: ../../mod/mail.php:363 msgid "Delete Conversation" msgstr "Verwijder conversatie" -#: ../../mod/mail.php:357 +#: ../../mod/mail.php:365 msgid "" "No secure communications available. You <strong>may</strong> be able to " "respond from the sender's profile page." msgstr "Geen veilige communicatie beschikbaar. <strong>Mogelijk</strong> kan je reageren op de kanaalpagina van de afzender." -#: ../../mod/mail.php:361 +#: ../../mod/mail.php:369 msgid "Send Reply" msgstr "Antwoord versturen" -#: ../../mod/mail.php:366 +#: ../../mod/mail.php:374 #, php-format msgid "Your message for %s (%s):" msgstr "Jouw privébericht aan %s (%s):" -#: ../../mod/post.php:234 -msgid "" -"Remote authentication blocked. You are logged into this site locally. Please" -" logout and retry." -msgstr "Authenticatie op afstand geblokkeerd. Je bent lokaal op deze hub ingelogd. Uitloggen en opnieuw proberen." - #: ../../mod/service_limits.php:19 msgid "No service class restrictions found." msgstr "Geen abonnementsbeperkingen gevonden." @@ -9377,3 +9373,9 @@ msgstr "Cron is niet actief" #, php-format msgid "[hubzilla] Cron tasks not running on %s" msgstr "[hubzilla] Cron-taken zijn niet actief op %s" + +#: ../../Zotlabs/Zot/Auth.php:140 +msgid "" +"Remote authentication blocked. You are logged into this site locally. Please" +" logout and retry." +msgstr "Authenticatie op afstand geblokkeerd. Je bent lokaal op deze hub ingelogd. Uitloggen en opnieuw proberen." diff --git a/view/nl/hstrings.php b/view/nl/hstrings.php index ea02d8633..76bb7ddc2 100644 --- a/view/nl/hstrings.php +++ b/view/nl/hstrings.php @@ -143,13 +143,6 @@ $a->strings["Collection is empty."] = "Collectie is leeg"; $a->strings["Collection: %s"] = "Collectie: %s"; $a->strings["Connection: %s"] = "Connectie: %s"; $a->strings["Connection not found."] = "Connectie niet gevonden."; -$a->strings["view full size"] = "volledige grootte tonen"; -$a->strings["\$Projectname Notification"] = "\$Projectname-notificatie"; -$a->strings["\$projectname"] = "\$projectname"; -$a->strings["Thank You,"] = "Bedankt,"; -$a->strings["%s Administrator"] = "Beheerder %s"; -$a->strings["Administrator"] = "Beheerder"; -$a->strings["No Subject"] = "Geen onderwerp"; $a->strings["l F d, Y \\@ g:i A"] = "l d F Y \\@ G:i"; $a->strings["Starts:"] = "Start:"; $a->strings["Finishes:"] = "Einde:"; @@ -700,6 +693,10 @@ $a->strings["%d connection in common"] = array( 1 => "%d gemeenschappelijke connecties", ); $a->strings["show more"] = "meer connecties weergeven"; +$a->strings["\$Projectname Notification"] = "\$Projectname-notificatie"; +$a->strings["\$projectname"] = "\$projectname"; +$a->strings["Thank You,"] = "Bedankt,"; +$a->strings["%s Administrator"] = "Beheerder %s"; $a->strings["%s <!item_type!>"] = "%s <!item_type!>"; $a->strings["[Hubzilla:Notify] New mail received at %s"] = "[Hubzilla:Notificatie] Nieuw privébericht ontvangen op %s"; $a->strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "%1\$s, %2\$s zond jou een nieuw privébericht om %3\$s."; @@ -892,6 +889,9 @@ $a->strings["Page Link"] = "Paginalink"; $a->strings["Title"] = "Titel"; $a->strings["Created"] = "Aangemaakt"; $a->strings["Edited"] = "Bewerkt"; +$a->strings["view full size"] = "volledige grootte tonen"; +$a->strings["Administrator"] = "Beheerder"; +$a->strings["No Subject"] = "Geen onderwerp"; $a->strings["Cannot locate DNS info for database server '%s'"] = "Kan DNS-informatie voor databaseserver '%s' niet vinden"; $a->strings["Image exceeds website size limit of %lu bytes"] = "Afbeelding is groter dan op deze hub toegestane limiet van %lu bytes"; $a->strings["Image file is empty."] = "Afbeeldingsbestand is leeg"; @@ -933,23 +933,6 @@ $a->strings["This is you"] = "Dit ben jij"; $a->strings["Image"] = "Afbeelding"; $a->strings["Insert Link"] = "Link invoegen"; $a->strings["Video"] = "Video"; -$a->strings["Not a valid email address"] = "Geen geldig e-mailadres"; -$a->strings["Your email domain is not among those allowed on this site"] = "Jouw e-maildomein is op deze hub niet toegestaan"; -$a->strings["Your email address is already registered at this site."] = "Jouw e-mailadres is al op deze hub geregistreerd."; -$a->strings["An invitation is required."] = "Een uitnodiging is vereist"; -$a->strings["Invitation could not be verified."] = "Uitnodiging kon niet geverifieerd worden"; -$a->strings["Please enter the required information."] = "Vul de vereiste informatie in."; -$a->strings["Failed to store account information."] = "Account-informatie kon niet opgeslagen worden."; -$a->strings["Registration confirmation for %s"] = "Registratiebevestiging voor %s"; -$a->strings["Registration request at %s"] = "Registratiebevestiging voor %s"; -$a->strings["your registration password"] = "jouw registratiewachtwoord"; -$a->strings["Registration details for %s"] = "Registratiegegevens voor %s"; -$a->strings["Account approved."] = "Account goedgekeurd"; -$a->strings["Registration revoked for %s"] = "Registratie ingetrokken voor %s"; -$a->strings["Account verified. Please login."] = "Account is geverifieerd. Je kan inloggen."; -$a->strings["Click here to upgrade."] = "Klik hier om te upgraden."; -$a->strings["This action exceeds the limits set by your subscription plan."] = "Deze handeling overschrijdt de beperkingen die voor jouw abonnement gelden."; -$a->strings["This action is not available under your subscription plan."] = "Deze handeling is niet mogelijk met jouw abonnement."; $a->strings["Site Admin"] = "Hubbeheerder"; $a->strings["Address Book"] = "Connecties"; $a->strings["Mood"] = "Stemming"; @@ -995,6 +978,23 @@ $a->strings["Celebrity/Soapbox"] = "Beroemdheid/alleen volgen"; $a->strings["Group Repository"] = "Groepsopslag"; $a->strings["Custom/Expert Mode"] = "Expertmodus/handmatig aanpassen"; $a->strings["Profile Photos"] = "Profielfoto's"; +$a->strings["Not a valid email address"] = "Geen geldig e-mailadres"; +$a->strings["Your email domain is not among those allowed on this site"] = "Jouw e-maildomein is op deze hub niet toegestaan"; +$a->strings["Your email address is already registered at this site."] = "Jouw e-mailadres is al op deze hub geregistreerd."; +$a->strings["An invitation is required."] = "Een uitnodiging is vereist"; +$a->strings["Invitation could not be verified."] = "Uitnodiging kon niet geverifieerd worden"; +$a->strings["Please enter the required information."] = "Vul de vereiste informatie in."; +$a->strings["Failed to store account information."] = "Account-informatie kon niet opgeslagen worden."; +$a->strings["Registration confirmation for %s"] = "Registratiebevestiging voor %s"; +$a->strings["Registration request at %s"] = "Registratiebevestiging voor %s"; +$a->strings["your registration password"] = "jouw registratiewachtwoord"; +$a->strings["Registration details for %s"] = "Registratiegegevens voor %s"; +$a->strings["Account approved."] = "Account goedgekeurd"; +$a->strings["Registration revoked for %s"] = "Registratie ingetrokken voor %s"; +$a->strings["Account verified. Please login."] = "Account is geverifieerd. Je kan inloggen."; +$a->strings["Click here to upgrade."] = "Klik hier om te upgraden."; +$a->strings["This action exceeds the limits set by your subscription plan."] = "Deze handeling overschrijdt de beperkingen die voor jouw abonnement gelden."; +$a->strings["This action is not available under your subscription plan."] = "Deze handeling is niet mogelijk met jouw abonnement."; $a->strings["Permission Denied."] = "Toegang geweigerd"; $a->strings["File not found."] = "Bestand niet gevonden."; $a->strings["Edit file permissions"] = "Bestandsrechten bewerken"; @@ -1214,8 +1214,6 @@ $a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for t $a->strings["Bookmark added"] = "Bladwijzer toegevoegd"; $a->strings["My Bookmarks"] = "Mijn bladwijzers"; $a->strings["My Connections Bookmarks"] = "Bladwijzers van mijn connecties"; -$a->strings["\$Projectname"] = "\$Projectname"; -$a->strings["Welcome to %s"] = "Welkom op %s"; $a->strings["This setting requires special processing and editing has been blocked."] = "Deze instelling vereist een speciaal proces en bewerken is geblokkeerd."; $a->strings["Configuration Editor"] = "Configuratiebewerker"; $a->strings["Warning: Changing some settings could render your channel inoperable. Please leave this page unless you are comfortable with and knowledgeable about how to correctly use this feature."] = "Waarschuwing: het veranderen van sommige instellingen kunnen jouw kanaal onklaar maken. Verlaat deze pagina, tenzij je weet waar je mee bezig bent en voldoende kennis bezit over hoe je deze functies moet gebruiken. "; @@ -1477,43 +1475,25 @@ $a->strings["For either option, please choose whether to make this hub your new $a->strings["Make this hub my primary location"] = "Stel deze hub als mijn primaire locatie in"; $a->strings["Import existing posts if possible (experimental - limited by available memory"] = "Importeer bestaande berichten wanneer mogelijk (experimenteel - afhankelijk van beschikbaar servergeheugen)"; $a->strings["This process may take several minutes to complete. Please submit the form only once and leave this page open until finished."] = "Dit proces kan enkele minuten in beslag nemen. Klik maar één keer op opslaan en verlaat deze pagina niet alvorens het proces is voltooid."; -$a->strings["Page owner information could not be retrieved."] = "Informatie over de pagina-eigenaar werd niet ontvangen."; -$a->strings["Album not found."] = "Album niet gevonden."; -$a->strings["Delete Album"] = "Verwijder album"; -$a->strings["Delete Photo"] = "Verwijder foto"; -$a->strings["No photos selected"] = "Geen foto's geselecteerd"; -$a->strings["Access to this item is restricted."] = "Toegang tot dit item is beperkt."; -$a->strings["%1$.2f MB of %2$.2f MB photo storage used."] = "%1$.2f MB van %2$.2f MB aan foto-opslag gebruikt."; -$a->strings["%1$.2f MB photo storage used."] = "%1$.2f MB aan foto-opslag gebruikt."; -$a->strings["Upload Photos"] = "Foto's uploaden"; -$a->strings["Enter an album name"] = "Vul een albumnaam in"; -$a->strings["or select an existing album (doubleclick)"] = "of kies een bestaand album (dubbelklikken)"; -$a->strings["Create a status post for this upload"] = "Plaats een bericht voor deze upload."; -$a->strings["Caption (optional):"] = "Bijschrift (optioneel):"; -$a->strings["Description (optional):"] = "Omschrijving (optioneel):"; -$a->strings["Album name could not be decoded"] = "Albumnaam kon niet gedecodeerd worden"; -$a->strings["Contact Photos"] = "Connectiefoto's"; -$a->strings["Show Newest First"] = "Nieuwste eerst weergeven"; -$a->strings["Show Oldest First"] = "Oudste eerst weergeven"; -$a->strings["Permission denied. Access to this item may be restricted."] = "Toegang geweigerd. Toegang tot dit item kan zijn beperkt."; -$a->strings["Photo not available"] = "Foto niet aanwezig"; -$a->strings["Use as profile photo"] = "Als profielfoto gebruiken"; -$a->strings["Private Photo"] = "Privéfoto"; -$a->strings["Previous"] = "Vorige"; -$a->strings["View Full Size"] = "Volledige grootte weergeven"; -$a->strings["Edit photo"] = "Foto bewerken"; -$a->strings["Rotate CW (right)"] = "Draai met de klok mee (naar rechts)"; -$a->strings["Rotate CCW (left)"] = "Draai tegen de klok in (naar links)"; -$a->strings["Enter a new album name"] = "Vul een nieuwe albumnaam in"; -$a->strings["or select an existing one (doubleclick)"] = "of kies een bestaand album (dubbelklikken)"; -$a->strings["Caption"] = "Bijschrift"; -$a->strings["Add a Tag"] = "Tag toevoegen"; -$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Voorbeeld: @bob, @Barbara_Jansen, @jan@voorbeeld.nl"; -$a->strings["Flag as adult in album view"] = "Markeer als voor volwassenen in albumweergave"; -$a->strings["In This Photo:"] = "Op deze foto:"; -$a->strings["Map"] = "Kaart"; -$a->strings["View Album"] = "Album weergeven"; -$a->strings["Recent Photos"] = "Recente foto's"; +$a->strings["Total invitation limit exceeded."] = "Limiet voor aantal uitnodigingen overschreden."; +$a->strings["%s : Not a valid email address."] = "%s : Geen geldig e-mailadres."; +$a->strings["Please join us on \$Projectname"] = "Uitnodiging voor \$Projectname"; +$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Limiet voor aantal uitnodigingen overschreden. Neem contact op met je hub-beheerder."; +$a->strings["%s : Message delivery failed."] = "%s: Aflevering bericht mislukt."; +$a->strings["%d message sent."] = array( + 0 => "%d bericht verzonden.", + 1 => "%d berichten verzonden.", +); +$a->strings["You have no more invitations available"] = "Je hebt geen uitnodigingen meer beschikbaar"; +$a->strings["Send invitations"] = "Uitnodigingen verzenden"; +$a->strings["Enter email addresses, one per line:"] = "Voer e-mailadressen in, één per regel:"; +$a->strings["Your message:"] = "Jouw bericht:"; +$a->strings["Please join my community on \$Projectname."] = "Hierbij nodig ik je uit om mij, en andere vrienden en kennissen, op \$Projectname te vergezellen. Lees meer over \$Projectname op https://redmatrix.me."; +$a->strings["You will need to supply this invitation code: "] = "Je moet deze uitnodigingscode opgeven: "; +$a->strings["1. Register at any \$Projectname location (they are all inter-connected)"] = "1. Registreer je op een willekeurige \$Projectname-hub (ze zijn allemaal onderling met elkaar verbonden):"; +$a->strings["2. Enter my \$Projectname network address into the site searchbar."] = "2. Nadat je bent ingelogd en een kanaal hebt aangemaakt kan je mijn \$Projectname-kanaaladres in het zoekveld invullen:"; +$a->strings["or visit "] = "of bezoek "; +$a->strings["3. Click [Connect]"] = "3. Klik op [+ Verbinden]"; $a->strings["Fetching URL returns error: %1\$s"] = "Ophalen URL gaf een foutmelding terug: %1\$s"; $a->strings["Image uploaded but image cropping failed."] = "Afbeelding geüpload, maar afbeelding kon niet worden bijgesneden. "; $a->strings["Image resize failed."] = "Afbeelding kon niet van grootte veranderd worden."; @@ -1654,8 +1634,8 @@ $a->strings["Verify Email Addresses"] = "E-mailadres verifieren"; $a->strings["Check to verify email addresses used in account registration (recommended)."] = "Inschakelen om e-mailadressen te verifiëren die tijdens de accountregistratie worden gebruikt (aanbevolen)."; $a->strings["Force publish"] = "Dwing kanaalvermelding af"; $a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Vink dit aan om af te dwingen dat alle kanalen op deze hub in de kanalengids worden vermeld."; -$a->strings["Disable discovery tab"] = "Ontdekkingstab"; -$a->strings["Remove the tab in the network view with public content pulled from sources chosen for this site."] = "Verwijder de tab in de matrix-weergave waarin zich een selectie aan openbare berichten bevindt, die automatisch voor deze hub zijn uitgekozen."; +$a->strings["Import Public Streams"] = "Openbare streams importeren"; +$a->strings["Import and allow access to public content pulled from other sites. Warning: this content is unmoderated."] = "Toegang verlenen tot openbare berichten die vanuit andere hubs worden geïmporteerd. Waarschuwing: de inhoud van deze berichten wordt niet gemodereerd."; $a->strings["login on Homepage"] = "Inlogformulier op de homepagina"; $a->strings["Present a login box to visitors on the home page if no other content has been configured."] = "Toon een inlogformulier voor bezoekers op de homepagina wanneer geen andere inhoud is geconfigureerd. "; $a->strings["Directory Server URL"] = "Server-URL voor de kanalengids"; @@ -1946,25 +1926,8 @@ $a->strings["Sync now"] = "Nu synchroniseren"; $a->strings["Please wait several minutes between consecutive operations."] = "Wacht enkele minuten tussen opeenvolgende handelingen."; $a->strings["When possible, drop a location by logging into that website/hub and removing your channel."] = "Wij adviseren, wanneer dit (nog) mogelijk is, de locatie te verwijderen door op de hub van de kloon in te loggen en het kanaal daar te verwijderen."; $a->strings["Use this form to drop the location if the hub is no longer operating."] = "Gebruik dit formulier om de locatie te verwijderen wanneer de hub van de kloon niet meer operationeel is."; -$a->strings["Total invitation limit exceeded."] = "Limiet voor aantal uitnodigingen overschreden."; -$a->strings["%s : Not a valid email address."] = "%s : Geen geldig e-mailadres."; -$a->strings["Please join us on \$Projectname"] = "Uitnodiging voor \$Projectname"; -$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Limiet voor aantal uitnodigingen overschreden. Neem contact op met je hub-beheerder."; -$a->strings["%s : Message delivery failed."] = "%s: Aflevering bericht mislukt."; -$a->strings["%d message sent."] = array( - 0 => "%d bericht verzonden.", - 1 => "%d berichten verzonden.", -); -$a->strings["You have no more invitations available"] = "Je hebt geen uitnodigingen meer beschikbaar"; -$a->strings["Send invitations"] = "Uitnodigingen verzenden"; -$a->strings["Enter email addresses, one per line:"] = "Voer e-mailadressen in, één per regel:"; -$a->strings["Your message:"] = "Jouw bericht:"; -$a->strings["Please join my community on \$Projectname."] = "Hierbij nodig ik je uit om mij, en andere vrienden en kennissen, op \$Projectname te vergezellen. Lees meer over \$Projectname op https://redmatrix.me."; -$a->strings["You will need to supply this invitation code: "] = "Je moet deze uitnodigingscode opgeven:"; -$a->strings["1. Register at any \$Projectname location (they are all inter-connected)"] = "1. Registreer je op een willekeurige \$Projectname-hub (ze zijn allemaal onderling met elkaar verbonden):"; -$a->strings["2. Enter my \$Projectname network address into the site searchbar."] = "2. Nadat je bent ingelogd en een kanaal hebt aangemaakt kan je mijn \$Projectname-kanaaladres in het zoekveld invullen:"; -$a->strings["or visit "] = "of bezoek "; -$a->strings["3. Click [Connect]"] = "3. Klik op [+ Verbinden]"; +$a->strings["\$Projectname"] = "\$Projectname"; +$a->strings["Welcome to %s"] = "Welkom op %s"; $a->strings["Please login."] = "Inloggen."; $a->strings["Xchan Lookup"] = "Xchan opzoeken"; $a->strings["Lookup xchan beginning with (or webbie): "] = "Zoek een xchan (of webbie) die begint met:"; @@ -1972,6 +1935,43 @@ $a->strings["Not found."] = "Niet gevonden."; $a->strings["You must be logged in to see this page."] = "Je moet zijn ingelogd om deze pagina te kunnen bekijken."; $a->strings["Insufficient permissions. Request redirected to profile page."] = "Onvoldoende permissies. Doorgestuurd naar profielpagina."; $a->strings["Item not available."] = "Item is niet aanwezig."; +$a->strings["Page owner information could not be retrieved."] = "Informatie over de pagina-eigenaar werd niet ontvangen."; +$a->strings["Album not found."] = "Album niet gevonden."; +$a->strings["Delete Album"] = "Verwijder album"; +$a->strings["Delete Photo"] = "Verwijder foto"; +$a->strings["No photos selected"] = "Geen foto's geselecteerd"; +$a->strings["Access to this item is restricted."] = "Toegang tot dit item is beperkt."; +$a->strings["%1$.2f MB of %2$.2f MB photo storage used."] = "%1$.2f MB van %2$.2f MB aan foto-opslag gebruikt."; +$a->strings["%1$.2f MB photo storage used."] = "%1$.2f MB aan foto-opslag gebruikt."; +$a->strings["Upload Photos"] = "Foto's uploaden"; +$a->strings["Enter an album name"] = "Vul een albumnaam in"; +$a->strings["or select an existing album (doubleclick)"] = "of kies een bestaand album (dubbelklikken)"; +$a->strings["Create a status post for this upload"] = "Plaats een bericht voor deze upload."; +$a->strings["Caption (optional):"] = "Bijschrift (optioneel):"; +$a->strings["Description (optional):"] = "Omschrijving (optioneel):"; +$a->strings["Album name could not be decoded"] = "Albumnaam kon niet gedecodeerd worden"; +$a->strings["Contact Photos"] = "Connectiefoto's"; +$a->strings["Show Newest First"] = "Nieuwste eerst weergeven"; +$a->strings["Show Oldest First"] = "Oudste eerst weergeven"; +$a->strings["Permission denied. Access to this item may be restricted."] = "Toegang geweigerd. Toegang tot dit item kan zijn beperkt."; +$a->strings["Photo not available"] = "Foto niet aanwezig"; +$a->strings["Use as profile photo"] = "Als profielfoto gebruiken"; +$a->strings["Private Photo"] = "Privéfoto"; +$a->strings["Previous"] = "Vorige"; +$a->strings["View Full Size"] = "Volledige grootte weergeven"; +$a->strings["Edit photo"] = "Foto bewerken"; +$a->strings["Rotate CW (right)"] = "Draai met de klok mee (naar rechts)"; +$a->strings["Rotate CCW (left)"] = "Draai tegen de klok in (naar links)"; +$a->strings["Enter a new album name"] = "Vul een nieuwe albumnaam in"; +$a->strings["or select an existing one (doubleclick)"] = "of kies een bestaand album (dubbelklikken)"; +$a->strings["Caption"] = "Bijschrift"; +$a->strings["Add a Tag"] = "Tag toevoegen"; +$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Voorbeeld: @bob, @Barbara_Jansen, @jan@voorbeeld.nl"; +$a->strings["Flag as adult in album view"] = "Markeer als voor volwassenen in albumweergave"; +$a->strings["In This Photo:"] = "Op deze foto:"; +$a->strings["Map"] = "Kaart"; +$a->strings["View Album"] = "Album weergeven"; +$a->strings["Recent Photos"] = "Recente foto's"; $a->strings["Remote privacy information not available."] = "Privacy-informatie op afstand niet beschikbaar."; $a->strings["Visible to:"] = "Zichtbaar voor:"; $a->strings["Export Channel"] = "Kanaal exporteren"; @@ -2082,7 +2082,6 @@ $a->strings["Delete Conversation"] = "Verwijder conversatie"; $a->strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Geen veilige communicatie beschikbaar. <strong>Mogelijk</strong> kan je reageren op de kanaalpagina van de afzender."; $a->strings["Send Reply"] = "Antwoord versturen"; $a->strings["Your message for %s (%s):"] = "Jouw privébericht aan %s (%s):"; -$a->strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "Authenticatie op afstand geblokkeerd. Je bent lokaal op deze hub ingelogd. Uitloggen en opnieuw proberen."; $a->strings["No service class restrictions found."] = "Geen abonnementsbeperkingen gevonden."; $a->strings["Version %s"] = "Versie %s"; $a->strings["Installed plugins/addons/apps:"] = "Ingeschakelde plug-ins/add-ons/apps:"; @@ -2213,3 +2212,4 @@ $a->strings["Website SSL certificate is not valid. Please correct."] = "Het SSL- $a->strings["[hubzilla] Website SSL error for %s"] = "[hubzilla] Probleem met SSL-certificaat voor %s"; $a->strings["Cron/Scheduled tasks not running."] = "Cron is niet actief"; $a->strings["[hubzilla] Cron tasks not running on %s"] = "[hubzilla] Cron-taken zijn niet actief op %s"; +$a->strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "Authenticatie op afstand geblokkeerd. Je bent lokaal op deze hub ingelogd. Uitloggen en opnieuw proberen."; diff --git a/view/nl/register_open_eml.tpl b/view/nl/register_open_eml.tpl index e634664a6..411bd00be 100644 --- a/view/nl/register_open_eml.tpl +++ b/view/nl/register_open_eml.tpl @@ -11,7 +11,7 @@ bezoeken en een nieuwe wachtwoord aanvragen. Je kan daarna inloggen, een kanaal meteen via 'instellingen > account' (linksboven) het account verwijderen (onderaan). Excuses voor het eventuele ongemak. -Wanneer dit account wel door jou is aangemaakt: Dank je en welkom op de {{$sitename}}. +Wanneer dit account wel door jou is aangemaakt: Dank je en welkom op {{$sitename}}. Vriendelijke groet, Beheerder {{$sitename}} ({{$siteurl}}) diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css index 16f7845e2..5fcf901fb 100644 --- a/view/theme/redbasic/css/style.css +++ b/view/theme/redbasic/css/style.css @@ -249,11 +249,6 @@ footer { color: $font_colour; } -#login-main { - max-width: 300px; - margin-top: 50px; -} - #cropimage-wrapper, #cropimage-preview-wrapper { float: left; padding: 30px; diff --git a/view/theme/redbasic/schema/bluegrid.css b/view/theme/redbasic/schema/bluegrid.css index 0eb3dab1f..820e84baa 100644 --- a/view/theme/redbasic/schema/bluegrid.css +++ b/view/theme/redbasic/schema/bluegrid.css @@ -284,8 +284,12 @@ input { border-radius: 0px; } +.home-welcome { + color: #FFF; + margin-bottom: 30px; +} + #login-main { - max-width: 100%; margin-top: 0; } @@ -341,7 +345,7 @@ input { background-color: #FFF; } -.btn-primary, input#event-submit, input#rmagic-submit-button, input#lostpass-submit-button, input#side-follow-submit, .profile-edit-submit-wrapper > input.profile-edit-submit-button, input#profile-photo-submit, form#chat-form > input, div#adminpage > form > div.submit > input, input.sources-submit, input.contact-edit-submit, input#dbtn-submit, input#newchannel-submit-button, input#contacts-search-submit { +.btn-primary, input#event-submit, input#rmagic-submit-button, input#lostpass-submit-button, input#side-follow-submit, .profile-edit-submit-wrapper > input.profile-edit-submit-button, input#profile-photo-submit, form#chat-form > input, div#adminpage > form > div.submit > input, input.sources-submit, input.contact-edit-submit, input#dbtn-submit, input#newchannel-submit-button, input#contacts-search-submit, input#register-submit-button { background-color: #FFF; color: #43488A; border-radius: 0px; @@ -350,7 +354,7 @@ input { transition: all .3s ease-in-out; } -.btn-primary:hover, .btn-primary:focus, input#event-submit:hover, input#event-submit:focus, input#rmagic-submit-button:hover, input#rmagic-submit-button:focus, input#lostpass-submit-button:hover, input#lostpass-submit-button:focus, input#side-follow-submit:hover, input#side-follow-submit:focus, .profile-edit-submit-wrapper > input.profile-edit-submit-button:hover, .profile-edit-submit-wrapper > input.profile-edit-submit-button:focus, input#profile-photo-submit:hover, input#profile-photo-submit:focus, form#chat-form > input:hover, form#chat-form > input:focus, div#adminpage > form > div.submit > input:hover, div#adminpage > form > div.submit > input:focus, input.sources-submit:hover, input.sources-submit:focus, input.contact-edit-submit:focus, input.contact-edit-submit:hover, input#dbtn-submit:hover, input#dbtn-submit:focus, input#newchannel-submit-button:hover, input#newchannel-submit-button:focus, input#contacts-search-submit:hover, input#contacts-search-submit:focus { +.btn-primary:hover, .btn-primary:focus, input#event-submit:hover, input#event-submit:focus, input#rmagic-submit-button:hover, input#rmagic-submit-button:focus, input#lostpass-submit-button:hover, input#lostpass-submit-button:focus, input#side-follow-submit:hover, input#side-follow-submit:focus, .profile-edit-submit-wrapper > input.profile-edit-submit-button:hover, .profile-edit-submit-wrapper > input.profile-edit-submit-button:focus, input#profile-photo-submit:hover, input#profile-photo-submit:focus, form#chat-form > input:hover, form#chat-form > input:focus, div#adminpage > form > div.submit > input:hover, div#adminpage > form > div.submit > input:focus, input.sources-submit:hover, input.sources-submit:focus, input.contact-edit-submit:focus, input.contact-edit-submit:hover, input#dbtn-submit:hover, input#dbtn-submit:focus, input#newchannel-submit-button:hover, input#newchannel-submit-button:focus, input#contacts-search-submit:hover, input#contacts-search-submit:focus, input#register-submit-button:hover, input#register-submit-button:focus { border-color: #FFF; background-color: #43488A; color: #FFF; diff --git a/view/tpl/jot.tpl b/view/tpl/jot.tpl index 32e5fa060..d8b58c5d2 100755 --- a/view/tpl/jot.tpl +++ b/view/tpl/jot.tpl @@ -114,8 +114,6 @@ <li class="divider visible-xs"></li> {{if $writefiles}}<li class="visible-xs"><a id="wall-file-upload-sub" href="#" ><i class="icon-paper-clip"></i> {{$attach}}</a></li>{{/if}} <li class="visible-xs"><a href="#" onclick="jotGetLink(); return false;"><i class="icon-link"></i> {{$weblink}}</a></li> - <!--li class="visible-xs"><a href="#" onclick="jotVideoURL(); return false;"><i class="icon-facetime-video"></i> {{$video}}</a></li--> - <!--li class="visible-xs"><a href="#" onclick="jotAudioURL(); return false;"><i class="icon-volume-up"></i> {{$audio}}</a></li--> {{/if}} <li class="divider visible-xs"></li> <li class="visible-xs visible-sm"><a href="#" onclick="jotGetLocation(); return false;"><i class="icon-globe"></i> {{$setloc}}</a></li> diff --git a/zot b/zot deleted file mode 160000 -Subproject d94e61a7b627381715751fb6cb6c0cecf7ece3f |