diff options
-rw-r--r-- | include/crypto.php | 23 | ||||
-rwxr-xr-x | include/items.php | 22 | ||||
-rw-r--r-- | include/network.php | 459 | ||||
-rw-r--r-- | mod/xrd.php | 17 | ||||
-rw-r--r-- | version.inc | 2 | ||||
-rw-r--r-- | view/de/hmessages.po | 916 | ||||
-rw-r--r-- | view/de/hstrings.php | 238 | ||||
-rwxr-xr-x | view/tpl/xrd_person.tpl | 5 |
8 files changed, 852 insertions, 830 deletions
diff --git a/include/crypto.php b/include/crypto.php index 3cddc7581..d82ee5114 100644 --- a/include/crypto.php +++ b/include/crypto.php @@ -308,11 +308,33 @@ function metorsa($m,$e) { return $key; } + + function salmon_key($pubkey) { pemtome($pubkey,$m,$e); return 'RSA' . '.' . base64url_encode($m,true) . '.' . base64url_encode($e,true) ; } + +function convert_salmon_key($key) { + + if(strstr($key,',')) + $rawkey = substr($key,strpos($key,',')+1); + else + $rawkey = substr($key,5); + + $key_info = explode('.',$rawkey); + + $m = base64url_decode($key_info[1]); + $e = base64url_decode($key_info[2]); + + logger('key details: ' . print_r($key_info,true), LOGGER_DATA); + $salmon_key = metopem($m,$e); + return $salmon_key; + +} + + function z_obscure($s) { return json_encode(crypto_encapsulate($s,get_config('system','pubkey'))); } @@ -322,3 +344,4 @@ function z_unobscure($s) { return $s; return crypto_unencapsulate(json_decode($s,true),get_config('system','prvkey')); } + diff --git a/include/items.php b/include/items.php index c3a0b82d2..2884d8e52 100755 --- a/include/items.php +++ b/include/items.php @@ -3848,8 +3848,8 @@ function consume_feed($xml, $importer, &$contact, $pass = 0) { $datarray = get_atom_elements($feed,$item,$author); if($contact['xchan_network'] === 'rss') { - $res['public_policy'] = 'specific'; - $res['comment_policy'] = 'none'; + $datarray['public_policy'] = 'specific'; + $datarray['comment_policy'] = 'none'; } if((! x($author,'author_name')) || ($author['author_is_feed'])) @@ -3911,8 +3911,8 @@ function consume_feed($xml, $importer, &$contact, $pass = 0) { $datarray = get_atom_elements($feed,$item,$author); if($contact['xchan_network'] === 'rss') { - $res['public_policy'] = 'specific'; - $res['comment_policy'] = 'none'; + $datarray['public_policy'] = 'specific'; + $datarray['comment_policy'] = 'none'; } @@ -3932,6 +3932,16 @@ function consume_feed($xml, $importer, &$contact, $pass = 0) { $datarray['author_xchan'] = ''; + if(activity_match($datarray['verb'],ACTIVITY_FOLLOW) && $datarray['obj_type'] === ACTIVITY_OBJ_PERSON) { + $cb = array('item' => $datarray,'channel' => $importer, 'xchan' => null, 'author' => $author, 'caught' => false); + call_hooks('follow_from_feed',$cb); + if($cb['caught']) { + if($cb['return_code']) + http_status_exit($cb['return_code']); + continue; + } + } + if($author['author_link'] != $contact['xchan_url']) { $x = import_author_unknown(array('name' => $author['author_name'],'url' => $author['author_link'],'photo' => array('src' => $author['author_photo']))); if($x) @@ -4214,7 +4224,7 @@ function atom_entry($item,$type,$author,$owner,$comment = false,$cid = 0) { if(($item['parent'] != $item['id']) || ($item['parent_mid'] !== $item['mid']) || (($item['thr_parent'] !== '') && ($item['thr_parent'] !== $item['mid']))) { $parent_item = (($item['thr_parent']) ? $item['thr_parent'] : $item['parent_mid']); - $o .= '<thr:in-reply-to ref="' . xmlify($parent_item) . '" type="text/html" href="' . xmlify($item['plink']) . '" />' . "\r\n"; + $o .= '<thr:in-reply-to ref="' . z_root() . '/display/' . xmlify($parent_item) . '" type="text/html" href="' . xmlify($item['plink']) . '" />' . "\r\n"; } if(activity_match($item['obj_type'],ACTIVITY_OBJ_EVENT) && activity_match($item['verb'],ACTIVITY_POST)) { @@ -4232,7 +4242,7 @@ function atom_entry($item,$type,$author,$owner,$comment = false,$cid = 0) { $o .= '<content type="' . $type . '" >' . xmlify(prepare_text($body,$item['mimetype'])) . '</content>' . "\r\n"; } - $o .= '<id>' . xmlify($item['mid']) . '</id>' . "\r\n"; + $o .= '<id>' . z_root() . '/display/' . xmlify($item['mid']) . '</id>' . "\r\n"; $o .= '<published>' . xmlify(datetime_convert('UTC','UTC',$item['created'] . '+00:00',ATOM_TIME)) . '</published>' . "\r\n"; $o .= '<updated>' . xmlify(datetime_convert('UTC','UTC',$item['edited'] . '+00:00',ATOM_TIME)) . '</updated>' . "\r\n"; diff --git a/include/network.php b/include/network.php index 3efc82447..e7d341321 100644 --- a/include/network.php +++ b/include/network.php @@ -1061,32 +1061,16 @@ function discover_by_url($url,$arr = null) { } -function convert_salmon_key($key) { - - if(strstr($key,',')) - $rawkey = substr($key,strpos($key,',')+1); - else - $rawkey = substr($key,5); - - $key_info = explode('.',$rawkey); - - $m = base64url_decode($key_info[1]); - $e = base64url_decode($key_info[2]); - - logger('key details: ' . print_r($key_info,true), LOGGER_DEBUG); - $salmon_key = metopem($m,$e); - return $salmon_key; - -} - - function discover_by_webbie($webbie) { require_once('library/HTML5/Parser.php'); - $result = array(); - $network = null; + $result = array(); + + $network = null; + $diaspora = false; - $gnusoc = false; + $gnusoc = false; + $dfrn = false; $has_salmon = false; $salmon_key = false; @@ -1094,7 +1078,6 @@ function discover_by_webbie($webbie) { $diaspora_base = ''; $diaspora_guid = ''; $diaspora_key = ''; - $dfrn = false; $webbie = strtolower($webbie); @@ -1102,6 +1085,10 @@ function discover_by_webbie($webbie) { if($x && array_key_exists('links',$x) && $x['links']) { foreach($x['links'] as $link) { if(array_key_exists('rel',$link)) { + + // If we discover zot - don't search further; grab the info and get out of + // here. + if($link['rel'] == 'http://purl.org/zot/protocol') { logger('discover_by_webbie: zot found for ' . $webbie, LOGGER_DEBUG); if(array_key_exists('zot',$x) && $x['zot']['success']) @@ -1115,6 +1102,9 @@ function discover_by_webbie($webbie) { } } } + if($link['rel'] == NAMESPACE_DFRN) { + $dfrn = $link['href']; + } if($link['rel'] == 'magic-public-key') { if(substr($link['href'],0,5) === 'data:') { $salmon_key = convert_salmon_key($link['href']); @@ -1131,88 +1121,40 @@ function discover_by_webbie($webbie) { } } - logger('webfing: ' . print_r($x,true), LOGGER_DATA, LOG_INFO); + logger('webfinger: ' . print_r($x,true), LOGGER_DATA, LOG_INFO); $arr = array('address' => $webbie, 'success' => false, 'webfinger' => $x); call_hooks('discover_channel_webfinger', $arr); if($arr['success']) return true; - if($salmon_key && $has_salmon && $atom_feed) { - - $gnusoc = true; - $addr = $x['address']; + $aliases = array(); - $m = parse_url($x['location']); + // Now let's make some decisions on what we may need + // to obtain further info - $k = z_fetch_url($atom_feed); - if($k['success']) - $feed_meta = feed_meta($k['body']); + $probe_atom = false; + $probe_old = false; + $probe_hcard = false; - // stash any discovered pubsubhubbub hubs in case we need to follow them - // this will save an expensive lookup later + $address = ''; + $location = ''; + $nickname = ''; + $fullname = ''; + $avatar = ''; + $pubkey = ''; - if($feed_meta['hubs']) - set_xconfig($addr,'system','push_hubs',$feed_meta['hubs']); + if(array_key_exists('address',$x)) + $address = $x['address']; + if(array_key_exists('location',$x)) + $location = $x['location']; + if(array_key_exists('nickname',$x)) + $nickname = $x['nickname']; - if($feed_meta && $feed_meta['author']) { - $r = q("select * from xchan where xchan_hash = '%s' limit 1", - dbesc($addr) - ); - if($r) { - $r = q("update xchan set xchan_name = '%s', xchan_network = '%s', xchan_name_date = '%s' where xchan_hash = '%s' limit 1", - dbesc(($feed_meta['author']['author_name']) ? $feed_meta['author']['author_name'] : $x['nickname']), - dbesc('gnusoc'), - dbesc(datetime_convert()), - dbesc($addr) - ); - } - else { - - $r = q("insert into xchan ( xchan_hash, xchan_guid, xchan_pubkey, xchan_addr, xchan_url, xchan_name, xchan_network, xchan_name_date ) values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s') ", - dbesc($addr), - dbesc($x['location']), - dbesc($salmon_key), - dbesc($addr), - dbesc($x['location']), - dbesc(($feed_meta['author']['author_name']) ? $feed_meta['author']['author_name'] : $x['nickname']), - dbesc('gnusoc'), - dbescdate(datetime_convert()) - ); - } - - $r = q("select * from hubloc where hubloc_hash = '%s' limit 1", - dbesc($addr) - ); - - if(! $r) { - - $r = q("insert into hubloc ( hubloc_guid, hubloc_hash, hubloc_addr, hubloc_network, hubloc_url, hubloc_host, hubloc_callback, hubloc_updated, hubloc_primary ) values ('%s','%s','%s','%s','%s','%s','%s','%s', 1)", - dbesc($x['location']), - dbesc($addr), - dbesc($addr), - dbesc('gnusoc'), - dbesc($m['scheme'] . '://' . $m['host']), - dbesc($m['host']), - dbesc($salmon), - dbescdate(datetime_convert()) - ); - } - $photos = import_xchan_photo($feed_meta['author']['author_photo'],$addr); - $r = q("update xchan set xchan_photo_date = '%s', xchan_photo_l = '%s', xchan_photo_m = '%s', xchan_photo_s = '%s', xchan_photo_mimetype = '%s' where xchan_hash = '%s'", - dbescdate(datetime_convert()), - dbesc($photos[0]), - dbesc($photos[1]), - dbesc($photos[2]), - dbesc($photos[3]), - dbesc($addr) - ); - return true; - - } - } - else { + if(! $x) + $probe_old = true; + if($probe_old) { $x = old_webfinger($webbie); if($x) { logger('old_webfinger: ' . print_r($x,true)); @@ -1245,174 +1187,195 @@ function discover_by_webbie($webbie) { $pubkey = $diaspora_key; $diaspora = true; } + if($link['@attributes']['rel'] == 'magic-public-key') { + if(substr($link['@attributes']['href'],0,5) === 'data:') { + $salmon_key = convert_salmon_key($link['@attributes']['href']); + } + } + if($link['@attributes']['rel'] == 'salmon') { + $has_salmon = true; + $salmon = $link['@attributes']['href']; + } + + if($link['@attributes']['rel'] == 'http://schemas.google.com/g/2010#updates-from') { + $atom_feed = $link['@attributes']['href']; + } + if($link['@attributes']['rel'] === 'alias') { + $aliases[] = $link['@attributes']['href']; + } + if($link['@attributes']['rel'] === 'subject') { + $subject = $link['@attributes']['href']; + } } } + } - if($diaspora && $diaspora_base && $diaspora_guid) { - $guid = $diaspora_guid; - $diaspora_base = trim($diaspora_base,'/'); + if($subject || $aliases) { + if(strpos($webbie,'@')) { + $rhs = substr($webbie,strpos($webbie,'@')+1); + } + else { + $m = parse_url($webbie); + if($m) { + $rhs = $m['host'] . (($m['port']) ? ':' . $m['port'] : ''); + } + } - $notify = $diaspora_base . '/receive'; + $v = array('subject' => $subject,'aliases' => $aliases); + $address = find_webfinger_address($v,$rhs); + $location = find_webfinger_location($v,$rhs); + if($address) + $nickname = substr($address,0,strpos($address,'@')); - if(strpos($webbie,'@')) { - $addr = str_replace('acct:', '', $webbie); - $hostname = substr($webbie,strpos($webbie,'@')+1); - } - $network = 'diaspora'; - // until we get a dfrn layer, we'll use diaspora protocols for Friendica, - // but give it a different network so we can go back and fix these when we get proper support. - // It really should be just 'friendica' but we also want to distinguish - // between Friendica sites that we can use D* protocols with and those we can't. - // Some Friendica sites will have Diaspora disabled. - if($dfrn) - $network = 'friendica-over-diaspora'; - if($hcard) { - $vcard = scrape_vcard($hcard); - $vcard['nick'] = substr($webbie,0,strpos($webbie,'@')); - if(! $vcard['fn']) - $vcard['fn'] = $webbie; - } - - $r = q("select * from xchan where xchan_hash = '%s' limit 1", - dbesc($addr) - ); + } - // fix relative urls - if($vcard['photo'] && (strpos($vcard['photo'],'http') !== 0)) - $vcard['photo'] = $diaspora_base . '/' . $vcard['photo']; - - /** - * - * Diaspora communications are notoriously unreliable and receiving profile update messages (indeed any messages) - * are pretty much random luck. We'll check the timestamp of the xchan_name_date at a higher level and refresh - * this record once a month; because if you miss a profile update message and they update their profile photo or name - * you're otherwise stuck with stale info until they change their profile again - which could be years from now. - * - */ - - if($r) { - $r = q("update xchan set xchan_name = '%s', xchan_network = '%s', xchan_name_date = '%s' where xchan_hash = '%s' limit 1", - dbesc($vcard['fn']), - dbesc($network), - dbesc(datetime_convert()), - dbesc($addr) - ); + if($salmon_key && $has_salmon && $atom_feed && (! $dfrn) && (! $diaspora)) { + $gnusoc = true; + $probe_atom = true; + } + + if(! $pubkey) + $pubkey = $salmon_key; + + if(($dfrn || $diaspora) && $hcard) + $probe_hcard = true; + + if(! $fullname) + $fullname = $nickname; + + if($probe_atom) { + $k = z_fetch_url($atom_feed); + if($k['success']) + $feed_meta = feed_meta($k['body']); + if($feed_meta) { + + // stash any discovered pubsubhubbub hubs in case we need to follow them + // this will save an expensive lookup later + + if($feed_meta['hubs'] && $address) { + set_xconfig($address,'system','push_hubs',$feed_meta['hubs']); + set_xconfig($address,'system','feed_url',$atom_feed); } - else { - - $r = q("insert into xchan ( xchan_hash, xchan_guid, xchan_pubkey, xchan_addr, xchan_url, xchan_name, xchan_network, xchan_name_date ) values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s') ", - dbesc($addr), - dbesc($guid), - dbesc($pubkey), - dbesc($addr), - dbesc($profile), - dbesc($vcard['fn']), - dbesc($network), - dbescdate(datetime_convert()) - ); + if($feed_meta['author']['author_name']) { + $fullname = $feed_meta['author']['author_name']; } + if(! $avatar) { + if($feed_meta['author']['author_photo']) + $avatar = $feed_meta['author']['author_photo']; + } + } + } + else { + if($probe_hcard) { + $vcard = scrape_vcard($hcard); + if($vcard) { + logger('vcard: ' . print_r($vcard,true), LOGGER_DATA); + if($vcard['fn']) + $fullname = $vcard['fn']; + if($vcard['photo'] && (strpos($vcard['photo'],'http') !== 0)) + $vcard['photo'] = $diaspora_base . '/' . $vcard['photo']; + if(! $avatar) + $avatar = $vcard['photo']; - $r = q("select * from hubloc where hubloc_hash = '%s' limit 1", - dbesc($webbie) - ); - - if(! $r) { - - $r = q("insert into hubloc ( hubloc_guid, hubloc_hash, hubloc_addr, hubloc_network, hubloc_url, hubloc_host, hubloc_callback, hubloc_updated, hubloc_primary ) values ('%s','%s','%s','%s','%s','%s','%s','%s', 1)", - dbesc($guid), - dbesc($addr), - dbesc($addr), - dbesc($network), - dbesc(trim($diaspora_base,'/')), - dbesc($hostname), - dbesc($notify), - dbescdate(datetime_convert()) - ); } - $photos = import_xchan_photo($vcard['photo'],$addr); - $r = q("update xchan set xchan_photo_date = '%s', xchan_photo_l = '%s', xchan_photo_m = '%s', xchan_photo_s = '%s', xchan_photo_mimetype = '%s' where xchan_hash = '%s'", - dbescdate(datetime_convert()), - dbesc($photos[0]), - dbesc($photos[1]), - dbesc($photos[2]), - dbesc($photos[3]), - dbesc($addr) - ); - return true; + } + } + + if(($profile) && (! $location)) + $location = $profile; + + if($location) { + $m = parse_url($location); + $base = $m['scheme'] . '://' . $m['host']; + $host = $m['host']; + } + + if($diaspora && $diaspora_base && $diaspora_guid) { + if($dfrn) + $network = 'friendica-over-diaspora'; + else + $network = 'diaspora'; + + $base = trim($diaspora_base,'/'); + $notify = $base . '/receive'; + + } + else { + if($gnusoc) { + $network = 'gnusoc'; + $notify = $salmon; } } - return false; -/* - $vcard['fn'] = notags($vcard['fn']); - $vcard['nick'] = str_replace(' ','',notags($vcard['nick'])); - - $result['name'] = $vcard['fn']; - $result['nick'] = $vcard['nick']; - $result['guid'] = $guid; - $result['url'] = $profile; - $result['hostname'] = $hostname; - $result['addr'] = $addr; - $result['batch'] = $batch; - $result['notify'] = $notify; - $result['poll'] = $poll; - $result['request'] = $request; - $result['confirm'] = $confirm; - $result['poco'] = $poco; - $result['photo'] = $vcard['photo']; - $result['priority'] = $priority; - $result['network'] = $network; - $result['alias'] = $alias; - $result['pubkey'] = $pubkey; - - logger('probe_url: ' . print_r($result,true), LOGGER_DEBUG); - - return $result; - -*/ - -/* Sample Diaspora result. - -Array -( - [name] => Mike Macgirvin - [nick] => macgirvin - [guid] => a9174a618f8d269a - [url] => https://joindiaspora.com/u/macgirvin - [hostname] => joindiaspora.com - [addr] => macgirvin@joindiaspora.com - [batch] => - [notify] => https://joindiaspora.com/receive - [poll] => https://joindiaspora.com/public/macgirvin.atom - [request] => - [confirm] => - [poco] => - [photo] => https://joindiaspora.s3.amazonaws.com/uploads/images/thumb_large_fec4e6eef13ae5e56207.jpg - [priority] => - [network] => diaspora - [alias] => - [pubkey] => -----BEGIN PUBLIC KEY----- -MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtihtyIuRDWkDpCA+I1UaQ -jI4S7k625+A7EEJm+pL2ZVSJxeCKiFeEgHBQENjLMNNm8l8F6blxgQqE6ZJ9Spa7f -tlaXYTRCrfxKzh02L3hR7sNA+JS/nXJaUAIo+IwpIEspmcIRbD9GB7Wv/rr+M28uH -31EeYyDz8QL6InU/bJmnCdFvmEMBQxJOw1ih9tQp7UNJAbUMCje0WYFzBz7sfcaHL -OyYcCOqOCBLdGucUoJzTQ9iDBVzB8j1r1JkIHoEb2moUoKUp+tkCylNfd/3IVELF9 -7w1Qjmit3m50OrJk2DQOXvCW9KQxaQNdpRPSwhvemIt98zXSeyZ1q/YjjOwG0DWDq -AF8aLj3/oQaZndTPy/6tMiZogKaijoxj8xFLuPYDTw5VpKquriVC0z8oxyRbv4t9v -8JZZ9BXqzmayvY3xZGGp8NulrfjW+me2bKh0/df1aHaBwpZdDTXQ6kqAiS2FfsuPN -vg57fhfHbL1yJ4oDbNNNeI0kJTGchXqerr8C20khU/cQ2Xt31VyEZtnTB665Ceugv -kp3t2qd8UpAVKl430S5Quqx2ymfUIdxdW08CEjnoRNEL3aOWOXfbf4gSVaXmPCR4i -LSIeXnd14lQYK/uxW/8cTFjcmddsKxeXysoQxbSa9VdDK+KkpZdgYXYrTTofXs6v+ -4afAEhRaaY+MCAwEAAQ== ------END PUBLIC KEY----- - -) -*/ + logger('network: ' . $network); + logger('address: ' . $address); + logger('fullname: ' . $fullname); + logger('pubkey: ' . $pubkey); + logger('location: ' . $location); + + + + // if we have everything we need, let's create the records + + if($network && $address && $fullname && $pubkey && $location) { + $r = q("select * from xchan where xchan_hash = '%s' limit 1", + dbesc($address) + ); + if($r) { + $r = q("update xchan set xchan_name = '%s', xchan_network = '%s', xchan_name_date = '%s' where xchan_hash = '%s' limit 1", + dbesc($fullname), + dbesc($network), + dbesc(datetime_convert()), + dbesc($address) + ); + } + else { + $r = q("insert into xchan ( xchan_hash, xchan_guid, xchan_pubkey, xchan_addr, xchan_url, xchan_name, xchan_network, xchan_name_date ) values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s') ", + dbesc($address), + dbesc(($diaspora_guid) ? $diaspora_guid : $location), + dbesc($pubkey), + dbesc($address), + dbesc($location), + dbesc($fullname), + dbesc($network), + dbescdate(datetime_convert()) + ); + } + + $r = q("select * from hubloc where hubloc_hash = '%s' limit 1", + dbesc($address) + ); + + if(! $r) { + $r = q("insert into hubloc ( hubloc_guid, hubloc_hash, hubloc_addr, hubloc_network, hubloc_url, hubloc_host, hubloc_callback, hubloc_updated, hubloc_primary ) values ('%s','%s','%s','%s','%s','%s','%s','%s', 1)", + dbesc(($diaspora_guid) ? $diaspora_guid : $location), + dbesc($address), + dbesc($address), + dbesc($network), + dbesc($base), + dbesc($host), + dbesc($notify), + dbescdate(datetime_convert()) + ); + } + $photos = import_xchan_photo($avatar,$address); + $r = q("update xchan set xchan_photo_date = '%s', xchan_photo_l = '%s', xchan_photo_m = '%s', xchan_photo_s = '%s', xchan_photo_mimetype = '%s' where xchan_hash = '%s'", + dbescdate(datetime_convert()), + dbesc($photos[0]), + dbesc($photos[1]), + dbesc($photos[2]), + dbesc($photos[3]), + dbesc($address) + ); + return true; + } + return false; } + function webfinger_rfc7033($webbie,$zot = false) { @@ -1497,8 +1460,8 @@ function find_webfinger_location($j,$rhs) { function match_webfinger_location($s,$h) { - // GNU-social and the older StatusNet - if(preg_match('|' . $h . '/user/([0-9]*?)$|',$s)) + // GNU-social and the older StatusNet - the $host/user/123 form doesn't work + if(preg_match('|' . $h . '/index.php/user/([0-9]*?)$|',$s)) return $s; // Redmatrix / hubzilla if(preg_match('|' . $h . '/channel/|',$s)) @@ -1573,7 +1536,7 @@ function fetch_lrdd_template($host) { function fetch_xrd_links($url) { -logger('fetch_xrd_links: ' . $url); + logger('fetch_xrd_links: ' . $url, LOGGER_DEBUG); $redirects = 0; $x = z_fetch_url($url,false,$redirects,array('timeout' => 20)); @@ -1619,6 +1582,10 @@ logger('fetch_xrd_links: ' . $url); } } + if(isset($arr['xrd']['subject'])) { + $links[]['@attributes'] = array('rel' => 'subject' , 'href' => $arr['xrd']['subject']); + } + logger('fetch_xrd_links: ' . print_r($links,true), LOGGER_DATA); return $links; diff --git a/mod/xrd.php b/mod/xrd.php index da4ab51a4..ed8e1eabe 100644 --- a/mod/xrd.php +++ b/mod/xrd.php @@ -7,8 +7,12 @@ function xrd_init(&$a) { $uri = urldecode(notags(trim($_GET['uri']))); logger('xrd: ' . $uri,LOGGER_DEBUG); - if(substr($uri,0,4) === 'http') + $resource = $uri; + + if(substr($uri,0,4) === 'http') { + $uri = str_replace('~','',$uri); $name = basename($uri); + } else { $local = str_replace('acct:', '', $uri); if(substr($local,0,2) == '//') @@ -35,9 +39,18 @@ function xrd_init(&$a) { header("Content-type: application/xrd+xml"); + $aliases = array('acct:' . $r[0]['channel_address'] . '@' . $a->get_hostname(), z_root() . '/channel/' . $r[0]['channel_address'], z_root() . '/~' . $r[0]['channel_address']); + + for($x = 0; $x < count($aliases); $x ++) { + if($aliases[$x] === $resource) + unset($aliases[$x]); + } + + $o = replace_macros(get_markup_template('xrd_person.tpl'), array( '$nick' => $r[0]['channel_address'], - '$accturi' => $uri, + '$accturi' => $resource, + '$aliases' => $aliases, '$profile_url' => $a->get_baseurl() . '/channel/' . $r[0]['channel_address'], '$hcard_url' => $a->get_baseurl() . '/hcard/' . $r[0]['channel_address'], '$atom' => $a->get_baseurl() . '/feed/' . $r[0]['channel_address'], diff --git a/version.inc b/version.inc index ecfd6b86e..cdcebcee4 100644 --- a/version.inc +++ b/version.inc @@ -1 +1 @@ -2016-03-21.1342H +2016-03-24.1345H diff --git a/view/de/hmessages.po b/view/de/hmessages.po index f6a2b028e..cea1d86d3 100644 --- a/view/de/hmessages.po +++ b/view/de/hmessages.po @@ -23,8 +23,8 @@ msgid "" msgstr "" "Project-Id-Version: Redmatrix\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-11 00:03-0800\n" -"PO-Revision-Date: 2016-03-13 12:21+0000\n" +"POT-Creation-Date: 2016-03-18 00:03-0700\n" +"PO-Revision-Date: 2016-03-24 08:00+0000\n" "Last-Translator: Phellmes <forum@suschka.de>\n" "Language-Team: German (http://www.transifex.com/Friendica/red-matrix/language/de/)\n" "MIME-Version: 1.0\n" @@ -74,7 +74,7 @@ msgid "Schedule Outbox" msgstr "Postausgang für überwachte Kalender" #: ../../Zotlabs/Storage/Browser.php:164 ../../include/apps.php:360 -#: ../../include/apps.php:415 ../../include/widgets.php:1434 +#: ../../include/apps.php:415 ../../include/widgets.php:1439 #: ../../include/conversation.php:1037 ../../mod/photos.php:766 #: ../../mod/photos.php:1209 msgid "Unknown" @@ -101,7 +101,7 @@ msgid "Create" msgstr "Erstelle" #: ../../Zotlabs/Storage/Browser.php:231 ../../Zotlabs/Storage/Browser.php:305 -#: ../../include/widgets.php:1447 ../../mod/photos.php:793 +#: ../../include/widgets.php:1452 ../../mod/photos.php:793 #: ../../mod/photos.php:1333 ../../mod/profile_photo.php:401 #: ../../mod/cover_photo.php:353 msgid "Upload" @@ -128,8 +128,8 @@ msgstr "Zuletzt geändert" #: ../../Zotlabs/Storage/Browser.php:240 ../../include/apps.php:259 #: ../../include/page_widgets.php:8 ../../include/page_widgets.php:36 -#: ../../include/menu.php:108 ../../include/identity.php:924 -#: ../../include/identity.php:928 ../../include/ItemObject.php:100 +#: ../../include/menu.php:108 ../../include/ItemObject.php:100 +#: ../../include/identity.php:932 ../../include/identity.php:936 #: ../../mod/blocks.php:153 ../../mod/connections.php:286 #: ../../mod/connections.php:306 ../../mod/editblock.php:135 #: ../../mod/editlayout.php:134 ../../mod/editpost.php:112 @@ -180,7 +180,7 @@ msgstr "Datei hochladen" #: ../../include/attach.php:352 ../../include/attach.php:359 #: ../../include/attach.php:437 ../../include/attach.php:889 #: ../../include/attach.php:960 ../../include/attach.php:1112 -#: ../../include/photos.php:29 ../../include/items.php:4573 +#: ../../include/photos.php:29 ../../include/items.php:4660 #: ../../index.php:180 ../../mod/achievements.php:30 ../../mod/api.php:26 #: ../../mod/api.php:31 ../../mod/appman.php:66 ../../mod/authtest.php:13 #: ../../mod/block.php:22 ../../mod/block.php:72 ../../mod/blocks.php:69 @@ -229,8 +229,8 @@ msgid "Page not found." msgstr "Seite nicht gefunden." #: ../../include/Contact.php:101 ../../include/widgets.php:147 -#: ../../include/widgets.php:185 ../../include/identity.php:1003 -#: ../../include/conversation.php:961 ../../mod/directory.php:321 +#: ../../include/widgets.php:185 ../../include/conversation.php:961 +#: ../../include/identity.php:1011 ../../mod/directory.php:321 #: ../../mod/match.php:64 ../../mod/suggest.php:52 msgid "Connect" msgstr "Verbinden" @@ -299,7 +299,7 @@ msgid "Registration request at %s" msgstr "Registrierungsanfrage auf %s" #: ../../include/account.php:317 ../../include/account.php:344 -#: ../../include/account.php:404 ../../include/network.php:1660 +#: ../../include/account.php:404 ../../include/network.php:1864 msgid "Administrator" msgstr "Administrator" @@ -432,7 +432,7 @@ msgstr "Webseiten" msgid "Channel Home" msgstr "Mein Kanal" -#: ../../include/apps.php:138 ../../include/identity.php:1387 +#: ../../include/apps.php:138 ../../include/identity.php:1395 #: ../../mod/profperm.php:112 msgid "Profile" msgstr "Profil" @@ -525,15 +525,15 @@ msgstr "Installieren" msgid "Purchase" msgstr "Kaufen" -#: ../../include/auth.php:132 +#: ../../include/auth.php:105 msgid "Logged out." msgstr "Ausgeloggt." -#: ../../include/auth.php:273 +#: ../../include/auth.php:246 msgid "Failed authentication" msgstr "Authentifizierung fehlgeschlagen" -#: ../../include/auth.php:287 ../../mod/openid.php:189 +#: ../../include/auth.php:260 ../../mod/openid.php:189 msgid "Login failed." msgstr "Login fehlgeschlagen." @@ -561,7 +561,7 @@ msgid "Finishes:" msgstr "Endet:" #: ../../include/bb2diaspora.php:487 ../../include/event.php:52 -#: ../../include/text.php:1433 ../../include/identity.php:1018 +#: ../../include/text.php:1433 ../../include/identity.php:1026 #: ../../mod/directory.php:307 msgid "Location:" msgstr "Ort:" @@ -690,8 +690,9 @@ msgstr "Sicherer Modus" #: ../../mod/filestorage.php:151 ../../mod/filestorage.php:159 #: ../../mod/menu.php:96 ../../mod/menu.php:153 ../../mod/mitem.php:154 #: ../../mod/mitem.php:155 ../../mod/mitem.php:228 ../../mod/mitem.php:229 -#: ../../mod/photos.php:634 ../../mod/admin.php:425 ../../mod/removeme.php:60 -#: ../../mod/settings.php:588 ../../view/theme/redbasic/php/config.php:105 +#: ../../mod/photos.php:634 ../../mod/admin.php:425 ../../mod/profiles.php:647 +#: ../../mod/removeme.php:60 ../../mod/settings.php:588 +#: ../../view/theme/redbasic/php/config.php:105 #: ../../view/theme/redbasic/php/config.php:130 ../../boot.php:1555 msgid "No" msgstr "Nein" @@ -703,8 +704,9 @@ msgstr "Nein" #: ../../mod/filestorage.php:151 ../../mod/filestorage.php:159 #: ../../mod/menu.php:96 ../../mod/menu.php:153 ../../mod/mitem.php:154 #: ../../mod/mitem.php:155 ../../mod/mitem.php:228 ../../mod/mitem.php:229 -#: ../../mod/photos.php:634 ../../mod/admin.php:427 ../../mod/removeme.php:60 -#: ../../mod/settings.php:588 ../../view/theme/redbasic/php/config.php:105 +#: ../../mod/photos.php:634 ../../mod/admin.php:427 ../../mod/profiles.php:647 +#: ../../mod/removeme.php:60 ../../mod/settings.php:588 +#: ../../view/theme/redbasic/php/config.php:105 #: ../../view/theme/redbasic/php/config.php:130 ../../boot.php:1555 msgid "Yes" msgstr "Ja" @@ -763,7 +765,7 @@ msgstr "Antwort des entfernten Kanals war unvollständig." msgid "Channel was deleted and no longer exists." msgstr "Kanal wurde gelöscht und existiert nicht mehr." -#: ../../include/follow.php:153 ../../include/follow.php:183 +#: ../../include/follow.php:153 ../../include/follow.php:185 msgid "Protocol disabled." msgstr "Protokoll deaktiviert." @@ -771,11 +773,11 @@ msgstr "Protokoll deaktiviert." msgid "Channel discovery failed." msgstr "Kanalsuche fehlgeschlagen" -#: ../../include/follow.php:199 +#: ../../include/follow.php:201 msgid "local account not found." msgstr "Lokales Konto nicht gefunden." -#: ../../include/follow.php:224 +#: ../../include/follow.php:226 msgid "Cannot connect to yourself." msgstr "Du kannst Dich nicht mit Dir selbst verbinden." @@ -898,7 +900,8 @@ msgid "Unsaved changes. Are you sure you wish to leave this page?" msgstr "Ungespeicherte Änderungen. Bist Du sicher, dass Du diese Seite verlassen möchtest?" #: ../../include/js_strings.php:25 ../../mod/events.php:459 -#: ../../mod/profiles.php:472 ../../mod/pubsites.php:36 +#: ../../mod/profiles.php:472 ../../mod/profiles.php:697 +#: ../../mod/pubsites.php:36 msgid "Location" msgstr "Ort" @@ -1195,7 +1198,8 @@ msgstr "Profil ansehen" msgid "Your profile page" msgstr "Deine Profilseite" -#: ../../include/nav.php:88 ../../include/identity.php:924 +#: ../../include/nav.php:88 ../../include/identity.php:932 +#: ../../mod/profiles.php:776 msgid "Edit Profiles" msgstr "Profile bearbeiten" @@ -1203,7 +1207,7 @@ msgstr "Profile bearbeiten" msgid "Manage/Edit profiles" msgstr "Profile verwalten" -#: ../../include/nav.php:90 ../../include/identity.php:928 +#: ../../include/nav.php:90 ../../include/identity.php:936 msgid "Edit Profile" msgstr "Profile bearbeiten" @@ -1362,7 +1366,7 @@ msgstr "Verwalte Deine Kanäle" msgid "Account/Channel Settings" msgstr "Konto-/Kanal-Einstellungen" -#: ../../include/nav.php:213 ../../include/widgets.php:1347 +#: ../../include/nav.php:213 ../../include/widgets.php:1350 msgid "Admin" msgstr "Administration" @@ -1762,7 +1766,7 @@ msgstr "Das Security-Token des Formulars war nicht korrekt. Das ist wahrscheinli msgid "Tags" msgstr "Schlagwörter" -#: ../../include/taxonomy.php:305 ../../mod/profiles.php:717 +#: ../../include/taxonomy.php:305 msgid "Keywords" msgstr "Schlüsselwörter" @@ -1798,8 +1802,8 @@ msgstr "verurteile" msgid "dislikes" msgstr "missfällt" -#: ../../include/taxonomy.php:415 ../../include/identity.php:1296 -#: ../../include/conversation.php:1756 ../../include/ItemObject.php:179 +#: ../../include/taxonomy.php:415 ../../include/conversation.php:1756 +#: ../../include/ItemObject.php:179 ../../include/identity.php:1304 #: ../../mod/photos.php:1097 msgctxt "noun" msgid "Like" @@ -1807,92 +1811,6 @@ msgid_plural "Likes" msgstr[0] "Gefällt mir" msgstr[1] "Gefällt mir" -#: ../../include/datetime.php:48 -msgid "Miscellaneous" -msgstr "Verschiedenes" - -#: ../../include/datetime.php:132 -msgid "YYYY-MM-DD or MM-DD" -msgstr "JJJJ-MM-TT oder MM-TT" - -#: ../../include/datetime.php:236 ../../mod/appman.php:91 -#: ../../mod/appman.php:92 ../../mod/events.php:444 ../../mod/events.php:449 -msgid "Required" -msgstr "Benötigt" - -#: ../../include/datetime.php:263 ../../boot.php:2382 -msgid "never" -msgstr "Nie" - -#: ../../include/datetime.php:269 -msgid "less than a second ago" -msgstr "Vor weniger als einer Sekunde" - -#: ../../include/datetime.php:287 -#, php-format -msgctxt "e.g. 22 hours ago, 1 minute ago" -msgid "%1$d %2$s ago" -msgstr "vor %1$d %2$s" - -#: ../../include/datetime.php:298 -msgctxt "relative_date" -msgid "year" -msgid_plural "years" -msgstr[0] "Jahr" -msgstr[1] "Jahre" - -#: ../../include/datetime.php:301 -msgctxt "relative_date" -msgid "month" -msgid_plural "months" -msgstr[0] "Monat" -msgstr[1] "Monate" - -#: ../../include/datetime.php:304 -msgctxt "relative_date" -msgid "week" -msgid_plural "weeks" -msgstr[0] "Woche" -msgstr[1] "Wochen" - -#: ../../include/datetime.php:307 -msgctxt "relative_date" -msgid "day" -msgid_plural "days" -msgstr[0] "Tag" -msgstr[1] "Tage" - -#: ../../include/datetime.php:310 -msgctxt "relative_date" -msgid "hour" -msgid_plural "hours" -msgstr[0] "Stunde" -msgstr[1] "Stunden" - -#: ../../include/datetime.php:313 -msgctxt "relative_date" -msgid "minute" -msgid_plural "minutes" -msgstr[0] "Minute" -msgstr[1] "Minuten" - -#: ../../include/datetime.php:316 -msgctxt "relative_date" -msgid "second" -msgid_plural "seconds" -msgstr[0] "Sekunde" -msgstr[1] "Sekunden" - -#: ../../include/datetime.php:553 -#, php-format -msgid "%1$s's birthday" -msgstr "%1$ss Geburtstag" - -#: ../../include/datetime.php:554 -#, php-format -msgid "Happy Birthday %1$s" -msgstr "Alles Gute zum Geburtstag, %1$s" - #: ../../include/zot.php:680 msgid "Invalid data packet" msgstr "Ungültiges Datenpaket" @@ -1901,12 +1819,12 @@ msgstr "Ungültiges Datenpaket" msgid "Unable to verify channel signature" msgstr "Konnte die Signatur des Kanals nicht verifizieren" -#: ../../include/zot.php:2326 +#: ../../include/zot.php:2332 #, php-format msgid "Unable to verify site signature for %s" msgstr "Kann die Signatur der Seite von %s nicht verifizieren" -#: ../../include/zot.php:3661 +#: ../../include/zot.php:3667 msgid "invalid target signature" msgstr "Ungültige Signatur des Ziels" @@ -2042,24 +1960,24 @@ msgstr "MySpace" msgid "view full size" msgstr "In Vollbildansicht anschauen" -#: ../../include/network.php:1612 ../../include/enotify.php:57 +#: ../../include/network.php:1816 ../../include/enotify.php:57 msgid "$Projectname Notification" msgstr "$Projectname-Benachrichtigung" -#: ../../include/network.php:1613 ../../include/enotify.php:58 +#: ../../include/network.php:1817 ../../include/enotify.php:58 msgid "$projectname" msgstr "$projectname" -#: ../../include/network.php:1615 ../../include/enotify.php:60 +#: ../../include/network.php:1819 ../../include/enotify.php:60 msgid "Thank You," msgstr "Danke." -#: ../../include/network.php:1617 ../../include/enotify.php:62 +#: ../../include/network.php:1821 ../../include/enotify.php:62 #, php-format msgid "%s Administrator" msgstr "der Administrator von %s" -#: ../../include/network.php:1674 +#: ../../include/network.php:1878 msgid "No Subject" msgstr "Kein Betreff" @@ -2384,6 +2302,7 @@ msgid "System" msgstr "System" #: ../../include/widgets.php:105 ../../include/conversation.php:1541 +#: ../../mod/profiles.php:696 msgid "Personal" msgstr "Persönlich" @@ -2641,6 +2560,10 @@ msgstr "Seite" msgid "Accounts" msgstr "Konten" +#: ../../include/widgets.php:1317 ../../include/widgets.php:1355 +msgid "Member registrations waiting for confirmation" +msgstr "Nutzer-Anmeldungen, die auf Bestätigung warten" + #: ../../include/widgets.php:1318 ../../mod/admin.php:1149 msgid "Channels" msgstr "Kanäle" @@ -2671,25 +2594,21 @@ msgstr "Profil Felder" msgid "DB updates" msgstr "DB-Aktualisierungen" -#: ../../include/widgets.php:1343 ../../include/widgets.php:1349 +#: ../../include/widgets.php:1343 ../../include/widgets.php:1353 #: ../../mod/admin.php:1605 msgid "Logs" msgstr "Protokolle" -#: ../../include/widgets.php:1348 +#: ../../include/widgets.php:1351 msgid "Plugin Features" msgstr "Plug-In Funktionen" -#: ../../include/widgets.php:1350 -msgid "User registrations waiting for confirmation" -msgstr "Nutzer-Anmeldungen, die auf Bestätigung warten" - -#: ../../include/widgets.php:1428 ../../mod/photos.php:760 +#: ../../include/widgets.php:1433 ../../mod/photos.php:760 #: ../../mod/photos.php:1300 msgid "View Photo" msgstr "Foto ansehen" -#: ../../include/widgets.php:1445 ../../mod/photos.php:791 +#: ../../include/widgets.php:1450 ../../mod/photos.php:791 msgid "Edit Album" msgstr "Album bearbeiten" @@ -3156,234 +3075,100 @@ msgstr "Bitte besuche %s um den Vorschlag zu akzeptieren oder abzulehnen." msgid "[Hubzilla:Notify]" msgstr "[Hubzilla:Benachrichtigung]" -#: ../../include/identity.php:32 -msgid "Unable to obtain identity information from database" -msgstr "Kann keine Identitäts-Informationen aus Datenbank beziehen" - -#: ../../include/identity.php:66 -msgid "Empty name" -msgstr "Namensfeld leer" - -#: ../../include/identity.php:69 -msgid "Name too long" -msgstr "Name ist zu lang" - -#: ../../include/identity.php:181 -msgid "No account identifier" -msgstr "Keine Account-Kennung" - -#: ../../include/identity.php:193 -msgid "Nickname is required." -msgstr "Spitzname ist erforderlich." - -#: ../../include/identity.php:207 -msgid "Reserved nickname. Please choose another." -msgstr "Reservierter Kurzname. Bitte wähle einen anderen." - -#: ../../include/identity.php:212 -msgid "" -"Nickname has unsupported characters or is already being used on this site." -msgstr "Der Spitzname enthält nicht-unterstütze Zeichen oder wird bereits auf dieser Seite genutzt." - -#: ../../include/identity.php:288 -msgid "Unable to retrieve created identity" -msgstr "Kann die erstellte Identität nicht empfangen" - -#: ../../include/identity.php:346 -msgid "Default Profile" -msgstr "Standard-Profil" - -#: ../../include/identity.php:776 -msgid "Requested channel is not available." -msgstr "Angeforderte Kanal nicht verfügbar." - -#: ../../include/identity.php:822 ../../mod/achievements.php:11 -#: ../../mod/blocks.php:29 ../../mod/connect.php:13 ../../mod/editblock.php:29 -#: ../../mod/editlayout.php:27 ../../mod/editwebpage.php:28 -#: ../../mod/filestorage.php:54 ../../mod/hcard.php:8 ../../mod/layouts.php:29 -#: ../../mod/profile.php:16 ../../mod/webpages.php:29 -msgid "Requested profile is not available." -msgstr "Erwünschte Profil ist nicht verfügbar." - -#: ../../include/identity.php:917 ../../mod/profiles.php:795 -msgid "Change profile photo" -msgstr "Profilfoto ändern" - -#: ../../include/identity.php:925 ../../mod/profiles.php:796 -msgid "Create New Profile" -msgstr "Neues Profil erstellen" - -#: ../../include/identity.php:942 ../../mod/profiles.php:807 -msgid "Profile Image" -msgstr "Profilfoto:" - -#: ../../include/identity.php:945 -msgid "Visible to everybody" -msgstr "Für jeden sichtbar" - -#: ../../include/identity.php:946 ../../mod/profiles.php:689 -#: ../../mod/profiles.php:811 -msgid "Edit visibility" -msgstr "Sichtbarkeit bearbeiten" - -#: ../../include/identity.php:1022 ../../include/identity.php:1280 -msgid "Gender:" -msgstr "Geschlecht:" - -#: ../../include/identity.php:1023 ../../include/identity.php:1324 -msgid "Status:" -msgstr "Status:" - -#: ../../include/identity.php:1024 ../../include/identity.php:1335 -msgid "Homepage:" -msgstr "Homepage:" - -#: ../../include/identity.php:1025 -msgid "Online Now" -msgstr "gerade online" - -#: ../../include/identity.php:1113 ../../include/identity.php:1191 -#: ../../mod/ping.php:318 -msgid "g A l F d" -msgstr "l, d. F, G:i \\U\\h\\r" - -#: ../../include/identity.php:1114 ../../include/identity.php:1192 -msgid "F d" -msgstr "d. F" - -#: ../../include/identity.php:1159 ../../include/identity.php:1231 -#: ../../mod/ping.php:341 -msgid "[today]" -msgstr "[Heute]" - -#: ../../include/identity.php:1170 -msgid "Birthday Reminders" -msgstr "Geburtstags Erinnerungen" - -#: ../../include/identity.php:1171 -msgid "Birthdays this week:" -msgstr "Geburtstage in dieser Woche:" - -#: ../../include/identity.php:1224 -msgid "[No description]" -msgstr "[Keine Beschreibung]" - -#: ../../include/identity.php:1242 -msgid "Event Reminders" -msgstr "Termin-Erinnerungen" - -#: ../../include/identity.php:1243 -msgid "Events this week:" -msgstr "Termine in dieser Woche:" - -#: ../../include/identity.php:1278 ../../mod/settings.php:1047 -msgid "Full Name:" -msgstr "Voller Name:" - -#: ../../include/identity.php:1285 -msgid "Like this channel" -msgstr "Dieser Kanal gefällt mir" - -#: ../../include/identity.php:1309 -msgid "j F, Y" -msgstr "j. F Y" - -#: ../../include/identity.php:1310 -msgid "j F" -msgstr "j. F" +#: ../../include/datetime.php:48 ../../mod/profiles.php:699 +msgid "Miscellaneous" +msgstr "Verschiedenes" -#: ../../include/identity.php:1317 -msgid "Birthday:" -msgstr "Geburtstag:" +#: ../../include/datetime.php:136 +msgid "Birthday" +msgstr "Geburtstag" -#: ../../include/identity.php:1321 ../../mod/directory.php:302 -msgid "Age:" +#: ../../include/datetime.php:138 +msgid "Age: " msgstr "Alter:" -#: ../../include/identity.php:1330 -#, php-format -msgid "for %1$d %2$s" -msgstr "seit %1$d %2$s" - -#: ../../include/identity.php:1333 -msgid "Sexual Preference:" -msgstr "Sexuelle Orientierung:" - -#: ../../include/identity.php:1337 ../../mod/directory.php:318 -msgid "Hometown:" -msgstr "Heimatstadt:" - -#: ../../include/identity.php:1339 -msgid "Tags:" -msgstr "Schlagworte:" - -#: ../../include/identity.php:1341 -msgid "Political Views:" -msgstr "Politische Ansichten:" - -#: ../../include/identity.php:1343 -msgid "Religion:" -msgstr "Religion:" - -#: ../../include/identity.php:1345 ../../mod/directory.php:320 -msgid "About:" -msgstr "Über:" - -#: ../../include/identity.php:1347 -msgid "Hobbies/Interests:" -msgstr "Hobbys/Interessen:" +#: ../../include/datetime.php:140 +msgid "YYYY-MM-DD or MM-DD" +msgstr "JJJJ-MM-TT oder MM-TT" -#: ../../include/identity.php:1349 -msgid "Likes:" -msgstr "Gefällt:" +#: ../../include/datetime.php:246 ../../mod/appman.php:91 +#: ../../mod/appman.php:92 ../../mod/events.php:444 ../../mod/events.php:449 +#: ../../mod/profiles.php:708 ../../mod/profiles.php:712 +msgid "Required" +msgstr "Benötigt" -#: ../../include/identity.php:1351 -msgid "Dislikes:" -msgstr "Gefällt nicht:" +#: ../../include/datetime.php:273 ../../boot.php:2382 +msgid "never" +msgstr "Nie" -#: ../../include/identity.php:1353 -msgid "Contact information and Social Networks:" -msgstr "Kontaktinformation und soziale Netzwerke:" +#: ../../include/datetime.php:279 +msgid "less than a second ago" +msgstr "Vor weniger als einer Sekunde" -#: ../../include/identity.php:1355 -msgid "My other channels:" -msgstr "Meine anderen Kanäle:" +#: ../../include/datetime.php:297 +#, php-format +msgctxt "e.g. 22 hours ago, 1 minute ago" +msgid "%1$d %2$s ago" +msgstr "vor %1$d %2$s" -#: ../../include/identity.php:1357 -msgid "Musical interests:" -msgstr "Musikalische Interessen:" +#: ../../include/datetime.php:308 +msgctxt "relative_date" +msgid "year" +msgid_plural "years" +msgstr[0] "Jahr" +msgstr[1] "Jahre" -#: ../../include/identity.php:1359 -msgid "Books, literature:" -msgstr "Bücher, Literatur:" +#: ../../include/datetime.php:311 +msgctxt "relative_date" +msgid "month" +msgid_plural "months" +msgstr[0] "Monat" +msgstr[1] "Monate" -#: ../../include/identity.php:1361 -msgid "Television:" -msgstr "Fernsehen:" +#: ../../include/datetime.php:314 +msgctxt "relative_date" +msgid "week" +msgid_plural "weeks" +msgstr[0] "Woche" +msgstr[1] "Wochen" -#: ../../include/identity.php:1363 -msgid "Film/dance/culture/entertainment:" -msgstr "Film/Tanz/Kultur/Unterhaltung:" +#: ../../include/datetime.php:317 +msgctxt "relative_date" +msgid "day" +msgid_plural "days" +msgstr[0] "Tag" +msgstr[1] "Tage" -#: ../../include/identity.php:1365 -msgid "Love/Romance:" -msgstr "Liebe/Romantik:" +#: ../../include/datetime.php:320 +msgctxt "relative_date" +msgid "hour" +msgid_plural "hours" +msgstr[0] "Stunde" +msgstr[1] "Stunden" -#: ../../include/identity.php:1367 -msgid "Work/employment:" -msgstr "Arbeit/Anstellung:" +#: ../../include/datetime.php:323 +msgctxt "relative_date" +msgid "minute" +msgid_plural "minutes" +msgstr[0] "Minute" +msgstr[1] "Minuten" -#: ../../include/identity.php:1369 -msgid "School/education:" -msgstr "Schule/Ausbildung:" +#: ../../include/datetime.php:326 +msgctxt "relative_date" +msgid "second" +msgid_plural "seconds" +msgstr[0] "Sekunde" +msgstr[1] "Sekunden" -#: ../../include/identity.php:1389 -msgid "Like this thing" -msgstr "Gefällt mir" +#: ../../include/datetime.php:563 +#, php-format +msgid "%1$s's birthday" +msgstr "%1$ss Geburtstag" -#: ../../include/identity.php:1799 ../../mod/cover_photo.php:236 -msgid "cover photo" -msgstr "Cover Foto" +#: ../../include/datetime.php:564 +#, php-format +msgid "Happy Birthday %1$s" +msgstr "Alles Gute zum Geburtstag, %1$s" #: ../../include/oembed.php:267 msgid "Embedded content" @@ -4268,62 +4053,291 @@ msgstr "Nur für akzeptierte Verbindungen sichtbar." msgid "Visible to specific connections." msgstr "Sichtbar für bestimmte Verbindungen." -#: ../../include/items.php:4494 ../../mod/display.php:36 +#: ../../include/items.php:4581 ../../mod/display.php:36 #: ../../mod/filestorage.php:27 ../../mod/admin.php:141 #: ../../mod/admin.php:1189 ../../mod/admin.php:1434 ../../mod/thing.php:85 #: ../../mod/viewsrc.php:20 msgid "Item not found." msgstr "Element nicht gefunden." -#: ../../include/items.php:5030 ../../mod/group.php:38 ../../mod/group.php:137 +#: ../../include/items.php:5117 ../../mod/group.php:38 ../../mod/group.php:137 msgid "Privacy group not found." msgstr "Gruppe nicht gefunden." -#: ../../include/items.php:5046 +#: ../../include/items.php:5133 msgid "Privacy group is empty." msgstr "Gruppe ist leer." -#: ../../include/items.php:5053 +#: ../../include/items.php:5140 #, php-format msgid "Privacy group: %s" msgstr "Gruppe: %s" -#: ../../include/items.php:5063 ../../mod/connedit.php:701 +#: ../../include/items.php:5150 ../../mod/connedit.php:701 #, php-format msgid "Connection: %s" msgstr "Verbindung: %s" -#: ../../include/items.php:5065 +#: ../../include/items.php:5152 msgid "Connection not found." msgstr "Die Verbindung wurde nicht gefunden." -#: ../../include/items.php:5491 ../../mod/cover_photo.php:229 +#: ../../include/items.php:5578 ../../mod/cover_photo.php:229 msgid "female" msgstr "weiblich" -#: ../../include/items.php:5492 ../../mod/cover_photo.php:230 +#: ../../include/items.php:5579 ../../mod/cover_photo.php:230 #, php-format msgid "%1$s updated her %2$s" msgstr "%1$s hat ihr %2$s aktualisiert" -#: ../../include/items.php:5493 ../../mod/cover_photo.php:231 +#: ../../include/items.php:5580 ../../mod/cover_photo.php:231 msgid "male" msgstr "männlich" -#: ../../include/items.php:5494 ../../mod/cover_photo.php:232 +#: ../../include/items.php:5581 ../../mod/cover_photo.php:232 #, php-format msgid "%1$s updated his %2$s" msgstr "%1$s hat sein %2$s aktualisiert" -#: ../../include/items.php:5496 ../../mod/cover_photo.php:234 +#: ../../include/items.php:5583 ../../mod/cover_photo.php:234 #, php-format msgid "%1$s updated their %2$s" msgstr "%1$s hat sein/ihr %2$s aktualisiert" -#: ../../include/items.php:5498 +#: ../../include/items.php:5585 msgid "profile photo" msgstr "Profilfoto" +#: ../../include/identity.php:32 +msgid "Unable to obtain identity information from database" +msgstr "Kann keine Identitäts-Informationen aus Datenbank beziehen" + +#: ../../include/identity.php:66 +msgid "Empty name" +msgstr "Namensfeld leer" + +#: ../../include/identity.php:69 +msgid "Name too long" +msgstr "Name ist zu lang" + +#: ../../include/identity.php:181 +msgid "No account identifier" +msgstr "Keine Account-Kennung" + +#: ../../include/identity.php:193 +msgid "Nickname is required." +msgstr "Spitzname ist erforderlich." + +#: ../../include/identity.php:207 +msgid "Reserved nickname. Please choose another." +msgstr "Reservierter Kurzname. Bitte wähle einen anderen." + +#: ../../include/identity.php:212 +msgid "" +"Nickname has unsupported characters or is already being used on this site." +msgstr "Der Spitzname enthält nicht-unterstütze Zeichen oder wird bereits auf dieser Seite genutzt." + +#: ../../include/identity.php:288 +msgid "Unable to retrieve created identity" +msgstr "Kann die erstellte Identität nicht empfangen" + +#: ../../include/identity.php:346 +msgid "Default Profile" +msgstr "Standard-Profil" + +#: ../../include/identity.php:784 +msgid "Requested channel is not available." +msgstr "Angeforderte Kanal nicht verfügbar." + +#: ../../include/identity.php:830 ../../mod/achievements.php:11 +#: ../../mod/blocks.php:29 ../../mod/connect.php:13 ../../mod/editblock.php:29 +#: ../../mod/editlayout.php:27 ../../mod/editwebpage.php:28 +#: ../../mod/filestorage.php:54 ../../mod/hcard.php:8 ../../mod/layouts.php:29 +#: ../../mod/profile.php:16 ../../mod/webpages.php:29 +msgid "Requested profile is not available." +msgstr "Erwünschte Profil ist nicht verfügbar." + +#: ../../include/identity.php:925 ../../mod/profiles.php:691 +msgid "Change profile photo" +msgstr "Profilfoto ändern" + +#: ../../include/identity.php:933 +msgid "Create New Profile" +msgstr "Neues Profil erstellen" + +#: ../../include/identity.php:950 ../../mod/profiles.php:766 +msgid "Profile Image" +msgstr "Profilfoto:" + +#: ../../include/identity.php:953 +msgid "Visible to everybody" +msgstr "Für jeden sichtbar" + +#: ../../include/identity.php:954 ../../mod/profiles.php:689 +#: ../../mod/profiles.php:770 +msgid "Edit visibility" +msgstr "Sichtbarkeit bearbeiten" + +#: ../../include/identity.php:1030 ../../include/identity.php:1288 +msgid "Gender:" +msgstr "Geschlecht:" + +#: ../../include/identity.php:1031 ../../include/identity.php:1332 +msgid "Status:" +msgstr "Status:" + +#: ../../include/identity.php:1032 ../../include/identity.php:1343 +msgid "Homepage:" +msgstr "Homepage:" + +#: ../../include/identity.php:1033 +msgid "Online Now" +msgstr "gerade online" + +#: ../../include/identity.php:1121 ../../include/identity.php:1199 +#: ../../mod/ping.php:318 +msgid "g A l F d" +msgstr "l, d. F, G:i \\U\\h\\r" + +#: ../../include/identity.php:1122 ../../include/identity.php:1200 +msgid "F d" +msgstr "d. F" + +#: ../../include/identity.php:1167 ../../include/identity.php:1239 +#: ../../mod/ping.php:341 +msgid "[today]" +msgstr "[Heute]" + +#: ../../include/identity.php:1178 +msgid "Birthday Reminders" +msgstr "Geburtstags Erinnerungen" + +#: ../../include/identity.php:1179 +msgid "Birthdays this week:" +msgstr "Geburtstage in dieser Woche:" + +#: ../../include/identity.php:1232 +msgid "[No description]" +msgstr "[Keine Beschreibung]" + +#: ../../include/identity.php:1250 +msgid "Event Reminders" +msgstr "Termin-Erinnerungen" + +#: ../../include/identity.php:1251 +msgid "Events this week:" +msgstr "Termine in dieser Woche:" + +#: ../../include/identity.php:1286 ../../mod/settings.php:1047 +msgid "Full Name:" +msgstr "Voller Name:" + +#: ../../include/identity.php:1293 +msgid "Like this channel" +msgstr "Dieser Kanal gefällt mir" + +#: ../../include/identity.php:1317 +msgid "j F, Y" +msgstr "j. F Y" + +#: ../../include/identity.php:1318 +msgid "j F" +msgstr "j. F" + +#: ../../include/identity.php:1325 +msgid "Birthday:" +msgstr "Geburtstag:" + +#: ../../include/identity.php:1329 ../../mod/directory.php:302 +msgid "Age:" +msgstr "Alter:" + +#: ../../include/identity.php:1338 +#, php-format +msgid "for %1$d %2$s" +msgstr "seit %1$d %2$s" + +#: ../../include/identity.php:1341 +msgid "Sexual Preference:" +msgstr "Sexuelle Orientierung:" + +#: ../../include/identity.php:1345 ../../mod/directory.php:318 +msgid "Hometown:" +msgstr "Heimatstadt:" + +#: ../../include/identity.php:1347 +msgid "Tags:" +msgstr "Schlagworte:" + +#: ../../include/identity.php:1349 +msgid "Political Views:" +msgstr "Politische Ansichten:" + +#: ../../include/identity.php:1351 +msgid "Religion:" +msgstr "Religion:" + +#: ../../include/identity.php:1353 ../../mod/directory.php:320 +msgid "About:" +msgstr "Über:" + +#: ../../include/identity.php:1355 +msgid "Hobbies/Interests:" +msgstr "Hobbys/Interessen:" + +#: ../../include/identity.php:1357 +msgid "Likes:" +msgstr "Gefällt:" + +#: ../../include/identity.php:1359 +msgid "Dislikes:" +msgstr "Gefällt nicht:" + +#: ../../include/identity.php:1361 +msgid "Contact information and Social Networks:" +msgstr "Kontaktinformation und soziale Netzwerke:" + +#: ../../include/identity.php:1363 +msgid "My other channels:" +msgstr "Meine anderen Kanäle:" + +#: ../../include/identity.php:1365 +msgid "Musical interests:" +msgstr "Musikalische Interessen:" + +#: ../../include/identity.php:1367 +msgid "Books, literature:" +msgstr "Bücher, Literatur:" + +#: ../../include/identity.php:1369 +msgid "Television:" +msgstr "Fernsehen:" + +#: ../../include/identity.php:1371 +msgid "Film/dance/culture/entertainment:" +msgstr "Film/Tanz/Kultur/Unterhaltung:" + +#: ../../include/identity.php:1373 +msgid "Love/Romance:" +msgstr "Liebe/Romantik:" + +#: ../../include/identity.php:1375 +msgid "Work/employment:" +msgstr "Arbeit/Anstellung:" + +#: ../../include/identity.php:1377 +msgid "School/education:" +msgstr "Schule/Ausbildung:" + +#: ../../include/identity.php:1397 +msgid "Like this thing" +msgstr "Gefällt mir" + +#: ../../include/identity.php:1807 ../../mod/cover_photo.php:236 +msgid "cover photo" +msgstr "Cover Foto" + #: ../../mod/achievements.php:34 msgid "Some blurb about what to do when you're new here" msgstr "Ein Hinweis, was man tun kann, wenn man neu hier ist" @@ -5474,7 +5488,7 @@ msgstr "Profilfoto 128 px" msgid "Timezone" msgstr "Zeitzone" -#: ../../mod/id.php:27 ../../mod/profiles.php:713 +#: ../../mod/id.php:27 ../../mod/profiles.php:730 msgid "Homepage URL" msgstr "Homepage-URL" @@ -7515,15 +7529,15 @@ msgstr "Familienstand" msgid "Romantic Partner" msgstr "Romantische Partner" -#: ../../mod/profiles.php:430 ../../mod/profiles.php:718 +#: ../../mod/profiles.php:430 ../../mod/profiles.php:735 msgid "Likes" msgstr "Gefällt" -#: ../../mod/profiles.php:434 ../../mod/profiles.php:719 +#: ../../mod/profiles.php:434 ../../mod/profiles.php:736 msgid "Dislikes" msgstr "Gefällt nicht" -#: ../../mod/profiles.php:438 +#: ../../mod/profiles.php:438 ../../mod/profiles.php:743 msgid "Work/Employment" msgstr "Arbeit/Anstellung" @@ -7531,11 +7545,11 @@ msgstr "Arbeit/Anstellung" msgid "Religion" msgstr "Religion" -#: ../../mod/profiles.php:445 ../../mod/profiles.php:715 +#: ../../mod/profiles.php:445 msgid "Political Views" msgstr "Politische Ansichten" -#: ../../mod/profiles.php:453 ../../mod/profiles.php:712 +#: ../../mod/profiles.php:453 msgid "Sexual Preference" msgstr "Sexuelle Orientierung" @@ -7551,9 +7565,9 @@ msgstr "Hobbys/Interessen" msgid "Profile updated." msgstr "Profil aktualisiert." -#: ../../mod/profiles.php:646 -msgid "Hide your contact/friend list from viewers of this profile?" -msgstr "Deine Kontaktliste vor Betrachtern dieses Profils verbergen?" +#: ../../mod/profiles.php:644 +msgid "Hide your connections list from viewers of this profile" +msgstr "Deine Verbindungen vor Betrachtern dieses Profils verbergen" #: ../../mod/profiles.php:686 msgid "Edit Profile Details" @@ -7564,13 +7578,9 @@ msgid "View this profile" msgstr "Dieses Profil ansehen" #: ../../mod/profiles.php:690 -msgid "Change Cover Photo" +msgid "Change cover photo" msgstr "Titelbild ändern" -#: ../../mod/profiles.php:691 -msgid "Change Profile Photo" -msgstr "Profilfoto ändern" - #: ../../mod/profiles.php:692 msgid "Create a new profile using these settings" msgstr "Neues Profil anlegen und diese Einstellungen übernehmen" @@ -7583,149 +7593,145 @@ msgstr "Dieses Profil klonen" msgid "Delete this profile" msgstr "Dieses Profil löschen" -#: ../../mod/profiles.php:696 +#: ../../mod/profiles.php:695 +msgid "Add profile things" +msgstr "Sachen zum Profil hinzufügen" + +#: ../../mod/profiles.php:698 +msgid "Relation" +msgstr "Beziehung" + +#: ../../mod/profiles.php:701 msgid "Import profile from file" msgstr "Profil aus einer Datei importieren" -#: ../../mod/profiles.php:697 +#: ../../mod/profiles.php:702 msgid "Export profile to file" msgstr "Profil in eine Datei exportieren" -#: ../../mod/profiles.php:698 -msgid "Profile Name" +#: ../../mod/profiles.php:703 +msgid "Your gender" +msgstr "Dein Geschlecht" + +#: ../../mod/profiles.php:704 +msgid "Marital status" +msgstr "Familienstand" + +#: ../../mod/profiles.php:705 +msgid "Sexual preference" +msgstr "Sexuelle Orientierung" + +#: ../../mod/profiles.php:708 +msgid "Profile name" msgstr "Profilname" -#: ../../mod/profiles.php:699 -msgid "Your Full Name" +#: ../../mod/profiles.php:710 +msgid "This is your default profile." +msgstr "Das ist Dein Standardprofil." + +#: ../../mod/profiles.php:712 +msgid "Your full name" msgstr "Dein voller Name" -#: ../../mod/profiles.php:700 +#: ../../mod/profiles.php:713 msgid "Title/Description" msgstr "Titel/Beschreibung" -#: ../../mod/profiles.php:701 -msgid "Your Gender" -msgstr "Dein Geschlecht" - -#: ../../mod/profiles.php:702 -msgid "Birthday" -msgstr "Geburtstag" - -#: ../../mod/profiles.php:703 -msgid "Street Address" +#: ../../mod/profiles.php:716 +msgid "Street address" msgstr "Straße und Hausnummer" -#: ../../mod/profiles.php:704 +#: ../../mod/profiles.php:717 msgid "Locality/City" msgstr "Wohnort" -#: ../../mod/profiles.php:705 -msgid "Postal/Zip Code" +#: ../../mod/profiles.php:718 +msgid "Region/State" +msgstr "Region/Bundesstaat" + +#: ../../mod/profiles.php:719 +msgid "Postal/Zip code" msgstr "Postleitzahl" -#: ../../mod/profiles.php:706 +#: ../../mod/profiles.php:720 msgid "Country" msgstr "Land" -#: ../../mod/profiles.php:707 -msgid "Region/State" -msgstr "Region/Bundesstaat" - -#: ../../mod/profiles.php:708 -msgid "<span class=\"heart\">♥</span> Marital Status" -msgstr "<span class=\"heart\">♥</span> Beziehungsstatus" - -#: ../../mod/profiles.php:709 +#: ../../mod/profiles.php:725 msgid "Who (if applicable)" msgstr "Wer (falls anwendbar)" -#: ../../mod/profiles.php:710 +#: ../../mod/profiles.php:725 msgid "Examples: cathy123, Cathy Williams, cathy@example.com" msgstr "Beispiele: cathy123, Cathy Williams, cathy@example.com" -#: ../../mod/profiles.php:711 -msgid "Since [date]" -msgstr "Seit [Datum]" +#: ../../mod/profiles.php:726 +msgid "Since (date)" +msgstr "Seit (Datum)" -#: ../../mod/profiles.php:714 +#: ../../mod/profiles.php:729 +msgid "Tell us about yourself" +msgstr "Erzähle uns ein wenig von Dir" + +#: ../../mod/profiles.php:731 msgid "Hometown" msgstr "Heimatort" -#: ../../mod/profiles.php:716 -msgid "Religious Views" +#: ../../mod/profiles.php:732 +msgid "Political views" +msgstr "Politische Ansichten" + +#: ../../mod/profiles.php:733 +msgid "Religious views" msgstr "Religiöse Ansichten" -#: ../../mod/profiles.php:720 +#: ../../mod/profiles.php:734 +msgid "Keywords used in directory listings" +msgstr "Schlüsselwörter, die in Verzeichnis-Auflistungen verwendet werden" + +#: ../../mod/profiles.php:734 msgid "Example: fishing photography software" msgstr "Beispiel: Angeln Fotografie Software" -#: ../../mod/profiles.php:721 -msgid "Used in directory listings" -msgstr "Wird in Verzeichnis-Auflistungen verwendet" - -#: ../../mod/profiles.php:722 -msgid "Tell us about yourself..." -msgstr "Erzähle uns ein wenig von Dir …" - -#: ../../mod/profiles.php:723 -msgid "Hobbies/Interests" -msgstr "Hobbys/Interessen" - -#: ../../mod/profiles.php:724 -msgid "Contact information and Social Networks" -msgstr "Kontaktinformation und soziale Netzwerke" - -#: ../../mod/profiles.php:725 -msgid "My other channels" -msgstr "Meine anderen Kanäle" - -#: ../../mod/profiles.php:726 +#: ../../mod/profiles.php:737 msgid "Musical interests" msgstr "Musikalische Interessen" -#: ../../mod/profiles.php:727 +#: ../../mod/profiles.php:738 msgid "Books, literature" msgstr "Bücher, Literatur" -#: ../../mod/profiles.php:728 +#: ../../mod/profiles.php:739 msgid "Television" msgstr "Fernsehen" -#: ../../mod/profiles.php:729 -msgid "Film/dance/culture/entertainment" +#: ../../mod/profiles.php:740 +msgid "Film/Dance/Culture/Entertainment" msgstr "Film/Tanz/Kultur/Unterhaltung" -#: ../../mod/profiles.php:730 -msgid "Love/romance" -msgstr "Liebe/Romantik" +#: ../../mod/profiles.php:741 +msgid "Hobbies/Interests" +msgstr "Hobbys/Interessen" -#: ../../mod/profiles.php:731 -msgid "Work/employment" -msgstr "Arbeit/Anstellung" +#: ../../mod/profiles.php:742 +msgid "Love/Romance" +msgstr "Liebe/Romantik" -#: ../../mod/profiles.php:732 -msgid "School/education" +#: ../../mod/profiles.php:744 +msgid "School/Education" msgstr "Schule/Ausbildung" -#: ../../mod/profiles.php:738 -msgid "This is your default profile." -msgstr "Das ist Dein Standardprofil." - -#: ../../mod/profiles.php:749 -msgid "Age: " -msgstr "Alter:" - -#: ../../mod/profiles.php:792 -msgid "Edit/Manage Profiles" -msgstr "Profile bearbeiten/verwalten" +#: ../../mod/profiles.php:745 +msgid "Contact information and social networks" +msgstr "Kontaktinformation und soziale Netzwerke" -#: ../../mod/profiles.php:793 -msgid "Add profile things" -msgstr "Sachen zum Profil hinzufügen" +#: ../../mod/profiles.php:746 +msgid "My other channels" +msgstr "Meine anderen Kanäle" -#: ../../mod/profiles.php:794 -msgid "Include desirable objects in your profile" -msgstr "Binde begehrenswerte Dinge in Dein Profil ein" +#: ../../mod/profiles.php:777 +msgid "Create New" +msgstr "Ein neues erstellen" #: ../../mod/profperm.php:29 ../../mod/profperm.php:58 msgid "Invalid profile identifier." diff --git a/view/de/hstrings.php b/view/de/hstrings.php index 8edc0ded3..1dbbd5543 100644 --- a/view/de/hstrings.php +++ b/view/de/hstrings.php @@ -398,42 +398,6 @@ $a->strings["__ctx:noun__ Like"] = array( 0 => "Gefällt mir", 1 => "Gefällt mir", ); -$a->strings["Miscellaneous"] = "Verschiedenes"; -$a->strings["YYYY-MM-DD or MM-DD"] = "JJJJ-MM-TT oder MM-TT"; -$a->strings["Required"] = "Benötigt"; -$a->strings["never"] = "Nie"; -$a->strings["less than a second ago"] = "Vor weniger als einer Sekunde"; -$a->strings["__ctx:e.g. 22 hours ago, 1 minute ago__ %1\$d %2\$s ago"] = "vor %1\$d %2\$s"; -$a->strings["__ctx:relative_date__ year"] = array( - 0 => "Jahr", - 1 => "Jahre", -); -$a->strings["__ctx:relative_date__ month"] = array( - 0 => "Monat", - 1 => "Monate", -); -$a->strings["__ctx:relative_date__ week"] = array( - 0 => "Woche", - 1 => "Wochen", -); -$a->strings["__ctx:relative_date__ day"] = array( - 0 => "Tag", - 1 => "Tage", -); -$a->strings["__ctx:relative_date__ hour"] = array( - 0 => "Stunde", - 1 => "Stunden", -); -$a->strings["__ctx:relative_date__ minute"] = array( - 0 => "Minute", - 1 => "Minuten", -); -$a->strings["__ctx:relative_date__ second"] = array( - 0 => "Sekunde", - 1 => "Sekunden", -); -$a->strings["%1\$s's birthday"] = "%1\$ss Geburtstag"; -$a->strings["Happy Birthday %1\$s"] = "Alles Gute zum Geburtstag, %1\$s"; $a->strings["Invalid data packet"] = "Ungültiges Datenpaket"; $a->strings["Unable to verify channel signature"] = "Konnte die Signatur des Kanals nicht verifizieren"; $a->strings["Unable to verify site signature for %s"] = "Kann die Signatur der Seite von %s nicht verifizieren"; @@ -614,6 +578,7 @@ $a->strings["For Administrators"] = "Für Administratoren"; $a->strings["For Developers"] = "Für Entwickler"; $a->strings["Site"] = "Seite"; $a->strings["Accounts"] = "Konten"; +$a->strings["Member registrations waiting for confirmation"] = "Nutzer-Anmeldungen, die auf Bestätigung warten"; $a->strings["Channels"] = "Kanäle"; $a->strings["Security"] = "Sicherheit"; $a->strings["Plugins"] = "Plug-Ins"; @@ -623,7 +588,6 @@ $a->strings["Profile Fields"] = "Profil Felder"; $a->strings["DB updates"] = "DB-Aktualisierungen"; $a->strings["Logs"] = "Protokolle"; $a->strings["Plugin Features"] = "Plug-In Funktionen"; -$a->strings["User registrations waiting for confirmation"] = "Nutzer-Anmeldungen, die auf Bestätigung warten"; $a->strings["View Photo"] = "Foto ansehen"; $a->strings["Edit Album"] = "Album bearbeiten"; $a->strings["prev"] = "vorherige"; @@ -731,61 +695,44 @@ $a->strings["Name:"] = "Name:"; $a->strings["Photo:"] = "Foto:"; $a->strings["Please visit %s to approve or reject the suggestion."] = "Bitte besuche %s um den Vorschlag zu akzeptieren oder abzulehnen."; $a->strings["[Hubzilla:Notify]"] = "[Hubzilla:Benachrichtigung]"; -$a->strings["Unable to obtain identity information from database"] = "Kann keine Identitäts-Informationen aus Datenbank beziehen"; -$a->strings["Empty name"] = "Namensfeld leer"; -$a->strings["Name too long"] = "Name ist zu lang"; -$a->strings["No account identifier"] = "Keine Account-Kennung"; -$a->strings["Nickname is required."] = "Spitzname ist erforderlich."; -$a->strings["Reserved nickname. Please choose another."] = "Reservierter Kurzname. Bitte wähle einen anderen."; -$a->strings["Nickname has unsupported characters or is already being used on this site."] = "Der Spitzname enthält nicht-unterstütze Zeichen oder wird bereits auf dieser Seite genutzt."; -$a->strings["Unable to retrieve created identity"] = "Kann die erstellte Identität nicht empfangen"; -$a->strings["Default Profile"] = "Standard-Profil"; -$a->strings["Requested channel is not available."] = "Angeforderte Kanal nicht verfügbar."; -$a->strings["Requested profile is not available."] = "Erwünschte Profil ist nicht verfügbar."; -$a->strings["Change profile photo"] = "Profilfoto ändern"; -$a->strings["Create New Profile"] = "Neues Profil erstellen"; -$a->strings["Profile Image"] = "Profilfoto:"; -$a->strings["Visible to everybody"] = "Für jeden sichtbar"; -$a->strings["Edit visibility"] = "Sichtbarkeit bearbeiten"; -$a->strings["Gender:"] = "Geschlecht:"; -$a->strings["Status:"] = "Status:"; -$a->strings["Homepage:"] = "Homepage:"; -$a->strings["Online Now"] = "gerade online"; -$a->strings["g A l F d"] = "l, d. F, G:i \\U\\h\\r"; -$a->strings["F d"] = "d. F"; -$a->strings["[today]"] = "[Heute]"; -$a->strings["Birthday Reminders"] = "Geburtstags Erinnerungen"; -$a->strings["Birthdays this week:"] = "Geburtstage in dieser Woche:"; -$a->strings["[No description]"] = "[Keine Beschreibung]"; -$a->strings["Event Reminders"] = "Termin-Erinnerungen"; -$a->strings["Events this week:"] = "Termine in dieser Woche:"; -$a->strings["Full Name:"] = "Voller Name:"; -$a->strings["Like this channel"] = "Dieser Kanal gefällt mir"; -$a->strings["j F, Y"] = "j. F Y"; -$a->strings["j F"] = "j. F"; -$a->strings["Birthday:"] = "Geburtstag:"; -$a->strings["Age:"] = "Alter:"; -$a->strings["for %1\$d %2\$s"] = "seit %1\$d %2\$s"; -$a->strings["Sexual Preference:"] = "Sexuelle Orientierung:"; -$a->strings["Hometown:"] = "Heimatstadt:"; -$a->strings["Tags:"] = "Schlagworte:"; -$a->strings["Political Views:"] = "Politische Ansichten:"; -$a->strings["Religion:"] = "Religion:"; -$a->strings["About:"] = "Über:"; -$a->strings["Hobbies/Interests:"] = "Hobbys/Interessen:"; -$a->strings["Likes:"] = "Gefällt:"; -$a->strings["Dislikes:"] = "Gefällt nicht:"; -$a->strings["Contact information and Social Networks:"] = "Kontaktinformation und soziale Netzwerke:"; -$a->strings["My other channels:"] = "Meine anderen Kanäle:"; -$a->strings["Musical interests:"] = "Musikalische Interessen:"; -$a->strings["Books, literature:"] = "Bücher, Literatur:"; -$a->strings["Television:"] = "Fernsehen:"; -$a->strings["Film/dance/culture/entertainment:"] = "Film/Tanz/Kultur/Unterhaltung:"; -$a->strings["Love/Romance:"] = "Liebe/Romantik:"; -$a->strings["Work/employment:"] = "Arbeit/Anstellung:"; -$a->strings["School/education:"] = "Schule/Ausbildung:"; -$a->strings["Like this thing"] = "Gefällt mir"; -$a->strings["cover photo"] = "Cover Foto"; +$a->strings["Miscellaneous"] = "Verschiedenes"; +$a->strings["Birthday"] = "Geburtstag"; +$a->strings["Age: "] = "Alter:"; +$a->strings["YYYY-MM-DD or MM-DD"] = "JJJJ-MM-TT oder MM-TT"; +$a->strings["Required"] = "Benötigt"; +$a->strings["never"] = "Nie"; +$a->strings["less than a second ago"] = "Vor weniger als einer Sekunde"; +$a->strings["__ctx:e.g. 22 hours ago, 1 minute ago__ %1\$d %2\$s ago"] = "vor %1\$d %2\$s"; +$a->strings["__ctx:relative_date__ year"] = array( + 0 => "Jahr", + 1 => "Jahre", +); +$a->strings["__ctx:relative_date__ month"] = array( + 0 => "Monat", + 1 => "Monate", +); +$a->strings["__ctx:relative_date__ week"] = array( + 0 => "Woche", + 1 => "Wochen", +); +$a->strings["__ctx:relative_date__ day"] = array( + 0 => "Tag", + 1 => "Tage", +); +$a->strings["__ctx:relative_date__ hour"] = array( + 0 => "Stunde", + 1 => "Stunden", +); +$a->strings["__ctx:relative_date__ minute"] = array( + 0 => "Minute", + 1 => "Minuten", +); +$a->strings["__ctx:relative_date__ second"] = array( + 0 => "Sekunde", + 1 => "Sekunden", +); +$a->strings["%1\$s's birthday"] = "%1\$ss Geburtstag"; +$a->strings["Happy Birthday %1\$s"] = "Alles Gute zum Geburtstag, %1\$s"; $a->strings["Embedded content"] = "Eingebetteter Inhalt"; $a->strings["Embedding disabled"] = "Einbetten ausgeschaltet"; $a->strings["channel"] = "Kanal"; @@ -1024,6 +971,61 @@ $a->strings["male"] = "männlich"; $a->strings["%1\$s updated his %2\$s"] = "%1\$s hat sein %2\$s aktualisiert"; $a->strings["%1\$s updated their %2\$s"] = "%1\$s hat sein/ihr %2\$s aktualisiert"; $a->strings["profile photo"] = "Profilfoto"; +$a->strings["Unable to obtain identity information from database"] = "Kann keine Identitäts-Informationen aus Datenbank beziehen"; +$a->strings["Empty name"] = "Namensfeld leer"; +$a->strings["Name too long"] = "Name ist zu lang"; +$a->strings["No account identifier"] = "Keine Account-Kennung"; +$a->strings["Nickname is required."] = "Spitzname ist erforderlich."; +$a->strings["Reserved nickname. Please choose another."] = "Reservierter Kurzname. Bitte wähle einen anderen."; +$a->strings["Nickname has unsupported characters or is already being used on this site."] = "Der Spitzname enthält nicht-unterstütze Zeichen oder wird bereits auf dieser Seite genutzt."; +$a->strings["Unable to retrieve created identity"] = "Kann die erstellte Identität nicht empfangen"; +$a->strings["Default Profile"] = "Standard-Profil"; +$a->strings["Requested channel is not available."] = "Angeforderte Kanal nicht verfügbar."; +$a->strings["Requested profile is not available."] = "Erwünschte Profil ist nicht verfügbar."; +$a->strings["Change profile photo"] = "Profilfoto ändern"; +$a->strings["Create New Profile"] = "Neues Profil erstellen"; +$a->strings["Profile Image"] = "Profilfoto:"; +$a->strings["Visible to everybody"] = "Für jeden sichtbar"; +$a->strings["Edit visibility"] = "Sichtbarkeit bearbeiten"; +$a->strings["Gender:"] = "Geschlecht:"; +$a->strings["Status:"] = "Status:"; +$a->strings["Homepage:"] = "Homepage:"; +$a->strings["Online Now"] = "gerade online"; +$a->strings["g A l F d"] = "l, d. F, G:i \\U\\h\\r"; +$a->strings["F d"] = "d. F"; +$a->strings["[today]"] = "[Heute]"; +$a->strings["Birthday Reminders"] = "Geburtstags Erinnerungen"; +$a->strings["Birthdays this week:"] = "Geburtstage in dieser Woche:"; +$a->strings["[No description]"] = "[Keine Beschreibung]"; +$a->strings["Event Reminders"] = "Termin-Erinnerungen"; +$a->strings["Events this week:"] = "Termine in dieser Woche:"; +$a->strings["Full Name:"] = "Voller Name:"; +$a->strings["Like this channel"] = "Dieser Kanal gefällt mir"; +$a->strings["j F, Y"] = "j. F Y"; +$a->strings["j F"] = "j. F"; +$a->strings["Birthday:"] = "Geburtstag:"; +$a->strings["Age:"] = "Alter:"; +$a->strings["for %1\$d %2\$s"] = "seit %1\$d %2\$s"; +$a->strings["Sexual Preference:"] = "Sexuelle Orientierung:"; +$a->strings["Hometown:"] = "Heimatstadt:"; +$a->strings["Tags:"] = "Schlagworte:"; +$a->strings["Political Views:"] = "Politische Ansichten:"; +$a->strings["Religion:"] = "Religion:"; +$a->strings["About:"] = "Über:"; +$a->strings["Hobbies/Interests:"] = "Hobbys/Interessen:"; +$a->strings["Likes:"] = "Gefällt:"; +$a->strings["Dislikes:"] = "Gefällt nicht:"; +$a->strings["Contact information and Social Networks:"] = "Kontaktinformation und soziale Netzwerke:"; +$a->strings["My other channels:"] = "Meine anderen Kanäle:"; +$a->strings["Musical interests:"] = "Musikalische Interessen:"; +$a->strings["Books, literature:"] = "Bücher, Literatur:"; +$a->strings["Television:"] = "Fernsehen:"; +$a->strings["Film/dance/culture/entertainment:"] = "Film/Tanz/Kultur/Unterhaltung:"; +$a->strings["Love/Romance:"] = "Liebe/Romantik:"; +$a->strings["Work/employment:"] = "Arbeit/Anstellung:"; +$a->strings["School/education:"] = "Schule/Ausbildung:"; +$a->strings["Like this thing"] = "Gefällt mir"; +$a->strings["cover photo"] = "Cover Foto"; $a->strings["Some blurb about what to do when you're new here"] = "Ein Hinweis, was man tun kann, wenn man neu hier ist"; $a->strings["network"] = "Netzwerk"; $a->strings["RSS"] = "RSS"; @@ -1800,50 +1802,48 @@ $a->strings["Sexual Preference"] = "Sexuelle Orientierung"; $a->strings["Homepage"] = "Webseite"; $a->strings["Interests"] = "Hobbys/Interessen"; $a->strings["Profile updated."] = "Profil aktualisiert."; -$a->strings["Hide your contact/friend list from viewers of this profile?"] = "Deine Kontaktliste vor Betrachtern dieses Profils verbergen?"; +$a->strings["Hide your connections list from viewers of this profile"] = "Deine Verbindungen vor Betrachtern dieses Profils verbergen"; $a->strings["Edit Profile Details"] = "Bearbeite Profil-Details"; $a->strings["View this profile"] = "Dieses Profil ansehen"; -$a->strings["Change Cover Photo"] = "Titelbild ändern"; -$a->strings["Change Profile Photo"] = "Profilfoto ändern"; +$a->strings["Change cover photo"] = "Titelbild ändern"; $a->strings["Create a new profile using these settings"] = "Neues Profil anlegen und diese Einstellungen übernehmen"; $a->strings["Clone this profile"] = "Dieses Profil klonen"; $a->strings["Delete this profile"] = "Dieses Profil löschen"; +$a->strings["Add profile things"] = "Sachen zum Profil hinzufügen"; +$a->strings["Relation"] = "Beziehung"; $a->strings["Import profile from file"] = "Profil aus einer Datei importieren"; $a->strings["Export profile to file"] = "Profil in eine Datei exportieren"; -$a->strings["Profile Name"] = "Profilname"; -$a->strings["Your Full Name"] = "Dein voller Name"; +$a->strings["Your gender"] = "Dein Geschlecht"; +$a->strings["Marital status"] = "Familienstand"; +$a->strings["Sexual preference"] = "Sexuelle Orientierung"; +$a->strings["Profile name"] = "Profilname"; +$a->strings["This is your default profile."] = "Das ist Dein Standardprofil."; +$a->strings["Your full name"] = "Dein voller Name"; $a->strings["Title/Description"] = "Titel/Beschreibung"; -$a->strings["Your Gender"] = "Dein Geschlecht"; -$a->strings["Birthday"] = "Geburtstag"; -$a->strings["Street Address"] = "Straße und Hausnummer"; +$a->strings["Street address"] = "Straße und Hausnummer"; $a->strings["Locality/City"] = "Wohnort"; -$a->strings["Postal/Zip Code"] = "Postleitzahl"; -$a->strings["Country"] = "Land"; $a->strings["Region/State"] = "Region/Bundesstaat"; -$a->strings["<span class=\"heart\">♥</span> Marital Status"] = "<span class=\"heart\">♥</span> Beziehungsstatus"; +$a->strings["Postal/Zip code"] = "Postleitzahl"; +$a->strings["Country"] = "Land"; $a->strings["Who (if applicable)"] = "Wer (falls anwendbar)"; $a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Beispiele: cathy123, Cathy Williams, cathy@example.com"; -$a->strings["Since [date]"] = "Seit [Datum]"; +$a->strings["Since (date)"] = "Seit (Datum)"; +$a->strings["Tell us about yourself"] = "Erzähle uns ein wenig von Dir"; $a->strings["Hometown"] = "Heimatort"; -$a->strings["Religious Views"] = "Religiöse Ansichten"; +$a->strings["Political views"] = "Politische Ansichten"; +$a->strings["Religious views"] = "Religiöse Ansichten"; +$a->strings["Keywords used in directory listings"] = "Schlüsselwörter, die in Verzeichnis-Auflistungen verwendet werden"; $a->strings["Example: fishing photography software"] = "Beispiel: Angeln Fotografie Software"; -$a->strings["Used in directory listings"] = "Wird in Verzeichnis-Auflistungen verwendet"; -$a->strings["Tell us about yourself..."] = "Erzähle uns ein wenig von Dir …"; -$a->strings["Hobbies/Interests"] = "Hobbys/Interessen"; -$a->strings["Contact information and Social Networks"] = "Kontaktinformation und soziale Netzwerke"; -$a->strings["My other channels"] = "Meine anderen Kanäle"; $a->strings["Musical interests"] = "Musikalische Interessen"; $a->strings["Books, literature"] = "Bücher, Literatur"; $a->strings["Television"] = "Fernsehen"; -$a->strings["Film/dance/culture/entertainment"] = "Film/Tanz/Kultur/Unterhaltung"; -$a->strings["Love/romance"] = "Liebe/Romantik"; -$a->strings["Work/employment"] = "Arbeit/Anstellung"; -$a->strings["School/education"] = "Schule/Ausbildung"; -$a->strings["This is your default profile."] = "Das ist Dein Standardprofil."; -$a->strings["Age: "] = "Alter:"; -$a->strings["Edit/Manage Profiles"] = "Profile bearbeiten/verwalten"; -$a->strings["Add profile things"] = "Sachen zum Profil hinzufügen"; -$a->strings["Include desirable objects in your profile"] = "Binde begehrenswerte Dinge in Dein Profil ein"; +$a->strings["Film/Dance/Culture/Entertainment"] = "Film/Tanz/Kultur/Unterhaltung"; +$a->strings["Hobbies/Interests"] = "Hobbys/Interessen"; +$a->strings["Love/Romance"] = "Liebe/Romantik"; +$a->strings["School/Education"] = "Schule/Ausbildung"; +$a->strings["Contact information and social networks"] = "Kontaktinformation und soziale Netzwerke"; +$a->strings["My other channels"] = "Meine anderen Kanäle"; +$a->strings["Create New"] = "Ein neues erstellen"; $a->strings["Invalid profile identifier."] = "Ungültiger Profil-Identifikator"; $a->strings["Profile Visibility Editor"] = "Profil-Sichtbarkeits-Editor"; $a->strings["Click on a contact to add or remove."] = "Klicke auf einen Kontakt, um ihn hinzuzufügen oder zu entfernen."; diff --git a/view/tpl/xrd_person.tpl b/view/tpl/xrd_person.tpl index 754eb3944..93fdcb1df 100755 --- a/view/tpl/xrd_person.tpl +++ b/view/tpl/xrd_person.tpl @@ -2,7 +2,10 @@ <XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0"> <Subject>{{$accturi}}</Subject> - + {{if $aliases}}{{foreach $aliases as $a}} + <Alias>{{$a}}</Alias> + {{/foreach}}{{/if}} + <Link rel="http://schemas.google.com/g/2010#updates-from" type="application/atom+xml" href="{{$atom}}" /> |