From 311e35731c52102cbce3befc6343f179080ad38c Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 23 Feb 2012 20:51:44 +0100 Subject: [PATCH 01/56] bbcode.php: A list or quote at the beginning wasn't detected --- include/bbcode.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/bbcode.php b/include/bbcode.php index d639b0c39a..eef1cde1f1 100755 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -151,7 +151,7 @@ function bbcode($Text,$preserve_nl = false) { // handle nested lists $endlessloop = 0; - while (strpos($Text, "[/list]") and strpos($Text, "[list") and (++$endlessloop < 20)) { + while ((strpos($Text, "[/list]") !== false) and (strpos($Text, "[list") !== false) and (++$endlessloop < 20)) { $Text = preg_replace("/\[list\](.*?)\[\/list\]/ism", '' ,$Text); $Text = preg_replace("/\[list=\](.*?)\[\/list\]/ism", '' ,$Text); $Text = preg_replace("/\[list=1\](.*?)\[\/list\]/ism", '' ,$Text); @@ -194,7 +194,7 @@ function bbcode($Text,$preserve_nl = false) { // Check for [quote] text // handle nested quotes $endlessloop = 0; - while (strpos($Text, "[/quote]") and strpos($Text, "[quote]") and (++$endlessloop < 20)) + while ((strpos($Text, "[/quote]") !== false) and (strpos($Text, "[quote]") !== false) and (++$endlessloop < 20)) $Text = preg_replace("/\[quote\](.*?)\[\/quote\]/ism","$QuoteLayout", $Text); // Check for [quote=Author] text @@ -203,7 +203,7 @@ function bbcode($Text,$preserve_nl = false) { // handle nested quotes $endlessloop = 0; - while (strpos($Text, "[/quote]") and strpos($Text, "[quote=") and (++$endlessloop < 20)) + while ((strpos($Text, "[/quote]")!== false) and (strpos($Text, "[quote=") !== false) and (++$endlessloop < 20)) $Text = preg_replace("/\[quote=[\"\']*(.*?)[\"\']*\](.*?)\[\/quote\]/ism", "
" . $t_wrote . " $2
", $Text); From 484a442f2b1072fe714174f4f782aa7d15818e72 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 23 Feb 2012 20:59:34 +0100 Subject: [PATCH 02/56] GIT problems ... --- include/bbcode.php | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) mode change 100755 => 100644 include/bbcode.php diff --git a/include/bbcode.php b/include/bbcode.php old mode 100755 new mode 100644 index 47822d093c..cff26f5c8e --- a/include/bbcode.php +++ b/include/bbcode.php @@ -194,11 +194,7 @@ function bbcode($Text,$preserve_nl = false) { // Check for [quote] text // handle nested quotes $endlessloop = 0; -<<<<<<< HEAD while ((strpos($Text, "[/quote]") !== false) and (strpos($Text, "[quote]") !== false) and (++$endlessloop < 20)) -======= - while (strpos($Text, "[/quote]") !== false and strpos($Text, "[quote]") !== false and (++$endlessloop < 20)) ->>>>>>> upstream/master $Text = preg_replace("/\[quote\](.*?)\[\/quote\]/ism","$QuoteLayout", $Text); // Check for [quote=Author] text @@ -207,11 +203,7 @@ function bbcode($Text,$preserve_nl = false) { // handle nested quotes $endlessloop = 0; -<<<<<<< HEAD while ((strpos($Text, "[/quote]")!== false) and (strpos($Text, "[quote=") !== false) and (++$endlessloop < 20)) -======= - while (strpos($Text, "[/quote]") !== false and strpos($Text, "[quote=") !== false and (++$endlessloop < 20)) ->>>>>>> upstream/master $Text = preg_replace("/\[quote=[\"\']*(.*?)[\"\']*\](.*?)\[\/quote\]/ism", "
" . $t_wrote . " $2
", $Text); @@ -293,3 +285,4 @@ function bbcode($Text,$preserve_nl = false) { return $Text; } + From f6320f3319a8009c7bdf51035b226f0ea688d8bd Mon Sep 17 00:00:00 2001 From: Michael Date: Fri, 24 Feb 2012 07:11:26 +0100 Subject: [PATCH 03/56] Encoding for incoming mails. Fixed invalid message id (with side effect at the moment). Sending mail as text mail. Encoding name when importing mail contact. --- include/Scrape.php | 15 +++- include/delivery.php | 41 ++++++--- include/email.php | 10 ++- include/html2plain.php | 180 +++++++++++++++++++++++++++++++++++++++ include/notifier.php | 26 ++++-- include/poller.php | 30 ++++++- include/quoteconvert.php | 132 ++++++++++++++++++++++++++++ 7 files changed, 411 insertions(+), 23 deletions(-) create mode 100644 include/html2plain.php create mode 100644 include/quoteconvert.php diff --git a/include/Scrape.php b/include/Scrape.php index 52405ae2dd..e98978f381 100755 --- a/include/Scrape.php +++ b/include/Scrape.php @@ -445,10 +445,19 @@ function probe_url($url, $mode = PROBE_NORMAL) { $adr = imap_rfc822_parse_adrlist($x->to,''); if(isset($adr)) { foreach($adr as $feadr) { - if((strcasecmp($feadr->mailbox,$name) == 0) - &&(strcasecmp($feadr->host,$phost) == 0) + if((strcasecmp($feadr->mailbox,$name) == 0) + &&(strcasecmp($feadr->host,$phost) == 0) && (strlen($feadr->personal))) { - $vcard['fn'] = notags($feadr->personal); + + $personal = imap_mime_header_decode($feadr->personal); + $vcard['fn'] = ""; + foreach($personal as $perspart) + if ($perspart->charset != "default") + $vcard['fn'] .= iconv($perspart->charset, 'UTF-8//IGNORE', $perspart->text); + else + $vcard['fn'] .= $perspart->text; + + $vcard['fn'] = notags($vcard['fn']); } } } diff --git a/include/delivery.php b/include/delivery.php index 677d893889..c7c2e8a3f3 100755 --- a/include/delivery.php +++ b/include/delivery.php @@ -1,6 +1,7 @@ ' . "\n"; + + // for testing purposes: Collect exported mails + $file = tempnam("/tmp/friendica/", "mail-out-"); + file_put_contents($file, json_encode($it)); + + $headers .= 'Message-Id: <' . cleanupmessageid($it['uri']). '>' . "\n"; + + //logger("Mail: uri: ".$it['uri']." parent-uri ".$it['parent-uri'], LOGGER_DEBUG); + //logger("Mail: Data: ".print_r($it, true), LOGGER_DEBUG); + //logger("Mail: Data: ".print_r($it, true), LOGGER_DATA); + if($it['uri'] !== $it['parent-uri']) { - $header .= 'References: <' . $it['parent-uri'] . '>' . "\n"; + $headers .= 'References: <' . cleanupmessageid($it['parent-uri']) . '>' . "\n"; if(! strlen($it['title'])) { $r = q("SELECT `title` FROM `item` WHERE `parent-uri` = '%s' LIMIT 1", dbesc($it['parent-uri']) @@ -451,10 +462,12 @@ function delivery_run($argv, $argc){ } } $headers .= 'MIME-Version: 1.0' . "\n"; - $headers .= 'Content-Type: text/html; charset=UTF-8' . "\n"; + //$headers .= 'Content-Type: text/html; charset=UTF-8' . "\n"; + $headers .= 'Content-Type: text/plain; charset=UTF-8' . "\n"; $headers .= 'Content-Transfer-Encoding: 8bit' . "\n\n"; $html = prepare_body($it); - $message = '' . $html . ''; + //$message = '' . $html . ''; + $message = html2plain($html); logger('notifier: email delivery to ' . $addr); mail($addr, $subject, $message, $headers); } @@ -473,7 +486,7 @@ function delivery_run($argv, $argc){ if((! $contact['pubkey']) && (! $public_message)) break; - + if($target_item['verb'] === ACTIVITY_DISLIKE) { // unsupported break; @@ -514,6 +527,14 @@ function delivery_run($argv, $argc){ return; } +function cleanupmessageid($messageid) { + global $a; + + if (!strpos($messageid, '@')) + $messageid = str_replace(":", ".", $messageid).'@'.$a->get_hostname(); + return($messageid); +} + if (array_search(__file__,get_included_files())===0){ delivery_run($argv,$argc); killme(); diff --git a/include/email.php b/include/email.php index 3e6a8186d8..452682260a 100755 --- a/include/email.php +++ b/include/email.php @@ -79,6 +79,10 @@ function email_get_msg($mbox,$uid) { if(! $struc) return $ret; + // for testing purposes: Collect imported mails + // $file = tempnam("/tmp/friendica2/", "mail-in-"); + // file_put_contents($file, json_encode($struc)); + if(! $struc->parts) { $ret['body'] = email_get_part($mbox,$uid,$struc,0); } @@ -99,13 +103,17 @@ function email_get_part($mbox,$uid,$p,$partno) { // $partno = '1', '2', '2.1', '2.1.3', etc for multipart, 0 if simple global $htmlmsg,$plainmsg,$charset,$attachments; - echo $partno; + //echo $partno; // DECODE DATA $data = ($partno) ? @imap_fetchbody($mbox,$uid,$partno, FT_UID|FT_PEEK) : @imap_body($mbox,$uid,FT_UID|FT_PEEK); + // for testing purposes: Collect imported mails + // $file = tempnam("/tmp/friendica2/", "mail-body-"); + // file_put_contents($file, $data); + // Any part may be encoded, even plain text messages, so check everything. if ($p->encoding==4) $data = quoted_printable_decode($data); diff --git a/include/html2plain.php b/include/html2plain.php new file mode 100644 index 0000000000..2a4cf66391 --- /dev/null +++ b/include/html2plain.php @@ -0,0 +1,180 @@ + 0) and strlen($line) > $wraplen) { + $newline = trim(substr($line, 0, $pos)); + if ($level > 0) + $newline = str_repeat(">", $level).' '.$newline; + + $newlines[] = $newline." "; + $line = substr($line, $pos+1); + } + + } while ((strlen($line) > $wraplen) and !($oldline == $line)); + + if ($level > 0) + $line = str_repeat(">", $level).' '.$line; + + $newlines[] = $line; + + + return(implode($newlines, "\n")); +} + +function quotelevel($message) +{ + $lines = explode("\n", $message); + + $newlines = array(); + $level = 0; + foreach($lines as $line) {; + $line = trim($line); + $startquote = false; + while (strpos("*".$line, '[quote]') > 0) { + $level++; + $pos = strpos($line, '[quote]'); + $line = substr($line, 0, $pos).substr($line, $pos+7); + $startquote = true; + } + + $currlevel = $level; + + while (strpos("*".$line, '[/quote]') > 0) { + $level--; + if ($level < 0) + $level = 0; + + $pos = strpos($line, '[/quote]'); + $line = substr($line, 0, $pos).substr($line, $pos+8); + } + + if (!$startquote or ($line != '')) + $newlines[] = breaklines($line, $currlevel); + } + return(implode($newlines, "\n")); +} + +function html2plain($html) +{ + global $lang; + + $message = str_replace("\r", "", $html); + + $doc = new DOMDocument(); + $doc->preserveWhiteSpace = false; + + $message = mb_convert_encoding($message, 'HTML-ENTITIES', "UTF-8"); + + @$doc->loadHTML($message); + + $xpath = new DomXPath($doc); + $list = $xpath->query("//pre"); + foreach ($list as $node) { + $node->nodeValue = str_replace("\n", "\r", $node->nodeValue); + } + + $message = $doc->saveHTML(); + $message = str_replace(array("\n<", ">\n", "\r", "\n", "\xC3\x82\xC2\xA0"), array("<", ">", "
", " ", ""), $message); + $message = preg_replace('= [\s]*=i', " ", $message); + + // nach ... suchen, die ... miteinander vergleichen und bei Gleichheit durch ein einzelnes ... ersetzen. + $pattern = '/(.*?)<\/a>/is'; + preg_match_all($pattern, $message, $result, PREG_SET_ORDER); + + foreach ($result as $treffer) { + if ($treffer[1] == $treffer[2]) { + $search = ''.$treffer[1].''; + $message = str_replace($search, $treffer[1], $message); + } + } + @$doc->loadHTML($message); + + node2bbcode($doc, 'html', array(), '', ''); + node2bbcode($doc, 'body', array(), '', ''); + + // MyBB-Auszeichnungen + node2bbcode($doc, 'span', array('style'=>'text-decoration: underline;'), '_', '_'); + node2bbcode($doc, 'span', array('style'=>'font-style: italic;'), '/', '/'); + node2bbcode($doc, 'span', array('style'=>'font-weight: bold;'), '*', '*'); + + node2bbcode($doc, 'strong', array(), '*', '*'); + node2bbcode($doc, 'b', array(), '*', '*'); + node2bbcode($doc, 'i', array(), '/', '/'); + node2bbcode($doc, 'u', array(), '_', '_'); + + node2bbcode($doc, 'blockquote', array(), '[quote]', "[/quote]\n"); + + node2bbcode($doc, 'br', array(), "\n", ''); + + node2bbcode($doc, 'span', array(), "", ""); + node2bbcode($doc, 'pre', array(), "", ""); + node2bbcode($doc, 'div', array(), "\r", "\r"); + node2bbcode($doc, 'p', array(), "\n", "\n"); + + //node2bbcode($doc, 'ul', array(), "\n[list]", "[/list]\n"); + //node2bbcode($doc, 'ol', array(), "\n[list=1]", "[/list]\n"); + node2bbcode($doc, 'li', array(), "\n* ", "\n"); + + node2bbcode($doc, 'hr', array(), str_repeat("-", 70), ""); + + node2bbcode($doc, 'tr', array(), "\n", ""); + node2bbcode($doc, 'td', array(), "\t", ""); + + node2bbcode($doc, 'h1', array(), "\n\n*", "*\n"); + node2bbcode($doc, 'h2', array(), "\n\n*", "*\n"); + node2bbcode($doc, 'h3', array(), "\n\n*", "*\n"); + node2bbcode($doc, 'h4', array(), "\n\n*", "*\n"); + node2bbcode($doc, 'h5', array(), "\n\n*", "*\n"); + node2bbcode($doc, 'h6', array(), "\n\n*", "*\n"); + + node2bbcode($doc, 'a', array('href'=>'/(.+)/'), ' $1', '', true); + node2bbcode($doc, 'img', array('alt'=>'/(.+)/'), '$1', ''); + node2bbcode($doc, 'img', array('title'=>'/(.+)/'), '$1', ''); + node2bbcode($doc, 'img', array(), '', ''); + node2bbcode($doc, 'img', array('src'=>'/(.+)/'), '[img]$1', '[/img]'); + + $message = $doc->saveHTML(); + + $message = str_replace("[img]", "", $message); + $message = str_replace("[/img]", "", $message); + + // was ersetze ich da? + // Irgendein stoerrisches UTF-Zeug + $message = str_replace(chr(194).chr(160), ' ', $message); + + $message = str_replace(" ", " ", $message); + + // Aufeinanderfolgende DIVs + $message = preg_replace('=\r *\r=i', "\n", $message); + $message = str_replace("\r", "\n", $message); + + $message = strip_tags($message); + + $message = html_entity_decode($message, ENT_QUOTES, 'UTF-8'); + + do { + $oldmessage = $message; + $message = str_replace("\n\n\n", "\n\n", $message); + } while ($oldmessage != $message); + + $message = quotelevel(trim($message)); + + return(trim($message)); +} +?> diff --git a/include/notifier.php b/include/notifier.php index 37bc6dae51..3ad433afd8 100755 --- a/include/notifier.php +++ b/include/notifier.php @@ -2,6 +2,7 @@ require_once("boot.php"); require_once('include/queue_fn.php'); +require_once('include/html2plain.php'); /* * This file was at one time responsible for doing all deliveries, but this caused @@ -633,7 +634,7 @@ function notifier_run($argv, $argc){ ); if($r1 && $r1[0]['reply_to']) $reply_to = $r1[0]['reply_to']; - + $subject = (($it['title']) ? email_header_encode($it['title'],'UTF-8') : t("\x28no subject\x29")) ; // only expose our real email address to true friends @@ -646,10 +647,14 @@ function notifier_run($argv, $argc){ if($reply_to) $headers .= 'Reply-to: ' . $reply_to . "\n"; - $headers .= 'Message-id: <' . $it['uri'] . '>' . "\n"; + // for testing purposes: Collect exported mails + $file = tempnam("/tmp/friendica/", "mail-out2-"); + file_put_contents($file, json_encode($it)); + + $headers .= 'Message-Id: <' . cleanupmessageid($it['uri']) . '>' . "\n"; if($it['uri'] !== $it['parent-uri']) { - $header .= 'References: <' . $it['parent-uri'] . '>' . "\n"; + $headers .= 'References: <' . cleanupmessageid($it['parent-uri']) . '>' . "\n"; if(! strlen($it['title'])) { $r = q("SELECT `title` FROM `item` WHERE `parent-uri` = '%s' LIMIT 1", dbesc($it['parent-uri']) @@ -667,10 +672,12 @@ function notifier_run($argv, $argc){ } $headers .= 'MIME-Version: 1.0' . "\n"; - $headers .= 'Content-Type: text/html; charset=UTF-8' . "\n"; + //$headers .= 'Content-Type: text/html; charset=UTF-8' . "\n"; + $headers .= 'Content-Type: text/plain; charset=UTF-8' . "\n"; $headers .= 'Content-Transfer-Encoding: 8bit' . "\n\n"; $html = prepare_body($it); - $message = '' . $html . ''; + //$message = '' . $html . ''; + $message = html2plain($html); logger('notifier: email delivery to ' . $addr); mail($addr, $subject, $message, $headers); } @@ -834,6 +841,15 @@ function notifier_run($argv, $argc){ return; } +function cleanupmessageid($messageid) { + global $a; + + if (!strpos($messageid, '@')) + $messageid = str_replace(":", ".", $messageid).'@'.$a->get_hostname(); + + return($messageid); +} + if (array_search(__file__,get_included_files())===0){ notifier_run($argv,$argc); killme(); diff --git a/include/poller.php b/include/poller.php index 3e7a1e9b42..ad15ec2444 100755 --- a/include/poller.php +++ b/include/poller.php @@ -1,6 +1,7 @@ subject)); + + // Decoding the header + $subject = imap_mime_header_decode($meta->subject); + $datarray['title'] = ""; + foreach($subject as $subpart) + if ($subpart->charset != "default") + $datarray['title'] .= iconv($subpart->charset, 'UTF-8//IGNORE', $subpart->text); + else + $datarray['title'] .= $subpart->text; + + $datarray['title'] = notags(trim($datarray['title'])); + + //$datarray['title'] = notags(trim($meta->subject)); $datarray['created'] = datetime_convert('UTC','UTC',$meta->date); $r = email_get_msg($mbox,$msg_uid); @@ -463,15 +476,24 @@ function poller_run($argv, $argc){ logger("Mail: can't fetch msg ".$msg_uid); continue; } - $datarray['body'] = escape_tags($r['body']); + $datarray['body'] = escape_tags(convertquote($r['body'], false)); logger("Mail: Importing ".$msg_uid); // some mailing lists have the original author as 'from' - add this sender info to msg body. // todo: adding a gravatar for the original author would be cool - if(! stristr($meta->from,$contact['addr'])) - $datarray['body'] = t('From: ') . escape_tags($meta->from) . "\n\n" . $datarray['body']; + if(! stristr($meta->from,$contact['addr'])) { + $from = imap_mime_header_decode($meta->from); + $fromdecoded = ""; + foreach($from as $frompart) + if ($frompart->charset != "default") + $fromdecoded .= iconv($frompart->charset, 'UTF-8//IGNORE', $frompart->text); + else + $fromdecoded .= $frompart->text; + + $datarray['body'] = "[b]".t('From: ') . escape_tags($fromdecoded) . "[/b]\n\n" . $datarray['body']; + } $datarray['uid'] = $importer_uid; $datarray['contact-id'] = $contact['id']; diff --git a/include/quoteconvert.php b/include/quoteconvert.php new file mode 100644 index 0000000000..3aee93234f --- /dev/null +++ b/include/quoteconvert.php @@ -0,0 +1,132 @@ +0) and ((substr($quoteline, 0, 1) == '>') + or (substr($quoteline, 0, 1) == ' '))) { + if (substr($quoteline, 0, 1) == '>') + $quotelevel++; + + $quoteline = ltrim(substr($quoteline, 1)); + } + + //echo $quotelevel.'*'.$quoteline."\r\n"; + + $arrlevel[$i] = $quotelevel; + $arrbody[$i] = $quoteline; + } + + $quotelevel = 0; + $previousquote = 0; + $arrbodyquoted = array(); + + for ($i = 0; $i < count($arrbody); $i++) { + + $previousquote = $quotelevel; + $quotelevel = $arrlevel[$i]; + $currline = $arrbody[$i]; + + while ($previousquote < $quotelevel) { + if ($sender != '') { + $quote = "[quote title=$sender]"; + $sender = ''; + } else + $quote = "[quote]"; + + $arrbody[$i] = $quote.$arrbody[$i]; + $previousquote++; + } + + while ($previousquote > $quotelevel) { + $arrbody[$i] = '[/quote]'.$arrbody[$i]; + $previousquote--; + } + + $arrbodyquoted[] = $arrbody[$i]; + } + while ($quotelevel > 0) { + $arrbodyquoted[] = '[/quote]'; + $quotelevel--; + } + + $body = implode("\n", $arrbodyquoted); + + if (strlen($body) > 0) + $body = $body."\n\n"; + + if ($reply) + $body = removetofu($body); + + return($body); +} + +function removetofu($message) +{ + $message = trim($message); + + do { + $oldmessage = $message; + $message = preg_replace('=\[/quote\][\s](.*?)\[quote\]=i', '$1', $message); + $message = str_replace("[/quote][quote]", "", $message); + } while ($message != $oldmessage); + + $quotes = array(); + + $startquotes = 0; + + $start = 0; + + while(($pos = strpos($message, '[quote', $start)) > 0) { + $quotes[$pos] = -1; + $start = $pos + 7; + $startquotes++; + } + + $endquotes = 0; + $start = 0; + + while(($pos = strpos($message, '[/quote]', $start)) > 0) { + $start = $pos + 7; + $endquotes++; + } + + while ($endquotes < $startquotes) { + $message .= '[/quote]'; + ++$endquotes; + } + + $start = 0; + + while(($pos = strpos($message, '[/quote]', $start)) > 0) { + $quotes[$pos] = 1; + $start = $pos + 7; + } + + if (strtolower(substr($message, -8)) != '[/quote]') + return($message); + + krsort($quotes); + + $quotelevel = 0; + $quotestart = 0; + foreach ($quotes as $index => $quote) { + $quotelevel += $quote; + + if (($quotelevel == 0) and ($quotestart == 0)) + $quotestart = $index; + } + + if ($quotestart != 0) { + $message = trim(substr($message, 0, $quotestart))."\n[collapsed]\n".substr($message, $quotestart+7, -8).'[/collapsed]'; + } + + return($message); +} +?> From 0ba45eb74543fc6377c48ac17d8b632e431e9467 Mon Sep 17 00:00:00 2001 From: Michael Date: Fri, 24 Feb 2012 08:50:42 +0100 Subject: [PATCH 04/56] Sending mail as multipart/alternative (html and plain text) (very basic by now) --- include/delivery.php | 17 +++++------------ include/email.php | 41 ++++++++++++++++++++++++++++++++++++++++- include/notifier.php | 20 ++++++-------------- 3 files changed, 51 insertions(+), 27 deletions(-) diff --git a/include/delivery.php b/include/delivery.php index c7c2e8a3f3..98c4f75df2 100755 --- a/include/delivery.php +++ b/include/delivery.php @@ -438,14 +438,14 @@ function delivery_run($argv, $argc){ $file = tempnam("/tmp/friendica/", "mail-out-"); file_put_contents($file, json_encode($it)); - $headers .= 'Message-Id: <' . cleanupmessageid($it['uri']). '>' . "\n"; + $headers .= 'Message-Id: <' . email_cleanupmessageid($it['uri']). '>' . "\n"; //logger("Mail: uri: ".$it['uri']." parent-uri ".$it['parent-uri'], LOGGER_DEBUG); //logger("Mail: Data: ".print_r($it, true), LOGGER_DEBUG); //logger("Mail: Data: ".print_r($it, true), LOGGER_DATA); if($it['uri'] !== $it['parent-uri']) { - $headers .= 'References: <' . cleanupmessageid($it['parent-uri']) . '>' . "\n"; + $headers .= 'References: <' . email_cleanupmessageid($it['parent-uri']) . '>' . "\n"; if(! strlen($it['title'])) { $r = q("SELECT `title` FROM `item` WHERE `parent-uri` = '%s' LIMIT 1", dbesc($it['parent-uri']) @@ -461,7 +461,7 @@ function delivery_run($argv, $argc){ } } } - $headers .= 'MIME-Version: 1.0' . "\n"; + /*$headers .= 'MIME-Version: 1.0' . "\n"; //$headers .= 'Content-Type: text/html; charset=UTF-8' . "\n"; $headers .= 'Content-Type: text/plain; charset=UTF-8' . "\n"; $headers .= 'Content-Transfer-Encoding: 8bit' . "\n\n"; @@ -469,7 +469,8 @@ function delivery_run($argv, $argc){ //$message = '' . $html . ''; $message = html2plain($html); logger('notifier: email delivery to ' . $addr); - mail($addr, $subject, $message, $headers); + mail($addr, $subject, $message, $headers);*/ + email_send($addr, $subject, $headers, $it); } break; @@ -527,14 +528,6 @@ function delivery_run($argv, $argc){ return; } -function cleanupmessageid($messageid) { - global $a; - - if (!strpos($messageid, '@')) - $messageid = str_replace(":", ".", $messageid).'@'.$a->get_hostname(); - return($messageid); -} - if (array_search(__file__,get_included_files())===0){ delivery_run($argv,$argc); killme(); diff --git a/include/email.php b/include/email.php index 452682260a..fee3e2f686 100755 --- a/include/email.php +++ b/include/email.php @@ -1,4 +1,5 @@ ' . $html . ''; + //$message = html2plain($html); + logger('notifier: email delivery to ' . $addr); + mail($addr, $subject, $body, $headers); +} + +function email_cleanupmessageid($messageid) { + global $a; + + if (!strpos($messageid, '@')) + $messageid = str_replace(":", ".", $messageid).'@'.$a->get_hostname(); + + return($messageid); +} diff --git a/include/notifier.php b/include/notifier.php index 3ad433afd8..b22e8c6f03 100755 --- a/include/notifier.php +++ b/include/notifier.php @@ -651,10 +651,10 @@ function notifier_run($argv, $argc){ $file = tempnam("/tmp/friendica/", "mail-out2-"); file_put_contents($file, json_encode($it)); - $headers .= 'Message-Id: <' . cleanupmessageid($it['uri']) . '>' . "\n"; + $headers .= 'Message-Id: <' . email_cleanupmessageid($it['uri']) . '>' . "\n"; if($it['uri'] !== $it['parent-uri']) { - $headers .= 'References: <' . cleanupmessageid($it['parent-uri']) . '>' . "\n"; + $headers .= 'References: <' . email_cleanupmessageid($it['parent-uri']) . '>' . "\n"; if(! strlen($it['title'])) { $r = q("SELECT `title` FROM `item` WHERE `parent-uri` = '%s' LIMIT 1", dbesc($it['parent-uri']) @@ -671,7 +671,7 @@ function notifier_run($argv, $argc){ } } - $headers .= 'MIME-Version: 1.0' . "\n"; + /*$headers .= 'MIME-Version: 1.0' . "\n"; //$headers .= 'Content-Type: text/html; charset=UTF-8' . "\n"; $headers .= 'Content-Type: text/plain; charset=UTF-8' . "\n"; $headers .= 'Content-Transfer-Encoding: 8bit' . "\n\n"; @@ -679,7 +679,8 @@ function notifier_run($argv, $argc){ //$message = '' . $html . ''; $message = html2plain($html); logger('notifier: email delivery to ' . $addr); - mail($addr, $subject, $message, $headers); + mail($addr, $subject, $message, $headers);*/ + email_send($addr, $subject, $headers, $it); } break; case NETWORK_DIASPORA: @@ -726,7 +727,7 @@ function notifier_run($argv, $argc){ // we are the relay - send comments, likes and unlikes to our conversants diaspora_send_relay($target_item,$owner,$contact); break; - } + } elseif(($top_level) && (! $walltowall)) { // currently no workable solution for sending walltowall diaspora_send_status($target_item,$owner,$contact); @@ -841,15 +842,6 @@ function notifier_run($argv, $argc){ return; } -function cleanupmessageid($messageid) { - global $a; - - if (!strpos($messageid, '@')) - $messageid = str_replace(":", ".", $messageid).'@'.$a->get_hostname(); - - return($messageid); -} - if (array_search(__file__,get_included_files())===0){ notifier_run($argv,$argc); killme(); From a74b0746b1e39d86aca4f665cfded03e6b344240 Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 25 Feb 2012 01:10:45 +0100 Subject: [PATCH 05/56] multipart messages complete, message-id conversion done. --- include/delivery.php | 4 ++-- include/email.php | 37 +++++++++++++++++++++++-------------- include/notifier.php | 4 ++-- include/poller.php | 4 ++-- 4 files changed, 29 insertions(+), 20 deletions(-) diff --git a/include/delivery.php b/include/delivery.php index 98c4f75df2..97a76965a7 100755 --- a/include/delivery.php +++ b/include/delivery.php @@ -438,14 +438,14 @@ function delivery_run($argv, $argc){ $file = tempnam("/tmp/friendica/", "mail-out-"); file_put_contents($file, json_encode($it)); - $headers .= 'Message-Id: <' . email_cleanupmessageid($it['uri']). '>' . "\n"; + $headers .= 'Message-Id: <' . iri2msgid($it['uri']). '>' . "\n"; //logger("Mail: uri: ".$it['uri']." parent-uri ".$it['parent-uri'], LOGGER_DEBUG); //logger("Mail: Data: ".print_r($it, true), LOGGER_DEBUG); //logger("Mail: Data: ".print_r($it, true), LOGGER_DATA); if($it['uri'] !== $it['parent-uri']) { - $headers .= 'References: <' . email_cleanupmessageid($it['parent-uri']) . '>' . "\n"; + $headers .= 'References: <' . iri2msgid($it['parent-uri']) . '>' . "\n"; if(! strlen($it['title'])) { $r = q("SELECT `title` FROM `item` WHERE `parent-uri` = '%s' LIMIT 1", dbesc($it['parent-uri']) diff --git a/include/email.php b/include/email.php index fee3e2f686..4fc241f248 100755 --- a/include/email.php +++ b/include/email.php @@ -232,24 +232,27 @@ function email_send($addr, $subject, $headers, $item) { //$headers .= 'Content-Type: text/html; charset=UTF-8' . "\n"; //$headers .= 'Content-Type: text/plain; charset=UTF-8' . "\n"; //$headers .= 'Content-Transfer-Encoding: 8bit' . "\n\n"; + + $part = uniqid("", true); + $html = prepare_body($item); $headers .= "Mime-Version: 1.0\n"; - $headers .= 'Content-Type: multipart/alternative; boundary="=_1f5dbdf8dbd0a060ea5bc3050bb14c6a"'."\n\n"; + $headers .= 'Content-Type: multipart/alternative; boundary="=_'.$part.'"'."\n\n"; - $body = "--=_1f5dbdf8dbd0a060ea5bc3050bb14c6a\n"; - $body .= "Content-Transfer-Encoding: quoted-printable\n"; + $body = "\n--=_".$part."\n"; + $body .= "Content-Transfer-Encoding: 8bit\n"; $body .= "Content-Type: text/plain; charset=utf-8; format=flowed\n\n"; $body .= html2plain($html)."\n"; - $body .= "--=_1f5dbdf8dbd0a060ea5bc3050bb14c6a\n"; - $body .= "Content-Transfer-Encoding: quoted-printable\n"; + $body .= "--=_".$part."\n"; + $body .= "Content-Transfer-Encoding: 8bit\n"; $body .= "Content-Type: text/html; charset=utf-8\n\n"; - $body .= $html."\n\n"; + $body .= ''.$html."\n"; - $body .= "--=_1f5dbdf8dbd0a060ea5bc3050bb14c6a--\n"; + $body .= "--=_".$part."--"; //$message = '' . $html . ''; //$message = html2plain($html); @@ -257,12 +260,18 @@ function email_send($addr, $subject, $headers, $item) { mail($addr, $subject, $body, $headers); } -function email_cleanupmessageid($messageid) { - global $a; - - if (!strpos($messageid, '@')) - $messageid = str_replace(":", ".", $messageid).'@'.$a->get_hostname(); - - return($messageid); +function iri2msgid($iri) { + if (!strpos($iri, "@")) + $msgid = preg_replace("/urn:(\S+):(\S+)\.(\S+):(\d+):(\S+)/i", "urn!$1!$4!$5@$2.$3", $iri); + else + $msgid = $iri; + return($msgid); } +function msgid2iri($msgid) { + if (strpos($msgid, "@")) + $iri = preg_replace("/urn!(\S+)!(\d+)!(\S+)@(\S+)\.(\S+)/i", "urn:$1:$4.$5:$2:$3", $msgid); + else + $iri = $msgid; + return($iri); +} diff --git a/include/notifier.php b/include/notifier.php index b22e8c6f03..684395da6c 100755 --- a/include/notifier.php +++ b/include/notifier.php @@ -651,10 +651,10 @@ function notifier_run($argv, $argc){ $file = tempnam("/tmp/friendica/", "mail-out2-"); file_put_contents($file, json_encode($it)); - $headers .= 'Message-Id: <' . email_cleanupmessageid($it['uri']) . '>' . "\n"; + $headers .= 'Message-Id: <' . iri2msgid($it['uri']) . '>' . "\n"; if($it['uri'] !== $it['parent-uri']) { - $headers .= 'References: <' . email_cleanupmessageid($it['parent-uri']) . '>' . "\n"; + $headers .= 'References: <' . iri2msgid($it['parent-uri']) . '>' . "\n"; if(! strlen($it['title'])) { $r = q("SELECT `title` FROM `item` WHERE `parent-uri` = '%s' LIMIT 1", dbesc($it['parent-uri']) diff --git a/include/poller.php b/include/poller.php index ad15ec2444..9cf12ed9cd 100755 --- a/include/poller.php +++ b/include/poller.php @@ -420,13 +420,13 @@ function poller_run($argv, $argc){ // look for a 'references' header and try and match with a parent item we have locally. $raw_refs = ((x($headers,'references')) ? str_replace("\t",'',$headers['references']) : ''); - $datarray['uri'] = trim($meta->message_id,'<>'); + $datarray['uri'] = msgid2iri(trim($meta->message_id,'<>')); if($raw_refs) { $refs_arr = explode(' ', $raw_refs); if(count($refs_arr)) { for($x = 0; $x < count($refs_arr); $x ++) - $refs_arr[$x] = "'" . str_replace(array('<','>',' '),array('','',''),dbesc($refs_arr[$x])) . "'"; + $refs_arr[$x] = "'" . msgid2iri(str_replace(array('<','>',' '),array('','',''),dbesc($refs_arr[$x]))) . "'"; } $qstr = implode(',',$refs_arr); $r = q("SELECT `uri` , `parent-uri` FROM `item` WHERE `uri` IN ( $qstr ) AND `uid` = %d LIMIT 1", From 01301a616901c23687f5ca33f147af7e4ea67c25 Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 25 Feb 2012 02:37:39 +0100 Subject: [PATCH 06/56] Bug fixed where mails where nearly empty. HTML mails can now be received. --- include/email.php | 132 ++++++++++++++++++++++++++-------------------- 1 file changed, 74 insertions(+), 58 deletions(-) diff --git a/include/email.php b/include/email.php index 4fc241f248..659978b6ee 100755 --- a/include/email.php +++ b/include/email.php @@ -85,14 +85,27 @@ function email_get_msg($mbox,$uid) { // file_put_contents($file, json_encode($struc)); if(! $struc->parts) { - $ret['body'] = email_get_part($mbox,$uid,$struc,0); + $ret['body'] = email_get_part($mbox,$uid,$struc,0, 'html'); + + if (trim($ret['body']) == '') + $ret['body'] = email_get_part($mbox,$uid,$struc,0, 'plain'); + else + $ret['body'] = html2bbcode($ret['body']); } else { + $text = ''; + $html = ''; foreach($struc->parts as $ptop => $p) { - $x = email_get_part($mbox,$uid,$p,$ptop + 1); - if($x) - $ret['body'] = $x; + $x = email_get_part($mbox,$uid,$p,$ptop + 1, 'plain'); + if($x) $text .= $x; + + $x = email_get_part($mbox,$uid,$p,$ptop + 1, 'html'); + if($x) $html .= $x; } + if (trim($html) != '') + $ret['body'] = html2bbcode($html); + else + $ret['body'] = $text; } return $ret; } @@ -100,78 +113,81 @@ function email_get_msg($mbox,$uid) { // At the moment - only return plain/text. // Later we'll repackage inline images as data url's and make the HTML safe -function email_get_part($mbox,$uid,$p,$partno) { - // $partno = '1', '2', '2.1', '2.1.3', etc for multipart, 0 if simple - global $htmlmsg,$plainmsg,$charset,$attachments; +function email_get_part($mbox,$uid,$p,$partno, $subtype) { + // $partno = '1', '2', '2.1', '2.1.3', etc for multipart, 0 if simple + global $htmlmsg,$plainmsg,$charset,$attachments; - //echo $partno; + //echo $partno."\n"; - // DECODE DATA - $data = ($partno) + // DECODE DATA + $data = ($partno) ? @imap_fetchbody($mbox,$uid,$partno, FT_UID|FT_PEEK) - : @imap_body($mbox,$uid,FT_UID|FT_PEEK); + : @imap_body($mbox,$uid,FT_UID|FT_PEEK); // for testing purposes: Collect imported mails // $file = tempnam("/tmp/friendica2/", "mail-body-"); // file_put_contents($file, $data); - // Any part may be encoded, even plain text messages, so check everything. - if ($p->encoding==4) - $data = quoted_printable_decode($data); - elseif ($p->encoding==3) - $data = base64_decode($data); + // Any part may be encoded, even plain text messages, so check everything. + if ($p->encoding==4) + $data = quoted_printable_decode($data); + elseif ($p->encoding==3) + $data = base64_decode($data); - // PARAMETERS - // get all parameters, like charset, filenames of attachments, etc. - $params = array(); - if ($p->parameters) - foreach ($p->parameters as $x) - $params[strtolower($x->attribute)] = $x->value; - if ($p->dparameters) - foreach ($p->dparameters as $x) - $params[strtolower($x->attribute)] = $x->value; + // PARAMETERS + // get all parameters, like charset, filenames of attachments, etc. + $params = array(); + if ($p->parameters) + foreach ($p->parameters as $x) + $params[strtolower($x->attribute)] = $x->value; + if (isset($p->dparameters) and $p->dparameters) + foreach ($p->dparameters as $x) + $params[strtolower($x->attribute)] = $x->value; - // ATTACHMENT - // Any part with a filename is an attachment, - // so an attached text file (type 0) is not mistaken as the message. + // ATTACHMENT + // Any part with a filename is an attachment, + // so an attached text file (type 0) is not mistaken as the message. - if ($params['filename'] || $params['name']) { - // filename may be given as 'Filename' or 'Name' or both - $filename = ($params['filename'])? $params['filename'] : $params['name']; - // filename may be encoded, so see imap_mime_header_decode() - $attachments[$filename] = $data; // this is a problem if two files have same name - } + if ((isset($params['filename']) and $params['filename']) || (isset($params['name']) and $params['name'])) { + // filename may be given as 'Filename' or 'Name' or both + $filename = ($params['filename'])? $params['filename'] : $params['name']; + // filename may be encoded, so see imap_mime_header_decode() + $attachments[$filename] = $data; // this is a problem if two files have same name + } - // TEXT - if ($p->type == 0 && $data) { - // Messages may be split in different parts because of inline attachments, - // so append parts together with blank row. - if (strtolower($p->subtype)=='plain') - return (trim($data) ."\n\n"); - else + // TEXT + if ($p->type == 0 && $data) { + // Messages may be split in different parts because of inline attachments, + // so append parts together with blank row. + if (strtolower($p->subtype)==$subtype) { + $data = iconv($params['charset'], 'UTF-8//IGNORE', $data); + return (trim($data) ."\n\n"); + } else $data = ''; // $htmlmsg .= $data ."

"; - $charset = $params['charset']; // assume all parts are same charset - } + $charset = $params['charset']; // assume all parts are same charset + } - // EMBEDDED MESSAGE - // Many bounce notifications embed the original message as type 2, - // but AOL uses type 1 (multipart), which is not handled here. - // There are no PHP functions to parse embedded messages, - // so this just appends the raw source to the main message. -// elseif ($p->type==2 && $data) { -// $plainmsg .= $data."\n\n"; -// } + // EMBEDDED MESSAGE + // Many bounce notifications embed the original message as type 2, + // but AOL uses type 1 (multipart), which is not handled here. + // There are no PHP functions to parse embedded messages, + // so this just appends the raw source to the main message. +// elseif ($p->type==2 && $data) { +// $plainmsg .= $data."\n\n"; +// } - // SUBPART RECURSION - if ($p->parts) { - foreach ($p->parts as $partno0=>$p2) { - $x = email_get_part($mbox,$uid,$p2,$partno . '.' . ($partno0+1)); // 1.2, 1.2.1, etc. - if($x) - return $x; + // SUBPART RECURSION + if (isset($p->parts) and $p->parts) { + $x = ""; + foreach ($p->parts as $partno0=>$p2) { + $x .= email_get_part($mbox,$uid,$p2,$partno . '.' . ($partno0+1), $subtype); // 1.2, 1.2.1, etc. + //if($x) + // return $x; } - } + return $x; + } } From dccefb3c36cd6b4672871a6a378a916bcb9d9992 Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 25 Feb 2012 11:00:35 +0100 Subject: [PATCH 07/56] "vier": The contacts are now working again. Line break before closing bbcodes removed. --- include/html2bbcode.php | 4 +- view/theme/vier/colors.less | 4 +- view/theme/vier/icons.less | 5 + view/theme/vier/quattro.less | 250 +++++++++++++++++++++++++++++++++-- view/theme/vier/style.css | 48 +++++-- 5 files changed, 289 insertions(+), 22 deletions(-) diff --git a/include/html2bbcode.php b/include/html2bbcode.php index d8f1a24f13..65920380b5 100755 --- a/include/html2bbcode.php +++ b/include/html2bbcode.php @@ -258,7 +258,7 @@ function html2bbcode($message) "[hr]\n", "\n[list", "[/list]\n", - "\n[/list]", + "\n[/", "[list]\n", "[list=1]\n", "\n[*]"), @@ -268,7 +268,7 @@ function html2bbcode($message) "[hr]", "[list", "[/list]", - "[/list]", + "[/", "[list]", "[list=1]", "[*]"), diff --git a/view/theme/vier/colors.less b/view/theme/vier/colors.less index 5314b52843..18d0fc620d 100644 --- a/view/theme/vier/colors.less +++ b/view/theme/vier/colors.less @@ -1,6 +1,7 @@ // Quattro Theme LESS file // "Echo" palette from Inkscape +@Yellow1 : #fce94f; @Blue1:rgb(25,174,255); @Blue2:rgb(0,132,200); @Blue3:rgb(0,92,148); @@ -71,6 +72,7 @@ @NoticeBackgroundColor: #511919; @ThreadBackgroundColor: #f6f7f8; +@ShinyBorderColor: @Yellow1; @CommentBoxEmptyColor: @Grey3; @CommentBoxEmptyBorderColor: @Grey3; @@ -91,4 +93,4 @@ @JotPermissionUnlockBackgroundColor: @Grey2; @JotPermissionLockBackgroundColor: @Grey4; @JotLoadingBackgroundColor: @Grey1; - +@JotPreviewBackgroundColor: @Yellow1; diff --git a/view/theme/vier/icons.less b/view/theme/vier/icons.less index f87327703f..e314fba1fd 100644 --- a/view/theme/vier/icons.less +++ b/view/theme/vier/icons.less @@ -13,6 +13,11 @@ &.link { background-image: url("../../../images/icons/@{size}/link.png"); } &.lock { background-image: url("../../../images/icons/@{size}/lock.png"); } &.unlock { background-image: url("../../../images/icons/@{size}/unlock.png"); } + &.type-unkn { background-image: url("../../../images/icons/@{size}/zip.png"); } + &.type-audio{ background-image: url("../../../images/icons/@{size}/audio.png"); } + &.type-video{ background-image: url("../../../images/icons/@{size}/video.png"); } + &.type-image{ background-image: url("../../../images/icons/@{size}/image.png"); } + &.type-text { background-image: url("../../../images/icons/@{size}/text.png"); } } diff --git a/view/theme/vier/quattro.less b/view/theme/vier/quattro.less index 6715773037..9d26082616 100644 --- a/view/theme/vier/quattro.less +++ b/view/theme/vier/quattro.less @@ -3,7 +3,7 @@ /* global */ body { font-family: Liberation Sans,helvetica,arial,clean,sans-serif; - font-size: 10px; + font-size: 11px; background-color: @BodyBackground; color: @BodyColor; margin: 50px 0px 0px 0px; @@ -44,6 +44,9 @@ a:hover {color: @LinkHover; text-decoration: underline; } .hidden { display: none; } .clear { clear: both; } +.fakelink { color: @Link; text-decoration: none; cursor:pointer; } +.fakelink:hover { color: @LinkHover; text-decoration: underline; } + code { font-family: Courier, monospace; white-space: pre; @@ -55,6 +58,23 @@ code { padding: 10px; margin-top: 20px; } + +#panel { + position: absolute; + width: 10em; + background: @MenuBg; + color: @Menu; + margin: 0px; + padding: 1em; + list-style: none; + border: 3px solid @MenuBorder; + z-index: 100000; + + .shadow(); +} + + + /* tool */ .tool { @@ -234,7 +254,8 @@ ul.menu-popup { #nav-notifications-menu { - width: 400px; + width: 400px; max-height: 550px; + overflow: auto; img { float: left; margin-right: 5px; } .contactname { font-weight: bold; } .notif-when { font-size: 10px; color: @MenuItemDetail; display: block; } @@ -288,16 +309,99 @@ aside { .allcontact-link { float: right; margin: 5px 0px; } .contact-block-content { clear: both; - overflow: auto; height: auto; + overflow: hidden; + height: auto; } + /*.contact-block-div { width:60px; height: 60px; }*/ .contact-block-link { float: left; margin: 0px 2px 2px 0px; - img { widht: 48px; height: 58px; } + img { width: 48px; height: 48px; } } } +/* mail view */ +.mail-conv-sender, +.mail-conv-detail { + float: left; +} +.mail-conv-detail { + margin-left: 20px; + width: 500px; +} +.mail-conv-subject { + font-size: 1.4em; + margin: 10px 0; +} +.mail-conv-outside-wrapper-end { + clear: both; +} + +.mail-conv-outside-wrapper { + margin-top: 30px; +} + +.mail-conv-delete-wrapper { + float: right; + margin-right: 30px; + margin-top: 15px; +} +.mail-conv-break { + clear: both; +} + +.mail-conv-delete-icon { + border: none; +} + +/* group member */ +#contact-edit-drop-link, +.mail-list-delete-wrapper, +.group-delete-wrapper { + float: right; + margin-right: 50px; + .drophide { + background-image: url('../../../images/icons/22/delete.png'); + display: block; width: 22px; height: 22px; + opacity: 0.3; + position: relative; + top: -50px; + } + .drop { + background-image: url('../../../images/icons/22/delete.png'); + display: block; width: 22px; height: 22px; + position: relative; + top: -50px; + } +} +/* +#group-members { + margin-top: 20px; + padding: 10px; + height: 250px; + overflow: auto; + border: 1px solid #ddd; +} +#group-members-end { + clear: both; +} +#group-all-contacts { + padding: 10px; + height: 450px; + overflow: auto; + border: 1px solid #ddd; +} +#group-all-contacts-end { + clear: both; + margin-bottom: 10px; +} +.contact-block-div { + float: left; + width: 60px; + height: 60px; +}*/ + /* widget */ .widget { margin-bottom: 2em; @@ -431,6 +535,28 @@ section { } } +.comment-edit-preview { + width: 710px; + border: 1px solid @Grey5; + margin-top: 10px; + + .contact-photo { width: 32px; height: 32px; margin-left: 16px; + /*background: url(../../../images/icons/22/user.png) no-repeat center center;*/ + } + .contact-photo-menu-button { + top: 15px !important; + left: 15px !important; + } + .wall-item-links { padding-left: 12px; } + + .wall-item-container { width: 700px; } + .tread-wrapper { width: 700px; padding: 0; margin: 10px 0;} + + +} + +.shiny { border-right:10px solid @ShinyBorderColor; } +#jot-preview-content .tread-wrapper { background-color: @JotPreviewBackgroundColor; } .wall-item-tags { padding-top: 5px; } @@ -445,7 +571,31 @@ section { } } -/* contacts menu */ +.wwto { + position: absolute !important; + width: 25px; height: 25px; + background: #FFFFFF; + border: 2px solid @Metalic3; + height: 25px; + width: 25px; + overflow: hidden; + padding: 1px; + position: absolute !important; + top: 40px; + left: 30px; + + .shadow(0px, 0px) +} +.wwto .contact-photo { width: 25px; height: 25px; } + + +#pause { + position: fixed; + bottom: 5px; + right: 5px; +} + + .contact-photo-wrapper { position: relative; } .contact-photo { width: 48px; height: 48px; @@ -462,8 +612,14 @@ section { .contact-wrapper { float: left; - width: 90px; + width: 300px; height: 90px; + padding-right: 10px; + margin: 0 10px 10px 0px; + .contact-photo-wrapper { + float: left; + margin-right: 10px; + } .contact-photo { width: 80px; height: 80px; img { width: 80px; height: 80px; } @@ -482,8 +638,12 @@ section { img { width: 175px; height: 175px; } } } -.contact-name { text-align: center; font-weight: bold; } -.contact-details { color: @Grey3;} +.contact-name { font-weight: bold; padding-top: 15px; } +.contact-details { + color: @Grey3; white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} /* editor */ .jothidden { display: none; } @@ -794,6 +954,58 @@ ul.tabs { #profile-edit-links li { list-style: none; + margin-top: 10px; +} + +#profile-edit-default-desc { + color: #FF0000; + border: 1px solid #FF8888; + background-color: #FFEEEE; + padding: 7px; +} +#profile-edit-profile-name-label, +#profile-edit-name-label, +#profile-edit-pdesc-label, +#profile-edit-gender-label, +#profile-edit-dob-label, +#profile-edit-address-label, +#profile-edit-locality-label, +#profile-edit-region-label, +#profile-edit-postal-code-label, +#profile-edit-country-name-label, +#profile-edit-marital-label, +#profile-edit-with-label, +#profile-edit-sexual-label, +#profile-edit-politic-label, +#profile-edit-religion-label, +#profile-edit-pubkeywords-label, +#profile-edit-prvkeywords-label, +#profile-edit-gender-select, +#profile-edit-homepage-label { + float: left; + width: 175px; + padding-top: 7px; +} +#profile-edit-profile-name, +#profile-edit-name, +#gender-select, +#profile-edit-pdesc, +#profile-edit-gender, +#profile-edit-dob, +#profile-edit-address, +#profile-edit-locality, +#profile-edit-region, +#profile-edit-postal-code, +#profile-edit-country-name, +#profile-edit-marital, +#profile-edit-with, +#profile-edit-sexual, +#profile-edit-politic, +#profile-edit-religion, +#profile-edit-pubkeywords, +#profile-edit-prvkeywords, +#profile-edit-homepage { + margin-top: 5px; } /* oauth */ @@ -828,6 +1040,28 @@ ul.tabs { margin: 0px 10px 10px 0px; } +/* profile match wrapper */ +.profile-match-wrapper { + float: left; + width: 90px; + height: 90px; + margin-bottom: 20px; + .contact-photo { + width: 80px; height: 80px; + img { width: 80px; height: 80px; } + } + .contact-photo-menu-button { + left: 0px; + top: 63px; + } +} + /* page footer */ footer { height: 100px; display: table-row; } + +.pager { + margin-top: 25px; + clear: both; +} + diff --git a/view/theme/vier/style.css b/view/theme/vier/style.css index 89dd981469..e99f1a8af6 100644 --- a/view/theme/vier/style.css +++ b/view/theme/vier/style.css @@ -946,7 +946,7 @@ section { /*background: url(../../../images/icons/22/user.png) no-repeat center center;*/ } -.wall-item-container.comment .contact-photo-menu-button { +.wall-item-container.comment { top: 15px !important; left: 15px !important; } @@ -985,7 +985,7 @@ section { /*background: url(../../../images/icons/22/user.png) no-repeat center center;*/ } -.comment-edit-preview .contact-photo-menu-button { +.comment-edit-preview { top: 15px !important; left: 15px !important; } @@ -1056,12 +1056,7 @@ section { width: 48px; height: 48px; } -.contact-photo-menu-button { - display: none; - position: absolute; - left: -2px; - top: 31px; -} + .contact-wrapper { float: left; width: 90px; @@ -1076,7 +1071,7 @@ section { width: 80px; height: 80px; } -.contact-wrapper .contact-photo-menu-button { +.contact-wrapper { left: 0px; top: 63px; } @@ -1459,7 +1454,8 @@ ul.tabs li .active { } /* contacts */ .contact-entry-wrapper { - width: 50px; + width: 120px; + height: 120px; float: left; } /* photo */ @@ -1482,10 +1478,40 @@ ul.tabs li .active { width: 80px; height: 80px; } -.profile-match-wrapper .contact-photo-menu-button { +.profile-match-wrapper { left: 0px; top: 63px; } + +.contact-photo-menu-button { + position: relative; + background-image: url("photo-menu.jpg"); + background-position: top left; + background-repeat: no-repeat; + margin: 0px 0px -16px 0px; + padding: 0px; + width: 16px; + height: 16px; + top: -20px; left:0px; + overflow: hidden; + text-indent: 40px; + display: none; + +} +.contact-photo-menu { + width: auto; + border: 2px solid #444444; + background: #FFFFFF; +/* position: absolute;*/ + position: relative; + left: 0px; top: 0px; + display: none; + z-index: 10000; +} +.contact-photo-menu ul { margin:0px; padding: 0px; list-style: none } +.contact-photo-menu li a { display: block; padding: 2px; } +.contact-photo-menu li a:hover { color: #FFFFFF; background: #3465A4; text-decoration: none; } + /* page footer */ footer { height: 100px; From 3c68bf25ac9176ccfbc9f2e658dcc360431c46cc Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 25 Feb 2012 11:13:04 +0100 Subject: [PATCH 08/56] "vier" popup menu looks nicer now (more like quattro again) --- view/theme/vier/style.css | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/view/theme/vier/style.css b/view/theme/vier/style.css index e99f1a8af6..0268c64d88 100644 --- a/view/theme/vier/style.css +++ b/view/theme/vier/style.css @@ -574,7 +574,7 @@ nav #nav-apps-link.selected { ul.menu-popup { position: absolute; display: none; - width: 10em; + width: 11em; background: #ffffff; color: #2d2d2d; margin: 0px; @@ -1485,7 +1485,7 @@ ul.tabs li .active { .contact-photo-menu-button { position: relative; - background-image: url("photo-menu.jpg"); + background-image: url("../../../images/icons/16/menu.png"); background-position: top left; background-repeat: no-repeat; margin: 0px 0px -16px 0px; @@ -1499,8 +1499,9 @@ ul.tabs li .active { } .contact-photo-menu { - width: auto; - border: 2px solid #444444; + width: 11em; + border: 3px solid #364e59; + color: #2d2d2d; background: #FFFFFF; /* position: absolute;*/ position: relative; @@ -1509,8 +1510,15 @@ ul.tabs li .active { z-index: 10000; } .contact-photo-menu ul { margin:0px; padding: 0px; list-style: none } -.contact-photo-menu li a { display: block; padding: 2px; } -.contact-photo-menu li a:hover { color: #FFFFFF; background: #3465A4; text-decoration: none; } +.contact-photo-menu li a { + display: block; + padding: 5px 10px; + color: #2d2d2d; + text-decoration: none; +} +.contact-photo-menu li a:hover { + background-color: #bdcdd4; +} /* page footer */ footer { From 1cf1870512de474208ce3682450c047e027d6c38 Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 25 Feb 2012 19:40:05 +0100 Subject: [PATCH 09/56] poller.php: Test for moving to archive, vier-style: notifications fixed --- include/poller.php | 12 +++++++++++- view/theme/vier/style.css | 25 ++++++++++++++++++++++--- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/include/poller.php b/include/poller.php index 9cf12ed9cd..d79079fcda 100755 --- a/include/poller.php +++ b/include/poller.php @@ -454,6 +454,11 @@ function poller_run($argv, $argc){ intval($r[0]['id']) ); } + //logger("Mail: Deleting ".$msg_uid); + //imap_delete($mbox, $msg_uid, FT_UID); + imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID); + logger("Mail: Moving ".$msg_uid); + imap_mail_move($mbox, $msg_uid, "Archiv", FT_UID); continue; } @@ -515,6 +520,11 @@ function poller_run($argv, $argc){ q("UPDATE `item` SET `last-child` = 1 WHERE `id` = %d LIMIT 1", intval($stored_item) ); + //logger("Mail: Deleting ".$msg_uid); + //imap_delete($mbox, $msg_uid, FT_UID); + imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID); + logger("Mail: Moving ".$msg_uid); + imap_mail_move($mbox, $msg_uid, "Archiv", FT_UID); } } @@ -523,7 +533,7 @@ function poller_run($argv, $argc){ } elseif($contact['network'] === NETWORK_FACEBOOK) { // This is picked up by the Facebook plugin on a cron hook. - // Ignored here. + // Ignored here. } if($xml) { diff --git a/view/theme/vier/style.css b/view/theme/vier/style.css index 0268c64d88..61a3b06ab4 100644 --- a/view/theme/vier/style.css +++ b/view/theme/vier/style.css @@ -496,7 +496,7 @@ nav ul { nav ul li { list-style: none; margin: 0px; - padding: 0px; + padding: 1px 1px 3px 1px; float: left; } nav ul li .menu-popup { @@ -571,6 +571,18 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify, nav #nav-notifications-link nav #nav-apps-link.selected { background-color: #364e59; } + +#nav-notifications-mark-all { + padding: 1px 1px 2px 1px; + border-bottom: 1px solid #364E59; + margin: 0px 0px 2px 26px; +} + +#nav-notifications-see-all { + padding: 1px; + margin: 0px 0px 2px 26px; +} + ul.menu-popup { position: absolute; display: none; @@ -587,9 +599,9 @@ ul.menu-popup { box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7); } ul.menu-popup a { - display: block; + /* display: block; */ color: #2d2d2d; - padding: 5px 10px; + /* padding: 5px 10px; */ text-decoration: none; } ul.menu-popup a:hover { @@ -656,6 +668,13 @@ ul.menu-popup .empty { color: #9eabb0; display: block; } + +.notif-image { + width: 32px; + height: 32px; + padding: 7px 7px 0px 0px; +} + /* aside */ aside { display: table-cell; From 2c7da5d0de29cd7010bd6a34c0b6cfb79fe24466 Mon Sep 17 00:00:00 2001 From: friendica Date: Sat, 25 Feb 2012 14:22:51 -0800 Subject: [PATCH 10/56] scale external images --- include/bb2diaspora.php | 32 +------------------------------- include/diaspora.php | 12 ++++++------ include/network.php | 40 ++++++++++++++++++++++++++++++++++++++++ mod/item.php | 2 ++ 4 files changed, 49 insertions(+), 37 deletions(-) diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php index bcef86616b..8487f845a6 100755 --- a/include/bb2diaspora.php +++ b/include/bb2diaspora.php @@ -55,42 +55,12 @@ function diaspora2bb($s) { $s = preg_replace("/(\[code\])+(.*?)(\[\/code\])+/ism","[code]$2[/code]", $s); // Don't show link to full picture (until it is fixed) - $s = scale_diaspora_images($s, false); + $s = scale_external_images($s, false); return $s; } -function scale_diaspora_images($s,$include_link = true) { - - $matches = null; - $c = preg_match_all('/\[img\](.*?)\[\/img\]/ism',$s,$matches,PREG_SET_ORDER); - if($c) { - require_once('include/Photo.php'); - foreach($matches as $mtch) { - logger('scale_diaspora_image: ' . $mtch[1]); - $i = fetch_url($mtch[1]); - if($i) { - $ph = new Photo($i); - if($ph->is_valid()) { - if($ph->getWidth() > 600 || $ph->getHeight() > 600) { - $ph->scaleImage(600); - $new_width = $ph->getWidth(); - $new_height = $ph->getHeight(); - logger('scale_diaspora_image: ' . $new_width . 'w ' . $new_height . 'h' . 'match: ' . $mtch[0], LOGGER_DEBUG); - $s = str_replace($mtch[0],'[img=' . $new_width . 'x' . $new_height. ']' . $mtch[1] . '[/img]' - . "\n" . (($include_link) - ? '[url=' . $mtch[1] . ']' . t('view full size') . '[/url]' . "\n" - : ''),$s); - logger('scale_diaspora_image: new string: ' . $s, LOGGER_DEBUG); - } - } - } - } - } - return $s; -} - function stripdcode_br_cb($s) { return '[code]' . str_replace('
', "\n\t", $s[1]) . '[/code]'; } diff --git a/include/diaspora.php b/include/diaspora.php index 5896f1bfd4..dca857a198 100755 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -794,15 +794,15 @@ function diaspora_reshare($importer,$xml) { if(strlen($source_xml->post->asphoto->objectId) && ($source_xml->post->asphoto->objectId != 0) && ($source_xml->post->asphoto->image_url)) { $body = '[url=' . notags(unxmlify($source_xml->post->asphoto->image_url)) . '][img]' . notags(unxmlify($source_xml->post->asphoto->objectId)) . '[/img][/url]' . "\n"; - $body = scale_diaspora_images($body,false); + $body = scale_external_images($body,false); } elseif($source_xml->post->asphoto->image_url) { $body = '[img]' . notags(unxmlify($source_xml->post->asphoto->image_url)) . '[/img]' . "\n"; - $body = scale_diaspora_images($body); + $body = scale_external_images($body); } elseif($source_xml->post->status_message) { $body = diaspora2bb($source_xml->post->status_message->raw_message); - $body = scale_diaspora_images($body); + $body = scale_external_images($body); } else { @@ -945,11 +945,11 @@ function diaspora_asphoto($importer,$xml) { if(strlen($xml->objectId) && ($xml->objectId != 0) && ($xml->image_url)) { $body = '[url=' . notags(unxmlify($xml->image_url)) . '][img]' . notags(unxmlify($xml->objectId)) . '[/img][/url]' . "\n"; - $body = scale_diaspora_images($body,false); + $body = scale_external_images($body,false); } elseif($xml->image_url) { $body = '[img]' . notags(unxmlify($xml->image_url)) . '[/img]' . "\n"; - $body = scale_diaspora_images($body); + $body = scale_external_images($body); } else { logger('diaspora_asphoto: no photo url found.'); @@ -1476,7 +1476,7 @@ function diaspora_photo($importer,$xml,$msg) { $link_text = '[img]' . $remote_photo_path . $remote_photo_name . '[/img]' . "\n"; - $link_text = scale_diaspora_images($link_text); + $link_text = scale_external_images($link_text); if(strpos($parent_item['body'],$link_text) === false) { $r = q("update item set `body` = '%s', `visible` = 1 where `id` = %d and `uid` = %d limit 1", diff --git a/include/network.php b/include/network.php index 25db62d161..531c3ea4c8 100755 --- a/include/network.php +++ b/include/network.php @@ -776,3 +776,43 @@ function add_fcontact($arr,$update = false) { return $r; } + + +function scale_external_images($s,$include_link = true) { + + $a = get_app(); + + $matches = null; + $c = preg_match_all('/\[img\](.*?)\[\/img\]/ism',$s,$matches,PREG_SET_ORDER); + if($c) { + require_once('include/Photo.php'); + foreach($matches as $mtch) { + logger('scale_external_image: ' . $mtch[1]); + $hostname = str_replace('www.','',substr($a->get_baseurl(),strpos($a->get_baseurl(),'://')+3)); + if(stristr($mtch[1],$hostname)) + continue; + $i = fetch_url($mtch[1]); + if($i) { + $ph = new Photo($i); + if($ph->is_valid()) { + $orig_width = $ph->getWidth(); + $orig_height = $ph->getHeight(); + + if($orig_width > 640 || $orig_height > 640) { + + $ph->scaleImage(640); + $new_width = $ph->getWidth(); + $new_height = $ph->getHeight(); + logger('scale_external_images: ' . $orig_width . '->' . $new_width . 'w ' . $orig_height . '->' . $new_height . 'h' . ' match: ' . $mtch[0], LOGGER_DEBUG); + $s = str_replace($mtch[0],'[img=' . $new_width . 'x' . $new_height. ']' . $mtch[1] . '[/img]' + . "\n" . (($include_link) + ? '[url=' . $mtch[1] . ']' . t('view full size') . '[/url]' . "\n" + : ''),$s); + logger('scale_external_images: new string: ' . $s, LOGGER_DEBUG); + } + } + } + } + } + return $s; +} diff --git a/mod/item.php b/mod/item.php index 3035989f36..9e0768a658 100755 --- a/mod/item.php +++ b/mod/item.php @@ -400,6 +400,8 @@ function item_post(&$a) { $body = preg_replace('/\[\/code\]\s*\[code\]/ism',"\n",$body); + $body = scale_external_images($body,false); + /** * Look for any tags and linkify them */ From da1411af476ffd9b46a6931da3d7641f31e2e116 Mon Sep 17 00:00:00 2001 From: friendica Date: Sat, 25 Feb 2012 16:16:52 -0800 Subject: [PATCH 11/56] do not set notify popup empty anymore (though another solution is needed for firehose mode) --- js/main.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/main.js b/js/main.js index 36ef946ca0..e717ca44ed 100755 --- a/js/main.js +++ b/js/main.js @@ -129,8 +129,8 @@ }); } else { - $("#nav-notifications-linkmenu").removeClass("on"); - $("#nav-notifications-menu").html(notifications_empty); + // $("#nav-notifications-linkmenu").removeClass("on"); + // $("#nav-notifications-menu").html(notifications_empty); } if(notif == 0) { notif = ''; $('#notify-update').removeClass('show') } else { $('#notify-update').addClass('show') } $('#notify-update').html(notif); From d075fd8a406b12d1920f75dd24e14101d1acc2f0 Mon Sep 17 00:00:00 2001 From: friendica Date: Sat, 25 Feb 2012 16:47:21 -0800 Subject: [PATCH 12/56] reverse order of links --- view/theme/duepuntozero/nav.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/view/theme/duepuntozero/nav.tpl b/view/theme/duepuntozero/nav.tpl index fa0ecf7b60..4675c3e5c2 100755 --- a/view/theme/duepuntozero/nav.tpl +++ b/view/theme/duepuntozero/nav.tpl @@ -48,8 +48,8 @@ $nav.notifications.1 {{ endif }} From 3d37a688c71102e8a4b1f4c8ba3d16c0a698c49c Mon Sep 17 00:00:00 2001 From: "Abinoam P. Marques Jr" Date: Sat, 25 Feb 2012 12:33:08 -0800 Subject: [PATCH 13/56] Added notify-threads to database.sql. --- database.sql | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/database.sql b/database.sql index f4199cb55a..9ad96ca77d 100755 --- a/database.sql +++ b/database.sql @@ -810,5 +810,31 @@ INDEX ( `uid` ) ) ENGINE = MyISAM DEFAULT CHARSET=utf8; +-- +-- Table structure for table `notify-threads` +-- +-- notify-id: notify.id of the first notification of this thread +-- master-parent-item: item.id of the parent item +-- parent-item: item.id of the imediate parent (only for multi-thread) +-- not used yet. +-- receiver-uid: user.uid of the receiver of this notification. +-- +-- If we query for a master-parent-item and receiver-uid... +-- * Returns 1 item: this is not the parent notification, +-- so just "follow" the thread (references to this notification) +-- * Returns no item: this is the first notification related to +-- this parent item. So, create the record and use the message-id +-- header. + + +CREATE TABLE IF NOT EXISTS `notify-threads` ( +`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , +`notify-id` INT NOT NULL, +`master-parent-item` INT( 10 ) unsigned NOT NULL DEFAULT '0', +`parent-item` INT( 10 ) unsigned NOT NULL DEFAULT '0', +`receiver-uid` INT NOT NULL, +INDEX ( `master-parent-item` ), +INDEX ( `receiver-uid` ) +) ENGINE = MyISAM DEFAULT CHARSET=utf8; From edcc33ab5c57eb1f3fcdc79394f791c385760fb4 Mon Sep 17 00:00:00 2001 From: "Abinoam P. Marques Jr" Date: Sat, 25 Feb 2012 13:06:06 -0800 Subject: [PATCH 14/56] Added notify-threads to update.php --- update.php | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/update.php b/update.php index 0096754d20..18dc90cce0 100755 --- a/update.php +++ b/update.php @@ -1,6 +1,6 @@ Date: Sat, 25 Feb 2012 13:06:50 -0800 Subject: [PATCH 15/56] DB_UPDATE_VERSION incremented --- boot.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boot.php b/boot.php index d9d361ee3b..54f318e5e9 100755 --- a/boot.php +++ b/boot.php @@ -11,7 +11,7 @@ require_once('include/cache.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); define ( 'FRIENDICA_VERSION', '2.3.1263' ); define ( 'DFRN_PROTOCOL_VERSION', '2.22' ); -define ( 'DB_UPDATE_VERSION', 1125 ); +define ( 'DB_UPDATE_VERSION', 1126 ); define ( 'EOL', "
\r\n" ); define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); From 2d5f8b4b485ff16f989f5bbe7a95b2d49e499094 Mon Sep 17 00:00:00 2001 From: "Abinoam P. Marques Jr" Date: Sat, 25 Feb 2012 13:10:33 -0800 Subject: [PATCH 16/56] mod/item.php pass 'parent' to notification --- mod/item.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mod/item.php b/mod/item.php index 9e0768a658..81d7c753b4 100755 --- a/mod/item.php +++ b/mod/item.php @@ -755,7 +755,8 @@ function item_post(&$a) { 'source_link' => $datarray['author-link'], 'source_photo' => $datarray['author-avatar'], 'verb' => ACTIVITY_POST, - 'otype' => 'item' + 'otype' => 'item', + 'parent' => $parent, )); } From bcfac6c72f88f9f21d0e7a4f0d0b7568a3dc28d2 Mon Sep 17 00:00:00 2001 From: "Abinoam P. Marques Jr" Date: Sat, 25 Feb 2012 13:23:00 -0800 Subject: [PATCH 17/56] include/items.php pass 'parent' to notification --- include/items.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/include/items.php b/include/items.php index de3ade6b4e..c461b83b49 100755 --- a/include/items.php +++ b/include/items.php @@ -2223,7 +2223,8 @@ function local_delivery($importer,$data) { 'source_photo' => ((link_compare($datarray['author-link'],$importer['url'])) ? $importer['thumb'] : $datarray['author-avatar']), 'verb' => ACTIVITY_POST, - 'otype' => 'item' + 'otype' => 'item', + 'parent' => $parent, )); @@ -2317,7 +2318,7 @@ function local_delivery($importer,$data) { if($datarray['type'] != 'activity') { - $myconv = q("SELECT `author-link`, `author-avatar` FROM `item` WHERE `parent-uri` = '%s' AND `uid` = %d AND `parent` != 0 ", + $myconv = q("SELECT `author-link`, `author-avatar`, `parent` FROM `item` WHERE `parent-uri` = '%s' AND `uid` = %d AND `parent` != 0 ", dbesc($parent_uri), intval($importer['importer_uid']) ); @@ -2330,6 +2331,8 @@ function local_delivery($importer,$data) { continue; require_once('include/enotify.php'); + + $conv_parent = $conv['parent']; notification(array( 'type' => NOTIFY_COMMENT, @@ -2345,7 +2348,8 @@ function local_delivery($importer,$data) { 'source_photo' => ((link_compare($datarray['author-link'],$importer['url'])) ? $importer['thumb'] : $datarray['author-avatar']), 'verb' => ACTIVITY_POST, - 'otype' => 'item' + 'otype' => 'item', + 'parent' => $conv_parent, )); From f3a225437b4690e0d02c773600d29837674660d7 Mon Sep 17 00:00:00 2001 From: "Abinoam P. Marques Jr" Date: Sat, 25 Feb 2012 16:56:14 -0800 Subject: [PATCH 18/56] Comment notifications by e-mail now are threaded --- include/enotify.php | 56 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 50 insertions(+), 6 deletions(-) diff --git a/include/enotify.php b/include/enotify.php index 1eb3b54762..33e083b5ef 100755 --- a/include/enotify.php +++ b/include/enotify.php @@ -13,7 +13,9 @@ function notification($params) { $site_admin = sprintf( t('%s Administrator'), $sitename); $sender_name = $product; - $sender_email = t('noreply') . '@' . $a->get_hostname(); + $hostname = $a->get_hostname(); + $sender_email = t('noreply') . '@' . $hostname; + $additional_mail_header = ""; if(array_key_exists('item',$params)) { $title = $params['item']['title']; @@ -36,8 +38,15 @@ function notification($params) { } if($params['type'] == NOTIFY_COMMENT) { + logger("notification: params = " . print_r($params, true), LOGGER_DEBUG); - $subject = sprintf( t('%s commented on an item at %s'), $params['source_name'], $sitename); + $parent_id = $params['parent']; + + // Some mail softwares relies on subject field for threading. + // So, we cannot have different subjects for notifications of the same thread. + // Before this we have the name of the replier on the subject rendering + // differents subjects for messages on the same thread. + $subject = sprintf( t('Someone commented on item #%d at %s'), $parent_id, $sitename); $preamble = sprintf( t('%s commented on an item/conversation you have been following.'), $params['source_name']); $epreamble = sprintf( t('%s commented in %s.'), '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', '[url=$itemlink]' . t('a watched conversation') . '[/url]'); @@ -126,8 +135,6 @@ function notification($params) { } while($dups == true); - - // create notification entry in DB $r = q("insert into notify (hash,name,url,photo,date,uid,link,type,verb,otype) @@ -170,6 +177,40 @@ function notification($params) { logger('notification: sending notification email'); + $id_for_parent = "${params['parent']}@${hostname}"; + + // Is this the first email notification for this parent item and user? + + $r = q("select `id` from `notify-threads` where `master-parent-item` = %d and `receiver-uid` = %d limit 1", + intval($params['parent']), + intval($params['uid']) ); + + // If so, create the record of it and use a message-id smtp header. + + if(!$r) { + logger("norify_id:" . intval($notify_id). ", parent: " . intval($params['parent']) . "uid: " . +intval($params['uid']), LOGGER_DEBUG); + $r = q("insert into `notify-threads` (`notify-id`, `master-parent-item`, `receiver-uid`, `parent-item`) + values(%d,%d,%d,%d)", + intval($notify_id), + intval($params['parent']), + intval($params['uid']), + 0 ); + + $additional_mail_header .= "Message-ID: <${id_for_parent}>\n"; + $log_msg = "include/enotify: No previous notification found for this parent:\n" . + " parent: ${params['parent']}\n" . " uid : ${params['uid']}\n"; + logger($log_msg, LOGGER_DEBUG); + } + + // If not, just "follow" the thread. + + else { + $additional_mail_header = "References: <${id_for_parent}>\nIn-Reply-To: <${id_for_parent}>\n"; + logger("include/enotify: There's already a notification for this parent:\n" . print_r($r, true), LOGGER_DEBUG); + } + + $textversion = strip_tags(html_entity_decode(bbcode(stripslashes(str_replace(array("\\r\\n", "\\r", "\\n"), "\n", $body))),ENT_QUOTES,'UTF-8')); @@ -227,7 +268,8 @@ function notification($params) { 'toEmail' => $params['to_email'], 'messageSubject' => $subject, 'htmlVersion' => $email_html_body, - 'textVersion' => $email_text_body + 'textVersion' => $email_text_body, + 'additionalMailHeader' => $additional_mail_header, )); } @@ -248,6 +290,7 @@ class enotify { * @param messageSubject subject of the message * @param htmlVersion html version of the message * @param textVersion text only version of the message + * @param additionalMailHeader additions to the smtp mail header */ static public function send($params) { @@ -262,6 +305,7 @@ class enotify { // generate a multipart/alternative message header $messageHeader = + $params['additionalMailHeader'] . "From: {$params['fromName']} <{$params['fromEmail']}>\n" . "Reply-To: {$params['fromName']} <{$params['replyTo']}>\n" . "MIME-Version: 1.0\n" . @@ -291,4 +335,4 @@ class enotify { logger("notification: enotify::send returns " . $res, LOGGER_DEBUG); } } -?> \ No newline at end of file +?> From 35b5850af705ced6eca88b45cd60de41b5a897bc Mon Sep 17 00:00:00 2001 From: friendica Date: Sat, 25 Feb 2012 17:04:31 -0800 Subject: [PATCH 19/56] missed a spot --- js/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/main.js b/js/main.js index e717ca44ed..515bd0fd31 100755 --- a/js/main.js +++ b/js/main.js @@ -132,7 +132,7 @@ // $("#nav-notifications-linkmenu").removeClass("on"); // $("#nav-notifications-menu").html(notifications_empty); } - if(notif == 0) { notif = ''; $('#notify-update').removeClass('show') } else { $('#notify-update').addClass('show') } + if(notif == 0) { /* notif = ''; $('#notify-update').removeClass('show') */ } else { $('#notify-update').addClass('show') } $('#notify-update').html(notif); var eSysmsg = $(data).find('sysmsgs'); From 9b6afc2a38cc00d3fabfbb90277665df820c05a6 Mon Sep 17 00:00:00 2001 From: friendica Date: Sat, 25 Feb 2012 17:07:38 -0800 Subject: [PATCH 20/56] one more attempt --- js/main.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/main.js b/js/main.js index 515bd0fd31..a5d1214cb1 100755 --- a/js/main.js +++ b/js/main.js @@ -114,7 +114,7 @@ var eNotif = $(data).find('notif') notif = eNotif.attr('count'); - if (notif>0){ + if (notif>=0){ $("#nav-notifications-linkmenu").addClass("on"); nnm = $("#nav-notifications-menu"); @@ -132,7 +132,7 @@ // $("#nav-notifications-linkmenu").removeClass("on"); // $("#nav-notifications-menu").html(notifications_empty); } - if(notif == 0) { /* notif = ''; $('#notify-update').removeClass('show') */ } else { $('#notify-update').addClass('show') } + if(notif == 0) { notif = ''; $('#notify-update').removeClass('show') } else { $('#notify-update').addClass('show') } $('#notify-update').html(notif); var eSysmsg = $(data).find('sysmsgs'); From 828034ad23e90088048ece55cbcb47733368b810 Mon Sep 17 00:00:00 2001 From: friendica Date: Sun, 26 Feb 2012 00:48:11 -0800 Subject: [PATCH 21/56] darkzero-NS theme --- view/theme/darkzero-NS/border.jpg | Bin 0 -> 521 bytes view/theme/darkzero-NS/head.jpg | Bin 0 -> 1269 bytes view/theme/darkzero-NS/sectionend.jpg | Bin 0 -> 355 bytes view/theme/darkzero-NS/shiny.png | Bin 0 -> 362 bytes view/theme/darkzero-NS/style.css | 95 ++++++++++++++++++++++++++ view/theme/darkzero-NS/theme.php | 57 ++++++++++++++++ view/theme/darkzero/theme.php | 2 +- 7 files changed, 153 insertions(+), 1 deletion(-) create mode 100755 view/theme/darkzero-NS/border.jpg create mode 100755 view/theme/darkzero-NS/head.jpg create mode 100755 view/theme/darkzero-NS/sectionend.jpg create mode 100755 view/theme/darkzero-NS/shiny.png create mode 100755 view/theme/darkzero-NS/style.css create mode 100755 view/theme/darkzero-NS/theme.php diff --git a/view/theme/darkzero-NS/border.jpg b/view/theme/darkzero-NS/border.jpg new file mode 100755 index 0000000000000000000000000000000000000000..4967412bf49332e10ad40b4a1a751c3e7f97bdbb GIT binary patch literal 521 zcmex=LJ%Z3btM5{dxG z5Q+={Y5sqJL6C!?fPs;jQHg;`kdaxC@&6G9F|hj?kO4aU8BNHAbr$KTM4Dd?{?R(X(Y=)z&vcKWn~b-;io$UAQ~VpLtij?yULu9K2IE zK3`zLw(79m**DuZw7c9(7c>ZF^laI^^IgL9)4S(A<5JjcTFWIXoRDr`Ki;O^-g z@c%Z0GsvqH0gxdS835A!{{Vv^2SW`5D>I`K1Ct;lvmoRDBMj0&_XGV7@&pVpv9PkS zb8rDAwFMZMm>C#>p~J`tk!5CKWMXAw5E2m;<`5K9W><7hOkTM0;zyujQJ@_#BcL=B zP*`4&k%5t!1r%#Az{n&h6qI=BL-52!|8Fty04-+{WENzwXZT^~@-(o@FJD=m_pE+- z$I09^ymszNdk-C(Jmnzsu|)?>b#{4AySGuZZSwhKXAkLLJiBIf?|IDUHK#)6w%0uS zZD|ajC1*~)nXq*BWFK__{+^*!^>tjb+qRy|*AEOdG`i;I-y43ozPmDjT9F1GV5oOx9L#M!_7 z3QxWr>91UBzvlSbKkFuci?pA&eg6@wSMq1Y+OGFMPfvYj#g*fwY@YTmdHoK>3(Cii zmtWI97P_>vFiq^4bKH}%?}~n}u63lkrL=vQ)5i4W?0LGp;gQdlg&x{!=D)CS4j*rC?~Fya za#_Q)tZ)0ry|td~Zyq-_=1W>qWNAW2v%4|doC=i^DUN8jnn{n1yW%I#{w?Qt@@=Qw zXRrFm{^*~v>TfpH+veAIlwPr)rOUfs{@l6KXG(oLUDDp%JyZIf#fqik#=BofD^6|M zsHb!2&WY?hefOSd-i^A*v*OHzS?8_yJlhdaA{J;F5;uAFiIazmz3)CUiq2;CpLk+@ z!Nw&|4IDnM*x>7}H|gp2HC~BJKHs=-iS1vr-m*pSEe=mwF2`ZWh4ERR)vZ}M^POcaWTd5~4PCd~;#w0@ zzHQ##Tjgr=^7d-&d~xQ;rdJ0A+4|CWEk1a>zWB24{*EZM!p2&uT7x<7C-L0evUT5@ z(lg1fUEX5eYrlHEedQE$WM_wU*zr9_dsSuyWxX<*FI)HG`E9@JbC$ct+iZWk^x%G} ffAhcny=(RErfcRu`5*ro;!oMXzrQ?e`Tv^$d^)bm literal 0 HcmV?d00001 diff --git a/view/theme/darkzero-NS/sectionend.jpg b/view/theme/darkzero-NS/sectionend.jpg new file mode 100755 index 0000000000000000000000000000000000000000..9d5d5c8f3be6059bde488b340c9c9e4207a3e977 GIT binary patch literal 355 zcmex=LJ%Z3btM5{dxG z5Q+={Y5sqJL6Cz%l7W$#QHg;`kdaxC@&6G9aj@eUkO3Pj7f?b*fPsmTl@VEjQG_Wd zanhm>Kv^-6iO6ycj0{XbaXCSt`7F#xGK>t0iGqQJ6CD>G{C|sqhZ(3&kXewyp5d8T k^yd{q#>OX9On)DFT=Z$O=;<^bg|xQk{c3!t!vEg{06lv(JOBUy literal 0 HcmV?d00001 diff --git a/view/theme/darkzero-NS/shiny.png b/view/theme/darkzero-NS/shiny.png new file mode 100755 index 0000000000000000000000000000000000000000..994c0d05d730d7302a6de1298ba2e6514b1b2b1f GIT binary patch literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^{2DD*GD0X#=CwqOyN|ANrXCgtsO~{o7Kx>VR49a!E110l tt5Y-2UBA!rY|*rqD|U=*i^{m~zTrK5!YQLoO7=6zm!7VEF6*2UngHobgVX>3 literal 0 HcmV?d00001 diff --git a/view/theme/darkzero-NS/style.css b/view/theme/darkzero-NS/style.css new file mode 100755 index 0000000000..ca434afd03 --- /dev/null +++ b/view/theme/darkzero-NS/style.css @@ -0,0 +1,95 @@ +@import url('../duepuntozero/style.css'); + +/* dark variation Fabio Comuni */ + +a:link, a:visited { color: #99CCFF; text-decoration: none; } +a:hover {text-decoration: underline; } + +input, select, textarea { + background-color: #222222; + color: #FFFFFF !important; + border: 1px solid #444444; +} +.openid { background-color: #222222;} + +body { background-color: #222222; color: #cccccc; background-image: url(head.jpg); } +aside{ background-image: url(border.jpg); padding-bottom: 0px; } +section { background-color: #333333; background-image: url(border.jpg); } + + +.tabs { background-image: url(head.jpg); } +div.wall-item-content-wrapper.shiny { background-image: url('shiny.png'); } + +nav #banner #logo-text a { color: #ffffff; } + +.wall-item-content-wrapper { border: 1px solid #444444; } +.wall-item-tools { background-color: #444444; background-image: none;} +.comment-edit-wrapper{ background-color: #333333; } +.wall-item-content-wrapper.comment { background-color: #444444; border: 0px;} +.photo-top-album-name{ background-color: #333333; } +.photo-album-image-wrapper .caption { background-color: rgba(51, 51, 51, 0.8); color: #FFFFFF; } + +.nav-selected.nav-link { color: #ffffff!important; border-bottom: 0px} +.nav-commlink, .nav-login-link {background-color: #b7bab3;} +.nav-commlink:link, .nav-commlink:visited, +.nav-login-link:link, .nav-login-link:visited{ + color: #ffffff; +} + +.fakelink, .fakelink:visited { + color: #99CCFF; +} + +.wall-item-name-link { + color: #99CCFF; +} + +.wall-item-photo-menu li a { + color: #CCCCCC; background-color: #333333; +} + +.wall-item-photo-menu li a:hover { + background-color: #CCCCCC; color: #333333; +} +#page-footer { min-height: 1em;} +footer { + margin: 0px 10%; + display: block; + background-image: url('sectionend.jpg'); + background-position: top left; + background-repeat: repeat-x; + height: 25px; +} + + +input#dfrn-url { + background-color: #222222; + color: #FFFFFF !important; +} +.pager_first a, .pager_last a, .pager_prev a, .pager_next a, .pager_n a, .pager_current { + color: #000088; +} + +#jot-perms-icon { + float: left; +} + + +#jot-title { + background-color: #333333; + border: 1px solid #333333; +} + +#jot-title::-webkit-input-placeholder{ color: #555555!important;} +#jot-title:-moz-placeholder{color: #555555!important;} + + +#jot-title:hover, +#jot-title:focus { + border: 1px solid #cccccc; +} + +.wall-item-content { + max-height: 20000px; + overflow: inherit; +} diff --git a/view/theme/darkzero-NS/theme.php b/view/theme/darkzero-NS/theme.php new file mode 100755 index 0000000000..521b1859e9 --- /dev/null +++ b/view/theme/darkzero-NS/theme.php @@ -0,0 +1,57 @@ + + */ + +$a->theme_info = array( + 'extends' => 'duepuntozero', +); + +$a->page['htmlhead'] .= <<< EOT + +EOT; diff --git a/view/theme/darkzero/theme.php b/view/theme/darkzero/theme.php index e03bcc7b8a..37632c4b5f 100755 --- a/view/theme/darkzero/theme.php +++ b/view/theme/darkzero/theme.php @@ -3,7 +3,7 @@ /* * Name: Darkzero * Version: 1.0 - * Author: Mike Macgirvin + * Author: Fabio Communi */ $a->theme_info = array( From 484426d3e229da01c31718dcc0041822f32e1f9e Mon Sep 17 00:00:00 2001 From: friendica Date: Sun, 26 Feb 2012 00:53:31 -0800 Subject: [PATCH 22/56] imrpove contrast on darkzero blockquotes --- view/theme/darkzero-NS/style.css | 4 ++++ view/theme/darkzero/style.css | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/view/theme/darkzero-NS/style.css b/view/theme/darkzero-NS/style.css index ca434afd03..a2405a763d 100755 --- a/view/theme/darkzero-NS/style.css +++ b/view/theme/darkzero-NS/style.css @@ -93,3 +93,7 @@ input#dfrn-url { max-height: 20000px; overflow: inherit; } +blockquote { + background: #ddd; + color: #000; +} diff --git a/view/theme/darkzero/style.css b/view/theme/darkzero/style.css index 25ae0c71ff..fdaf26f192 100755 --- a/view/theme/darkzero/style.css +++ b/view/theme/darkzero/style.css @@ -88,3 +88,7 @@ input#dfrn-url { #jot-title:focus { border: 1px solid #cccccc; } +blockquote { + background: #ddd; + color: #000; +} From fb8675f3494b0f5e0b98d422f0cb3f6e8f410c4a Mon Sep 17 00:00:00 2001 From: friendica Date: Sun, 26 Feb 2012 01:20:43 -0800 Subject: [PATCH 23/56] jumping divs with no scrolling --- view/theme/darkzero-NS/style.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/view/theme/darkzero-NS/style.css b/view/theme/darkzero-NS/style.css index a2405a763d..047381a92e 100755 --- a/view/theme/darkzero-NS/style.css +++ b/view/theme/darkzero-NS/style.css @@ -91,7 +91,7 @@ input#dfrn-url { .wall-item-content { max-height: 20000px; - overflow: inherit; + overflow: none; } blockquote { background: #ddd; From 5f7858a688a1b6877246933a6c4c72318c885109 Mon Sep 17 00:00:00 2001 From: friendica Date: Sun, 26 Feb 2012 04:17:02 -0800 Subject: [PATCH 24/56] show experimental and unsupported theme status on theme admin page --- include/plugin.php | 9 ++++++++- mod/admin.php | 6 ++++-- view/admin_plugins.tpl | 2 ++ view/theme/clean/unsupported | 0 view/theme/darkness/unsupported | 0 view/theme/darkzero-NS/unsupported | 0 view/theme/easterbunny/unsupported | 0 view/theme/ghost/unsupported | 0 view/theme/goldenrod/unsupported | 0 view/theme/loozah/unsupported | 0 view/theme/shady/unsupported | 0 11 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 view/theme/clean/unsupported create mode 100644 view/theme/darkness/unsupported create mode 100644 view/theme/darkzero-NS/unsupported create mode 100644 view/theme/easterbunny/unsupported create mode 100644 view/theme/ghost/unsupported create mode 100644 view/theme/goldenrod/unsupported create mode 100644 view/theme/loozah/unsupported create mode 100644 view/theme/shady/unsupported diff --git a/include/plugin.php b/include/plugin.php index 57f77cb570..8280b1022e 100755 --- a/include/plugin.php +++ b/include/plugin.php @@ -225,9 +225,16 @@ function get_theme_info($theme){ 'description' => "", 'author' => array(), 'maintainer' => array(), - 'version' => "" + 'version' => "", + 'experimental' => false, + 'unsupported' => false ); + if(file_exists("view/theme/$theme/experimental")) + $info['experimental'] = true; + if(file_exists("view/theme/$theme/unsupported")) + $info['unsupported'] = true; + if (!is_file("view/theme/$theme/theme.php")) return $info; $f = file_get_contents("view/theme/$theme/theme.php"); diff --git a/mod/admin.php b/mod/admin.php index bcbf3e28fa..0f600e3126 100755 --- a/mod/admin.php +++ b/mod/admin.php @@ -711,7 +711,7 @@ function admin_page_themes(&$a){ return; // NOTREACHED } - // display plugin details + // display theme details require_once('library/markdown.php'); if (theme_status($themes,$theme)) { @@ -769,7 +769,9 @@ function admin_page_themes(&$a){ '$submit' => t('Submit'), '$baseurl' => $a->get_baseurl(), '$function' => 'themes', - '$plugins' => $xthemes + '$plugins' => $xthemes, + '$experimental' => t('[Experimental]'), + '$unsupported' => t('[Unsupported]') )); } diff --git a/view/admin_plugins.tpl b/view/admin_plugins.tpl index f4afd2cf03..8367ff6a1d 100755 --- a/view/admin_plugins.tpl +++ b/view/admin_plugins.tpl @@ -6,6 +6,8 @@
  • $p.2.name - $p.2.version + {{ if $p.2.experimental }} $experimental {{ endif }}{{ if $p.2.unsupported }} $unsupported {{ endif }} +
    $p.2.description
  • {{ endfor }} diff --git a/view/theme/clean/unsupported b/view/theme/clean/unsupported new file mode 100644 index 0000000000..e69de29bb2 diff --git a/view/theme/darkness/unsupported b/view/theme/darkness/unsupported new file mode 100644 index 0000000000..e69de29bb2 diff --git a/view/theme/darkzero-NS/unsupported b/view/theme/darkzero-NS/unsupported new file mode 100644 index 0000000000..e69de29bb2 diff --git a/view/theme/easterbunny/unsupported b/view/theme/easterbunny/unsupported new file mode 100644 index 0000000000..e69de29bb2 diff --git a/view/theme/ghost/unsupported b/view/theme/ghost/unsupported new file mode 100644 index 0000000000..e69de29bb2 diff --git a/view/theme/goldenrod/unsupported b/view/theme/goldenrod/unsupported new file mode 100644 index 0000000000..e69de29bb2 diff --git a/view/theme/loozah/unsupported b/view/theme/loozah/unsupported new file mode 100644 index 0000000000..e69de29bb2 diff --git a/view/theme/shady/unsupported b/view/theme/shady/unsupported new file mode 100644 index 0000000000..e69de29bb2 From aa92901b11a70c495904d902bfdb4f4e21af8b47 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 26 Feb 2012 14:29:17 +0000 Subject: [PATCH 25/56] Wrong variable name --- include/config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/config.php b/include/config.php index 92694f5193..2cddda0b8d 100755 --- a/include/config.php +++ b/include/config.php @@ -162,7 +162,7 @@ function del_config($family,$key) { if(x($a->config[$family],$key)) unset($a->config[$family][$key]); $ret = q("DELETE FROM `config` WHERE `cat` = '%s' AND `k` = '%s' LIMIT 1", - dbesc($cat), + dbesc($family), dbesc($key) ); return $ret; From 0877fbb42a4ca32eef477d4556985206d9e7be7e Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sun, 26 Feb 2012 15:41:27 +0100 Subject: [PATCH 26/56] German strings --- view/de/messages.po | 1457 +++++++++++++++++++++++++------------------ view/de/strings.php | 74 ++- 2 files changed, 898 insertions(+), 633 deletions(-) diff --git a/view/de/messages.po b/view/de/messages.po index 861f61b74a..50a73e6db5 100644 --- a/view/de/messages.po +++ b/view/de/messages.po @@ -5,6 +5,7 @@ # Translators: # bavatar , 2011. # Erkan Yilmaz , 2011. +# , 2012. # , 2011. # , 2011, 2012. # , 2011, 2012. @@ -13,8 +14,8 @@ msgid "" msgstr "" "Project-Id-Version: friendica\n" "Report-Msgid-Bugs-To: http://bugs.friendica.com/\n" -"POT-Creation-Date: 2012-02-12 17:14-0800\n" -"PO-Revision-Date: 2012-02-16 10:24+0000\n" +"POT-Creation-Date: 2012-02-24 22:44-0800\n" +"PO-Revision-Date: 2012-02-26 14:36+0000\n" "Last-Translator: bavatar \n" "Language-Team: German (http://www.transifex.net/projects/p/friendica/language/de/)\n" "MIME-Version: 1.0\n" @@ -23,7 +24,7 @@ msgstr "" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: ../../mod/oexchange.php:27 +#: ../../mod/oexchange.php:25 msgid "Post successful." msgstr "Beitrag erfolgreich veröffentlicht." @@ -41,24 +42,24 @@ msgid "Contact update failed." msgstr "Konnte den Kontakt nicht aktualisieren." #: ../../mod/crepair.php:115 ../../mod/wall_attach.php:43 -#: ../../mod/fsuggest.php:78 ../../mod/events.php:109 ../../mod/api.php:26 +#: ../../mod/fsuggest.php:78 ../../mod/events.php:110 ../../mod/api.php:26 #: ../../mod/api.php:31 ../../mod/photos.php:129 ../../mod/photos.php:865 #: ../../mod/editpost.php:10 ../../mod/install.php:171 #: ../../mod/notifications.php:62 ../../mod/contacts.php:125 #: ../../mod/settings.php:49 ../../mod/settings.php:404 #: ../../mod/settings.php:409 ../../mod/manage.php:86 ../../mod/network.php:6 #: ../../mod/notes.php:20 ../../mod/attach.php:33 ../../mod/group.php:19 -#: ../../mod/viewcontacts.php:21 ../../mod/register.php:36 -#: ../../mod/regmod.php:111 ../../mod/item.php:123 ../../mod/item.php:139 +#: ../../mod/viewcontacts.php:22 ../../mod/register.php:36 +#: ../../mod/regmod.php:111 ../../mod/item.php:124 ../../mod/item.php:140 #: ../../mod/profile_photo.php:19 ../../mod/profile_photo.php:137 #: ../../mod/profile_photo.php:148 ../../mod/profile_photo.php:159 #: ../../mod/message.php:9 ../../mod/message.php:46 ../../mod/allfriends.php:9 #: ../../mod/wall_upload.php:42 ../../mod/follow.php:8 ../../mod/common.php:9 -#: ../../mod/display.php:112 ../../mod/profiles.php:7 +#: ../../mod/display.php:130 ../../mod/profiles.php:7 #: ../../mod/profiles.php:229 ../../mod/delegate.php:6 #: ../../mod/suggest.php:28 ../../mod/invite.php:13 ../../mod/invite.php:81 -#: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:331 -#: ../../include/items.php:2907 ../../index.php:288 +#: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:332 +#: ../../include/items.php:2968 ../../index.php:288 msgid "Permission denied." msgstr "Zugriff verweigert." @@ -88,7 +89,7 @@ msgid "Return to contact editor" msgstr "Zurück zum Kontakteditor" #: ../../mod/crepair.php:148 ../../mod/settings.php:455 -#: ../../mod/settings.php:481 ../../mod/admin.php:464 ../../mod/admin.php:473 +#: ../../mod/settings.php:481 ../../mod/admin.php:480 ../../mod/admin.php:489 msgid "Name" msgstr "Name" @@ -125,33 +126,37 @@ msgid "New photo from this URL" msgstr "Neues Foto von dieser URL" #: ../../mod/crepair.php:166 ../../mod/fsuggest.php:107 -#: ../../mod/events.php:333 ../../mod/photos.php:900 ../../mod/photos.php:958 +#: ../../mod/events.php:400 ../../mod/photos.php:900 ../../mod/photos.php:958 #: ../../mod/photos.php:1182 ../../mod/photos.php:1222 #: ../../mod/photos.php:1262 ../../mod/photos.php:1293 #: ../../mod/install.php:251 ../../mod/install.php:289 #: ../../mod/localtime.php:45 ../../mod/contacts.php:319 #: ../../mod/settings.php:453 ../../mod/settings.php:592 -#: ../../mod/settings.php:773 ../../mod/manage.php:109 ../../mod/group.php:84 -#: ../../mod/group.php:167 ../../mod/admin.php:296 ../../mod/admin.php:461 -#: ../../mod/admin.php:587 ../../mod/admin.php:652 ../../mod/profiles.php:375 -#: ../../mod/invite.php:106 ../../addon/facebook/facebook.php:410 -#: ../../addon/yourls/yourls.php:76 ../../addon/nsfw/nsfw.php:57 +#: ../../mod/settings.php:786 ../../mod/manage.php:109 ../../mod/group.php:84 +#: ../../mod/group.php:167 ../../mod/admin.php:312 ../../mod/admin.php:477 +#: ../../mod/admin.php:603 ../../mod/admin.php:769 ../../mod/admin.php:847 +#: ../../mod/profiles.php:375 ../../mod/invite.php:106 +#: ../../addon/facebook/facebook.php:411 ../../addon/yourls/yourls.php:76 +#: ../../addon/nsfw/nsfw.php:57 #: ../../addon/uhremotestorage/uhremotestorage.php:89 #: ../../addon/randplace/randplace.php:179 ../../addon/drpost/drpost.php:110 #: ../../addon/geonames/geonames.php:187 ../../addon/oembed.old/oembed.php:41 #: ../../addon/impressum/impressum.php:69 ../../addon/blockem/blockem.php:57 +#: ../../addon/qcomment/qcomment.php:60 +#: ../../addon/openstreetmap/openstreetmap.php:70 #: ../../addon/editplain/editplain.php:84 ../../addon/blackout/blackout.php:94 #: ../../addon/pageheader/pageheader.php:52 -#: ../../addon/statusnet/statusnet.php:280 -#: ../../addon/statusnet/statusnet.php:294 +#: ../../addon/statusnet/statusnet.php:273 +#: ../../addon/statusnet/statusnet.php:287 +#: ../../addon/statusnet/statusnet.php:313 #: ../../addon/statusnet/statusnet.php:320 -#: ../../addon/statusnet/statusnet.php:327 -#: ../../addon/statusnet/statusnet.php:349 -#: ../../addon/statusnet/statusnet.php:495 ../../addon/tumblr/tumblr.php:90 +#: ../../addon/statusnet/statusnet.php:345 +#: ../../addon/statusnet/statusnet.php:532 ../../addon/tumblr/tumblr.php:90 #: ../../addon/numfriends/numfriends.php:85 ../../addon/wppost/wppost.php:102 -#: ../../addon/piwik/piwik.php:81 ../../addon/twitter/twitter.php:180 -#: ../../addon/twitter/twitter.php:203 ../../addon/twitter/twitter.php:315 -#: ../../addon/posterous/posterous.php:90 ../../include/conversation.php:515 +#: ../../addon/showmore/showmore.php:48 ../../addon/piwik/piwik.php:89 +#: ../../addon/twitter/twitter.php:175 ../../addon/twitter/twitter.php:201 +#: ../../addon/twitter/twitter.php:355 ../../addon/posterous/posterous.php:90 +#: ../../include/conversation.php:542 msgid "Submit" msgstr "Senden" @@ -193,82 +198,82 @@ msgstr "Kontakte vorschlagen" msgid "Suggest a friend for %s" msgstr "Schlage %s einen Kontakt vor" -#: ../../mod/events.php:61 +#: ../../mod/events.php:62 msgid "Event description and start time are required." msgstr "Ereignis Beschreibung und Startzeit sind erforderlich." -#: ../../mod/events.php:117 ../../include/nav.php:50 ../../boot.php:1345 -msgid "Events" -msgstr "Veranstaltungen" - -#: ../../mod/events.php:207 -msgid "Create New Event" -msgstr "Neue Veranstaltung erstellen" - -#: ../../mod/events.php:210 -msgid "Previous" -msgstr "Vorherige" - -#: ../../mod/events.php:213 ../../mod/install.php:210 -msgid "Next" -msgstr "Nächste" - -#: ../../mod/events.php:220 +#: ../../mod/events.php:230 msgid "l, F j" msgstr "l, F j" -#: ../../mod/events.php:235 +#: ../../mod/events.php:252 msgid "Edit event" msgstr "Veranstaltung bearbeiten" -#: ../../mod/events.php:237 ../../include/text.php:883 +#: ../../mod/events.php:272 ../../include/text.php:964 msgid "link to source" msgstr "Link zum Originalbeitrag" -#: ../../mod/events.php:305 +#: ../../mod/events.php:296 ../../include/nav.php:50 ../../boot.php:1349 +msgid "Events" +msgstr "Veranstaltungen" + +#: ../../mod/events.php:297 +msgid "Create New Event" +msgstr "Neue Veranstaltung erstellen" + +#: ../../mod/events.php:298 +msgid "Previous" +msgstr "Vorherige" + +#: ../../mod/events.php:299 ../../mod/install.php:210 +msgid "Next" +msgstr "Nächste" + +#: ../../mod/events.php:371 msgid "hour:minute" msgstr "Stunde:Minute" -#: ../../mod/events.php:314 +#: ../../mod/events.php:380 msgid "Event details" msgstr "Veranstaltungsdetails" -#: ../../mod/events.php:315 +#: ../../mod/events.php:381 #, php-format msgid "Format is %s %s. Starting date and Description are required." msgstr "Format ist %s %s. Anfangsdatum und Beschreibung sind notwendig." -#: ../../mod/events.php:316 +#: ../../mod/events.php:383 msgid "Event Starts:" msgstr "Veranstaltungsbeginn:" -#: ../../mod/events.php:319 +#: ../../mod/events.php:386 msgid "Finish date/time is not known or not relevant" msgstr "Enddatum/-zeit ist nicht bekannt oder nicht relevant" -#: ../../mod/events.php:321 +#: ../../mod/events.php:388 msgid "Event Finishes:" msgstr "Veranstaltungsende:" -#: ../../mod/events.php:324 +#: ../../mod/events.php:391 msgid "Adjust for viewer timezone" msgstr "An Zeitzone des Betrachters anpassen" -#: ../../mod/events.php:326 +#: ../../mod/events.php:393 msgid "Description:" msgstr "Beschreibung" -#: ../../mod/events.php:328 ../../include/event.php:37 -#: ../../include/bb2diaspora.php:271 ../../boot.php:976 +#: ../../mod/events.php:395 ../../include/event.php:37 +#: ../../include/bb2diaspora.php:290 ../../boot.php:980 msgid "Location:" msgstr "Ort:" -#: ../../mod/events.php:330 +#: ../../mod/events.php:397 msgid "Share this event" msgstr "Veranstaltung teilen" #: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94 -#: ../../mod/dfrn_request.php:685 ../../mod/settings.php:454 +#: ../../mod/dfrn_request.php:686 ../../mod/settings.php:454 #: ../../mod/settings.php:480 ../../addon/js_upload/js_upload.php:45 msgid "Cancel" msgstr "Abbrechen" @@ -312,24 +317,24 @@ msgid "" " and/or create new posts for you?" msgstr "Möchtest du dieser Anwendung den Zugriff auf deine Beiträge und Kontakte sowie die Erstellung neuer Beiträge in deinem Namen gestatten?" -#: ../../mod/api.php:105 ../../mod/dfrn_request.php:675 +#: ../../mod/api.php:105 ../../mod/dfrn_request.php:676 #: ../../mod/settings.php:681 ../../mod/settings.php:687 #: ../../mod/settings.php:695 ../../mod/settings.php:699 #: ../../mod/settings.php:704 ../../mod/settings.php:710 -#: ../../mod/settings.php:716 ../../mod/settings.php:763 -#: ../../mod/settings.php:764 ../../mod/settings.php:765 -#: ../../mod/settings.php:766 ../../mod/register.php:524 +#: ../../mod/settings.php:716 ../../mod/settings.php:776 +#: ../../mod/settings.php:777 ../../mod/settings.php:778 +#: ../../mod/settings.php:779 ../../mod/register.php:524 #: ../../mod/profiles.php:357 msgid "Yes" msgstr "Ja" -#: ../../mod/api.php:106 ../../mod/dfrn_request.php:676 +#: ../../mod/api.php:106 ../../mod/dfrn_request.php:677 #: ../../mod/settings.php:681 ../../mod/settings.php:687 #: ../../mod/settings.php:695 ../../mod/settings.php:699 #: ../../mod/settings.php:704 ../../mod/settings.php:710 -#: ../../mod/settings.php:716 ../../mod/settings.php:763 -#: ../../mod/settings.php:764 ../../mod/settings.php:765 -#: ../../mod/settings.php:766 ../../mod/register.php:525 +#: ../../mod/settings.php:716 ../../mod/settings.php:776 +#: ../../mod/settings.php:777 ../../mod/settings.php:778 +#: ../../mod/settings.php:779 ../../mod/register.php:525 #: ../../mod/profiles.php:358 msgid "No" msgstr "Nein" @@ -384,8 +389,8 @@ msgstr "wurde getaggt in einem" #: ../../mod/photos.php:528 ../../mod/like.php:127 ../../mod/tagger.php:70 #: ../../addon/communityhome/communityhome.php:163 -#: ../../include/diaspora.php:1587 ../../include/conversation.php:31 -#: ../../include/conversation.php:104 +#: ../../include/diaspora.php:1600 ../../include/conversation.php:53 +#: ../../include/conversation.php:126 msgid "photo" msgstr "Foto" @@ -393,7 +398,7 @@ msgstr "Foto" msgid "by" msgstr "von" -#: ../../mod/photos.php:631 ../../addon/js_upload/js_upload.php:312 +#: ../../mod/photos.php:631 ../../addon/js_upload/js_upload.php:315 msgid "Image exceeds size limit of " msgstr "Die Bildgröße übersteigt das Limit von " @@ -412,8 +417,8 @@ msgid "Image upload failed." msgstr "Hochladen des Bildes gescheitert." #: ../../mod/photos.php:759 ../../mod/community.php:16 -#: ../../mod/dfrn_request.php:624 ../../mod/viewcontacts.php:16 -#: ../../mod/display.php:7 ../../mod/search.php:71 ../../mod/directory.php:31 +#: ../../mod/dfrn_request.php:625 ../../mod/viewcontacts.php:17 +#: ../../mod/display.php:7 ../../mod/search.php:71 ../../mod/directory.php:33 msgid "Public access denied." msgstr "Öffentlicher Zugriff verweigert." @@ -473,7 +478,7 @@ msgstr "Foto bearbeiten" msgid "Use as profile photo" msgstr "Als Profilbild verwenden" -#: ../../mod/photos.php:1078 ../../include/conversation.php:450 +#: ../../mod/photos.php:1078 ../../include/conversation.php:472 msgid "Private Message" msgstr "Private Nachricht" @@ -506,44 +511,44 @@ msgid "" "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" msgstr "Beispiel: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" -#: ../../mod/photos.php:1200 ../../include/conversation.php:497 +#: ../../mod/photos.php:1200 ../../include/conversation.php:519 msgid "I like this (toggle)" msgstr "Ich mag das (toggle)" -#: ../../mod/photos.php:1201 ../../include/conversation.php:498 +#: ../../mod/photos.php:1201 ../../include/conversation.php:520 msgid "I don't like this (toggle)" msgstr "Ich mag das nicht (toggle)" -#: ../../mod/photos.php:1202 ../../include/conversation.php:889 +#: ../../mod/photos.php:1202 ../../include/conversation.php:914 msgid "Share" msgstr "Teilen" -#: ../../mod/photos.php:1203 ../../mod/editpost.php:100 +#: ../../mod/photos.php:1203 ../../mod/editpost.php:104 #: ../../mod/message.php:155 ../../mod/message.php:296 -#: ../../include/conversation.php:321 ../../include/conversation.php:652 -#: ../../include/conversation.php:906 +#: ../../include/conversation.php:343 ../../include/conversation.php:677 +#: ../../include/conversation.php:931 msgid "Please wait" msgstr "Bitte warten" #: ../../mod/photos.php:1219 ../../mod/photos.php:1259 -#: ../../mod/photos.php:1290 ../../include/conversation.php:512 +#: ../../mod/photos.php:1290 ../../include/conversation.php:539 msgid "This is you" msgstr "Das bist du" #: ../../mod/photos.php:1221 ../../mod/photos.php:1261 -#: ../../mod/photos.php:1292 ../../include/conversation.php:514 -#: ../../boot.php:443 +#: ../../mod/photos.php:1292 ../../include/conversation.php:541 +#: ../../boot.php:447 msgid "Comment" msgstr "Kommentar" -#: ../../mod/photos.php:1223 ../../mod/editpost.php:119 -#: ../../include/conversation.php:516 ../../include/conversation.php:924 +#: ../../mod/photos.php:1223 ../../mod/editpost.php:123 +#: ../../include/conversation.php:543 ../../include/conversation.php:949 msgid "Preview" msgstr "Vorschau" #: ../../mod/photos.php:1320 ../../mod/settings.php:513 -#: ../../mod/group.php:154 ../../mod/admin.php:468 -#: ../../include/conversation.php:280 ../../include/conversation.php:536 +#: ../../mod/group.php:154 ../../mod/admin.php:484 +#: ../../include/conversation.php:302 ../../include/conversation.php:563 msgid "Delete" msgstr "Löschen" @@ -603,70 +608,70 @@ msgstr "Keine Plugins/Erweiterungen/Apps installiert" msgid "Item not found" msgstr "Beitrag nicht gefunden" -#: ../../mod/editpost.php:32 +#: ../../mod/editpost.php:36 msgid "Edit post" msgstr "Beitrag bearbeiten" -#: ../../mod/editpost.php:76 ../../include/conversation.php:875 +#: ../../mod/editpost.php:80 ../../include/conversation.php:900 msgid "Post to Email" msgstr "An E-Mail senden" -#: ../../mod/editpost.php:91 ../../mod/settings.php:512 -#: ../../include/conversation.php:523 +#: ../../mod/editpost.php:95 ../../mod/settings.php:512 +#: ../../include/conversation.php:550 msgid "Edit" msgstr "Bearbeiten" -#: ../../mod/editpost.php:92 ../../mod/message.php:153 -#: ../../mod/message.php:294 ../../include/conversation.php:890 +#: ../../mod/editpost.php:96 ../../mod/message.php:153 +#: ../../mod/message.php:294 ../../include/conversation.php:915 msgid "Upload photo" msgstr "Foto hochladen" -#: ../../mod/editpost.php:93 ../../include/conversation.php:892 +#: ../../mod/editpost.php:97 ../../include/conversation.php:917 msgid "Attach file" msgstr "Datei anhängen" -#: ../../mod/editpost.php:94 ../../mod/message.php:154 -#: ../../mod/message.php:295 ../../include/conversation.php:894 +#: ../../mod/editpost.php:98 ../../mod/message.php:154 +#: ../../mod/message.php:295 ../../include/conversation.php:919 msgid "Insert web link" msgstr "Weblink einfügen" -#: ../../mod/editpost.php:95 +#: ../../mod/editpost.php:99 msgid "Insert YouTube video" msgstr "YouTube-Video einfügen" -#: ../../mod/editpost.php:96 +#: ../../mod/editpost.php:100 msgid "Insert Vorbis [.ogg] video" msgstr "Vorbis [.ogg] Video einfügen" -#: ../../mod/editpost.php:97 +#: ../../mod/editpost.php:101 msgid "Insert Vorbis [.ogg] audio" msgstr "Vorbis [.ogg] Audio einfügen" -#: ../../mod/editpost.php:98 ../../include/conversation.php:900 +#: ../../mod/editpost.php:102 ../../include/conversation.php:925 msgid "Set your location" msgstr "Deinen Standort festlegen" -#: ../../mod/editpost.php:99 ../../include/conversation.php:902 +#: ../../mod/editpost.php:103 ../../include/conversation.php:927 msgid "Clear browser location" msgstr "Browser-Standort leeren" -#: ../../mod/editpost.php:101 ../../include/conversation.php:907 +#: ../../mod/editpost.php:105 ../../include/conversation.php:932 msgid "Permission settings" msgstr "Berechtigungseinstellungen" -#: ../../mod/editpost.php:109 ../../include/conversation.php:916 +#: ../../mod/editpost.php:113 ../../include/conversation.php:941 msgid "CC: email addresses" msgstr "Cc:-E-Mail-Addressen" -#: ../../mod/editpost.php:110 ../../include/conversation.php:917 +#: ../../mod/editpost.php:114 ../../include/conversation.php:942 msgid "Public post" msgstr "Öffentlicher Beitrag" -#: ../../mod/editpost.php:113 ../../include/conversation.php:905 +#: ../../mod/editpost.php:117 ../../include/conversation.php:930 msgid "Set title" msgstr "Titel setzen" -#: ../../mod/editpost.php:114 ../../include/conversation.php:919 +#: ../../mod/editpost.php:118 ../../include/conversation.php:944 msgid "Example: bob@example.com, mary@example.com" msgstr "Z.B.: bob@example.com, mary@example.com" @@ -775,68 +780,68 @@ msgstr "Bitte bestätige deine Kontaktanfrage bei %s." msgid "Confirm" msgstr "Bestätigen" -#: ../../mod/dfrn_request.php:581 ../../include/items.php:2443 +#: ../../mod/dfrn_request.php:582 ../../include/items.php:2504 msgid "[Name Withheld]" msgstr "[Name Zurückgehalten]" -#: ../../mod/dfrn_request.php:665 +#: ../../mod/dfrn_request.php:666 #, php-format msgid "" "Diaspora members: Please do not use this form. Instead, enter \"%s\" into " "your Diaspora search bar." msgstr "Diaspora-User: Bitte nicht dieses Formular benutzen! Gebt statt dessen \"%s\" in der Diaspora-Suchleiste ein." -#: ../../mod/dfrn_request.php:668 +#: ../../mod/dfrn_request.php:669 msgid "" "Please enter your 'Identity Address' from one of the following supported " "social networks:" msgstr "Bitte gib die Adresse deines Profils in einem der unterstützten sozialen Netzwerke an:" -#: ../../mod/dfrn_request.php:671 +#: ../../mod/dfrn_request.php:672 msgid "Friend/Connection Request" msgstr "Freundschafts-/Kontaktanfrage" -#: ../../mod/dfrn_request.php:672 +#: ../../mod/dfrn_request.php:673 msgid "" "Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, " "testuser@identi.ca" msgstr "Beispiele: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca" -#: ../../mod/dfrn_request.php:673 +#: ../../mod/dfrn_request.php:674 msgid "Please answer the following:" msgstr "Bitte beantworte folgende Fragen:" -#: ../../mod/dfrn_request.php:674 +#: ../../mod/dfrn_request.php:675 #, php-format msgid "Does %s know you?" msgstr "Kennt %s dich?" -#: ../../mod/dfrn_request.php:677 +#: ../../mod/dfrn_request.php:678 msgid "Add a personal note:" msgstr "Eine persönliche Notiz anfügen:" -#: ../../mod/dfrn_request.php:679 ../../include/contact_selectors.php:76 +#: ../../mod/dfrn_request.php:680 ../../include/contact_selectors.php:76 msgid "Friendica" msgstr "Friendica" -#: ../../mod/dfrn_request.php:680 +#: ../../mod/dfrn_request.php:681 msgid "StatusNet/Federated Social Web" msgstr "StatusNet/Federated Social Web" -#: ../../mod/dfrn_request.php:681 ../../mod/settings.php:548 +#: ../../mod/dfrn_request.php:682 ../../mod/settings.php:548 #: ../../include/contact_selectors.php:80 msgid "Diaspora" msgstr "Diaspora" -#: ../../mod/dfrn_request.php:682 +#: ../../mod/dfrn_request.php:683 msgid "- please share from your own site as noted above" msgstr "- bitte fange von Deiner eigenen Seite aus zu teilen an" -#: ../../mod/dfrn_request.php:683 +#: ../../mod/dfrn_request.php:684 msgid "Your Identity Address:" msgstr "Adresse deines Profils:" -#: ../../mod/dfrn_request.php:684 +#: ../../mod/dfrn_request.php:685 msgid "Submit Request" msgstr "Anfrage abschicken" @@ -1086,7 +1091,7 @@ msgid "Errors encountered creating database tables." msgstr "Fehler aufgetreten während der Erzeugung der Datenbanktabellen." #: ../../mod/localtime.php:12 ../../include/event.php:11 -#: ../../include/bb2diaspora.php:249 +#: ../../include/bb2diaspora.php:268 msgid "l F d, Y \\@ g:i A" msgstr "l F d, Y \\@ g:i A" @@ -1132,7 +1137,7 @@ msgid "is interested in:" msgstr "ist interessiert an:" #: ../../mod/match.php:58 ../../mod/suggest.php:59 -#: ../../include/contact_widgets.php:9 ../../boot.php:926 +#: ../../include/contact_widgets.php:9 ../../boot.php:930 msgid "Connect" msgstr "Verbinden" @@ -1157,165 +1162,187 @@ msgstr "Willkommen zu %s" msgid "Invalid request identifier." msgstr "Invalid request identifier." -#: ../../mod/notifications.php:35 ../../mod/notifications.php:152 -#: ../../mod/notifications.php:198 +#: ../../mod/notifications.php:35 ../../mod/notifications.php:157 +#: ../../mod/notifications.php:203 msgid "Discard" msgstr "Verwerfen" -#: ../../mod/notifications.php:47 ../../mod/notifications.php:151 -#: ../../mod/notifications.php:197 ../../mod/contacts.php:302 +#: ../../mod/notifications.php:47 ../../mod/notifications.php:156 +#: ../../mod/notifications.php:202 ../../mod/contacts.php:302 #: ../../mod/contacts.php:345 msgid "Ignore" msgstr "Ignorieren" -#: ../../mod/notifications.php:71 ../../include/nav.php:109 +#: ../../mod/notifications.php:71 +msgid "System" +msgstr "System" + +#: ../../mod/notifications.php:76 ../../include/nav.php:109 msgid "Network" msgstr "Netzwerk" -#: ../../mod/notifications.php:76 ../../mod/network.php:177 +#: ../../mod/notifications.php:81 ../../mod/network.php:177 msgid "Personal" msgstr "Persönlich" -#: ../../mod/notifications.php:81 ../../include/nav.php:73 +#: ../../mod/notifications.php:86 ../../include/nav.php:73 #: ../../include/nav.php:111 msgid "Home" msgstr "Pinnwand" -#: ../../mod/notifications.php:86 ../../include/nav.php:117 +#: ../../mod/notifications.php:91 ../../include/nav.php:117 msgid "Introductions" msgstr "Kontaktanfragen" -#: ../../mod/notifications.php:91 ../../mod/message.php:76 -#: ../../include/nav.php:123 +#: ../../mod/notifications.php:96 ../../mod/message.php:76 +#: ../../include/nav.php:124 msgid "Messages" msgstr "Nachrichten" -#: ../../mod/notifications.php:110 +#: ../../mod/notifications.php:115 msgid "Show Ignored Requests" msgstr "Zeige ignorierte Anfragen" -#: ../../mod/notifications.php:110 +#: ../../mod/notifications.php:115 msgid "Hide Ignored Requests" msgstr "Verberge ignorierte Anfragen" -#: ../../mod/notifications.php:136 ../../mod/notifications.php:182 +#: ../../mod/notifications.php:141 ../../mod/notifications.php:187 msgid "Notification type: " msgstr "Benachrichtigungstyp: " -#: ../../mod/notifications.php:137 +#: ../../mod/notifications.php:142 msgid "Friend Suggestion" msgstr "Kontaktvorschlag" -#: ../../mod/notifications.php:139 +#: ../../mod/notifications.php:144 #, php-format msgid "suggested by %s" msgstr "vorgeschlagen von %s" -#: ../../mod/notifications.php:144 ../../mod/notifications.php:191 +#: ../../mod/notifications.php:149 ../../mod/notifications.php:196 #: ../../mod/contacts.php:350 msgid "Hide this contact from others" msgstr "Verberge diesen Kontakt vor anderen" -#: ../../mod/notifications.php:145 ../../mod/notifications.php:192 +#: ../../mod/notifications.php:150 ../../mod/notifications.php:197 msgid "Post a new friend activity" msgstr "Neue-Kontakt Nachricht senden" -#: ../../mod/notifications.php:145 ../../mod/notifications.php:192 +#: ../../mod/notifications.php:150 ../../mod/notifications.php:197 msgid "if applicable" msgstr "falls anwendbar" -#: ../../mod/notifications.php:148 ../../mod/notifications.php:195 -#: ../../mod/admin.php:466 +#: ../../mod/notifications.php:153 ../../mod/notifications.php:200 +#: ../../mod/admin.php:482 msgid "Approve" msgstr "Genehmigen" -#: ../../mod/notifications.php:168 +#: ../../mod/notifications.php:173 msgid "Claims to be known to you: " msgstr "Behauptet dich zu kennen: " -#: ../../mod/notifications.php:168 +#: ../../mod/notifications.php:173 msgid "yes" msgstr "ja" -#: ../../mod/notifications.php:168 +#: ../../mod/notifications.php:173 msgid "no" msgstr "nein" -#: ../../mod/notifications.php:175 +#: ../../mod/notifications.php:180 msgid "Approve as: " msgstr "Genehmigen als: " -#: ../../mod/notifications.php:176 +#: ../../mod/notifications.php:181 msgid "Friend" msgstr "Freund" -#: ../../mod/notifications.php:177 +#: ../../mod/notifications.php:182 msgid "Sharer" msgstr "Teilenden" -#: ../../mod/notifications.php:177 +#: ../../mod/notifications.php:182 msgid "Fan/Admirer" msgstr "Fan/Verehrer" -#: ../../mod/notifications.php:183 +#: ../../mod/notifications.php:188 msgid "Friend/Connect Request" msgstr "Kontakt-/Freundschaftsanfrage" -#: ../../mod/notifications.php:183 +#: ../../mod/notifications.php:188 msgid "New Follower" msgstr "Neuer Bewunderer" -#: ../../mod/notifications.php:204 +#: ../../mod/notifications.php:209 msgid "No introductions." msgstr "Keine Kontaktanfragen." -#: ../../mod/notifications.php:207 ../../mod/notifications.php:293 -#: ../../mod/notifications.php:388 ../../mod/notifications.php:469 -#: ../../include/nav.php:118 +#: ../../mod/notifications.php:212 ../../include/nav.php:118 msgid "Notifications" msgstr "Benachrichtigungen" -#: ../../mod/notifications.php:244 ../../mod/notifications.php:339 -#: ../../mod/notifications.php:426 +#: ../../mod/notifications.php:249 ../../mod/notifications.php:374 +#: ../../mod/notifications.php:461 #, php-format msgid "%s liked %s's post" msgstr "%s mag %ss Beitrag" -#: ../../mod/notifications.php:253 ../../mod/notifications.php:348 -#: ../../mod/notifications.php:435 +#: ../../mod/notifications.php:258 ../../mod/notifications.php:383 +#: ../../mod/notifications.php:470 #, php-format msgid "%s disliked %s's post" msgstr "%s mag %ss Beitrag nicht" -#: ../../mod/notifications.php:267 ../../mod/notifications.php:362 -#: ../../mod/notifications.php:449 +#: ../../mod/notifications.php:272 ../../mod/notifications.php:397 +#: ../../mod/notifications.php:484 #, php-format msgid "%s is now friends with %s" msgstr "%s ist jetzt mit %s befreundet" -#: ../../mod/notifications.php:274 ../../mod/notifications.php:369 +#: ../../mod/notifications.php:279 ../../mod/notifications.php:404 #, php-format msgid "%s created a new post" msgstr "%s hat einen neuen Beitrag erstellt" -#: ../../mod/notifications.php:275 ../../mod/notifications.php:370 -#: ../../mod/notifications.php:458 +#: ../../mod/notifications.php:280 ../../mod/notifications.php:405 +#: ../../mod/notifications.php:493 #, php-format msgid "%s commented on %s's post" msgstr "%s hat %ss Beitrag kommentiert" -#: ../../mod/notifications.php:289 +#: ../../mod/notifications.php:294 msgid "No more network notifications." msgstr "Keine weiteren Netzwerk-Benachrichtigungen." -#: ../../mod/notifications.php:384 +#: ../../mod/notifications.php:298 +msgid "Network Notifications" +msgstr "Netzwerk Benachrichtigungen" + +#: ../../mod/notifications.php:324 ../../mod/notify.php:59 +msgid "No more system notifications." +msgstr "Keine weiteren System Benachrichtigungen." + +#: ../../mod/notifications.php:328 ../../mod/notify.php:63 +msgid "System Notifications" +msgstr "System Benachrichtigungen" + +#: ../../mod/notifications.php:419 msgid "No more personal notifications." msgstr "Keine weiteren persönlichen Benachrichtigungen" -#: ../../mod/notifications.php:465 +#: ../../mod/notifications.php:423 +msgid "Personal Notifications" +msgstr "Persönliche Benachrichtigungen" + +#: ../../mod/notifications.php:500 msgid "No more home notifications." msgstr "Keine weiteren Pinnwand-Benachrichtigungen" +#: ../../mod/notifications.php:504 +msgid "Home Notifications" +msgstr "Pinnwand Benachrichtigungen" + #: ../../mod/contacts.php:63 ../../mod/contacts.php:143 msgid "Could not access contact record." msgstr "Konnte nicht auf die Kontaktdaten zugreifen." @@ -1404,12 +1431,12 @@ msgid "View all contacts" msgstr "Alle Kontakte anzeigen" #: ../../mod/contacts.php:297 ../../mod/contacts.php:344 -#: ../../mod/admin.php:470 +#: ../../mod/admin.php:486 msgid "Unblock" msgstr "Entsperren" #: ../../mod/contacts.php:297 ../../mod/contacts.php:344 -#: ../../mod/admin.php:469 +#: ../../mod/admin.php:485 msgid "Block" msgstr "Sperren" @@ -1444,8 +1471,8 @@ msgstr "Kontakt Informationen / Notizen" msgid "Edit contact notes" msgstr "Notizen zum Kontakt bearbiten" -#: ../../mod/contacts.php:328 ../../mod/contacts.php:458 -#: ../../mod/viewcontacts.php:61 +#: ../../mod/contacts.php:328 ../../mod/contacts.php:497 +#: ../../mod/viewcontacts.php:60 #, php-format msgid "Visit %s's profile [%s]" msgstr "Besuche %ss Profil [%s]" @@ -1478,7 +1505,7 @@ msgstr "letzte Aktualisierung:" msgid "Update public posts" msgstr "Öffentliche Beiträge aktualisieren" -#: ../../mod/contacts.php:341 ../../mod/admin.php:701 +#: ../../mod/contacts.php:341 ../../mod/admin.php:896 msgid "Update now" msgstr "Jetzt aktualisieren" @@ -1495,52 +1522,60 @@ msgid "" "Replies/likes to your public posts may still be visible" msgstr "Antworten/Likes auf deine öffentlichen Beiträge könnten weiterhin sichtbar sein" -#: ../../mod/contacts.php:387 ../../include/nav.php:131 -msgid "Contacts" -msgstr "Kontakte" +#: ../../mod/contacts.php:399 ../../mod/group.php:194 +msgid "All Contacts" +msgstr "Alle Kontakte" -#: ../../mod/contacts.php:389 -msgid "Show Unblocked Contacts" -msgstr "Nicht geblockte Kontakte anzeigen" +#: ../../mod/contacts.php:404 +msgid "Unblocked Contacts" +msgstr "Nicht blockierte Kontakte" -#: ../../mod/contacts.php:389 -msgid "Show Blocked Contacts" -msgstr "Blockierte Kontakte anzeigen" +#: ../../mod/contacts.php:410 +msgid "Blocked Contacts" +msgstr "Blockierte Kontakte" -#: ../../mod/contacts.php:391 -msgid "Show All Contacts" -msgstr "Alle Kontakte anzeigen" +#: ../../mod/contacts.php:416 +msgid "Ignored Contacts" +msgstr "Ignorierte Kontakte" -#: ../../mod/contacts.php:393 -msgid "Search your contacts" -msgstr "Suche in deinen Kontakten" +#: ../../mod/contacts.php:422 +msgid "Hidden Contacts" +msgstr "Verborgene Kontakte" -#: ../../mod/contacts.php:394 ../../mod/directory.php:65 -msgid "Finding: " -msgstr "Funde: " - -#: ../../mod/contacts.php:395 ../../mod/directory.php:67 -#: ../../include/contact_widgets.php:34 -msgid "Find" -msgstr "Finde" - -#: ../../mod/contacts.php:434 +#: ../../mod/contacts.php:473 msgid "Mutual Friendship" msgstr "Beidseitige Freundschaft" -#: ../../mod/contacts.php:438 +#: ../../mod/contacts.php:477 msgid "is a fan of yours" msgstr "ist ein Fan von dir" -#: ../../mod/contacts.php:442 +#: ../../mod/contacts.php:481 msgid "you are a fan of" msgstr "du bist Fan von" -#: ../../mod/contacts.php:459 ../../include/Contact.php:135 -#: ../../include/conversation.php:748 +#: ../../mod/contacts.php:498 ../../include/Contact.php:135 +#: ../../include/conversation.php:773 msgid "Edit contact" msgstr "Kontakt bearbeiten" +#: ../../mod/contacts.php:518 ../../include/nav.php:132 +msgid "Contacts" +msgstr "Kontakte" + +#: ../../mod/contacts.php:522 +msgid "Search your contacts" +msgstr "Suche in deinen Kontakten" + +#: ../../mod/contacts.php:523 ../../mod/directory.php:67 +msgid "Finding: " +msgstr "Funde: " + +#: ../../mod/contacts.php:524 ../../mod/directory.php:69 +#: ../../include/contact_widgets.php:34 +msgid "Find" +msgstr "Finde" + #: ../../mod/lostpass.php:16 msgid "No valid account found." msgstr "Kein gültiger Account gefunden." @@ -1557,7 +1592,7 @@ msgstr "Anfrage zum Zurücksetzen des Passworts auf %s erhalten" #: ../../mod/lostpass.php:44 ../../mod/lostpass.php:106 #: ../../mod/register.php:380 ../../mod/register.php:434 #: ../../mod/regmod.php:54 ../../mod/dfrn_confirm.php:716 -#: ../../include/items.php:2452 +#: ../../include/items.php:2513 msgid "Administrator" msgstr "Administrator" @@ -1567,7 +1602,7 @@ msgid "" "Password reset failed." msgstr "Anfrage konnte nicht verifiziert werden. (Eventuell hast du bereits ähnliche Anfrage gestellt.) Zurücksetzen des Passworts gescheitert." -#: ../../mod/lostpass.php:82 ../../boot.php:719 +#: ../../mod/lostpass.php:82 ../../boot.php:723 msgid "Password Reset" msgstr "Passwort zurücksetzen" @@ -1615,7 +1650,7 @@ msgstr "Zurücksetzen" msgid "Missing some important data!" msgstr "Wichtige Daten fehlen!" -#: ../../mod/settings.php:73 ../../mod/settings.php:479 ../../mod/admin.php:62 +#: ../../mod/settings.php:73 ../../mod/settings.php:479 ../../mod/admin.php:75 msgid "Update" msgstr "Aktualisierungen" @@ -1659,13 +1694,14 @@ msgstr " Keine gültige E-Mail." msgid " Cannot change to that email." msgstr " Cannot change to that email." -#: ../../mod/settings.php:351 ../../addon/facebook/facebook.php:320 -#: ../../addon/impressum/impressum.php:64 ../../addon/piwik/piwik.php:94 -#: ../../addon/twitter/twitter.php:310 +#: ../../mod/settings.php:351 ../../addon/facebook/facebook.php:321 +#: ../../addon/impressum/impressum.php:64 +#: ../../addon/openstreetmap/openstreetmap.php:80 +#: ../../addon/piwik/piwik.php:105 ../../addon/twitter/twitter.php:350 msgid "Settings updated." msgstr "Einstellungen aktualisiert." -#: ../../mod/settings.php:415 ../../include/nav.php:129 +#: ../../mod/settings.php:415 ../../include/nav.php:130 msgid "Account settings" msgstr "Account Einstellungen" @@ -1691,12 +1727,12 @@ msgid "Add application" msgstr "Programm hinzufügen" #: ../../mod/settings.php:456 ../../mod/settings.php:482 -#: ../../addon/statusnet/statusnet.php:489 +#: ../../addon/statusnet/statusnet.php:526 msgid "Consumer Key" msgstr "Consumer Key" #: ../../mod/settings.php:457 ../../mod/settings.php:483 -#: ../../addon/statusnet/statusnet.php:488 +#: ../../addon/statusnet/statusnet.php:525 msgid "Consumer Secret" msgstr "Consumer Secret" @@ -1807,7 +1843,7 @@ msgstr "Reply-to Adresse:" msgid "Send public posts to all email contacts:" msgstr "Sende öffentliche Beiträge an alle E-Mail-Kontakte:" -#: ../../mod/settings.php:648 ../../mod/admin.php:126 ../../mod/admin.php:443 +#: ../../mod/settings.php:648 ../../mod/admin.php:142 ../../mod/admin.php:459 msgid "Normal Account" msgstr "Normaler Account" @@ -1815,7 +1851,7 @@ msgstr "Normaler Account" msgid "This account is a normal personal profile" msgstr "Dieser Account ist ein normales persönliches Profil" -#: ../../mod/settings.php:652 ../../mod/admin.php:127 ../../mod/admin.php:444 +#: ../../mod/settings.php:652 ../../mod/admin.php:143 ../../mod/admin.php:460 msgid "Soapbox Account" msgstr "Sandkasten-Account" @@ -1823,7 +1859,7 @@ msgstr "Sandkasten-Account" msgid "Automatically approve all connection/friend requests as read-only fans" msgstr "Freundschaftsanfragen werden automatisch als Nurlese-Fans akzeptiert" -#: ../../mod/settings.php:656 ../../mod/admin.php:128 ../../mod/admin.php:445 +#: ../../mod/settings.php:656 ../../mod/admin.php:144 ../../mod/admin.php:461 msgid "Community/Celebrity Account" msgstr "Gemeinschafts/Promi-Account" @@ -1832,7 +1868,7 @@ msgid "" "Automatically approve all connection/friend requests as read-write fans" msgstr "Freundschaftsanfragen werden automatisch als Lese-und-Schreib-Fans akzeptiert" -#: ../../mod/settings.php:660 ../../mod/admin.php:129 ../../mod/admin.php:446 +#: ../../mod/settings.php:660 ../../mod/admin.php:145 ../../mod/admin.php:462 msgid "Automatic Friend Account" msgstr "Automatischer Freundesaccount" @@ -1880,159 +1916,159 @@ msgstr "Erlaube uns dich als potentiellen Kontakt für neue Mitglieder vorzuschl msgid "Profile is not published." msgstr "Profil ist nicht veröffentlicht." -#: ../../mod/settings.php:744 ../../mod/profile_photo.php:206 +#: ../../mod/settings.php:757 ../../mod/profile_photo.php:206 msgid "or" msgstr "oder" -#: ../../mod/settings.php:749 +#: ../../mod/settings.php:762 msgid "Your Identity Address is" msgstr "Die Adresse deines Profils lautet:" -#: ../../mod/settings.php:760 +#: ../../mod/settings.php:773 msgid "Automatically expire posts after this many days:" msgstr "Beiträge verfallen automatisch nach dieser Anzahl von Tagen" -#: ../../mod/settings.php:760 +#: ../../mod/settings.php:773 msgid "If empty, posts will not expire. Expired posts will be deleted" msgstr "Wenn leer verfallen Beiträge nie automatisch. Verfallene Beiträge werden gelöscht." -#: ../../mod/settings.php:761 +#: ../../mod/settings.php:774 msgid "Advanced expiration settings" msgstr "Erweiterte Verfallseinstellungen" -#: ../../mod/settings.php:762 +#: ../../mod/settings.php:775 msgid "Advanced Expiration" msgstr "Erweitertes Verfallen" -#: ../../mod/settings.php:763 +#: ../../mod/settings.php:776 msgid "Expire posts:" msgstr "Beiträge verfallen lassen:" -#: ../../mod/settings.php:764 +#: ../../mod/settings.php:777 msgid "Expire personal notes:" msgstr "Persönliche Notizen verfallen lassen:" -#: ../../mod/settings.php:765 +#: ../../mod/settings.php:778 msgid "Expire starred posts:" msgstr "Markierte Beiträge verfallen lassen:" -#: ../../mod/settings.php:766 +#: ../../mod/settings.php:779 msgid "Expire photos:" msgstr "Fotos verfallen lassen:" -#: ../../mod/settings.php:771 +#: ../../mod/settings.php:784 msgid "Account Settings" msgstr "Account-Einstellungen" -#: ../../mod/settings.php:779 +#: ../../mod/settings.php:792 msgid "Password Settings" msgstr "Passwort-Einstellungen" -#: ../../mod/settings.php:780 +#: ../../mod/settings.php:793 msgid "New Password:" msgstr "Neues Passwort:" -#: ../../mod/settings.php:781 +#: ../../mod/settings.php:794 msgid "Confirm:" msgstr "Bestätigen:" -#: ../../mod/settings.php:781 +#: ../../mod/settings.php:794 msgid "Leave password fields blank unless changing" msgstr "Lass die Passwort-Felder leer, außer du willst das Passwort ändern" -#: ../../mod/settings.php:785 +#: ../../mod/settings.php:798 msgid "Basic Settings" msgstr "Grundeinstellungen" -#: ../../mod/settings.php:786 ../../include/profile_advanced.php:15 +#: ../../mod/settings.php:799 ../../include/profile_advanced.php:15 msgid "Full Name:" msgstr "Kompletter Name:" -#: ../../mod/settings.php:787 +#: ../../mod/settings.php:800 msgid "Email Address:" msgstr "Emailadresse:" -#: ../../mod/settings.php:788 +#: ../../mod/settings.php:801 msgid "Your Timezone:" msgstr "Deine Zeitzone:" -#: ../../mod/settings.php:789 +#: ../../mod/settings.php:802 msgid "Default Post Location:" msgstr "Standardstandort:" -#: ../../mod/settings.php:790 +#: ../../mod/settings.php:803 msgid "Use Browser Location:" msgstr "Verwende den Standort des Browsers:" -#: ../../mod/settings.php:791 +#: ../../mod/settings.php:804 msgid "Display Theme:" msgstr "Theme:" -#: ../../mod/settings.php:792 +#: ../../mod/settings.php:805 msgid "Update browser every xx seconds" msgstr "Browser alle xx Sekunden aktualisieren" -#: ../../mod/settings.php:792 +#: ../../mod/settings.php:805 msgid "Minimum of 10 seconds, no maximum" msgstr "Minimal 10 Sekunden, kein Maximum" -#: ../../mod/settings.php:794 +#: ../../mod/settings.php:807 msgid "Security and Privacy Settings" msgstr "Sicherheits- und Privatsphäre-Einstellungen" -#: ../../mod/settings.php:796 +#: ../../mod/settings.php:809 msgid "Maximum Friend Requests/Day:" msgstr "Maximale Anzahl von Freundschaftsanfragen/Tag:" -#: ../../mod/settings.php:796 +#: ../../mod/settings.php:809 msgid "(to prevent spam abuse)" msgstr "(um SPAM zu vermeiden)" -#: ../../mod/settings.php:797 +#: ../../mod/settings.php:810 msgid "Default Post Permissions" msgstr "Standard-Zugriffsrechte für Beiträge" -#: ../../mod/settings.php:798 +#: ../../mod/settings.php:811 msgid "(click to open/close)" msgstr "(klicke zum öffnen/schließen)" -#: ../../mod/settings.php:813 +#: ../../mod/settings.php:826 msgid "Notification Settings" msgstr "Benachrichtigungseinstellungen" -#: ../../mod/settings.php:814 +#: ../../mod/settings.php:827 msgid "Send a notification email when:" msgstr "Benachrichtigungs-E-Mail senden wenn:" -#: ../../mod/settings.php:815 +#: ../../mod/settings.php:828 msgid "You receive an introduction" msgstr "Du eine Kontaktanfrage erhältst" -#: ../../mod/settings.php:816 +#: ../../mod/settings.php:829 msgid "Your introductions are confirmed" msgstr "Eine deiner Kontaktanfragen akzeptiert wurde" -#: ../../mod/settings.php:817 +#: ../../mod/settings.php:830 msgid "Someone writes on your profile wall" msgstr "Jemand etwas auf deine Pinnwand schreibt" -#: ../../mod/settings.php:818 +#: ../../mod/settings.php:831 msgid "Someone writes a followup comment" msgstr "Jemand auch einen Kommentar verfasst" -#: ../../mod/settings.php:819 +#: ../../mod/settings.php:832 msgid "You receive a private message" msgstr "Du eine private Nachricht erhältst" -#: ../../mod/settings.php:820 +#: ../../mod/settings.php:833 msgid "You receive a friend suggestion" msgstr "Du eine Empfehlung erhältst" -#: ../../mod/settings.php:821 +#: ../../mod/settings.php:834 msgid "You are tagged in a post" msgstr "Du wurdest in einem Beitrag erwähnt" -#: ../../mod/settings.php:824 +#: ../../mod/settings.php:837 msgid "Advanced Page Settings" msgstr "Erweiterte Seiten-Einstellungen" @@ -2098,31 +2134,31 @@ msgstr[1] "Warnung: Diese Gruppe beinhaltet %s Personen aus unsicheren Netzwerke msgid "Private messages to this group are at risk of public disclosure." msgstr "Private Nachrichten an diese Gruppe könnten an die Öffentlichkeit geraten." -#: ../../mod/network.php:304 +#: ../../mod/network.php:300 msgid "No such group" msgstr "Es gibt keine solche Gruppe" -#: ../../mod/network.php:315 +#: ../../mod/network.php:311 msgid "Group is empty" msgstr "Gruppe ist leer" -#: ../../mod/network.php:319 +#: ../../mod/network.php:315 msgid "Group: " msgstr "Gruppe: " -#: ../../mod/network.php:329 +#: ../../mod/network.php:325 msgid "Contact: " msgstr "Kontakt: " -#: ../../mod/network.php:331 +#: ../../mod/network.php:327 msgid "Private messages to this person are at risk of public disclosure." msgstr "Private Nachrichten an diese Person könnten an die Öffentlichkeit gelangen." -#: ../../mod/network.php:336 +#: ../../mod/network.php:332 msgid "Invalid contact." msgstr "Ungültiger Kontakt." -#: ../../mod/notes.php:44 ../../boot.php:1350 +#: ../../mod/notes.php:44 ../../boot.php:1354 msgid "Personal Notes" msgstr "Persönliche Notizen" @@ -2141,14 +2177,17 @@ msgstr "Checkliste für neue Mitglieder" #: ../../mod/newmember.php:12 msgid "" "We would like to offer some tips and links to help make your experience " -"enjoyable. Click any item to visit the relevant page." -msgstr "Wir möchten dir einige Tipps und Links anbieten, um deine Erfahrung mit Friendica so angenehm wie möglich zu machen. Klicke einfach einen Aspekt an, um weitere Informationen zu erhalten." +"enjoyable. Click any item to visit the relevant page. A link to this page " +"will be visible from your home page for two weeks after your initial " +"registration and then will quietly disappear." +msgstr "Wir möchten Dir einige Tipps und Links anbieten, die Dir helfen könnten, den Einstieg angenehmer zu machen. Klicke auf ein Element, um die entsprechende Seite zu besuchen. Ein Link zu dieser Seite hier bleibt sichtbar über Deine Pinnwand für zwei Wochen nach dem Registrierungsdatum und wird dann verschwinden." #: ../../mod/newmember.php:16 msgid "" "On your Settings page - change your initial password. Also make a " -"note of your Identity Address. This will be useful in making friends." -msgstr "Ändere dein anfängliches Passwort auf der Einstellungen Seite. Bei dieser Gelegenheit solltest du dir die Adresse deines Profils merken, diese wird benötigt um mit Anderen in Kontakt zu treten." +"note of your Identity Address. This looks just like an email address - and " +"will be useful in making friends on the free social web." +msgstr "Ändere bitte unter Einstellungen Dein Passwort. Außerdem merke Dir Deine Indentifikations Adresse. Diese sieht aus wie eine E-Mail Adresse und wird benötig um Freunschaften mit anderen im Friendica Netzwerk zu schliessen." #: ../../mod/newmember.php:18 msgid "" @@ -2171,49 +2210,64 @@ msgid "" "and we will (optionally) import all your Facebook friends and conversations." msgstr "Richte die Verbindung zu Facebook ein, wenn du im Augenblick ein Facebook Konto hast und (optional) deine Facebook Freunde und Unterhaltungen importieren willst." -#: ../../mod/newmember.php:28 +#: ../../mod/newmember.php:25 +msgid "" +"If this is your own personal server, installing the Facebook addon " +"may ease your transition to the free social web." +msgstr "Wenn dies dein privater Server ist könnte die Installation des Facebook Connectors deinen Umzug ins freie Soziale Netz angenehmer gestalten." + +#: ../../mod/newmember.php:30 msgid "" "Enter your email access information on your Connector Settings page if you " "wish to import and interact with friends or mailing lists from your email " "INBOX" msgstr "Gib deine E-Mail-Zugangsinformationen auf der Connector-Einstellungsseite ein, falls du E-Mails aus deinem Posteingang importieren und mit Freunden und Mailinglisten interagieren willlst." -#: ../../mod/newmember.php:30 +#: ../../mod/newmember.php:32 msgid "" "Edit your default profile to your liking. Review the " "settings for hiding your list of friends and hiding the profile from unknown" " visitors." msgstr "Editiere dein Standard Profil nach deinen Vorlieben. Ãœberprüfe die Einstellungen zum Verbergen deiner Freundesliste vor unbekannten Betrachtern des Profils." -#: ../../mod/newmember.php:32 +#: ../../mod/newmember.php:34 msgid "" "Set some public keywords for your default profile which describe your " "interests. We may be able to find other people with similar interests and " "suggest friendships." msgstr "Trage ein paar öffentliche Stichwörter in dein Standardprofil ein, die deine Interessen beschreiben. Eventuell sind wir in der Lage Leute zu finden, die deine Interessen teilen und können dir dann Kontakte vorschlagen." -#: ../../mod/newmember.php:34 +#: ../../mod/newmember.php:36 msgid "" "Your Contacts page is your gateway to managing friendships and connecting " "with friends on other networks. Typically you enter their address or site " "URL in the Add New Contact dialog." msgstr "Die Kontakte-Seite ist die Einstiegsseite, von der aus du Kontakte verwalten und dich mit Freunden in anderen Netzwerken verbinden kannst. Normalerweise gibst du dazu einfach ihre Adresse oder die URL der Seite im Kasten Neuen Kontakt hinzufügen ein." -#: ../../mod/newmember.php:36 +#: ../../mod/newmember.php:38 msgid "" "The Directory page lets you find other people in this network or other " "federated sites. Look for a Connect or Follow link on " "their profile page. Provide your own Identity Address if requested." msgstr "Ãœber die Verzeichnisseite kannst du andere Personen auf diesem Server oder anderen verteilten Seiten finden. Halte nach einem Verbinden oder Folgen Link auf deren Profilseiten Ausschau und gib deine eigene Profiladresse an falls du danach gefragt wirst." -#: ../../mod/newmember.php:38 +#: ../../mod/newmember.php:40 +msgid "" +"On the side panel of the Contacts page are several tools to find new " +"friends. We can match people by interest, look up people by name or " +"interest, and provide suggestions based on network relationships. On a brand" +" new site, friend suggestions will usually begin to be populated within 24 " +"hours." +msgstr "Im Seitenpanel auf der Kontakte-Seite findest du einige Werkzeuge um neue Freunde zu finden. Du kannst deine Interessen mit denen anderer Nutzer abgleichen lassen oder nach Namen und Interessen suchen. Außerdem kannst du Nach Personen aufgrund der Netzwerkbeziehungen suchen lassen. Auf einem neuen Server werden Kontaktvorschläge normalerweise innerhalb von 24 Stunden gefüllt." + +#: ../../mod/newmember.php:42 msgid "" "Once you have made some friends, organize them into private conversation " "groups from the sidebar of your Contacts page and then you can interact with" " each group privately on your Network page." msgstr "Sobald du einige Freunde gefunden hast, organisiere sie in Gruppen zur privaten Kommunikation im Seitenmenü der Kontakte-Seite. Du kannst dann mit jeder dieser Gruppen von der Netzwerkseite aus privat interagieren." -#: ../../mod/newmember.php:40 +#: ../../mod/newmember.php:44 msgid "" "Our help pages may be consulted for detail on other program" " features and resources." @@ -2275,10 +2329,6 @@ msgstr "Gruppeneditor" msgid "Members" msgstr "Mitglieder" -#: ../../mod/group.php:194 -msgid "All Contacts" -msgstr "Alle Kontakte" - #: ../../mod/profperm.php:25 ../../mod/profperm.php:55 msgid "Invalid profile identifier." msgstr "Ungültiger Profil-Bezeichner" @@ -2289,7 +2339,7 @@ msgstr "Editor für die Profil-Sichtbarkeit" #: ../../mod/profperm.php:103 ../../include/profile_advanced.php:7 #: ../../include/profile_advanced.php:76 ../../include/nav.php:48 -#: ../../boot.php:1332 +#: ../../boot.php:1336 msgid "Profile" msgstr "Profil" @@ -2301,14 +2351,14 @@ msgstr "Sichtbar für" msgid "All Contacts (with secure profile access)" msgstr "Alle Kontakte (mit gesichertem Profilzugriff)" -#: ../../mod/viewcontacts.php:25 ../../include/text.php:578 -msgid "View Contacts" -msgstr "Kontakte anzeigen" - -#: ../../mod/viewcontacts.php:40 +#: ../../mod/viewcontacts.php:39 msgid "No contacts." msgstr "Keine Kontakte." +#: ../../mod/viewcontacts.php:73 ../../include/text.php:578 +msgid "View Contacts" +msgstr "Kontakte anzeigen" + #: ../../mod/register.php:62 msgid "An invitation is required." msgstr "Du benötigst eine Einladung." @@ -2432,7 +2482,7 @@ msgstr "Mitgliedschaft auf dieser Seite ist nur nach vorheriger Einladung mögli msgid "Your invitation ID: " msgstr "ID deiner Einladung: " -#: ../../mod/register.php:540 ../../mod/admin.php:297 +#: ../../mod/register.php:540 ../../mod/admin.php:313 msgid "Registration" msgstr "Registrierung" @@ -2455,7 +2505,7 @@ msgstr "Wähle einen Spitznamen für dein Profil. Dieser muss mit einem Buchstab msgid "Choose a nickname: " msgstr "Spitznamen wählen: " -#: ../../mod/register.php:554 ../../include/nav.php:77 ../../boot.php:689 +#: ../../mod/register.php:554 ../../include/nav.php:77 ../../boot.php:693 msgid "Register" msgstr "Registrieren" @@ -2464,30 +2514,31 @@ msgid "People Search" msgstr "Personen Suche" #: ../../mod/like.php:127 ../../mod/tagger.php:70 -#: ../../addon/facebook/facebook.php:1091 +#: ../../addon/facebook/facebook.php:1092 #: ../../addon/communityhome/communityhome.php:158 #: ../../addon/communityhome/communityhome.php:167 -#: ../../include/diaspora.php:1587 ../../include/conversation.php:26 -#: ../../include/conversation.php:35 ../../include/conversation.php:99 -#: ../../include/conversation.php:108 +#: ../../include/diaspora.php:1600 ../../include/conversation.php:48 +#: ../../include/conversation.php:57 ../../include/conversation.php:121 +#: ../../include/conversation.php:130 msgid "status" msgstr "Status" -#: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1095 +#: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1096 #: ../../addon/communityhome/communityhome.php:172 -#: ../../include/diaspora.php:1603 ../../include/conversation.php:43 +#: ../../include/diaspora.php:1616 ../../include/conversation.php:65 #, php-format msgid "%1$s likes %2$s's %3$s" msgstr "%1$s mag %2$ss %3$s" -#: ../../mod/like.php:146 ../../include/conversation.php:46 +#: ../../mod/like.php:146 ../../include/conversation.php:68 #, php-format msgid "%1$s doesn't like %2$s's %3$s" msgstr "%1$s mag %2$ss %3$s nicht" -#: ../../mod/notice.php:15 ../../mod/viewsrc.php:15 ../../mod/admin.php:111 -#: ../../mod/admin.php:502 ../../mod/display.php:28 ../../mod/display.php:116 -#: ../../mod/viewd.php:14 ../../include/items.php:2819 +#: ../../mod/notice.php:15 ../../mod/viewsrc.php:15 ../../mod/admin.php:127 +#: ../../mod/admin.php:518 ../../mod/admin.php:694 ../../mod/display.php:29 +#: ../../mod/display.php:134 ../../mod/viewd.php:14 +#: ../../include/items.php:2880 msgid "Item not found." msgstr "Beitrag nicht gefunden." @@ -2508,43 +2559,43 @@ msgstr "Registrierung für %s wurde zurückgezogen" msgid "Please login." msgstr "Bitte melde dich an." -#: ../../mod/item.php:88 +#: ../../mod/item.php:89 msgid "Unable to locate original post." msgstr "Konnte den Originalbeitrag nicht finden." -#: ../../mod/item.php:248 +#: ../../mod/item.php:249 msgid "Empty post discarded." msgstr "Leerer Beitrag wurde verworfen." -#: ../../mod/item.php:350 ../../mod/wall_upload.php:81 +#: ../../mod/item.php:351 ../../mod/wall_upload.php:81 #: ../../mod/wall_upload.php:90 ../../mod/wall_upload.php:97 #: ../../include/message.php:143 msgid "Wall Photos" msgstr "Pinnwand-Bilder" -#: ../../mod/item.php:827 +#: ../../mod/item.php:830 msgid "System error. Post not saved." msgstr "Systemfehler. Beitrag konnte nicht gespeichert werden." -#: ../../mod/item.php:852 +#: ../../mod/item.php:855 #, php-format msgid "" "This message was sent to you by %s, a member of the Friendica social " "network." msgstr "Diese Nachricht wurde dir von %s geschickt, einem Mitglied des Sozialen Netzwerks Friendica." -#: ../../mod/item.php:854 +#: ../../mod/item.php:857 #, php-format msgid "You may visit them online at %s" msgstr "Du kannst sie online unter %s besuchen" -#: ../../mod/item.php:855 +#: ../../mod/item.php:858 msgid "" "Please contact the sender by replying to this post if you do not wish to " "receive these messages." msgstr "Falls du diese Beiträge nicht erhalten möchtest, kontaktiere bitte den Autor, indem du auf diese Nachricht antwortest." -#: ../../mod/item.php:857 +#: ../../mod/item.php:860 #, php-format msgid "%s posted an update." msgstr "%s hat ein Update veröffentlicht." @@ -2668,7 +2719,7 @@ msgstr "Nachricht gelöscht." msgid "Conversation removed." msgstr "Unterhaltung gelöscht." -#: ../../mod/message.php:137 ../../include/conversation.php:843 +#: ../../mod/message.php:137 ../../include/conversation.php:868 msgid "Please enter a link URL:" msgstr "Bitte gib die URL des Links ein:" @@ -2722,348 +2773,357 @@ msgstr "Freunde von %s" msgid "No friends to display." msgstr "Keine Freunde zum Anzeigen." -#: ../../mod/admin.php:59 ../../mod/admin.php:295 +#: ../../mod/admin.php:71 ../../mod/admin.php:311 msgid "Site" msgstr "Seite" -#: ../../mod/admin.php:60 ../../mod/admin.php:460 ../../mod/admin.php:472 +#: ../../mod/admin.php:72 ../../mod/admin.php:476 ../../mod/admin.php:488 msgid "Users" msgstr "Nutzer" -#: ../../mod/admin.php:61 ../../mod/admin.php:549 ../../mod/admin.php:586 +#: ../../mod/admin.php:73 ../../mod/admin.php:565 ../../mod/admin.php:602 msgid "Plugins" msgstr "Plugins" -#: ../../mod/admin.php:76 ../../mod/admin.php:651 +#: ../../mod/admin.php:74 ../../mod/admin.php:736 ../../mod/admin.php:768 +msgid "Themes" +msgstr "Themen" + +#: ../../mod/admin.php:89 ../../mod/admin.php:846 msgid "Logs" msgstr "Protokolle" -#: ../../mod/admin.php:81 +#: ../../mod/admin.php:94 msgid "User registrations waiting for confirmation" msgstr "Nutzeranmeldungen die auf Bestätigung warten" -#: ../../mod/admin.php:144 ../../mod/admin.php:294 ../../mod/admin.php:459 -#: ../../mod/admin.php:548 ../../mod/admin.php:585 ../../mod/admin.php:650 +#: ../../mod/admin.php:160 ../../mod/admin.php:310 ../../mod/admin.php:475 +#: ../../mod/admin.php:564 ../../mod/admin.php:601 ../../mod/admin.php:735 +#: ../../mod/admin.php:767 ../../mod/admin.php:845 msgid "Administration" msgstr "Administration" -#: ../../mod/admin.php:145 +#: ../../mod/admin.php:161 msgid "Summary" msgstr "Zusammenfassung" -#: ../../mod/admin.php:146 +#: ../../mod/admin.php:162 msgid "Registered users" msgstr "Registrierte Nutzer" -#: ../../mod/admin.php:148 +#: ../../mod/admin.php:164 msgid "Pending registrations" msgstr "Anstehende Anmeldungen" -#: ../../mod/admin.php:149 +#: ../../mod/admin.php:165 msgid "Version" msgstr "Version" -#: ../../mod/admin.php:151 +#: ../../mod/admin.php:167 msgid "Active plugins" msgstr "Aktive Plugins" -#: ../../mod/admin.php:243 +#: ../../mod/admin.php:259 msgid "Site settings updated." msgstr "Seiteneinstellungen aktualisiert." -#: ../../mod/admin.php:287 +#: ../../mod/admin.php:303 msgid "Closed" msgstr "Geschlossen" -#: ../../mod/admin.php:288 +#: ../../mod/admin.php:304 msgid "Requires approval" msgstr "Bedarf Zustimmung" -#: ../../mod/admin.php:289 +#: ../../mod/admin.php:305 msgid "Open" msgstr "Offen" -#: ../../mod/admin.php:298 +#: ../../mod/admin.php:314 msgid "File upload" msgstr "Datei hochladen" -#: ../../mod/admin.php:299 +#: ../../mod/admin.php:315 msgid "Policies" msgstr "Regeln" -#: ../../mod/admin.php:300 +#: ../../mod/admin.php:316 msgid "Advanced" msgstr "Erweitert" -#: ../../mod/admin.php:304 ../../addon/statusnet/statusnet.php:486 +#: ../../mod/admin.php:320 ../../addon/statusnet/statusnet.php:523 msgid "Site name" msgstr "Seitenname" -#: ../../mod/admin.php:305 +#: ../../mod/admin.php:321 msgid "Banner/Logo" msgstr "Banner/Logo" -#: ../../mod/admin.php:306 +#: ../../mod/admin.php:322 msgid "System language" msgstr "Systemsprache" -#: ../../mod/admin.php:307 +#: ../../mod/admin.php:323 msgid "System theme" msgstr "Systemweites Thema" -#: ../../mod/admin.php:309 +#: ../../mod/admin.php:325 msgid "Maximum image size" msgstr "Maximale Größe von Bildern" -#: ../../mod/admin.php:311 +#: ../../mod/admin.php:327 msgid "Register policy" msgstr "Registrierungsmethode" -#: ../../mod/admin.php:312 +#: ../../mod/admin.php:328 msgid "Register text" msgstr "Registrierungstext" -#: ../../mod/admin.php:313 +#: ../../mod/admin.php:329 msgid "Accounts abandoned after x days" msgstr "Accounts gelten nach x Tagen als unbenutzt" -#: ../../mod/admin.php:313 +#: ../../mod/admin.php:329 msgid "" "Will not waste system resources polling external sites for abandonded " "accounts. Enter 0 for no time limit." msgstr "Verschwende keine System-Ressourcen fürs Pollen externer Seiten, wenn Accounts nicht mehr benutzt werden. 0 eingeben für kein Limit." -#: ../../mod/admin.php:314 +#: ../../mod/admin.php:330 msgid "Allowed friend domains" msgstr "Erlaubte Domains für Kontakte" -#: ../../mod/admin.php:315 +#: ../../mod/admin.php:331 msgid "Allowed email domains" msgstr "Erlaubte Domains für Emails" -#: ../../mod/admin.php:316 +#: ../../mod/admin.php:332 msgid "Block public" msgstr "Öffentlichen Zugriff blockieren" -#: ../../mod/admin.php:317 +#: ../../mod/admin.php:333 msgid "Force publish" msgstr "Erzwinge Veröffentlichung" -#: ../../mod/admin.php:318 +#: ../../mod/admin.php:334 msgid "Global directory update URL" msgstr "URL für Updates beim weltweiten Verzeichnis" -#: ../../mod/admin.php:320 +#: ../../mod/admin.php:336 msgid "Block multiple registrations" msgstr "Unterbinde Mehrfachregistrierung" -#: ../../mod/admin.php:321 +#: ../../mod/admin.php:337 msgid "OpenID support" msgstr "OpenID Unterstützung" -#: ../../mod/admin.php:322 +#: ../../mod/admin.php:338 msgid "Gravatar support" msgstr "Gravatar Unterstützung" -#: ../../mod/admin.php:323 +#: ../../mod/admin.php:339 msgid "Fullname check" msgstr "Name auf Vollständigkeit überprüfen" -#: ../../mod/admin.php:324 +#: ../../mod/admin.php:340 msgid "UTF-8 Regular expressions" msgstr "UTF-8 Reguläre Ausdrücke" -#: ../../mod/admin.php:325 +#: ../../mod/admin.php:341 msgid "Show Community Page" msgstr "Gemeinschaftsseite anzeigen" -#: ../../mod/admin.php:326 +#: ../../mod/admin.php:342 msgid "Enable OStatus support" msgstr "OStatus Unterstützung aktivieren" -#: ../../mod/admin.php:327 +#: ../../mod/admin.php:343 msgid "Enable Diaspora support" msgstr "Diaspora-Support aktivieren" -#: ../../mod/admin.php:328 +#: ../../mod/admin.php:344 msgid "Only allow Friendica contacts" msgstr "Nur Friendica-Kontakte erlauben" -#: ../../mod/admin.php:329 +#: ../../mod/admin.php:345 msgid "Verify SSL" msgstr "SSL Ãœberprüfen" -#: ../../mod/admin.php:330 +#: ../../mod/admin.php:346 msgid "Proxy user" msgstr "Proxy Nutzer" -#: ../../mod/admin.php:331 +#: ../../mod/admin.php:347 msgid "Proxy URL" msgstr "Proxy URL" -#: ../../mod/admin.php:332 +#: ../../mod/admin.php:348 msgid "Network timeout" msgstr "Netzwerk Wartezeit" -#: ../../mod/admin.php:353 +#: ../../mod/admin.php:369 #, php-format msgid "%s user blocked" msgid_plural "%s users blocked/unblocked" msgstr[0] "%s Nutzer gesperrt" msgstr[1] "%s Nutzer gesperrt/entsperrt" -#: ../../mod/admin.php:360 +#: ../../mod/admin.php:376 #, php-format msgid "%s user deleted" msgid_plural "%s users deleted" msgstr[0] "%s Nutzer gelöscht" msgstr[1] "%s Nutzer gelöscht" -#: ../../mod/admin.php:394 +#: ../../mod/admin.php:410 #, php-format msgid "User '%s' deleted" msgstr "Nutzer '%s' gelöscht" -#: ../../mod/admin.php:401 +#: ../../mod/admin.php:417 #, php-format msgid "User '%s' unblocked" msgstr "Nutzer '%s' entsperrt" -#: ../../mod/admin.php:401 +#: ../../mod/admin.php:417 #, php-format msgid "User '%s' blocked" msgstr "Nutzer '%s' gesperrt" -#: ../../mod/admin.php:462 +#: ../../mod/admin.php:478 msgid "select all" msgstr "Alle auswählen" -#: ../../mod/admin.php:463 +#: ../../mod/admin.php:479 msgid "User registrations waiting for confirm" msgstr "Neuanmeldungen, die auf deine Bestätigung warten" -#: ../../mod/admin.php:464 +#: ../../mod/admin.php:480 msgid "Request date" msgstr "Anfrage Datum" -#: ../../mod/admin.php:464 ../../mod/admin.php:473 +#: ../../mod/admin.php:480 ../../mod/admin.php:489 #: ../../include/contact_selectors.php:79 msgid "Email" msgstr "Email" -#: ../../mod/admin.php:465 +#: ../../mod/admin.php:481 msgid "No registrations." msgstr "Keine Neuanmeldungen." -#: ../../mod/admin.php:467 +#: ../../mod/admin.php:483 msgid "Deny" msgstr "Verwehren" -#: ../../mod/admin.php:473 +#: ../../mod/admin.php:489 msgid "Register date" msgstr "Anmeldedatum" -#: ../../mod/admin.php:473 +#: ../../mod/admin.php:489 msgid "Last login" msgstr "Letzte Anmeldung" -#: ../../mod/admin.php:473 +#: ../../mod/admin.php:489 msgid "Last item" msgstr "Letzter Beitrag" -#: ../../mod/admin.php:473 +#: ../../mod/admin.php:489 msgid "Account" msgstr "Nutzerkonto" -#: ../../mod/admin.php:475 +#: ../../mod/admin.php:491 msgid "" "Selected users will be deleted!\\n\\nEverything these users had posted on " "this site will be permanently deleted!\\n\\nAre you sure?" msgstr "Die markierten Nutzer werden gelöscht!\\n\\nAlle Beiträge, die diese Nutzer auf dieser Seite veröffentlicht haben, werden permanent gelöscht!\\n\\nBist du sicher?" -#: ../../mod/admin.php:476 +#: ../../mod/admin.php:492 msgid "" "The user {0} will be deleted!\\n\\nEverything this user has posted on this " "site will be permanently deleted!\\n\\nAre you sure?" msgstr "Der Nutzer {0} wird gelöscht!\\n\\nAlles was dieser Nutzer auf dieser Seite veröffentlicht hat, wird permanent gelöscht!\\n\\nBist du sicher?" -#: ../../mod/admin.php:512 +#: ../../mod/admin.php:528 #, php-format msgid "Plugin %s disabled." msgstr "Plugin %s deaktiviert." -#: ../../mod/admin.php:516 +#: ../../mod/admin.php:532 #, php-format msgid "Plugin %s enabled." msgstr "Plugin %s aktiviert." -#: ../../mod/admin.php:526 +#: ../../mod/admin.php:542 ../../mod/admin.php:718 msgid "Disable" msgstr "Ausschalten" -#: ../../mod/admin.php:528 +#: ../../mod/admin.php:544 ../../mod/admin.php:720 msgid "Enable" msgstr "Einschalten" -#: ../../mod/admin.php:550 +#: ../../mod/admin.php:566 ../../mod/admin.php:737 msgid "Toggle" msgstr "Umschalten" -#: ../../mod/admin.php:551 ../../include/nav.php:129 +#: ../../mod/admin.php:567 ../../mod/admin.php:738 ../../include/nav.php:130 msgid "Settings" msgstr "Einstellungen" -#: ../../mod/admin.php:613 +#: ../../mod/admin.php:683 +msgid "No themes found." +msgstr "Keine Themen gefunden." + +#: ../../mod/admin.php:795 msgid "Log settings updated." msgstr "Protokolleinstellungen aktualisiert." -#: ../../mod/admin.php:653 +#: ../../mod/admin.php:848 msgid "Clear" msgstr "löschen" -#: ../../mod/admin.php:659 +#: ../../mod/admin.php:854 msgid "Debugging" msgstr "Protokoll führen" -#: ../../mod/admin.php:660 +#: ../../mod/admin.php:855 msgid "Log file" msgstr "Protokolldatei" -#: ../../mod/admin.php:660 +#: ../../mod/admin.php:855 msgid "" "Must be writable by web server. Relative to your Friendica top-level " "directory." msgstr "Webserver muss Schreibrechte besitzen. Relativ zum Friendica-Installationsverzeichnis." -#: ../../mod/admin.php:661 +#: ../../mod/admin.php:856 msgid "Log level" msgstr "Protokollevel" -#: ../../mod/admin.php:702 +#: ../../mod/admin.php:897 msgid "Close" msgstr "Schließen" -#: ../../mod/admin.php:708 +#: ../../mod/admin.php:903 msgid "FTP Host" msgstr "FTP Host" -#: ../../mod/admin.php:709 +#: ../../mod/admin.php:904 msgid "FTP Path" msgstr "FTP Pfad" -#: ../../mod/admin.php:710 +#: ../../mod/admin.php:905 msgid "FTP User" msgstr "FTP Nutzername" -#: ../../mod/admin.php:711 +#: ../../mod/admin.php:906 msgid "FTP Password" msgstr "FTP Passwort" -#: ../../mod/profile.php:15 ../../boot.php:841 +#: ../../mod/profile.php:15 ../../boot.php:845 msgid "Requested profile is not available." msgstr "Profil nicht vorhanden." -#: ../../mod/profile.php:111 ../../mod/display.php:66 +#: ../../mod/profile.php:111 ../../mod/display.php:67 msgid "Access to this profile has been restricted." msgstr "Der Zugriff zu diesem Profil wurde eingeschränkt." @@ -3071,48 +3131,48 @@ msgstr "Der Zugriff zu diesem Profil wurde eingeschränkt." msgid "Tips for New Members" msgstr "Tipps für neue Nutzer" -#: ../../mod/ping.php:148 +#: ../../mod/ping.php:146 msgid "{0} wants to be your friend" msgstr "{0} möchte mit dir in Kontakt treten" -#: ../../mod/ping.php:153 +#: ../../mod/ping.php:151 msgid "{0} sent you a message" msgstr "{0} hat dir eine Nachricht geschickt" -#: ../../mod/ping.php:158 +#: ../../mod/ping.php:156 msgid "{0} requested registration" msgstr "{0} möchte sich registrieren" -#: ../../mod/ping.php:164 +#: ../../mod/ping.php:162 #, php-format msgid "{0} commented %s's post" msgstr "{0} kommentierte einen Beitrag von %s" -#: ../../mod/ping.php:169 +#: ../../mod/ping.php:167 #, php-format msgid "{0} liked %s's post" msgstr "{0} mag %ss Beitrag" -#: ../../mod/ping.php:174 +#: ../../mod/ping.php:172 #, php-format msgid "{0} disliked %s's post" msgstr "{0} mag %ss Beitrag nicht" -#: ../../mod/ping.php:179 +#: ../../mod/ping.php:177 #, php-format msgid "{0} is now friends with %s" msgstr "{0} ist jetzt mit %s befreundet" -#: ../../mod/ping.php:184 +#: ../../mod/ping.php:182 msgid "{0} posted" msgstr "{0} hat etwas veröffentlicht" -#: ../../mod/ping.php:189 +#: ../../mod/ping.php:187 #, php-format msgid "{0} tagged %s's post with #%s" msgstr "{0} hat %ss Beitrag mit dem Schlagwort #%s versehen" -#: ../../mod/ping.php:195 +#: ../../mod/ping.php:193 msgid "{0} mentioned you in a post" msgstr "{0} hat dich in einem Beitrag erwähnt" @@ -3130,39 +3190,39 @@ msgid "" "This site is not configured to allow communications with other networks." msgstr "Diese Seite ist so konfiguriert, dass keine Kommunikation mit anderen Netzwerken erfolgen kann." -#: ../../mod/follow.php:48 ../../mod/follow.php:58 +#: ../../mod/follow.php:48 ../../mod/follow.php:63 msgid "No compatible communication protocols or feeds were discovered." msgstr "Es wurden keine kompatiblen Kommunikationsprotokolle oder Feeds gefunden." -#: ../../mod/follow.php:56 +#: ../../mod/follow.php:61 msgid "The profile address specified does not provide adequate information." msgstr "Die angegebene Profiladresse liefert unzureichende Informationen." -#: ../../mod/follow.php:60 +#: ../../mod/follow.php:65 msgid "An author or name was not found." msgstr "Es wurde kein Autor oder Name gefunden." -#: ../../mod/follow.php:62 +#: ../../mod/follow.php:67 msgid "No browser URL could be matched to this address." msgstr "Zu dieser Adresse konnte keine passende Browser URL gefunden werden." -#: ../../mod/follow.php:69 +#: ../../mod/follow.php:74 msgid "" "The profile address specified belongs to a network which has been disabled " "on this site." msgstr "Die Adresse dieses Profils gehört zu einem Netzwerk mit dem die Kommunikation auf dieser Seite ausgeschaltet wurde." -#: ../../mod/follow.php:74 +#: ../../mod/follow.php:79 msgid "" "Limited profile. This person will be unable to receive direct/personal " "notifications from you." msgstr "Eingeschränktes Profil. Diese Person wird keine direkten/privaten Nachrichten von dir erhalten können." -#: ../../mod/follow.php:144 +#: ../../mod/follow.php:149 msgid "Unable to retrieve contact information." msgstr "Konnte die Kontaktinformationen nicht empfangen." -#: ../../mod/follow.php:190 +#: ../../mod/follow.php:195 msgid "following" msgstr "folgen" @@ -3174,7 +3234,7 @@ msgstr "Gemeinsame Freunde" msgid "No friends in common." msgstr "Keine gemeinsamen Freunde." -#: ../../mod/display.php:109 +#: ../../mod/display.php:127 msgid "Item has been removed." msgstr "Eintrag wurde entfernt." @@ -3378,7 +3438,7 @@ msgid "" "be visible to anybody using the internet." msgstr "Dies ist dein öffentliches Profil.
    Es könnte für jeden Nutzer des Internets sichtbar sein." -#: ../../mod/profiles.php:426 ../../mod/directory.php:122 +#: ../../mod/profiles.php:426 ../../mod/directory.php:124 msgid "Age: " msgstr "Alter: " @@ -3386,27 +3446,27 @@ msgstr "Alter: " msgid "Edit/Manage Profiles" msgstr "Verwalte/Editiere Profile" -#: ../../mod/profiles.php:462 ../../boot.php:942 +#: ../../mod/profiles.php:462 ../../boot.php:946 msgid "Change profile photo" msgstr "Profilbild ändern" -#: ../../mod/profiles.php:463 ../../boot.php:943 +#: ../../mod/profiles.php:463 ../../boot.php:947 msgid "Create New Profile" msgstr "Neues Profil anlegen" -#: ../../mod/profiles.php:473 ../../boot.php:953 +#: ../../mod/profiles.php:473 ../../boot.php:957 msgid "Profile Image" msgstr "Profilbild" -#: ../../mod/profiles.php:475 ../../boot.php:956 +#: ../../mod/profiles.php:475 ../../boot.php:960 msgid "visible to everybody" msgstr "sichtbar für jeden" -#: ../../mod/profiles.php:476 ../../boot.php:957 +#: ../../mod/profiles.php:476 ../../boot.php:961 msgid "Edit visibility" msgstr "Sichtbarkeit bearbeiten" -#: ../../mod/tagger.php:103 ../../include/conversation.php:116 +#: ../../mod/tagger.php:103 ../../include/conversation.php:138 #, php-format msgid "%1$s tagged %2$s's %3$s with %4$s" msgstr "%1$s hat %2$ss %3$s mit %4$s getaggt" @@ -3460,31 +3520,31 @@ msgstr "Keine Vorschläge. Falls der Server frisch aufgesetzt wurde, versuche es msgid "Ignore/Hide" msgstr "Ignorieren/Verbergen" -#: ../../mod/directory.php:49 +#: ../../mod/directory.php:51 msgid "Global Directory" msgstr "Weltweites Verzeichnis" -#: ../../mod/directory.php:55 +#: ../../mod/directory.php:57 msgid "Normal site view" msgstr "Normale Seitenansicht" -#: ../../mod/directory.php:57 +#: ../../mod/directory.php:59 msgid "Admin - View all site entries" msgstr "Admin: Alle Einträge dieses Servers anzeigen" -#: ../../mod/directory.php:63 +#: ../../mod/directory.php:65 msgid "Find on this site" msgstr "Auf diesem Server suchen" -#: ../../mod/directory.php:66 +#: ../../mod/directory.php:68 msgid "Site Directory" msgstr "Verzeichnis" -#: ../../mod/directory.php:125 +#: ../../mod/directory.php:127 msgid "Gender: " msgstr "Geschlecht:" -#: ../../mod/directory.php:151 +#: ../../mod/directory.php:153 msgid "No entries (some entries may be hidden)." msgstr "Keine Einträge (einige Einträge könnten versteckt sein)." @@ -3570,7 +3630,7 @@ msgid "Unable to set contact photo." msgstr "Konnte das Bild des Kontakts nicht speichern." #: ../../mod/dfrn_confirm.php:473 ../../include/diaspora.php:495 -#: ../../include/conversation.php:79 +#: ../../include/conversation.php:101 #, php-format msgid "%1$s is now friends with %2$s" msgstr "%1$s ist nun mit %2$s befreundet" @@ -3616,71 +3676,71 @@ msgstr "Die Updates für dein Profil konnten nicht gespeichert werden" msgid "Connection accepted at %s" msgstr "Auf %s wurde die Verbindung akzeptiert" -#: ../../addon/facebook/facebook.php:337 +#: ../../addon/facebook/facebook.php:338 msgid "Facebook disabled" msgstr "Facebook deaktiviert" -#: ../../addon/facebook/facebook.php:342 +#: ../../addon/facebook/facebook.php:343 msgid "Updating contacts" msgstr "Aktualisiere Kontakte" -#: ../../addon/facebook/facebook.php:351 +#: ../../addon/facebook/facebook.php:352 msgid "Facebook API key is missing." msgstr "Facebook-API-Schlüssel nicht gefunden" -#: ../../addon/facebook/facebook.php:358 +#: ../../addon/facebook/facebook.php:359 msgid "Facebook Connect" msgstr "Mit Facebook verbinden" -#: ../../addon/facebook/facebook.php:364 +#: ../../addon/facebook/facebook.php:365 msgid "Install Facebook connector for this account." msgstr "Facebook-Connector für diesen Account installieren." -#: ../../addon/facebook/facebook.php:371 +#: ../../addon/facebook/facebook.php:372 msgid "Remove Facebook connector" msgstr "Facebook-Connector entfernen" -#: ../../addon/facebook/facebook.php:376 +#: ../../addon/facebook/facebook.php:377 msgid "" "Re-authenticate [This is necessary whenever your Facebook password is " "changed.]" msgstr "Neu authentifizieren [Das ist immer dann nötig, wenn Du Dein Facebook-Passwort geändert hast.]" -#: ../../addon/facebook/facebook.php:383 +#: ../../addon/facebook/facebook.php:384 msgid "Post to Facebook by default" msgstr "Veröffentliche standardmäßig bei Facebook" -#: ../../addon/facebook/facebook.php:387 +#: ../../addon/facebook/facebook.php:388 msgid "Link all your Facebook friends and conversations on this website" msgstr "All meine Facebook-Kontakte und -Konversationen hier auf diese Website importieren" -#: ../../addon/facebook/facebook.php:389 +#: ../../addon/facebook/facebook.php:390 msgid "" "Facebook conversations consist of your profile wall and your friend" " stream." msgstr "Facebook-Konversationen sind alles, was auf deiner Pinnwand erscheint, und die Beiträge deiner Freunde (Stream)." -#: ../../addon/facebook/facebook.php:390 +#: ../../addon/facebook/facebook.php:391 msgid "On this website, your Facebook friend stream is only visible to you." msgstr "Hier auf dieser Webseite kannst nur du die Beiträge Deiner Facebook-Freunde (Stream) sehen." -#: ../../addon/facebook/facebook.php:391 +#: ../../addon/facebook/facebook.php:392 msgid "" "The following settings determine the privacy of your Facebook profile wall " "on this website." msgstr "Mit den folgenden Einstellungen kannst Du die Privatsphäre der Kopie Deiner Facebook-Pinnwand hier auf dieser Seite einstellen." -#: ../../addon/facebook/facebook.php:395 +#: ../../addon/facebook/facebook.php:396 msgid "" "On this website your Facebook profile wall conversations will only be " "visible to you" msgstr "Meine Facebook-Pinnwand hier auf dieser Webseite nur für mich sichtbar machen" -#: ../../addon/facebook/facebook.php:400 +#: ../../addon/facebook/facebook.php:401 msgid "Do not import your Facebook profile wall conversations" msgstr "Facebook-Pinnwand nicht importieren" -#: ../../addon/facebook/facebook.php:402 +#: ../../addon/facebook/facebook.php:403 msgid "" "If you choose to link conversations and leave both of these boxes unchecked," " your Facebook profile wall will be merged with your profile wall on this " @@ -3688,43 +3748,43 @@ msgid "" "who may see the conversations." msgstr "Wenn Du Facebook-Konversationen importierst und diese beiden Häkchen nicht setzt, wird Deine Facebook-Pinnwand mit der Pinnwand hier auf dieser Webseite vereinigt. Die Privatsphäre-Einstellungen für Deine Pinnwand auf dieser Webseite geben dann an, wer die Konversationen sehen kann." -#: ../../addon/facebook/facebook.php:407 +#: ../../addon/facebook/facebook.php:408 msgid "Comma separated applications to ignore" msgstr "Komma separierte Liste von Anwendungen die ignoriert werden sollen" -#: ../../addon/facebook/facebook.php:475 +#: ../../addon/facebook/facebook.php:476 #: ../../include/contact_selectors.php:81 msgid "Facebook" msgstr "Facebook" -#: ../../addon/facebook/facebook.php:476 +#: ../../addon/facebook/facebook.php:477 msgid "Facebook Connector Settings" msgstr "Facebook-Verbindungseinstellungen" -#: ../../addon/facebook/facebook.php:490 +#: ../../addon/facebook/facebook.php:491 msgid "Post to Facebook" msgstr "Bei Facebook veröffentlichen" -#: ../../addon/facebook/facebook.php:581 +#: ../../addon/facebook/facebook.php:582 msgid "" "Post to Facebook cancelled because of multi-network access permission " "conflict." msgstr "Beitrag wurde nicht bei Facebook veröffentlicht, da Konflikte bei den Multi-Netzwerk-Zugriffsrechten vorliegen." -#: ../../addon/facebook/facebook.php:650 +#: ../../addon/facebook/facebook.php:651 msgid "Image: " msgstr "Bild: " -#: ../../addon/facebook/facebook.php:727 +#: ../../addon/facebook/facebook.php:728 msgid "View on Friendica" msgstr "In Friendica betrachten" -#: ../../addon/facebook/facebook.php:751 +#: ../../addon/facebook/facebook.php:752 msgid "Facebook post failed. Queued for retry." msgstr "Veröffentlichung bei Facebook gescheitert. Wir versuchen es später erneut." -#: ../../addon/facebook/facebook.php:876 ../../addon/facebook/facebook.php:885 -#: ../../include/bb2diaspora.php:113 +#: ../../addon/facebook/facebook.php:877 ../../addon/facebook/facebook.php:886 +#: ../../include/bb2diaspora.php:132 msgid "link" msgstr "Verweis" @@ -3809,7 +3869,7 @@ msgstr "%s – Zum Öffnen/Schließen klicken" #: ../../addon/communityhome/communityhome.php:28 #: ../../addon/communityhome/communityhome.php:34 ../../include/nav.php:62 -#: ../../boot.php:706 +#: ../../boot.php:710 msgid "Login" msgstr "Anmeldung" @@ -3834,7 +3894,7 @@ msgid "Last likes" msgstr "Zuletzt gemocht" #: ../../addon/communityhome/communityhome.php:155 -#: ../../include/conversation.php:23 ../../include/conversation.php:96 +#: ../../include/conversation.php:45 ../../include/conversation.php:118 msgid "event" msgstr "Veranstaltung" @@ -3990,19 +4050,19 @@ msgstr "Ziehe die Dateien hierher die du hochladen willst" msgid "Failed" msgstr "Fehlgeschlagen" -#: ../../addon/js_upload/js_upload.php:294 +#: ../../addon/js_upload/js_upload.php:297 msgid "No files were uploaded." msgstr "Keine Dateien hochgeladen." -#: ../../addon/js_upload/js_upload.php:300 +#: ../../addon/js_upload/js_upload.php:303 msgid "Uploaded file is empty" msgstr "Hochgeladene Datei ist leer" -#: ../../addon/js_upload/js_upload.php:323 +#: ../../addon/js_upload/js_upload.php:326 msgid "File has an invalid extension, it should be one of " msgstr "Die Dateierweiterung ist nicht erlaubt, sie muss eine der folgenden sein " -#: ../../addon/js_upload/js_upload.php:334 +#: ../../addon/js_upload/js_upload.php:337 msgid "Upload was cancelled, or server error encountered" msgstr "Upload abgebrochen oder Serverfehler aufgetreten" @@ -4086,6 +4146,48 @@ msgstr "Autor blockieren" msgid "blockem settings updated" msgstr "blockem Einstellungen aktualisiert" +#: ../../addon/qcomment/qcomment.php:51 +msgid ":-)" +msgstr ":-)" + +#: ../../addon/qcomment/qcomment.php:51 +msgid ":-(" +msgstr ":-(" + +#: ../../addon/qcomment/qcomment.php:51 +msgid "lol" +msgstr "lol" + +#: ../../addon/qcomment/qcomment.php:54 +msgid "Quick Comment Settings" +msgstr "Schnell-Kommentar Einstellungen" + +#: ../../addon/qcomment/qcomment.php:56 +msgid "Enter quick comments, one per line" +msgstr "Gibt ein Schnell-Kommentar pro Zeile ein" + +#: ../../addon/qcomment/qcomment.php:74 +msgid "Quick Comment settings saved." +msgstr "Schnell-Kommentare Einstellungen gespeichert" + +#: ../../addon/openstreetmap/openstreetmap.php:71 +msgid "Tile Server URL" +msgstr "Tile Server URL" + +#: ../../addon/openstreetmap/openstreetmap.php:71 +msgid "" +"A list of public tile servers" +msgstr "Eine Liste öffentlicher Tile Server" + +#: ../../addon/openstreetmap/openstreetmap.php:72 +msgid "Default zoom" +msgstr "Standard Zoom" + +#: ../../addon/openstreetmap/openstreetmap.php:72 +msgid "The default zoom level. (1:world, 18:highest)" +msgstr "Standard Zoo,level (1: Welt; 18: höchstes)" + #: ../../addon/editplain/editplain.php:46 msgid "Editplain settings updated." msgstr "Editplain Einstellungen aktualisiert" @@ -4110,44 +4212,44 @@ msgstr "pageheader-Einstellungen gespeichert." msgid "View Source" msgstr "Quelle ansehen" -#: ../../addon/statusnet/statusnet.php:140 +#: ../../addon/statusnet/statusnet.php:134 msgid "Post to StatusNet" msgstr "Bei StatusNet veröffentlichen" -#: ../../addon/statusnet/statusnet.php:182 +#: ../../addon/statusnet/statusnet.php:175 msgid "" "Please contact your site administrator.
    The provided API URL is not " "valid." msgstr "Bitte kontaktiere den Administrator des Servers.
    Die angegebene API-URL ist nicht gültig." -#: ../../addon/statusnet/statusnet.php:210 +#: ../../addon/statusnet/statusnet.php:203 msgid "We could not contact the StatusNet API with the Path you entered." msgstr "Die StatusNet-API konnte mit dem angegebenen Pfad nicht erreicht werden." -#: ../../addon/statusnet/statusnet.php:236 +#: ../../addon/statusnet/statusnet.php:229 msgid "StatusNet settings updated." msgstr "StatusNet Einstellungen aktualisiert." -#: ../../addon/statusnet/statusnet.php:259 +#: ../../addon/statusnet/statusnet.php:252 msgid "StatusNet Posting Settings" msgstr "StatusNet-Beitragseinstellungen" -#: ../../addon/statusnet/statusnet.php:273 +#: ../../addon/statusnet/statusnet.php:266 msgid "Globally Available StatusNet OAuthKeys" msgstr "Verfügbare OAuth Schlüssel für StatusNet" -#: ../../addon/statusnet/statusnet.php:274 +#: ../../addon/statusnet/statusnet.php:267 msgid "" "There are preconfigured OAuth key pairs for some StatusNet servers " "available. If you are useing one of them, please use these credentials. If " "not feel free to connect to any other StatusNet instance (see below)." msgstr "Für einige StatusNet Server sind OAuth Schlüsselpaare verfügbar. Solltest du einen dieser Server benutzen, dann verwende doch bitte diese Schlüssel. Falls nicht kannst du weiter unten deine eigenen OAuth Schlüssel eintragen." -#: ../../addon/statusnet/statusnet.php:282 +#: ../../addon/statusnet/statusnet.php:275 msgid "Provide your own OAuth Credentials" msgstr "Eigene OAuth Schlüssel eintragen" -#: ../../addon/statusnet/statusnet.php:283 +#: ../../addon/statusnet/statusnet.php:276 msgid "" "No consumer key pair for StatusNet found. Register your Friendica Account as" " an desktop client on your StatusNet account, copy the consumer key pair " @@ -4156,19 +4258,19 @@ msgid "" "Friendica installation at your favorited StatusNet installation." msgstr "Kein Consumer-Schlüsselpaar für StatusNet gefunden. Registriere deinen Friendica-Account als Desktop-Client, kopiere das Consumer-Schlüsselpaar hierher und gib die API-URL ein.
    Bevor du dein eigenes Consumer-Schlüsselpaar registrierst, frage den Administrator dieses Friendica-Servers, ob schon ein Schlüsselpaar für diesen Friendica-Server auf diesem StatusNet-Server existiert." -#: ../../addon/statusnet/statusnet.php:285 +#: ../../addon/statusnet/statusnet.php:278 msgid "OAuth Consumer Key" msgstr "OAuth Consumer Key" -#: ../../addon/statusnet/statusnet.php:288 +#: ../../addon/statusnet/statusnet.php:281 msgid "OAuth Consumer Secret" msgstr "OAuth Consumer Secret" -#: ../../addon/statusnet/statusnet.php:291 +#: ../../addon/statusnet/statusnet.php:284 msgid "Base API Path (remember the trailing /)" msgstr "Basis-URL der StatusNet-API (vergiss den abschließenden / nicht)" -#: ../../addon/statusnet/statusnet.php:312 +#: ../../addon/statusnet/statusnet.php:305 msgid "" "To connect to your StatusNet account click the button below to get a " "security code from StatusNet which you have to copy into the input box below" @@ -4176,50 +4278,58 @@ msgid "" " to StatusNet." msgstr "Um deinen Account mit einem StatusNet-Account zu verknüpfen, klicke den Button an, um einen Sicherheitscode von StatusNet zu erhalten, und kopiere diesen in das Eingabefeld weiter unten. Es werden ausschließlich deine öffentlichen Nachrichten an StatusNet gesendet." -#: ../../addon/statusnet/statusnet.php:313 +#: ../../addon/statusnet/statusnet.php:306 msgid "Log in with StatusNet" msgstr "Bei StatusNet anmelden" -#: ../../addon/statusnet/statusnet.php:315 +#: ../../addon/statusnet/statusnet.php:308 msgid "Copy the security code from StatusNet here" msgstr "Kopiere den Sicherheitscode von StatusNet hier hin" -#: ../../addon/statusnet/statusnet.php:321 +#: ../../addon/statusnet/statusnet.php:314 msgid "Cancel Connection Process" msgstr "Verbindungsprozess abbrechen" -#: ../../addon/statusnet/statusnet.php:323 +#: ../../addon/statusnet/statusnet.php:316 msgid "Current StatusNet API is" msgstr "Derzeitige StatusNet-API-URL lautet" -#: ../../addon/statusnet/statusnet.php:324 +#: ../../addon/statusnet/statusnet.php:317 msgid "Cancel StatusNet Connection" msgstr "Verbindung zum StatusNet Server abbrechen" -#: ../../addon/statusnet/statusnet.php:335 ../../addon/twitter/twitter.php:189 +#: ../../addon/statusnet/statusnet.php:328 ../../addon/twitter/twitter.php:184 msgid "Currently connected to: " msgstr "Momentan verbunden mit: " -#: ../../addon/statusnet/statusnet.php:336 +#: ../../addon/statusnet/statusnet.php:329 msgid "" "If enabled all your public postings can be posted to the " "associated StatusNet account. You can choose to do so by default (here) or " "for every posting separately in the posting options when writing the entry." msgstr "Wenn aktiviert können all deine öffentlichen Einträge auf dem verbundenen StatusNet Konto veröffentlicht werden. Du kannst das (hier) als Standardverhalten einstellen oder beim Schreiben eines Beitrags in den Beitragsoptionen festlegen." -#: ../../addon/statusnet/statusnet.php:338 +#: ../../addon/statusnet/statusnet.php:331 +msgid "" +"Note: Due your privacy settings (Hide your profile " +"details from unknown viewers?) the link potentially included in public " +"postings relayed to StatusNet will lead the visitor to a blank page " +"informing the visitor that the access to your profile has been restricted." +msgstr "Hinweis: Aufgrund deiner Privatsphären Einstellungen (Profil-Details vor unbekannten Betrachtern verbergen?) wird der Link der eventuell an an deinen StatusNet Account weitergeleitete angehangen wird um auf den original Artikel zu verweisen den Betrachter auf eine leere Seite führen, auf der er darüber informiert wird, dass der Zugriff eingeschränkt wurde." + +#: ../../addon/statusnet/statusnet.php:334 msgid "Allow posting to StatusNet" msgstr "Veröffentlichung bei StatusNet erlauben" -#: ../../addon/statusnet/statusnet.php:341 +#: ../../addon/statusnet/statusnet.php:337 msgid "Send public postings to StatusNet by default" msgstr "Veröffentliche öffentliche Beiträge standardmäßig bei StatusNet" -#: ../../addon/statusnet/statusnet.php:346 ../../addon/twitter/twitter.php:200 +#: ../../addon/statusnet/statusnet.php:342 ../../addon/twitter/twitter.php:198 msgid "Clear OAuth configuration" msgstr "OAuth-Konfiguration löschen" -#: ../../addon/statusnet/statusnet.php:487 +#: ../../addon/statusnet/statusnet.php:524 msgid "API URL" msgstr "API-URL" @@ -4287,13 +4397,33 @@ msgstr "WordPress-API-URL" msgid "Post to WordPress by default" msgstr "Standardmäßig auf WordPress veröffentlichen" -#: ../../addon/piwik/piwik.php:70 +#: ../../addon/showmore/showmore.php:38 +msgid "\"Show more\" Settings" +msgstr "\"Mehr zeigen\" Einstellungen" + +#: ../../addon/showmore/showmore.php:41 +msgid "Enable Show More" +msgstr "Aktiviere \"Mehr zeigen\"" + +#: ../../addon/showmore/showmore.php:44 +msgid "Cutting posts after how much characters" +msgstr "Begrenze Beiträge nach der Anzahl der Buchstaben" + +#: ../../addon/showmore/showmore.php:64 +msgid "Show More Settings saved." +msgstr "\"Mehr zeigen\" Einstellungen gesichert." + +#: ../../addon/showmore/showmore.php:86 +msgid "Show More" +msgstr "\"Mehr zeigen\"" + +#: ../../addon/piwik/piwik.php:79 msgid "" "This website is tracked using the Piwik " "analytics tool." msgstr "Diese Website benutzt Piwik, eine Open Source-Software zur statistischen Auswertung der Besucherzugriffe." -#: ../../addon/piwik/piwik.php:73 +#: ../../addon/piwik/piwik.php:82 #, php-format msgid "" "If you do not want that your visits are logged this way you can" @@ -4301,37 +4431,47 @@ msgid "" "(opt-out)." msgstr "Wenn Du nicht willst, dass Deine Besuche auf diese Weise gespeichert werden, kannst Du ein Cookie setzen. Dann wird Piwik Dich auf dieser Website nicht mehr verfolgen (opt-out)." -#: ../../addon/piwik/piwik.php:82 +#: ../../addon/piwik/piwik.php:90 msgid "Piwik Base URL" msgstr "Piwik Basis URL" -#: ../../addon/piwik/piwik.php:83 +#: ../../addon/piwik/piwik.php:90 +msgid "" +"Absolute path to your Piwik installation. (without protocol (http/s), with " +"trailing slash)" +msgstr "Absoluter Pfad zu deiner Piwik Installation (ohen Protokoll (http/s) und mit abschließendem Schrägstrich)" + +#: ../../addon/piwik/piwik.php:91 msgid "Site ID" msgstr "Seiten ID" -#: ../../addon/piwik/piwik.php:84 +#: ../../addon/piwik/piwik.php:92 msgid "Show opt-out cookie link?" msgstr "Link zum Setzen des Opt-Out Cookies anzeigen?" -#: ../../addon/twitter/twitter.php:78 +#: ../../addon/piwik/piwik.php:93 +msgid "Asynchronous tracking" +msgstr "Asynchroned Tracken" + +#: ../../addon/twitter/twitter.php:73 msgid "Post to Twitter" msgstr "Bei Twitter veröffentlichen" -#: ../../addon/twitter/twitter.php:124 +#: ../../addon/twitter/twitter.php:119 msgid "Twitter settings updated." msgstr "Twitter Einstellungen aktualisiert." -#: ../../addon/twitter/twitter.php:146 +#: ../../addon/twitter/twitter.php:141 msgid "Twitter Posting Settings" msgstr "Twitter-Beitragseinstellungen" -#: ../../addon/twitter/twitter.php:153 +#: ../../addon/twitter/twitter.php:148 msgid "" "No consumer key pair for Twitter found. Please contact your site " "administrator." msgstr "Kein Consumer-Schlüsselpaar für Twitter gefunden. Bitte wende dich an den Administrator der Seite." -#: ../../addon/twitter/twitter.php:172 +#: ../../addon/twitter/twitter.php:167 msgid "" "At this Friendica instance the Twitter plugin was enabled but you have not " "yet connected your account to your Twitter account. To do so click the " @@ -4340,34 +4480,42 @@ msgid "" " be posted to Twitter." msgstr "Auf diesem Friendica-Server wurde das Twitter-Plugin aktiviert, aber du hast deinen Account noch nicht mit deinem Twitter-Account verbunden. Klicke dazu die Schaltfläche unten. Du erhältst dann eine PIN von Twitter, die du in das Eingabefeld unten kopieren musst. Nicht vergessen, den Senden-Knopf zu drücken! Nur öffentliche Beiträge werden bei Twitter veröffentlicht." -#: ../../addon/twitter/twitter.php:173 +#: ../../addon/twitter/twitter.php:168 msgid "Log in with Twitter" msgstr "bei Twitter anmelden" -#: ../../addon/twitter/twitter.php:175 +#: ../../addon/twitter/twitter.php:170 msgid "Copy the PIN from Twitter here" msgstr "Kopiere die Twitter-PIN hier her" -#: ../../addon/twitter/twitter.php:190 +#: ../../addon/twitter/twitter.php:185 msgid "" "If enabled all your public postings can be posted to the " "associated Twitter account. You can choose to do so by default (here) or for" " every posting separately in the posting options when writing the entry." msgstr "Wenn aktiviert können all deine öffentlichen Einträge auf dem verbundenen Twitter Konto veröffentlicht werden. Du kannst dies (hier) als Standardverhalten einstellen oder beim Schreiben eines Beitrags in den Beitragsoptionen festlegen." -#: ../../addon/twitter/twitter.php:192 +#: ../../addon/twitter/twitter.php:187 +msgid "" +"Note: Due your privacy settings (Hide your profile " +"details from unknown viewers?) the link potentially included in public " +"postings relayed to Twitter will lead the visitor to a blank page informing " +"the visitor that the access to your profile has been restricted." +msgstr "Hinweis: Aufgrund deiner Privatsphären Einstellungen (Profil-Details vor unbekannten Betrachtern verbergen?) wird der Link der eventuell an an deinen Twitter Account weitergeleitete angehangen wird um auf den original Artikel zu verweisen den Betrachter auf eine leere Seite führen, auf der er darüber informiert wird, dass der Zugriff eingeschränkt wurde." + +#: ../../addon/twitter/twitter.php:190 msgid "Allow posting to Twitter" msgstr "Veröffentlichung bei Twitter erlauben" -#: ../../addon/twitter/twitter.php:195 +#: ../../addon/twitter/twitter.php:193 msgid "Send public postings to Twitter by default" msgstr "Veröffentliche öffentliche Beiträge standardmäßig bei Twitter" -#: ../../addon/twitter/twitter.php:317 +#: ../../addon/twitter/twitter.php:357 msgid "Consumer key" msgstr "Consumer Key" -#: ../../addon/twitter/twitter.php:318 +#: ../../addon/twitter/twitter.php:358 msgid "Consumer secret" msgstr "Consumer Secret" @@ -4395,7 +4543,7 @@ msgstr "Posterous-Passwort" msgid "Post to Posterous by default" msgstr "Veröffentliche öffentliche Beiträge standardmäßig bei Posterous" -#: ../../include/profile_advanced.php:17 ../../boot.php:978 +#: ../../include/profile_advanced.php:17 ../../boot.php:982 msgid "Gender:" msgstr "Geschlecht:" @@ -4408,7 +4556,7 @@ msgid "j F" msgstr "j F" #: ../../include/profile_advanced.php:30 ../../include/datetime.php:438 -#: ../../include/items.php:1318 +#: ../../include/items.php:1349 msgid "Birthday:" msgstr "Geburtstag:" @@ -4416,11 +4564,11 @@ msgstr "Geburtstag:" msgid "Age:" msgstr "Alter:" -#: ../../include/profile_advanced.php:37 ../../boot.php:981 +#: ../../include/profile_advanced.php:37 ../../boot.php:985 msgid "Status:" msgstr "Status:" -#: ../../include/profile_advanced.php:45 ../../boot.php:983 +#: ../../include/profile_advanced.php:45 ../../boot.php:987 msgid "Homepage:" msgstr "Homepage:" @@ -4756,20 +4904,20 @@ msgstr "Ist mir nicht wichtig" msgid "Ask me" msgstr "Frag mich" -#: ../../include/event.php:17 ../../include/bb2diaspora.php:255 +#: ../../include/event.php:17 ../../include/bb2diaspora.php:274 msgid "Starts:" msgstr "Beginnt:" -#: ../../include/event.php:27 ../../include/bb2diaspora.php:263 +#: ../../include/event.php:27 ../../include/bb2diaspora.php:282 msgid "Finishes:" msgstr "Endet:" -#: ../../include/delivery.php:416 ../../include/notifier.php:629 +#: ../../include/delivery.php:424 ../../include/notifier.php:637 msgid "(no subject)" msgstr "(kein Betreff)" -#: ../../include/delivery.php:423 ../../include/enotify.php:16 -#: ../../include/notifier.php:636 +#: ../../include/delivery.php:431 ../../include/enotify.php:16 +#: ../../include/notifier.php:644 msgid "noreply" msgstr "noreply" @@ -4804,91 +4952,91 @@ msgstr[1] "%d Kontakte" msgid "Search" msgstr "Suche" -#: ../../include/text.php:735 +#: ../../include/text.php:813 msgid "Monday" msgstr "Montag" -#: ../../include/text.php:735 +#: ../../include/text.php:813 msgid "Tuesday" msgstr "Dienstag" -#: ../../include/text.php:735 +#: ../../include/text.php:813 msgid "Wednesday" msgstr "Mittwoch" -#: ../../include/text.php:735 +#: ../../include/text.php:813 msgid "Thursday" msgstr "Donnerstag" -#: ../../include/text.php:735 +#: ../../include/text.php:813 msgid "Friday" msgstr "Freitag" -#: ../../include/text.php:735 +#: ../../include/text.php:813 msgid "Saturday" msgstr "Samstag" -#: ../../include/text.php:735 +#: ../../include/text.php:813 msgid "Sunday" msgstr "Sonntag" -#: ../../include/text.php:739 +#: ../../include/text.php:817 msgid "January" msgstr "Januar" -#: ../../include/text.php:739 +#: ../../include/text.php:817 msgid "February" msgstr "Februar" -#: ../../include/text.php:739 +#: ../../include/text.php:817 msgid "March" msgstr "März" -#: ../../include/text.php:739 +#: ../../include/text.php:817 msgid "April" msgstr "April" -#: ../../include/text.php:739 +#: ../../include/text.php:817 msgid "May" msgstr "Mai" -#: ../../include/text.php:739 +#: ../../include/text.php:817 msgid "June" msgstr "Juni" -#: ../../include/text.php:739 +#: ../../include/text.php:817 msgid "July" msgstr "Juli" -#: ../../include/text.php:739 +#: ../../include/text.php:817 msgid "August" msgstr "August" -#: ../../include/text.php:739 +#: ../../include/text.php:817 msgid "September" msgstr "September" -#: ../../include/text.php:739 +#: ../../include/text.php:817 msgid "October" msgstr "Oktober" -#: ../../include/text.php:739 +#: ../../include/text.php:817 msgid "November" msgstr "November" -#: ../../include/text.php:739 +#: ../../include/text.php:817 msgid "December" msgstr "Dezember" -#: ../../include/text.php:809 +#: ../../include/text.php:887 msgid "bytes" msgstr "Byte" -#: ../../include/text.php:901 +#: ../../include/text.php:982 msgid "Select an alternate language" msgstr "Alternative Sprache auswählen" -#: ../../include/text.php:913 +#: ../../include/text.php:994 msgid "default" msgstr "standard" @@ -4896,11 +5044,11 @@ msgstr "standard" msgid "Sharing notification from Diaspora network" msgstr "Freigabe-Benachrichtigung von Diaspora" -#: ../../include/diaspora.php:1895 +#: ../../include/diaspora.php:1911 msgid "Attachments:" msgstr "Anhänge:" -#: ../../include/diaspora.php:2078 +#: ../../include/diaspora.php:2094 #, php-format msgid "[Relayed] Comment authored by %s from network %s" msgstr "[Weitergeleitet] Kommentar von %s aus dem %s Netzwerk" @@ -4940,7 +5088,7 @@ msgstr "Gruppe bearbeiten" msgid "Create a new group" msgstr "Neue Gruppe erstellen" -#: ../../include/nav.php:44 ../../boot.php:705 +#: ../../include/nav.php:44 ../../boot.php:709 msgid "Logout" msgstr "Abmelden" @@ -4948,7 +5096,7 @@ msgstr "Abmelden" msgid "End this session" msgstr "Diese Sitzung beenden" -#: ../../include/nav.php:47 ../../boot.php:1327 +#: ../../include/nav.php:47 ../../boot.php:1331 msgid "Status" msgstr "Status" @@ -4960,7 +5108,7 @@ msgstr "Deine Beiträge und Unterhaltungen" msgid "Your profile page" msgstr "Deine Profilseite" -#: ../../include/nav.php:49 ../../boot.php:1337 +#: ../../include/nav.php:49 ../../boot.php:1341 msgid "Photos" msgstr "Bilder" @@ -5032,39 +5180,43 @@ msgstr "Kontaktanfragen" msgid "See all notifications" msgstr "Alle Benachrichtigungen anzeigen" -#: ../../include/nav.php:123 +#: ../../include/nav.php:120 +msgid "Mark all system notifications seen" +msgstr "Markiere alle System Benachrichtigungen als gelesen" + +#: ../../include/nav.php:124 msgid "Private mail" msgstr "Private Email" -#: ../../include/nav.php:126 +#: ../../include/nav.php:127 msgid "Manage" msgstr "Verwalten" -#: ../../include/nav.php:126 +#: ../../include/nav.php:127 msgid "Manage other pages" msgstr "Andere Seiten verwalten" -#: ../../include/nav.php:130 ../../boot.php:936 +#: ../../include/nav.php:131 ../../boot.php:940 msgid "Profiles" msgstr "Profile" -#: ../../include/nav.php:130 ../../boot.php:936 +#: ../../include/nav.php:131 ../../boot.php:940 msgid "Manage/edit profiles" msgstr "Profile verwalten/editieren" -#: ../../include/nav.php:131 +#: ../../include/nav.php:132 msgid "Manage/edit friends and contacts" msgstr "Freunde und Kontakte verwalten/editieren" -#: ../../include/nav.php:138 +#: ../../include/nav.php:139 msgid "Admin" msgstr "Administration" -#: ../../include/nav.php:138 +#: ../../include/nav.php:139 msgid "Site setup and configuration" msgstr "Einstellungen der Seite und Konfiguration" -#: ../../include/nav.php:161 +#: ../../include/nav.php:162 msgid "Nothing new here" msgstr "Keine Neuigkeiten." @@ -5196,11 +5348,15 @@ msgstr "Sekunden" msgid "%1$d %2$s ago" msgstr "%1$d %2$s her" -#: ../../include/poller.php:459 +#: ../../include/poller.php:474 msgid "From: " msgstr "Von: " -#: ../../include/bbcode.php:166 ../../include/bbcode.php:225 +#: ../../include/bbcode.php:202 +msgid "$1 wrote:" +msgstr "$1 geschrieben:" + +#: ../../include/bbcode.php:216 ../../include/bbcode.php:282 msgid "Image/photo" msgstr "Bild/Foto" @@ -5248,6 +5404,15 @@ msgstr "Neue Nachricht auf %s empfangen" msgid "%s sent you a new private message at %s." msgstr "%s hat dir eine neue private Nachricht auf %s geschrieben." +#: ../../include/enotify.php:31 +#, php-format +msgid "%s sent you %s." +msgstr "%s hat Dir geschickt %s" + +#: ../../include/enotify.php:31 +msgid "a private message" +msgstr "eine private Nachricht" + #: ../../include/enotify.php:32 #, php-format msgid "Please visit %s to view and/or reply to your private messages." @@ -5263,84 +5428,138 @@ msgstr "%s kommentierte einen Beitrag auf %s" msgid "%s commented on an item/conversation you have been following." msgstr "%s hat einen Beitrag kommentiert, dem du folgst." -#: ../../include/enotify.php:42 ../../include/enotify.php:51 -#: ../../include/enotify.php:60 ../../include/enotify.php:69 +#: ../../include/enotify.php:42 +#, php-format +msgid "%s commented in %s." +msgstr "%s wurde kommentiert in %s" + +#: ../../include/enotify.php:42 +msgid "a watched conversation" +msgstr "eine beobachtete Unterhaltung" + +#: ../../include/enotify.php:44 ../../include/enotify.php:54 +#: ../../include/enotify.php:64 ../../include/enotify.php:74 #, php-format msgid "Please visit %s to view and/or reply to the conversation." msgstr "Bitte besuche %s, um die Konversation anzusehen und/oder zu kommentieren." -#: ../../include/enotify.php:49 +#: ../../include/enotify.php:51 #, php-format msgid "%s posted to your profile wall at %s" msgstr "%s hat auf deine Pinnwand bei %s gepostet" -#: ../../include/enotify.php:58 +#: ../../include/enotify.php:52 +#, php-format +msgid "%s posted to %s" +msgstr "%s schrieb an %s" + +#: ../../include/enotify.php:52 +msgid "your profile wall." +msgstr "Deine Pinnwand" + +#: ../../include/enotify.php:61 #, php-format msgid "%s tagged you at %s" msgstr "%s hat dich auf %s erwähnt" -#: ../../include/enotify.php:67 +#: ../../include/enotify.php:62 +#, php-format +msgid "%s %s." +msgstr "%s %s." + +#: ../../include/enotify.php:62 +msgid "tagged you" +msgstr "erwähnte Dich" + +#: ../../include/enotify.php:71 #, php-format msgid "%s tagged your post at %s" msgstr "%s hat deinen Beitrag auf %s getaggt" -#: ../../include/enotify.php:76 +#: ../../include/enotify.php:72 +#, php-format +msgid "%s tagged %s" +msgstr "%s markierte %s" + +#: ../../include/enotify.php:72 +msgid "your post" +msgstr "Dein Beitrag" + +#: ../../include/enotify.php:81 #, php-format msgid "Introduction received at %s" msgstr "Kontaktanfrage auf %s erhalten" -#: ../../include/enotify.php:77 +#: ../../include/enotify.php:82 #, php-format msgid "You've received an introduction from '%s' at %s" msgstr "Du hast eine Kontaktanfrage von '%s' auf %s erhalten" -#: ../../include/enotify.php:78 ../../include/enotify.php:91 +#: ../../include/enotify.php:83 +#, php-format +msgid "You've received %s from %s." +msgstr "Du hast %s von %s erhalten." + +#: ../../include/enotify.php:83 +msgid "an introduction" +msgstr "eine Einführung" + +#: ../../include/enotify.php:84 ../../include/enotify.php:101 #, php-format msgid "You may visit their profile at %s" msgstr "Hier kannst du das Profil betrachten: %s" -#: ../../include/enotify.php:80 +#: ../../include/enotify.php:86 #, php-format msgid "Please visit %s to approve or reject the introduction." msgstr "Bitte besuche %s, um die Kontaktanfrage anzunehmen oder abzulehnen." -#: ../../include/enotify.php:87 +#: ../../include/enotify.php:93 #, php-format msgid "Friend suggestion received at %s" msgstr "Kontaktvorschlag empfangen auf %s" -#: ../../include/enotify.php:88 +#: ../../include/enotify.php:94 #, php-format msgid "You've received a friend suggestion from '%s' at %s" msgstr "Du hast von '%s' einen Kontaktvorschlag erhalten auf %s" -#: ../../include/enotify.php:89 +#: ../../include/enotify.php:95 +#, php-format +msgid "You've received %s for %s from %s." +msgstr "Du hast %s für %s von %s erhalten." + +#: ../../include/enotify.php:96 +msgid "a friend suggestion" +msgstr "ein Freunde Vorschlag" + +#: ../../include/enotify.php:99 msgid "Name:" msgstr "Name:" -#: ../../include/enotify.php:90 +#: ../../include/enotify.php:100 msgid "Photo:" msgstr "Foto:" -#: ../../include/enotify.php:93 +#: ../../include/enotify.php:103 #, php-format msgid "Please visit %s to approve or reject the suggestion." msgstr "Bitte besuche %s, um den Vorschlag zu akzeptieren oder abzulehnen." -#: ../../include/items.php:2450 +#: ../../include/items.php:2511 msgid "A new person is sharing with you at " msgstr "Eine neue Person teilt mit dir auf " -#: ../../include/items.php:2450 +#: ../../include/items.php:2511 msgid "You have a new follower at " msgstr "Du hast einen neuen Kontakt auf " -#: ../../include/bb2diaspora.php:64 +#: ../../include/bb2diaspora.php:83 msgid "view full size" msgstr "Volle Größe anzeigen" -#: ../../include/bb2diaspora.php:113 ../../include/bb2diaspora.php:123 -#: ../../include/bb2diaspora.php:124 +#: ../../include/bb2diaspora.php:132 ../../include/bb2diaspora.php:142 +#: ../../include/bb2diaspora.php:143 msgid "image/photo" msgstr "Bild/Foto" @@ -5356,282 +5575,282 @@ msgstr "Bitte lade ein Profilbild hoch." msgid "Welcome back " msgstr "Willkommen zurück " -#: ../../include/Contact.php:131 ../../include/conversation.php:744 +#: ../../include/Contact.php:131 ../../include/conversation.php:769 msgid "View status" msgstr "Status anzeigen" -#: ../../include/Contact.php:132 ../../include/conversation.php:745 +#: ../../include/Contact.php:132 ../../include/conversation.php:770 msgid "View profile" msgstr "Profil anzeigen" -#: ../../include/Contact.php:133 ../../include/conversation.php:746 +#: ../../include/Contact.php:133 ../../include/conversation.php:771 msgid "View photos" msgstr "Fotos ansehen" #: ../../include/Contact.php:134 ../../include/Contact.php:147 -#: ../../include/conversation.php:747 +#: ../../include/conversation.php:772 msgid "View recent" msgstr "Neueste anzeigen" #: ../../include/Contact.php:136 ../../include/Contact.php:147 -#: ../../include/conversation.php:749 +#: ../../include/conversation.php:774 msgid "Send PM" msgstr "Private Nachricht senden" -#: ../../include/conversation.php:141 +#: ../../include/conversation.php:163 msgid "post/item" msgstr "Nachricht/Beitrag" -#: ../../include/conversation.php:142 +#: ../../include/conversation.php:164 #, php-format msgid "%1$s marked %2$s's %3$s as favorite" msgstr "%1$s hat %2$s\\s %3$s als Favorit markiert" -#: ../../include/conversation.php:279 ../../include/conversation.php:535 +#: ../../include/conversation.php:301 ../../include/conversation.php:562 msgid "Select" msgstr "Auswählen" -#: ../../include/conversation.php:294 ../../include/conversation.php:623 -#: ../../include/conversation.php:624 +#: ../../include/conversation.php:316 ../../include/conversation.php:648 +#: ../../include/conversation.php:649 #, php-format msgid "View %s's profile @ %s" msgstr "Das Profil von %s auf %s betrachten." -#: ../../include/conversation.php:303 ../../include/conversation.php:635 +#: ../../include/conversation.php:325 ../../include/conversation.php:660 #, php-format msgid "%s from %s" msgstr "%s von %s" -#: ../../include/conversation.php:319 +#: ../../include/conversation.php:341 msgid "View in context" msgstr "Im Zusammenhang betrachten" -#: ../../include/conversation.php:434 +#: ../../include/conversation.php:456 #, php-format msgid "%d comment" msgid_plural "%d comments" msgstr[0] "%d Kommentar" msgstr[1] "%d Kommentare" -#: ../../include/conversation.php:437 ../../boot.php:444 +#: ../../include/conversation.php:459 ../../boot.php:448 msgid "show more" msgstr "mehr anzeigen" -#: ../../include/conversation.php:497 +#: ../../include/conversation.php:519 msgid "like" msgstr "mag ich" -#: ../../include/conversation.php:498 +#: ../../include/conversation.php:520 msgid "dislike" msgstr "mag ich nicht" -#: ../../include/conversation.php:500 +#: ../../include/conversation.php:522 msgid "Share this" msgstr "Teilen" -#: ../../include/conversation.php:500 +#: ../../include/conversation.php:522 msgid "share" msgstr "Teilen" -#: ../../include/conversation.php:545 +#: ../../include/conversation.php:572 msgid "add star" msgstr "markieren" -#: ../../include/conversation.php:546 +#: ../../include/conversation.php:573 msgid "remove star" msgstr "Markierung entfernen" -#: ../../include/conversation.php:547 +#: ../../include/conversation.php:574 msgid "toggle star status" msgstr "Markierung umschalten" -#: ../../include/conversation.php:550 +#: ../../include/conversation.php:577 msgid "starred" msgstr "markiert" -#: ../../include/conversation.php:551 +#: ../../include/conversation.php:578 msgid "add tag" msgstr "Tag hinzufügen" -#: ../../include/conversation.php:625 +#: ../../include/conversation.php:650 msgid "to" msgstr "to" -#: ../../include/conversation.php:626 +#: ../../include/conversation.php:651 msgid "Wall-to-Wall" msgstr "Wall-to-Wall" -#: ../../include/conversation.php:627 +#: ../../include/conversation.php:652 msgid "via Wall-To-Wall:" msgstr "via Wall-To-Wall:" -#: ../../include/conversation.php:669 +#: ../../include/conversation.php:694 msgid "Delete Selected Items" msgstr "Lösche die markierten Beiträge" -#: ../../include/conversation.php:801 +#: ../../include/conversation.php:826 #, php-format msgid "%s likes this." msgstr "%s mag das." -#: ../../include/conversation.php:801 +#: ../../include/conversation.php:826 #, php-format msgid "%s doesn't like this." msgstr "%s mag das nicht." -#: ../../include/conversation.php:805 +#: ../../include/conversation.php:830 #, php-format msgid "%2$d people like this." msgstr "%2$d Leute mögen das." -#: ../../include/conversation.php:807 +#: ../../include/conversation.php:832 #, php-format msgid "%2$d people don't like this." msgstr "%2$d Leute mögen das nicht." -#: ../../include/conversation.php:813 +#: ../../include/conversation.php:838 msgid "and" msgstr "und" -#: ../../include/conversation.php:816 +#: ../../include/conversation.php:841 #, php-format msgid ", and %d other people" msgstr " und %d andere" -#: ../../include/conversation.php:817 +#: ../../include/conversation.php:842 #, php-format msgid "%s like this." msgstr "%s mögen das." -#: ../../include/conversation.php:817 +#: ../../include/conversation.php:842 #, php-format msgid "%s don't like this." msgstr "%s mögen das nicht." -#: ../../include/conversation.php:842 +#: ../../include/conversation.php:867 msgid "Visible to everybody" msgstr "Für Jedermann sichtbar" -#: ../../include/conversation.php:844 +#: ../../include/conversation.php:869 msgid "Please enter a video link/URL:" msgstr "Bitte Link/URL zum Video einfügen:" -#: ../../include/conversation.php:845 +#: ../../include/conversation.php:870 msgid "Please enter an audio link/URL:" msgstr "Bitte Link/URL zum Audio einfügen:" -#: ../../include/conversation.php:846 +#: ../../include/conversation.php:871 msgid "Tag term:" msgstr "Tag:" -#: ../../include/conversation.php:847 +#: ../../include/conversation.php:872 msgid "Where are you right now?" msgstr "Wo hältst du dich jetzt gerade auf?" -#: ../../include/conversation.php:848 +#: ../../include/conversation.php:873 msgid "Enter a title for this item" msgstr "Gib den Titel für diesen Beitrag ein" -#: ../../include/conversation.php:891 +#: ../../include/conversation.php:916 msgid "upload photo" msgstr "Bild hochladen" -#: ../../include/conversation.php:893 +#: ../../include/conversation.php:918 msgid "attach file" msgstr "Datei anhängen" -#: ../../include/conversation.php:895 +#: ../../include/conversation.php:920 msgid "web link" msgstr "Weblink" -#: ../../include/conversation.php:896 +#: ../../include/conversation.php:921 msgid "Insert video link" msgstr "Video-Adresse einfügen" -#: ../../include/conversation.php:897 +#: ../../include/conversation.php:922 msgid "video link" msgstr "Video-Link" -#: ../../include/conversation.php:898 +#: ../../include/conversation.php:923 msgid "Insert audio link" msgstr "Audio-Adresse einfügen" -#: ../../include/conversation.php:899 +#: ../../include/conversation.php:924 msgid "audio link" msgstr "Audio-Link" -#: ../../include/conversation.php:901 +#: ../../include/conversation.php:926 msgid "set location" msgstr "Ort setzen" -#: ../../include/conversation.php:903 +#: ../../include/conversation.php:928 msgid "clear location" msgstr "Ort löschen" -#: ../../include/conversation.php:908 +#: ../../include/conversation.php:933 msgid "permissions" msgstr "Zugriffsrechte" -#: ../../boot.php:442 +#: ../../boot.php:446 msgid "Delete this item?" msgstr "Diesen Beitrag löschen?" -#: ../../boot.php:445 +#: ../../boot.php:449 msgid "show fewer" msgstr "weniger anzeigen" -#: ../../boot.php:688 +#: ../../boot.php:692 msgid "Create a New Account" msgstr "Neuen Account erstellen" -#: ../../boot.php:708 +#: ../../boot.php:712 msgid "Nickname or Email address: " msgstr "Spitzname oder Email-Adresse: " -#: ../../boot.php:709 +#: ../../boot.php:713 msgid "Password: " msgstr "Passwort: " -#: ../../boot.php:712 +#: ../../boot.php:716 msgid "Or login using OpenID: " msgstr "Oder melde dich mit deiner OpenID an: " -#: ../../boot.php:718 +#: ../../boot.php:722 msgid "Forgot your password?" msgstr "Passwort vergessen?" -#: ../../boot.php:875 +#: ../../boot.php:879 msgid "Edit profile" msgstr "Profil bearbeiten" -#: ../../boot.php:1042 ../../boot.php:1113 +#: ../../boot.php:1046 ../../boot.php:1117 msgid "g A l F d" msgstr "l. d, F G \\U\\h\\\\r" -#: ../../boot.php:1043 ../../boot.php:1114 +#: ../../boot.php:1047 ../../boot.php:1118 msgid "F d" msgstr "d. F" -#: ../../boot.php:1068 +#: ../../boot.php:1072 msgid "Birthday Reminders" msgstr "Geburtstagserinnerungen" -#: ../../boot.php:1069 +#: ../../boot.php:1073 msgid "Birthdays this week:" msgstr "Geburtstage diese Woche:" -#: ../../boot.php:1092 ../../boot.php:1156 +#: ../../boot.php:1096 ../../boot.php:1160 msgid "[today]" msgstr "[heute]" -#: ../../boot.php:1137 +#: ../../boot.php:1141 msgid "Event Reminders" msgstr "Veranstaltungserinnerungen" -#: ../../boot.php:1138 +#: ../../boot.php:1142 msgid "Events this week:" msgstr "Veranstaltungen diese Woche" -#: ../../boot.php:1150 +#: ../../boot.php:1154 msgid "[No description]" msgstr "[keine Beschreibung]" diff --git a/view/de/strings.php b/view/de/strings.php index 166880f0d7..f5d093d07d 100755 --- a/view/de/strings.php +++ b/view/de/strings.php @@ -34,13 +34,13 @@ $a->strings["Friend suggestion sent."] = "Kontaktvorschlag gesendet."; $a->strings["Suggest Friends"] = "Kontakte vorschlagen"; $a->strings["Suggest a friend for %s"] = "Schlage %s einen Kontakt vor"; $a->strings["Event description and start time are required."] = "Ereignis Beschreibung und Startzeit sind erforderlich."; +$a->strings["l, F j"] = "l, F j"; +$a->strings["Edit event"] = "Veranstaltung bearbeiten"; +$a->strings["link to source"] = "Link zum Originalbeitrag"; $a->strings["Events"] = "Veranstaltungen"; $a->strings["Create New Event"] = "Neue Veranstaltung erstellen"; $a->strings["Previous"] = "Vorherige"; $a->strings["Next"] = "Nächste"; -$a->strings["l, F j"] = "l, F j"; -$a->strings["Edit event"] = "Veranstaltung bearbeiten"; -$a->strings["link to source"] = "Link zum Originalbeitrag"; $a->strings["hour:minute"] = "Stunde:Minute"; $a->strings["Event details"] = "Veranstaltungsdetails"; $a->strings["Format is %s %s. Starting date and Description are required."] = "Format ist %s %s. Anfangsdatum und Beschreibung sind notwendig."; @@ -251,6 +251,7 @@ $a->strings["Welcome to %s"] = "Willkommen zu %s"; $a->strings["Invalid request identifier."] = "Invalid request identifier."; $a->strings["Discard"] = "Verwerfen"; $a->strings["Ignore"] = "Ignorieren"; +$a->strings["System"] = "System"; $a->strings["Network"] = "Netzwerk"; $a->strings["Personal"] = "Persönlich"; $a->strings["Home"] = "Pinnwand"; @@ -282,8 +283,13 @@ $a->strings["%s is now friends with %s"] = "%s ist jetzt mit %s befreundet"; $a->strings["%s created a new post"] = "%s hat einen neuen Beitrag erstellt"; $a->strings["%s commented on %s's post"] = "%s hat %ss Beitrag kommentiert"; $a->strings["No more network notifications."] = "Keine weiteren Netzwerk-Benachrichtigungen."; +$a->strings["Network Notifications"] = "Netzwerk Benachrichtigungen"; +$a->strings["No more system notifications."] = "Keine weiteren System Benachrichtigungen."; +$a->strings["System Notifications"] = "System Benachrichtigungen"; $a->strings["No more personal notifications."] = "Keine weiteren persönlichen Benachrichtigungen"; +$a->strings["Personal Notifications"] = "Persönliche Benachrichtigungen"; $a->strings["No more home notifications."] = "Keine weiteren Pinnwand-Benachrichtigungen"; +$a->strings["Home Notifications"] = "Pinnwand Benachrichtigungen"; $a->strings["Could not access contact record."] = "Konnte nicht auf die Kontaktdaten zugreifen."; $a->strings["Could not locate selected profile."] = "Konnte das ausgewählte Profil nicht finden."; $a->strings["Contact updated."] = "Kontakt aktualisiert."; @@ -328,17 +334,19 @@ $a->strings["Update now"] = "Jetzt aktualisieren"; $a->strings["Currently blocked"] = "Derzeit geblockt"; $a->strings["Currently ignored"] = "Derzeit ignoriert"; $a->strings["Replies/likes to your public posts may still be visible"] = "Antworten/Likes auf deine öffentlichen Beiträge könnten weiterhin sichtbar sein"; -$a->strings["Contacts"] = "Kontakte"; -$a->strings["Show Unblocked Contacts"] = "Nicht geblockte Kontakte anzeigen"; -$a->strings["Show Blocked Contacts"] = "Blockierte Kontakte anzeigen"; -$a->strings["Show All Contacts"] = "Alle Kontakte anzeigen"; -$a->strings["Search your contacts"] = "Suche in deinen Kontakten"; -$a->strings["Finding: "] = "Funde: "; -$a->strings["Find"] = "Finde"; +$a->strings["All Contacts"] = "Alle Kontakte"; +$a->strings["Unblocked Contacts"] = "Nicht blockierte Kontakte"; +$a->strings["Blocked Contacts"] = "Blockierte Kontakte"; +$a->strings["Ignored Contacts"] = "Ignorierte Kontakte"; +$a->strings["Hidden Contacts"] = "Verborgene Kontakte"; $a->strings["Mutual Friendship"] = "Beidseitige Freundschaft"; $a->strings["is a fan of yours"] = "ist ein Fan von dir"; $a->strings["you are a fan of"] = "du bist Fan von"; $a->strings["Edit contact"] = "Kontakt bearbeiten"; +$a->strings["Contacts"] = "Kontakte"; +$a->strings["Search your contacts"] = "Suche in deinen Kontakten"; +$a->strings["Finding: "] = "Funde: "; +$a->strings["Find"] = "Finde"; $a->strings["No valid account found."] = "Kein gültiger Account gefunden."; $a->strings["Password reset request issued. Check your email."] = "Zurücksetzen des Passworts eingeleitet. Bitte überprüfe deine E-Mail."; $a->strings["Password reset requested at %s"] = "Anfrage zum Zurücksetzen des Passworts auf %s erhalten"; @@ -485,16 +493,18 @@ $a->strings["Personal Notes"] = "Persönliche Notizen"; $a->strings["Save"] = "Speichern"; $a->strings["Welcome to Friendica"] = "Willkommen bei Friendica"; $a->strings["New Member Checklist"] = "Checkliste für neue Mitglieder"; -$a->strings["We would like to offer some tips and links to help make your experience enjoyable. Click any item to visit the relevant page."] = "Wir möchten dir einige Tipps und Links anbieten, um deine Erfahrung mit Friendica so angenehm wie möglich zu machen. Klicke einfach einen Aspekt an, um weitere Informationen zu erhalten."; -$a->strings["On your Settings page - change your initial password. Also make a note of your Identity Address. This will be useful in making friends."] = "Ändere dein anfängliches Passwort auf der Einstellungen Seite. Bei dieser Gelegenheit solltest du dir die Adresse deines Profils merken, diese wird benötigt um mit Anderen in Kontakt zu treten."; +$a->strings["We would like to offer some tips and links to help make your experience enjoyable. Click any item to visit the relevant page. A link to this page will be visible from your home page for two weeks after your initial registration and then will quietly disappear."] = "Wir möchten Dir einige Tipps und Links anbieten, die Dir helfen könnten, den Einstieg angenehmer zu machen. Klicke auf ein Element, um die entsprechende Seite zu besuchen. Ein Link zu dieser Seite hier bleibt sichtbar über Deine Pinnwand für zwei Wochen nach dem Registrierungsdatum und wird dann verschwinden."; +$a->strings["On your Settings page - change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web."] = "Ändere bitte unter Einstellungen Dein Passwort. Außerdem merke Dir Deine Indentifikations Adresse. Diese sieht aus wie eine E-Mail Adresse und wird benötig um Freunschaften mit anderen im Friendica Netzwerk zu schliessen."; $a->strings["Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you."] = "Überprüfe die restlichen Einstellungen, insbesondere die Einstellungen zur Privatsphäre. Wenn du dein Profil nicht veröffentlichst ist das wie wenn niemand deine Telefonnummer kennt. Im Allgemeinen solltest du es veröffentlichen - außer all deine Freunde und potentiellen Freunde wissen wie man dich findet."; $a->strings["Upload a profile photo if you have not done so already. Studies have shown that people with real photos of themselves are ten times more likely to make friends than people who do not."] = "Lade ein Profilbild hoch falls du es noch nicht getan hast. Studien haben gezeigt, dass es zehnmal wahrscheinlicher ist neue Freunde zu finden, wenn du ein Bild von dir selbst verwendest als wenn du dies nicht tust."; $a->strings["Authorise the Facebook Connector if you currently have a Facebook account and we will (optionally) import all your Facebook friends and conversations."] = "Richte die Verbindung zu Facebook ein, wenn du im Augenblick ein Facebook Konto hast und (optional) deine Facebook Freunde und Unterhaltungen importieren willst."; +$a->strings["If this is your own personal server, installing the Facebook addon may ease your transition to the free social web."] = "Wenn dies dein privater Server ist könnte die Installation des Facebook Connectors deinen Umzug ins freie Soziale Netz angenehmer gestalten."; $a->strings["Enter your email access information on your Connector Settings page if you wish to import and interact with friends or mailing lists from your email INBOX"] = "Gib deine E-Mail-Zugangsinformationen auf der Connector-Einstellungsseite ein, falls du E-Mails aus deinem Posteingang importieren und mit Freunden und Mailinglisten interagieren willlst."; $a->strings["Edit your default profile to your liking. Review the settings for hiding your list of friends and hiding the profile from unknown visitors."] = "Editiere dein Standard Profil nach deinen Vorlieben. Überprüfe die Einstellungen zum Verbergen deiner Freundesliste vor unbekannten Betrachtern des Profils."; $a->strings["Set some public keywords for your default profile which describe your interests. We may be able to find other people with similar interests and suggest friendships."] = "Trage ein paar öffentliche Stichwörter in dein Standardprofil ein, die deine Interessen beschreiben. Eventuell sind wir in der Lage Leute zu finden, die deine Interessen teilen und können dir dann Kontakte vorschlagen."; $a->strings["Your Contacts page is your gateway to managing friendships and connecting with friends on other networks. Typically you enter their address or site URL in the Add New Contact dialog."] = "Die Kontakte-Seite ist die Einstiegsseite, von der aus du Kontakte verwalten und dich mit Freunden in anderen Netzwerken verbinden kannst. Normalerweise gibst du dazu einfach ihre Adresse oder die URL der Seite im Kasten Neuen Kontakt hinzufügen ein."; $a->strings["The Directory page lets you find other people in this network or other federated sites. Look for a Connect or Follow link on their profile page. Provide your own Identity Address if requested."] = "Über die Verzeichnisseite kannst du andere Personen auf diesem Server oder anderen verteilten Seiten finden. Halte nach einem Verbinden oder Folgen Link auf deren Profilseiten Ausschau und gib deine eigene Profiladresse an falls du danach gefragt wirst."; +$a->strings["On the side panel of the Contacts page are several tools to find new friends. We can match people by interest, look up people by name or interest, and provide suggestions based on network relationships. On a brand new site, friend suggestions will usually begin to be populated within 24 hours."] = "Im Seitenpanel auf der Kontakte-Seite findest du einige Werkzeuge um neue Freunde zu finden. Du kannst deine Interessen mit denen anderer Nutzer abgleichen lassen oder nach Namen und Interessen suchen. Außerdem kannst du Nach Personen aufgrund der Netzwerkbeziehungen suchen lassen. Auf einem neuen Server werden Kontaktvorschläge normalerweise innerhalb von 24 Stunden gefüllt."; $a->strings["Once you have made some friends, organize them into private conversation groups from the sidebar of your Contacts page and then you can interact with each group privately on your Network page."] = "Sobald du einige Freunde gefunden hast, organisiere sie in Gruppen zur privaten Kommunikation im Seitenmenü der Kontakte-Seite. Du kannst dann mit jeder dieser Gruppen von der Netzwerkseite aus privat interagieren."; $a->strings["Our help pages may be consulted for detail on other program features and resources."] = "Unsere Hilfe Seiten können herangezogen werden, um weitere Einzelheiten zu andern Programm Features zu erhalten."; $a->strings["Item not available."] = "Beitrag nicht verfügbar."; @@ -511,14 +521,13 @@ $a->strings["Unable to remove group."] = "Konnte die Gruppe nicht entfernen."; $a->strings["Click on a contact to add or remove."] = "Klicke einen Kontakt an, um ihn hinzuzufügen oder zu entfernen"; $a->strings["Group Editor"] = "Gruppeneditor"; $a->strings["Members"] = "Mitglieder"; -$a->strings["All Contacts"] = "Alle Kontakte"; $a->strings["Invalid profile identifier."] = "Ungültiger Profil-Bezeichner"; $a->strings["Profile Visibility Editor"] = "Editor für die Profil-Sichtbarkeit"; $a->strings["Profile"] = "Profil"; $a->strings["Visible To"] = "Sichtbar für"; $a->strings["All Contacts (with secure profile access)"] = "Alle Kontakte (mit gesichertem Profilzugriff)"; -$a->strings["View Contacts"] = "Kontakte anzeigen"; $a->strings["No contacts."] = "Keine Kontakte."; +$a->strings["View Contacts"] = "Kontakte anzeigen"; $a->strings["An invitation is required."] = "Du benötigst eine Einladung."; $a->strings["Invitation could not be verified."] = "Die Einladung konnte nicht überprüft werden."; $a->strings["Invalid OpenID url"] = "Ungültige OpenID URL"; @@ -614,6 +623,7 @@ $a->strings["No friends to display."] = "Keine Freunde zum Anzeigen."; $a->strings["Site"] = "Seite"; $a->strings["Users"] = "Nutzer"; $a->strings["Plugins"] = "Plugins"; +$a->strings["Themes"] = "Themen"; $a->strings["Logs"] = "Protokolle"; $a->strings["User registrations waiting for confirmation"] = "Nutzeranmeldungen die auf Bestätigung warten"; $a->strings["Administration"] = "Administration"; @@ -685,6 +695,7 @@ $a->strings["Disable"] = "Ausschalten"; $a->strings["Enable"] = "Einschalten"; $a->strings["Toggle"] = "Umschalten"; $a->strings["Settings"] = "Einstellungen"; +$a->strings["No themes found."] = "Keine Themen gefunden."; $a->strings["Log settings updated."] = "Protokolleinstellungen aktualisiert."; $a->strings["Clear"] = "löschen"; $a->strings["Debugging"] = "Protokoll führen"; @@ -941,6 +952,16 @@ $a->strings["Blocked %s - Click to open/close"] = "%s blockiert - Zum Öffnen/Sc $a->strings["Unblock Author"] = "Autor freischalten"; $a->strings["Block Author"] = "Autor blockieren"; $a->strings["blockem settings updated"] = "blockem Einstellungen aktualisiert"; +$a->strings[":-)"] = ":-)"; +$a->strings[":-("] = ":-("; +$a->strings["lol"] = "lol"; +$a->strings["Quick Comment Settings"] = "Schnell-Kommentar Einstellungen"; +$a->strings["Enter quick comments, one per line"] = "Gibt ein Schnell-Kommentar pro Zeile ein"; +$a->strings["Quick Comment settings saved."] = "Schnell-Kommentare Einstellungen gespeichert"; +$a->strings["Tile Server URL"] = "Tile Server URL"; +$a->strings["A list of public tile servers"] = "Eine Liste öffentlicher Tile Server"; +$a->strings["Default zoom"] = "Standard Zoom"; +$a->strings["The default zoom level. (1:world, 18:highest)"] = "Standard Zoo,level (1: Welt; 18: höchstes)"; $a->strings["Editplain settings updated."] = "Editplain Einstellungen aktualisiert"; $a->strings["Editplain Settings"] = "Editplain Einstellungen"; $a->strings["Disable richtext status editor"] = "RichText Editor deaktivieren"; @@ -967,6 +988,7 @@ $a->strings["Current StatusNet API is"] = "Derzeitige StatusNet-API-URL lautet"; $a->strings["Cancel StatusNet Connection"] = "Verbindung zum StatusNet Server abbrechen"; $a->strings["Currently connected to: "] = "Momentan verbunden mit: "; $a->strings["If enabled all your public postings can be posted to the associated StatusNet account. You can choose to do so by default (here) or for every posting separately in the posting options when writing the entry."] = "Wenn aktiviert können all deine öffentlichen Einträge auf dem verbundenen StatusNet Konto veröffentlicht werden. Du kannst das (hier) als Standardverhalten einstellen oder beim Schreiben eines Beitrags in den Beitragsoptionen festlegen."; +$a->strings["Note: Due your privacy settings (Hide your profile details from unknown viewers?) the link potentially included in public postings relayed to StatusNet will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = "Hinweis: Aufgrund deiner Privatsphären Einstellungen (Profil-Details vor unbekannten Betrachtern verbergen?) wird der Link der eventuell an an deinen StatusNet Account weitergeleitete angehangen wird um auf den original Artikel zu verweisen den Betrachter auf eine leere Seite führen, auf der er darüber informiert wird, dass der Zugriff eingeschränkt wurde."; $a->strings["Allow posting to StatusNet"] = "Veröffentlichung bei StatusNet erlauben"; $a->strings["Send public postings to StatusNet by default"] = "Veröffentliche öffentliche Beiträge standardmäßig bei StatusNet"; $a->strings["Clear OAuth configuration"] = "OAuth-Konfiguration löschen"; @@ -987,11 +1009,18 @@ $a->strings["WordPress username"] = "WordPress-Benutzername"; $a->strings["WordPress password"] = "WordPress-Passwort"; $a->strings["WordPress API URL"] = "WordPress-API-URL"; $a->strings["Post to WordPress by default"] = "Standardmäßig auf WordPress veröffentlichen"; +$a->strings["\"Show more\" Settings"] = "\"Mehr zeigen\" Einstellungen"; +$a->strings["Enable Show More"] = "Aktiviere \"Mehr zeigen\""; +$a->strings["Cutting posts after how much characters"] = "Begrenze Beiträge nach der Anzahl der Buchstaben"; +$a->strings["Show More Settings saved."] = "\"Mehr zeigen\" Einstellungen gesichert."; +$a->strings["Show More"] = "\"Mehr zeigen\""; $a->strings["This website is tracked using the Piwik analytics tool."] = "Diese Website benutzt Piwik, eine Open Source-Software zur statistischen Auswertung der Besucherzugriffe."; $a->strings["If you do not want that your visits are logged this way you can set a cookie to prevent Piwik from tracking further visits of the site (opt-out)."] = "Wenn Du nicht willst, dass Deine Besuche auf diese Weise gespeichert werden, kannst Du ein Cookie setzen. Dann wird Piwik Dich auf dieser Website nicht mehr verfolgen (opt-out)."; $a->strings["Piwik Base URL"] = "Piwik Basis URL"; +$a->strings["Absolute path to your Piwik installation. (without protocol (http/s), with trailing slash)"] = "Absoluter Pfad zu deiner Piwik Installation (ohen Protokoll (http/s) und mit abschließendem Schrägstrich)"; $a->strings["Site ID"] = "Seiten ID"; $a->strings["Show opt-out cookie link?"] = "Link zum Setzen des Opt-Out Cookies anzeigen?"; +$a->strings["Asynchronous tracking"] = "Asynchroned Tracken"; $a->strings["Post to Twitter"] = "Bei Twitter veröffentlichen"; $a->strings["Twitter settings updated."] = "Twitter Einstellungen aktualisiert."; $a->strings["Twitter Posting Settings"] = "Twitter-Beitragseinstellungen"; @@ -1000,6 +1029,7 @@ $a->strings["At this Friendica instance the Twitter plugin was enabled but you h $a->strings["Log in with Twitter"] = "bei Twitter anmelden"; $a->strings["Copy the PIN from Twitter here"] = "Kopiere die Twitter-PIN hier her"; $a->strings["If enabled all your public postings can be posted to the associated Twitter account. You can choose to do so by default (here) or for every posting separately in the posting options when writing the entry."] = "Wenn aktiviert können all deine öffentlichen Einträge auf dem verbundenen Twitter Konto veröffentlicht werden. Du kannst dies (hier) als Standardverhalten einstellen oder beim Schreiben eines Beitrags in den Beitragsoptionen festlegen."; +$a->strings["Note: Due your privacy settings (Hide your profile details from unknown viewers?) the link potentially included in public postings relayed to Twitter will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = "Hinweis: Aufgrund deiner Privatsphären Einstellungen (Profil-Details vor unbekannten Betrachtern verbergen?) wird der Link der eventuell an an deinen Twitter Account weitergeleitete angehangen wird um auf den original Artikel zu verweisen den Betrachter auf eine leere Seite führen, auf der er darüber informiert wird, dass der Zugriff eingeschränkt wurde."; $a->strings["Allow posting to Twitter"] = "Veröffentlichung bei Twitter erlauben"; $a->strings["Send public postings to Twitter by default"] = "Veröffentliche öffentliche Beiträge standardmäßig bei Twitter"; $a->strings["Consumer key"] = "Consumer Key"; @@ -1170,6 +1200,7 @@ $a->strings["People directory"] = "Nutzerverzeichnis"; $a->strings["Conversations from your friends"] = "Unterhaltungen deiner Kontakte"; $a->strings["Friend Requests"] = "Kontaktanfragen"; $a->strings["See all notifications"] = "Alle Benachrichtigungen anzeigen"; +$a->strings["Mark all system notifications seen"] = "Markiere alle System Benachrichtigungen als gelesen"; $a->strings["Private mail"] = "Private Email"; $a->strings["Manage"] = "Verwalten"; $a->strings["Manage other pages"] = "Andere Seiten verwalten"; @@ -1214,6 +1245,7 @@ $a->strings["second"] = "Sekunde"; $a->strings["seconds"] = "Sekunden"; $a->strings["%1\$d %2\$s ago"] = "%1\$d %2\$s her"; $a->strings["From: "] = "Von: "; +$a->strings["$1 wrote:"] = "$1 geschrieben:"; $a->strings["Image/photo"] = "Bild/Foto"; $a->strings["Cannot locate DNS info for database server '%s'"] = "Kann die DNS Informationen für den Datenbanken Server '%s' nicht ermitteln."; $a->strings["[no subject]"] = "[kein Betreff]"; @@ -1225,19 +1257,33 @@ $a->strings["Thank You,"] = "Danke,"; $a->strings["%s Administrator"] = "der Administrator von %s"; $a->strings["New mail received at %s"] = "Neue Nachricht auf %s empfangen"; $a->strings["%s sent you a new private message at %s."] = "%s hat dir eine neue private Nachricht auf %s geschrieben."; +$a->strings["%s sent you %s."] = "%s hat Dir geschickt %s"; +$a->strings["a private message"] = "eine private Nachricht"; $a->strings["Please visit %s to view and/or reply to your private messages."] = "Bitte besuche %s, um deine privaten Nachrichten anzusehen und/oder zu beantworten."; $a->strings["%s commented on an item at %s"] = "%s kommentierte einen Beitrag auf %s"; $a->strings["%s commented on an item/conversation you have been following."] = "%s hat einen Beitrag kommentiert, dem du folgst."; +$a->strings["%s commented in %s."] = "%s wurde kommentiert in %s"; +$a->strings["a watched conversation"] = "eine beobachtete Unterhaltung"; $a->strings["Please visit %s to view and/or reply to the conversation."] = "Bitte besuche %s, um die Konversation anzusehen und/oder zu kommentieren."; $a->strings["%s posted to your profile wall at %s"] = "%s hat auf deine Pinnwand bei %s gepostet"; +$a->strings["%s posted to %s"] = "%s schrieb an %s"; +$a->strings["your profile wall."] = "Deine Pinnwand"; $a->strings["%s tagged you at %s"] = "%s hat dich auf %s erwähnt"; +$a->strings["%s %s."] = "%s %s."; +$a->strings["tagged you"] = "erwähnte Dich"; $a->strings["%s tagged your post at %s"] = "%s hat deinen Beitrag auf %s getaggt"; +$a->strings["%s tagged %s"] = "%s markierte %s"; +$a->strings["your post"] = "Dein Beitrag"; $a->strings["Introduction received at %s"] = "Kontaktanfrage auf %s erhalten"; $a->strings["You've received an introduction from '%s' at %s"] = "Du hast eine Kontaktanfrage von '%s' auf %s erhalten"; +$a->strings["You've received %s from %s."] = "Du hast %s von %s erhalten."; +$a->strings["an introduction"] = "eine Einführung"; $a->strings["You may visit their profile at %s"] = "Hier kannst du das Profil betrachten: %s"; $a->strings["Please visit %s to approve or reject the introduction."] = "Bitte besuche %s, um die Kontaktanfrage anzunehmen oder abzulehnen."; $a->strings["Friend suggestion received at %s"] = "Kontaktvorschlag empfangen auf %s"; $a->strings["You've received a friend suggestion from '%s' at %s"] = "Du hast von '%s' einen Kontaktvorschlag erhalten auf %s"; +$a->strings["You've received %s for %s from %s."] = "Du hast %s für %s von %s erhalten."; +$a->strings["a friend suggestion"] = "ein Freunde Vorschlag"; $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."; From 2081e6d507d5983f802c1024cf1e38c6d06d6067 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sun, 26 Feb 2012 17:12:14 +0100 Subject: [PATCH 27/56] some revision to the German strings --- view/de/messages.po | 22 ++++++++++++---------- view/de/strings.php | 16 ++++++++-------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/view/de/messages.po b/view/de/messages.po index 50a73e6db5..5573ddca07 100644 --- a/view/de/messages.po +++ b/view/de/messages.po @@ -6,7 +6,9 @@ # bavatar , 2011. # Erkan Yilmaz , 2011. # , 2012. +# , 2012. # , 2011. +# , 2012. # , 2011, 2012. # , 2011, 2012. # , 2011. @@ -15,8 +17,8 @@ msgstr "" "Project-Id-Version: friendica\n" "Report-Msgid-Bugs-To: http://bugs.friendica.com/\n" "POT-Creation-Date: 2012-02-24 22:44-0800\n" -"PO-Revision-Date: 2012-02-26 14:36+0000\n" -"Last-Translator: bavatar \n" +"PO-Revision-Date: 2012-02-26 15:58+0000\n" +"Last-Translator: marmor \n" "Language-Team: German (http://www.transifex.net/projects/p/friendica/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1365,11 +1367,11 @@ msgstr "Kontakt wurde wieder freigegeben" #: ../../mod/contacts.php:179 msgid "Contact has been ignored" -msgstr "Der Kontakt wurde ignoriert" +msgstr "Kontakt wurde ignoriert" #: ../../mod/contacts.php:179 msgid "Contact has been unignored" -msgstr "Kontakt wurde ignoriert" +msgstr "Kontakt wird nicht mehr ignoriert" #: ../../mod/contacts.php:200 msgid "stopped following" @@ -1692,7 +1694,7 @@ msgstr " Keine gültige E-Mail." #: ../../mod/settings.php:283 msgid " Cannot change to that email." -msgstr " Cannot change to that email." +msgstr "Ändern der E-Mail nicht möglich. " #: ../../mod/settings.php:351 ../../addon/facebook/facebook.php:321 #: ../../addon/impressum/impressum.php:64 @@ -2050,15 +2052,15 @@ msgstr "Eine deiner Kontaktanfragen akzeptiert wurde" #: ../../mod/settings.php:830 msgid "Someone writes on your profile wall" -msgstr "Jemand etwas auf deine Pinnwand schreibt" +msgstr "Jemand schreibt etwas auf deine Pinnwand" #: ../../mod/settings.php:831 msgid "Someone writes a followup comment" -msgstr "Jemand auch einen Kommentar verfasst" +msgstr "Jemand verfasst auch einen Kommentar" #: ../../mod/settings.php:832 msgid "You receive a private message" -msgstr "Du eine private Nachricht erhältst" +msgstr "Du erhältst eine private Nachricht" #: ../../mod/settings.php:833 msgid "You receive a friend suggestion" @@ -2258,7 +2260,7 @@ msgid "" "interest, and provide suggestions based on network relationships. On a brand" " new site, friend suggestions will usually begin to be populated within 24 " "hours." -msgstr "Im Seitenpanel auf der Kontakte-Seite findest du einige Werkzeuge um neue Freunde zu finden. Du kannst deine Interessen mit denen anderer Nutzer abgleichen lassen oder nach Namen und Interessen suchen. Außerdem kannst du Nach Personen aufgrund der Netzwerkbeziehungen suchen lassen. Auf einem neuen Server werden Kontaktvorschläge normalerweise innerhalb von 24 Stunden gefüllt." +msgstr "Im seitlichen Bedienfeld der Kontakte-Seite gibt es diverse Werkzeuge, um neue Freunde zu finden. Wir können Menschen mit den gleichen Interessen finden, anhand von Namen oder Interessen suchen oder aber aufgrund vorhandener Kontakte neue Freunde vorschlagen.\nAuf einer brandneuen - soeben erstellten - Seite starten die Kontaktvorschläge innerhalb von 24 Stunden." #: ../../mod/newmember.php:42 msgid "" @@ -2411,7 +2413,7 @@ msgstr "Dieser Spitzname ist bereits vergeben. Bitte wähle einen anderen." #: ../../mod/register.php:170 msgid "SERIOUS ERROR: Generation of security keys failed." -msgstr "SERIOUS ERROR: Generation of security keys failed." +msgstr "FATALER FEHLER: Sicherheitsschlüssel konnten nicht erzeugt werden." #: ../../mod/register.php:238 msgid "An error occurred during registration. Please try again." diff --git a/view/de/strings.php b/view/de/strings.php index f5d093d07d..284c87f2fa 100755 --- a/view/de/strings.php +++ b/view/de/strings.php @@ -295,8 +295,8 @@ $a->strings["Could not locate selected profile."] = "Konnte das ausgewählte Pro $a->strings["Contact updated."] = "Kontakt aktualisiert."; $a->strings["Contact has been blocked"] = "Kontakt wurde blockiert"; $a->strings["Contact has been unblocked"] = "Kontakt wurde wieder freigegeben"; -$a->strings["Contact has been ignored"] = "Der Kontakt wurde ignoriert"; -$a->strings["Contact has been unignored"] = "Kontakt wurde ignoriert"; +$a->strings["Contact has been ignored"] = "Kontakt wurde ignoriert"; +$a->strings["Contact has been unignored"] = "Kontakt wird nicht mehr ignoriert"; $a->strings["stopped following"] = "wird nicht mehr gefolgt"; $a->strings["Contact has been removed."] = "Kontakt wurde entfernt."; $a->strings["You are mutual friends with %s"] = "Du hast mit %s eine beidseitige Freundschaft"; @@ -373,7 +373,7 @@ $a->strings["Password update failed. Please try again."] = "Aktualisierung des P $a->strings[" Please use a shorter name."] = " Bitte verwende einen kürzeren Namen."; $a->strings[" Name too short."] = " Name ist zu kurz."; $a->strings[" Not valid email."] = " Keine gültige E-Mail."; -$a->strings[" Cannot change to that email."] = " Cannot change to that email."; +$a->strings[" Cannot change to that email."] = "Ändern der E-Mail nicht möglich. "; $a->strings["Settings updated."] = "Einstellungen aktualisiert."; $a->strings["Account settings"] = "Account Einstellungen"; $a->strings["Connector settings"] = "Connector-Einstellungen"; @@ -460,9 +460,9 @@ $a->strings["Notification Settings"] = "Benachrichtigungseinstellungen"; $a->strings["Send a notification email when:"] = "Benachrichtigungs-E-Mail senden wenn:"; $a->strings["You receive an introduction"] = "Du eine Kontaktanfrage erhältst"; $a->strings["Your introductions are confirmed"] = "Eine deiner Kontaktanfragen akzeptiert wurde"; -$a->strings["Someone writes on your profile wall"] = "Jemand etwas auf deine Pinnwand schreibt"; -$a->strings["Someone writes a followup comment"] = "Jemand auch einen Kommentar verfasst"; -$a->strings["You receive a private message"] = "Du eine private Nachricht erhältst"; +$a->strings["Someone writes on your profile wall"] = "Jemand schreibt etwas auf deine Pinnwand"; +$a->strings["Someone writes a followup comment"] = "Jemand verfasst auch einen Kommentar"; +$a->strings["You receive a private message"] = "Du erhältst eine private Nachricht"; $a->strings["You receive a friend suggestion"] = "Du eine Empfehlung erhältst"; $a->strings["You are tagged in a post"] = "Du wurdest in einem Beitrag erwähnt"; $a->strings["Advanced Page Settings"] = "Erweiterte Seiten-Einstellungen"; @@ -504,7 +504,7 @@ $a->strings["Edit your default profile to your liking. Review t $a->strings["Set some public keywords for your default profile which describe your interests. We may be able to find other people with similar interests and suggest friendships."] = "Trage ein paar öffentliche Stichwörter in dein Standardprofil ein, die deine Interessen beschreiben. Eventuell sind wir in der Lage Leute zu finden, die deine Interessen teilen und können dir dann Kontakte vorschlagen."; $a->strings["Your Contacts page is your gateway to managing friendships and connecting with friends on other networks. Typically you enter their address or site URL in the Add New Contact dialog."] = "Die Kontakte-Seite ist die Einstiegsseite, von der aus du Kontakte verwalten und dich mit Freunden in anderen Netzwerken verbinden kannst. Normalerweise gibst du dazu einfach ihre Adresse oder die URL der Seite im Kasten Neuen Kontakt hinzufügen ein."; $a->strings["The Directory page lets you find other people in this network or other federated sites. Look for a Connect or Follow link on their profile page. Provide your own Identity Address if requested."] = "Über die Verzeichnisseite kannst du andere Personen auf diesem Server oder anderen verteilten Seiten finden. Halte nach einem Verbinden oder Folgen Link auf deren Profilseiten Ausschau und gib deine eigene Profiladresse an falls du danach gefragt wirst."; -$a->strings["On the side panel of the Contacts page are several tools to find new friends. We can match people by interest, look up people by name or interest, and provide suggestions based on network relationships. On a brand new site, friend suggestions will usually begin to be populated within 24 hours."] = "Im Seitenpanel auf der Kontakte-Seite findest du einige Werkzeuge um neue Freunde zu finden. Du kannst deine Interessen mit denen anderer Nutzer abgleichen lassen oder nach Namen und Interessen suchen. Außerdem kannst du Nach Personen aufgrund der Netzwerkbeziehungen suchen lassen. Auf einem neuen Server werden Kontaktvorschläge normalerweise innerhalb von 24 Stunden gefüllt."; +$a->strings["On the side panel of the Contacts page are several tools to find new friends. We can match people by interest, look up people by name or interest, and provide suggestions based on network relationships. On a brand new site, friend suggestions will usually begin to be populated within 24 hours."] = "Im seitlichen Bedienfeld der Kontakte-Seite gibt es diverse Werkzeuge, um neue Freunde zu finden. Wir können Menschen mit den gleichen Interessen finden, anhand von Namen oder Interessen suchen oder aber aufgrund vorhandener Kontakte neue Freunde vorschlagen.\nAuf einer brandneuen - soeben erstellten - Seite starten die Kontaktvorschläge innerhalb von 24 Stunden."; $a->strings["Once you have made some friends, organize them into private conversation groups from the sidebar of your Contacts page and then you can interact with each group privately on your Network page."] = "Sobald du einige Freunde gefunden hast, organisiere sie in Gruppen zur privaten Kommunikation im Seitenmenü der Kontakte-Seite. Du kannst dann mit jeder dieser Gruppen von der Netzwerkseite aus privat interagieren."; $a->strings["Our help pages may be consulted for detail on other program features and resources."] = "Unsere Hilfe Seiten können herangezogen werden, um weitere Einzelheiten zu andern Programm Features zu erhalten."; $a->strings["Item not available."] = "Beitrag nicht verfügbar."; @@ -540,7 +540,7 @@ $a->strings["Not a valid email address."] = "Keine gültige E-Mail-Adresse."; $a->strings["Cannot use that email."] = "Konnte diese E-Mail-Adresse nicht verwenden."; $a->strings["Your \"nickname\" can only contain \"a-z\", \"0-9\", \"-\", and \"_\", and must also begin with a letter."] = "Dein Spitzname darf nur aus Buchstaben und Zahlen (\"a-z\",\"0-9\", \"_\" und \"-\") bestehen, außerdem muss er mit einem Buchstaben beginnen."; $a->strings["Nickname is already registered. Please choose another."] = "Dieser Spitzname ist bereits vergeben. Bitte wähle einen anderen."; -$a->strings["SERIOUS ERROR: Generation of security keys failed."] = "SERIOUS ERROR: Generation of security keys failed."; +$a->strings["SERIOUS ERROR: Generation of security keys failed."] = "FATALER FEHLER: Sicherheitsschlüssel konnten nicht erzeugt werden."; $a->strings["An error occurred during registration. Please try again."] = "Wärend der Anmeldung ist ein Fehler aufgetreten. Bitte versuche es noch einmal."; $a->strings["An error occurred creating your default profile. Please try again."] = "Bei der Erstellung des Standard-Profils ist ein Fehler aufgetreten. Bitte versuche es noch einmal."; $a->strings["Registration details for %s"] = "Details der Registration von %s"; From edc44933a4f57c09ee1cfb93615d052a2b125d99 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 26 Feb 2012 21:16:29 +0100 Subject: [PATCH 28/56] "Vier-Theme" Some more design stuff. --- view/theme/vier/search_item.tpl | 5 +- view/theme/vier/style.css | 672 ++++++++++++++---------------- view/theme/vier/wall_item.tpl | 7 +- view/theme/vier/wallwall_item.tpl | 5 +- 4 files changed, 334 insertions(+), 355 deletions(-) diff --git a/view/theme/vier/search_item.tpl b/view/theme/vier/search_item.tpl index 9cd3c8e2ef..372e0d0340 100755 --- a/view/theme/vier/search_item.tpl +++ b/view/theme/vier/search_item.tpl @@ -1,7 +1,7 @@
    - $star.starred - {{ if $lock }}$lock{{ endif }} + $star.starred + {{ if $lock }}$lock{{ endif }}
    @@ -25,6 +25,7 @@ $name -   {{ if $plink }}$ago{{ else }} $ago {{ endif }} + {{ if $lock }} - $lock {{ endif }}
    diff --git a/view/theme/vier/style.css b/view/theme/vier/style.css index 61a3b06ab4..5ffb02f48b 100644 --- a/view/theme/vier/style.css +++ b/view/theme/vier/style.css @@ -334,11 +334,15 @@ h4 { font-size: 1.1em; } -a {color: #3e3e8c; -text-decoration: none; +a { + color: #36C; + /* color: #3e3e8c; */ + text-decoration: none; +} +a:hover { + /* color: blue; */ + text-decoration: underline } -a:hover {color: blue; -text-decoration: underline} .wall-item-name-link { /* float: left;*/ @@ -364,12 +368,13 @@ text-decoration: underline} clear: both; } .fakelink { - color: #3e3e8c; + color: #36c; + /* color: #3e3e8c; */ text-decoration: none; cursor: pointer; } .fakelink:hover { - color: blue; + /* color: blue; */ /*color: #005c94; */ text-decoration: underline; } @@ -402,6 +407,12 @@ code { .tool { height: auto; overflow: auto; + padding: 3px; +} +#saved-search-ul .tool:hover, +#nets-sidebar .tool:hover, +#sidebar-group-list .tool:hover { + background: #EEE; } .tool .label { float: left; @@ -409,6 +420,12 @@ code { .tool .action { float: right; } +.tool a { + color: #000; +} +.tool a:hover { + text-decoration: none; +} /* popup notifications */ div.jGrowl div.notice { background: #511919 url("../../../images/icons/48/notice.png") no-repeat 5px center; @@ -496,7 +513,7 @@ nav ul { nav ul li { list-style: none; margin: 0px; - padding: 1px 1px 3px 1px; + /* padding: 1px 1px 3px 1px; */ float: left; } nav ul li .menu-popup { @@ -536,7 +553,8 @@ nav .nav-menu.selected { nav .nav-notify { display: none; position: absolute; - background-color: #19aeff; + background-color: #36c; + /* background-color: #19aeff; */ -moz-border-radius: 5px 5px 5px 5px; -webkit-border-radius: 5px 5px 5px 5px; border-radius: 5px 5px 5px 5px; @@ -573,14 +591,17 @@ nav #nav-apps-link.selected { } #nav-notifications-mark-all { - padding: 1px 1px 2px 1px; - border-bottom: 1px solid #364E59; - margin: 0px 0px 2px 26px; + /* padding: 1px 1px 2px 26px; */ + /* border-bottom: 1px solid #364E59; */ + margin: 0px 0px 2px 0px; + padding: 5px 10px; } #nav-notifications-see-all { - padding: 1px; - margin: 0px 0px 2px 26px; + /* padding: 1px 1px 2px 26px; */ + /* border-bottom: 1px solid #364E59; */ + margin: 0px 0px 2px 0px; + padding: 5px 10px; } ul.menu-popup { @@ -599,9 +620,9 @@ ul.menu-popup { box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7); } ul.menu-popup a { - /* display: block; */ + display: block; color: #2d2d2d; - /* padding: 5px 10px; */ + padding: 5px 10px; text-decoration: none; } ul.menu-popup a:hover { @@ -656,6 +677,15 @@ ul.menu-popup .empty { max-height: 550px; overflow: auto; } +#nav-notifications-menu a { + display: inline; + padding: 5px 0px; + margin: 0px 0px 2px 0px; +} +#nav-notifications-menu li:hover { + background-color: #bdcdd4; +} + #nav-notifications-menu img { float: left; margin-right: 5px; @@ -730,7 +760,8 @@ aside #dfrn-request-link { } aside #dfrn-request-link:hover { text-decoration: none; - background-color: #19aeff; + background-color: #36c; + /* background-color: #19aeff; */ } aside #profiles-menu { width: 20em; @@ -832,7 +863,7 @@ section { display: table-cell; vertical-align: top; width: 800px; - padding: 0px 20px 0px 10px; + padding: 0px 0px 0px 10px; } /* wall item */ .tread-wrapper { @@ -905,7 +936,7 @@ section { } .wall-item-container .wall-item-content img { - max-width: 710px; + max-width: 700px; } .wall-item-container .wall-item-links, .wall-item-container .wall-item-actions { display: table-cell; @@ -1019,6 +1050,15 @@ section { padding: 0; margin: 10px 0; } + +.shiny { + /* border-right: 10px solid #fce94f; */ + border-right: 1px solid #A7C7F7; +} +#jot-preview-content .tread-wrapper { + background-color: #fce94f; +} + .wall-item-tags { padding-top: 1px; padding-bottom: 2px; @@ -1094,22 +1134,17 @@ section { left: 0px; top: 63px; } -.directory-item { - float: left; - width: 200px; - height: 200px; +.contact-photo { + width: 48px; + height: 48px; } -.directory-item .contact-photo { - width: 175px; - height: 175px; -} -.directory-item .contact-photo img { - width: 175px; - height: 175px; +.contact-photo img { + width: 48px; + height: 48px; } .contact-name { - text-align: center; - font-weight: bold; + /* text-align: center; */ + /*font-weight: bold;*/ font-size: 12px; } .contact-details { @@ -1580,397 +1615,338 @@ blockquote { #prof-separator { display: none;} */ -#prvmail-wrapper, .mail-conv-detail, .mail-list-detail { - position: relative; - width: 500px; - padding: 50px; - margin: 20px auto; - background-color: #fff; - -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, 0.2), inset 0 0 50px rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 0 4px rgba(0, 0, 0, 0.2), inset 0 0 50px rgba(0, 0, 0, 0.1); - box-shadow: 0 0 5px rgba(0, 0, 0, 0.2), inset 0 0 50px rgba(0, 0, 0, 0.1); +#prvmail-to-label, #prvmail-subject-label, #prvmail-message-label { + margin-bottom: 10px; + margin-top: 20px; } -#prvmail-wrapper:before, #prvmail-wrapper:after, .mail-conv-detail:before, .mail-conv-detail:after, .mail-list-detail:before, .mail-list-detail:after { - position: absolute; - width: 40%; - height: 10px; - content: ' '; - left: 12px; - bottom: 12px; - background: transparent; - -webkit-transform: skew(-5deg) rotate(-5deg); - -moz-transform: skew(-5deg) rotate(-5deg); - -ms-transform: skew(-5deg) rotate(-5deg); - -o-transform: skew(-5deg) rotate(-5deg); - transform: skew(-5deg) rotate(-5deg); - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3); - -moz-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3); - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3); - z-index: -1; +#prvmail-submit { + float: left; + margin-top: 10px; + margin-right: 30px; +} +#prvmail-upload-wrapper, +#prvmail-link-wrapper, +#prvmail-rotator-wrapper { + float: left; + margin-top: 10px; + margin-right: 10px; + width: 24px; } -#prvmail-wrapper:after, .mail-conv-detail:after, .mail-list-detail:after { - left: auto; - right: 12px; - -webkit-transform: skew(5deg) rotate(5deg); - -moz-transform: skew(5deg) rotate(5deg); - -ms-transform: skew(5deg) rotate(5deg); - -o-transform: skew(5deg) rotate(5deg); - transform: skew(5deg) rotate(5deg); -} - -.prvmail-text { - width: 100%; -} - -.mail-list-outside-wrapper { - margin-top: 20px; -} - -.mail-list-sender { - float: left; - padding: 5px; - background-color: #efefef; - border: 2px dotted #eeeeee; - -moz-box-shadow: 3px 3px 4px #959494; - -webkit-box-shadow: 3px 3px 4px #959494; - box-shadow: 3px 3px 4px #959494; +#prvmail-end { + clear: both; } +.mail-list-sender, .mail-list-detail { - margin-left: 100px; - width: 300px; - min-height: 70px; - padding: 20px; - padding-top:10px; - border: 1px solid #dddddd; - } - -.mail-list-sender-name { - font-size: 1.1em; - display: inline; - font-variant:small-caps; + float: left; } - -.mail-list-date { - float: right; - clear: block; - display: inline; - font-size: 0.9em; - padding-left: 10px; - font-stretch:ultra-condensed; - font-variant:small-caps; +.mail-list-detail { + margin-left: 20px; } .mail-list-subject { - clear: block; - font-size: 1.2em; - padding-top: 20px; - padding-right: 50px; + font-size: 1.1em; + margin-top: 10px; +} +a.mail-list-link { + display: block; + font-size: 1.3em; + padding: 4px 0; } -.mail-list-subject a { - color: #626262; -} +/* +*a.mail-list-link:hover { +* background-color: #15607B; +* color: #F5F6FB; +*} +*/ -.mail-list-delete-wrapper { float: right;} .mail-list-outside-wrapper-end { - clear: both; + clear: both; +} + +.mail-list-outside-wrapper { + margin-top: 30px; +} + +.mail-list-delete-wrapper { + float: right; + margin-right: 30px; + margin-top: 15px; +} + +.mail-list-delete-icon { + border: none; +} + +.mail-conv-sender, +.mail-conv-detail { + float: left; +} +.mail-conv-detail { + margin-left: 20px; + width: 500px; +} + +.mail-conv-subject { + font-size: 1.4em; + margin: 10px 0; +} + +.mail-conv-outside-wrapper-end { + clear: both; } .mail-conv-outside-wrapper { - margin-bottom: 10px; + margin-top: 30px; } -.mail-conv-sender {float: left; margin: 0px 5px 5px 0px; } -.mail-conv-sender-photo { - width: 64px; - height: 64px; +.mail-conv-delete-wrapper { + float: right; + margin-right: 30px; + margin-top: 15px; +} +.mail-conv-break { + clear: both; } -.mail-conv-sender-name { float: left; font-variant:small-caps; font-style: bold; } -.mail-conv-date { float: right; font-variant:small-caps; } -.mail-conv-subject { clear: right; font-weight: bold; font-size: 1.2em } -.mail-conv-body { - clear: both; +.mail-conv-delete-icon { + border: none; } -.mail-conv-detail { - width: 500px; - padding: 30px; - padding-bottom: 10px; - margin-left: 20px; - margin-bottom: 0px; - vertical-align: middle; - margin: auto; - border: 1px solid #dddddd; -} -.mail-conv-break { display: none; border: none;} -.mail-conv-delete-wrapper { padding-top: 10px; width: 510px; text-align: right; } - /* ========== */ /* = Events = */ /* ========== */ - -.clear { clear: both; } .eventcal { - float: left; - font-size: 20px; - padding: 20px; + float: left; + font-size: 20px; } .vevent { - position: relative; - width: 400px; - padding: 20px; - padding-top: 10px; - margin: 0 0px; - margin-bottom: 10px; - background-color: #fff; - -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, 0.2), inset 0 0 50px rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 0 4px rgba(0, 0, 0, 0.2), inset 0 0 50px rgba(0, 0, 0, 0.1); - box-shadow: 0 0 5px rgba(0, 0, 0, 0.2), inset 0 0 50px rgba(0, 0, 0, 0.1); + border: 1px solid #CCCCCC; +} +.vevent .event-description, .vevent .event-location { + margin-left: 10px; + margin-right: 10px; +} +.vevent .event-start { + margin-left: 10px; + margin-right: 10px; } -.vevent:before, .vevent:after { - position: absolute; - width: 40%; - height: 10px; - content: ' '; - left: 12px; - bottom: 12px; - background: transparent; - -webkit-transform: skew(-5deg) rotate(-5deg); - -moz-transform: skew(-5deg) rotate(-5deg); - -ms-transform: skew(-5deg) rotate(-5deg); - -o-transform: skew(-5deg) rotate(-5deg); - transform: skew(-5deg) rotate(-5deg); - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3); - -moz-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3); - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3); - z-index: -1; -} - -.vevent:after { - left: auto; - right: 12px; - -webkit-transform: skew(5deg) rotate(5deg); - -moz-transform: skew(5deg) rotate(5deg); - -ms-transform: skew(5deg) rotate(5deg); - -o-transform: skew(5deg) rotate(5deg); - transform: skew(5deg) rotate(5deg); -} - -.vevent .event-description { - margin-left: 10px; - margin-right: 10px; - text-align:center; - font-size: 1.2em; - font-weight:bolder; -} - - .vevent .event-location{ - margin-left: 10px; - margin-right: 10px; - font-size: 1em; - font-style: oblique; - text-align: center; - -} - -.vevent .event-start, .vevent .event-end { - margin-left: 20px; - margin-right: 20px; - margin-bottom: 2px; - margin-top: 2px; - font-size: 0.9em; - font-variant: small-caps; - text-align: left; -} - -#new-event-link{ - width: 130px; - padding: 7px; - margin-bottom: 10px; - margin-left: 170px; ; - -moz-box-shadow:inset 0px 1px 0px 0px #cfcfcf; - -webkit-box-shadow:inset 0px 1px 0px 0px #cfcfcf; - box-shadow:inset 0px 1px 0px 0px #cfcfcf; - background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #bdbdbd), color-stop(1, #a2a2a2) ); - background:-moz-linear-gradient( center top, #bdbdbd 5%, #a2a2a2 100% ); - filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#bdbdbd', endColorstr='#a2a2a2'); - background-color:#bdbdbd; - -moz-border-radius:5px; - -webkit-border-radius:5px; - border-radius:5px; - color: #efefef; -} - -#new-event-link:hover { - color: #efefef; - background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #b20202), color-stop(1, #d60808) ); - background:-moz-linear-gradient( center top, #b20202 5%, #d60808 100% ); - filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#b20202', endColorstr='#d60808'); - background-color:#b20202; -} - -#new-event-link:active { - background-color: #b20202; - position:relative; - top:1px; -} - -#new-event-link a { - color: #efefef; - text-align: center; +#new-event-link { + margin-bottom: 10px; } .edit-event-link, .plink-event-link { - float: left; - margin-top: 4px; - margin-right: 4px; - margin-bottom: 15px; + float: left; + margin-top: 4px; + margin-right: 4px; + margin-bottom: 15px; } .event-description:before { - content: url('calendar.png'); - margin-right: 15px; - vertical-align: middle; + content: url('../../../images/calendar.png'); + margin-right: 15px; } .event-start, .event-end { - margin-left: 10px; - width: 330px; + margin-left: 10px; + width: 330px; + clear: both; } .event-start .dtstart, .event-end .dtend { - float: right; + float: right; } .event-list-date { - color: #626262; - margin-bottom: 10px; - font-variant:small-caps; - font-stretch:condensed; + margin-bottom: 10px; } .prevcal, .nextcal { - float: left; - margin-left: 32px; - margin-right: 32px; - margin-top: 64px; + float: left; + margin-left: 32px; + margin-right: 32px; + margin-top: 64px; } - .event-calendar-end { - clear: both; + clear: both; } -.calendar { - width: 300px; - font-family: Helvetica, Arial, sans-serif; - background-color: #f1f1f1; - border: 1px solid #dedede; - margin-bottom: 10px; - -moz-box-shadow: 5px 5px 8px #959494; - -webkit-box-shadow: 5px 5px 8px #959494; - box-shadow: 5px 5px 8px #959494; -} - -.calendar caption{ - background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #d60808), color-stop(1, #b20202) ); - background:-moz-linear-gradient( center top, #d60808 5%, #b20202 100% ); - filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#d60808', endColorstr='#b20202'); - background-color: #b20202; - padding: 10px 0px 10px 0px; - width: 300px; - color: #ffffff; - font-weight: bold; - text-align:center; - font-variant:small-caps; - -moz-box-shadow: 5px 2px 8px #959494; - -webkit-box-shadow: 5px 2px 8px #959494; - box-shadow: 5px 2px 8px #959494; -} - -tr { - border: 1px solid #eeeeee; -} - -.calendar td { - font-size: 14px; - text-align: center; - padding: 3px 0px; -} - -.calendar td > a { - background-color: #cdcdcd; - padding: 2px; - color: #000; -} - -.calendar th { - font-size: 16px; -} - -.today { - font-weight: bold; - text-align: center; - background-color: #b20202; - color: #fff; -} -#event-start-text, -#event-finish-text { - margin-top: 10px; - margin-bottom: 5px; +.calendar { + font-family: Courier, monospace; +} +.today { + font-weight: bold; + color: #FF0000; } -#event-nofinish-checkbox, -#event-nofinish-text, -#event-adjust-checkbox, -#event-adjust-text, -#event-share-checkbox { - float: left; +.settings-block { + border: 1px solid #AAA; + margin: 10px; + padding: 10px; } -#event-datetime-break { - margin-bottom: 10px; +.app-title { + margin: 10px; } -#event-nofinish-break, -#event-adjust-break, -#event-share-break { - clear: both; +#identity-manage-desc { + margin-top:15px; + margin-bottom: 15px; } -#event-desc-text, -#event-location-text { - margin-top: 10px; - margin-bottom: 5px; +#identity-manage-choose { + margin-bottom: 15px; } -#event-submit { - margin-top: 10px; +#identity-submit { + margin-top: 20px; +} + +#photo-prev-link, #photo-next-link { + padding: 10px; + float: left; +} + +#photo-photo { + float: left; +} + +#photo-photo-end { + clear: both; +} + +.profile-match-photo { + float: left; + text-align: center; + width: 120px; +} + +.profile-match-name { + float: left; + text-align: center; + width: 120px; + overflow: hidden; +} + +.profile-match-break, +.profile-match-end { + clear: both; +} + +.profile-match-connect { + text-align: center; + font-weight: bold; +} + +.profile-match-wrapper { + float: left; + padding: 10px; + width: 120px; + height: 120px; + scroll: auto; +} +#profile-match-wrapper-end { + clear: both; } /* ============= */ /* = Directory = */ /* ============= */ - +/* contacts menu */ +.contact-photo-wrapper { + position: relative; +} +.contact-photo { + width: 48px; + height: 48px; + overflow: hidden; + display: block; +} +.contact-photo img { + width: 48px; + height: 48px; +} +.contact-photo-menu-button { + display: none; + /* position: absolute; */ + /* position: absolute; */ + left: -2px; + top: -20px; +} +.contact-wrapper { + float: left; + width: 90px; + height: 90px; + margin-bottom: 15px; +} +.contact-wrapper .contact-photo { + width: 80px; + height: 80px; +} +.contact-wrapper .contact-photo img { + width: 80px; + height: 80px; +} +.contact-wrapper .contact-photo-menu-button { + left: 0px; + top: 63px; +} .directory-item { - float: left; - margin: 50px 50px 0px 0px; + float: left; + width: 200px; + height: 200px; +} +.directory-item .contact-photo { + width: 175px; + height: 175px; +} +.directory-item .contact-photo img { + width: 175px; + height: 175px; +} +.contact-name { + text-align: center; + font-weight: bold; + font-size: 12px; +} +.contact-details { + color: #999999; } -.directory-details { - font-size: 0.9em; - font-variant: small-caps; - width: 160px; +.photo-top-image-wrapper { + position: relative; + float: left; + margin-top: 15px; + margin-right: 15px; + width: 200px; height: 200px; + overflow: hidden; +} +.photo-top-album-name { + width: 100%; + min-height: 2em; + position: absolute; + bottom: 0px; + padding: 0px 3px; + padding-top: 0.5em; + background-color: rgb(255, 255, 255); +} +#photo-top-end { + clear: both; } -.directory-name { - font-size: 1em; - font-variant: small-caps; - width: 150px; +#photo-top-links { + margin-bottom: 30px; + margin-left: 30px; } + +#photos-upload-newalbum-div { + float: left; + width: 175px; +} + diff --git a/view/theme/vier/wall_item.tpl b/view/theme/vier/wall_item.tpl index 03cbd4c0b7..abd2862a11 100644 --- a/view/theme/vier/wall_item.tpl +++ b/view/theme/vier/wall_item.tpl @@ -1,7 +1,7 @@ {{ if $indent }}{{ else }}
    - $star.starred - {{ if $lock }}$lock{{ endif }} + $star.starred + {{ if $lock }}$lock{{ endif }}
    {{ endif }} @@ -23,8 +23,9 @@
    $name - -   + - {{ if $plink }}$ago{{ else }} $ago {{ endif }} + {{ if $lock }} - $lock {{ endif }}
    diff --git a/view/theme/vier/wallwall_item.tpl b/view/theme/vier/wallwall_item.tpl index 3357bd8e02..2301da1d16 100644 --- a/view/theme/vier/wallwall_item.tpl +++ b/view/theme/vier/wallwall_item.tpl @@ -1,7 +1,7 @@ {{ if $indent }}{{ else }}
    - $star.starred - {{ if $lock }}$lock{{ endif }} + $star.starred + {{ if $lock }}$lock{{ endif }}
    {{ endif }} @@ -32,6 +32,7 @@ $to $owner_name $vwall -   {{ if $plink }}$ago{{ else }} $ago {{ endif }} + {{ if $lock }} - $lock {{ endif }}
    From fd9c12128afba39d91b81371b240e0cd92f66469 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20H=C3=B6=C3=9Fl?= Date: Sun, 26 Feb 2012 20:39:37 +0000 Subject: [PATCH 29/56] should probably be a->user['hidewall'] instead of profile['hidewall'] --- mod/profile.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mod/profile.php b/mod/profile.php index eba9874a86..74e1a23020 100755 --- a/mod/profile.php +++ b/mod/profile.php @@ -107,7 +107,7 @@ function profile_content(&$a, $update = 0) { $is_owner = ((local_user()) && (local_user() == $a->profile['profile_uid']) ? true : false); - if($a->profile['hidewall'] && (! $is_owner) && (! $remote_contact)) { + if($a->user['hidewall'] && (! $is_owner) && (! $remote_contact)) { notice( t('Access to this profile has been restricted.') . EOL); return; } @@ -228,10 +228,12 @@ function profile_content(&$a, $update = 0) { intval($a->profile['profile_uid']), dbesc($parents_str) ); + + $items = conv_sort($items,'created'); + } else { + $items = array(); } - $items = conv_sort($items,'created'); - if($is_owner && ! $update) { $o .= get_birthdays(); $o .= get_events(); From 792abc3a24d13408d4e31a4137a8173e3039bd8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20H=C3=B6=C3=9Fl?= Date: Sun, 26 Feb 2012 20:40:41 +0000 Subject: [PATCH 30/56] necessare fields not loaded from DB --- mod/acl.php | 4 +++- mod/ping.php | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/mod/acl.php b/mod/acl.php index 98ca90ded8..375c618c86 100755 --- a/mod/acl.php +++ b/mod/acl.php @@ -16,6 +16,8 @@ function acl_init(&$a){ if ($search!=""){ $sql_extra = "AND `name` LIKE '%%".dbesc($search)."%%'"; $sql_extra2 = "AND (`attag` LIKE '%%".dbesc($search)."%%' OR `name` LIKE '%%".dbesc($search)."%%' OR `nick` LIKE '%%".dbesc($search)."%%')"; + } else { + $sql_extra = $sql_extra2 = ""; } // count groups and contacts @@ -75,7 +77,7 @@ function acl_init(&$a){ if ($type=='' || $type=='c'){ - $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url` FROM `contact` + $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag` FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `notify` != '' $sql_extra2 ORDER BY `name` ASC ", diff --git a/mod/ping.php b/mod/ping.php index 0f6f0a9d68..7380ff7d05 100644 --- a/mod/ping.php +++ b/mod/ping.php @@ -26,9 +26,10 @@ function ping_init(&$a) { $dislikes = array(); $friends = array(); $posts = array(); - + $home = 0; + $network = 0; - $r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, + $r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`wall`, `item`.`author-name`, `item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object`, `pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink` FROM `item` INNER JOIN `item` as `pitem` ON `pitem`.`id`=`item`.`parent` From cbc6ca642a15d077e66e5cf9fe89a16521b3e6c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20H=C3=B6=C3=9Fl?= Date: Sun, 26 Feb 2012 20:41:41 +0000 Subject: [PATCH 31/56] 1 Bugfix (missing $ character) and avoid some notices --- include/conversation.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/conversation.php b/include/conversation.php index 3d13a11798..53369cf20f 100755 --- a/include/conversation.php +++ b/include/conversation.php @@ -232,7 +232,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { $alike = array(); $dlike = array(); - + $o = ""; // array with html for each thread (parent+comments) $threads = array(); @@ -436,7 +436,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { } else { // prevent private email from leaking into public conversation - if((! $toplevelpost) && (! toplevelprivate) && ($item['private']) && ($profile_owner != local_user())) + if((! $toplevelpost) && (! $toplevelprivate) && ($item['private']) && ($profile_owner != local_user())) continue; $comments_seen ++; } @@ -641,7 +641,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { $body = prepare_body($item,true); $tmp_item = replace_macros($template,array( - '$type' => implode("",array_slice(split("/",$item['verb']),-1)), + '$type' => implode("",array_slice(explode("/",$item['verb']),-1)), '$tags' => $tags, '$body' => template_escape($body), '$id' => $item['item_id'], From b102a1d5ecda36a9a48a841f06df9ef5d33fa46a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20H=C3=B6=C3=9Fl?= Date: Sun, 26 Feb 2012 20:43:23 +0000 Subject: [PATCH 32/56] is not always defined; but if defined, then always of type integer --- mod/photo.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/photo.php b/mod/photo.php index a5a5a1dc17..c4a93769af 100755 --- a/mod/photo.php +++ b/mod/photo.php @@ -119,7 +119,7 @@ function photo_init(&$a) { // NOTREACHED } - if(intval($customres) && $customres > 0 && $customres < 500) { + if(isset($customres) && $customres > 0 && $customres < 500) { require_once('include/Photo.php'); $ph = new Photo($data); if($ph->is_valid()) { From ac86407fdf34b0bb872da017231a8c23a84f277b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20H=C3=B6=C3=9Fl?= Date: Sun, 26 Feb 2012 20:43:35 +0000 Subject: [PATCH 33/56] Bugfix --- include/text.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/text.php b/include/text.php index 0f7d2f731c..1f5d4a3e12 100755 --- a/include/text.php +++ b/include/text.php @@ -996,7 +996,7 @@ function lang_selector() { } $ll = substr($l,5); $ll = substr($ll,0,strrpos($ll,'/')); - $selected = (($ll === $lang && (x($_SESSION['language']))) ? ' selected="selected" ' : ''); + $selected = (($ll === $lang && (x($_SESSION, 'language'))) ? ' selected="selected" ' : ''); $o .= ''; } } From 4b1de0f538e6d3f48e2a4d1e82522aced6b08129 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20H=C3=B6=C3=9Fl?= Date: Sun, 26 Feb 2012 20:43:51 +0000 Subject: [PATCH 34/56] Avoid some notices --- include/event.php | 2 +- include/items.php | 6 +++--- include/template_processor.php | 15 ++++++++------- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/include/event.php b/include/event.php index c7669b381c..4a9a9a0041 100755 --- a/include/event.php +++ b/include/event.php @@ -163,7 +163,7 @@ function bbtoevent($s) { if(preg_match("/\[event\-adjust\](.*?)\[\/event\-adjust\]/is",$s,$match)) $ev['adjust'] = $match[1]; $match = ''; - $ev['nofinish'] = (($ev['start'] && (! $ev['finish'])) ? 1 : 0); + $ev['nofinish'] = (($ev['start'] && (!x($ev, 'finish') || !$ev['finish'])) ? 1 : 0); return $ev; } diff --git a/include/items.php b/include/items.php index c461b83b49..7d52571c25 100755 --- a/include/items.php +++ b/include/items.php @@ -308,7 +308,7 @@ function get_atom_elements($feed,$item) { if($rawauthor && $rawauthor[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['link']) { $base = $rawauthor[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['link']; foreach($base as $link) { - if(! $res['author-avatar']) { + if(!x($res, 'author-avatar') || !$res['author-avatar']) { if($link['attribs']['']['rel'] === 'photo' || $link['attribs']['']['rel'] === 'avatar') $res['author-avatar'] = unxmlify($link['attribs']['']['href']); } @@ -323,7 +323,7 @@ function get_atom_elements($feed,$item) { foreach($base as $link) { if($link['attribs']['']['rel'] === 'alternate' && (! $res['author-link'])) $res['author-link'] = unxmlify($link['attribs']['']['href']); - if(! $res['author-avatar']) { + if(!x($res, 'author-avatar') || !$res['author-avatar']) { if($link['attribs']['']['rel'] === 'avatar' || $link['attribs']['']['rel'] === 'photo') $res['author-avatar'] = unxmlify($link['attribs']['']['href']); } @@ -503,7 +503,7 @@ function get_atom_elements($feed,$item) { $base = $rawowner[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['link']; foreach($base as $link) { - if(! $res['owner-avatar']) { + if(!x($res, 'owner-avatar') || !$res['owner-avatar']) { if($link['attribs']['']['rel'] === 'photo' || $link['attribs']['']['rel'] === 'avatar') $res['owner-avatar'] = unxmlify($link['attribs']['']['href']); } diff --git a/include/template_processor.php b/include/template_processor.php index 0d476f0e6e..7f270fb4b3 100755 --- a/include/template_processor.php +++ b/include/template_processor.php @@ -32,11 +32,12 @@ if(is_array($r) && count($r)) { foreach ($r as $k => $v ) { - if (is_array($v)) + if (is_array($v)) { $this->_build_replace($v, "$prefix$k."); - - $this->search[] = $prefix . $k; - $this->replace[] = $v; + } else { + $this->search[] = $prefix . $k; + $this->replace[] = $v; + } } } } @@ -53,7 +54,7 @@ $keys = array_map('trim',explode(".",$name)); $val = $this->r; foreach($keys as $k) { - $val = $val[$k]; + $val = (isset($val[$k]) ? $val[$k] : null); } return $val; } @@ -79,8 +80,8 @@ } else { $val = $this->_get_var($args[2]); } - list($strue, $sfalse)= preg_split("|{{ *else *}}|", $args[3]); - return ($val?$strue:$sfalse); + $x = preg_split("|{{ *else *}}|", $args[3]); + return ( $val ? $x[0] : (isset($x[1]) ? $x[1] : "")); } /** From bdb14d5aadce2f0a2f6dc9c898287ea424642dd8 Mon Sep 17 00:00:00 2001 From: friendica Date: Sun, 26 Feb 2012 14:34:01 -0800 Subject: [PATCH 35/56] relative link redirects --- boot.php | 2 +- include/Scrape.php | 19 +++++++++++++------ include/network.php | 19 ++++++++++++------- 3 files changed, 26 insertions(+), 14 deletions(-) diff --git a/boot.php b/boot.php index 54f318e5e9..f348ae6e89 100755 --- a/boot.php +++ b/boot.php @@ -9,7 +9,7 @@ require_once('include/nav.php'); require_once('include/cache.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); -define ( 'FRIENDICA_VERSION', '2.3.1263' ); +define ( 'FRIENDICA_VERSION', '2.3.1264' ); define ( 'DFRN_PROTOCOL_VERSION', '2.22' ); define ( 'DB_UPDATE_VERSION', 1126 ); diff --git a/include/Scrape.php b/include/Scrape.php index 52405ae2dd..1835892eb0 100755 --- a/include/Scrape.php +++ b/include/Scrape.php @@ -230,11 +230,16 @@ function scrape_feed($url) { $ret = array(); $s = fetch_url($url); - if(! $s) - return $ret; - $headers = $a->get_curl_headers(); - logger('scrape_feed: headers=' . $headers, LOGGER_DEBUG); + $code = $a->get_curl_code(); + + logger('scrape_feed: returns: ' . $code . ' headers=' . $headers, LOGGER_DEBUG); + + if(! $s) { + logger('scrape_feed: no data returned for ' . $url); + return $ret; + } + $lines = explode("\n",$headers); if(count($lines)) { @@ -258,8 +263,10 @@ function scrape_feed($url) { logger('scrape_feed: parse error: ' . $e); } - if(! $dom) + if(! $dom) { + logger('scrape_feed: failed to parse.'); return $ret; + } $head = $dom->getElementsByTagName('base'); @@ -556,7 +563,7 @@ function probe_url($url, $mode = PROBE_NORMAL) { if($check_feed) { $feedret = scrape_feed(($poll) ? $poll : $url); - logger('probe_url: scrape_feed returns: ' . print_r($feedret,true), LOGGER_DATA); + logger('probe_url: scrape_feed ' . (($poll)? $poll : $url) . ' returns: ' . print_r($feedret,true), LOGGER_DATA); if(count($feedret) && ($feedret['feed_atom'] || $feedret['feed_rss'])) { $poll = ((x($feedret,'feed_atom')) ? unamp($feedret['feed_atom']) : unamp($feedret['feed_rss'])); if(! x($vcard)) diff --git a/include/network.php b/include/network.php index 531c3ea4c8..c72919dd8b 100755 --- a/include/network.php +++ b/include/network.php @@ -17,7 +17,7 @@ function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accept_ if (!is_null($accept_content)){ curl_setopt($ch,CURLOPT_HTTPHEADER, array ( - "Accept: "+$accept_content + "Accept: " . $accept_content )); } @@ -60,6 +60,7 @@ function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accept_ $curl_info = @curl_getinfo($ch); $http_code = $curl_info['http_code']; +// logger('fetch_url:' . $http_code . ' data: ' . $s); $header = ''; // Pull out multiple headers, e.g. proxy and continuation headers @@ -74,11 +75,13 @@ function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accept_ if($http_code == 301 || $http_code == 302 || $http_code == 303 || $http_code == 307) { $matches = array(); preg_match('/(Location:|URI:)(.*?)\n/', $header, $matches); - $url = trim(array_pop($matches)); - $url_parsed = @parse_url($url); + $newurl = trim(array_pop($matches)); + if(strpos($newurl,'/') === 0) + $newurl = $url . $newurl; + $url_parsed = @parse_url($newurl); if (isset($url_parsed)) { $redirects++; - return fetch_url($url,$binary,$redirects,$timeout); + return fetch_url($newurl,$binary,$redirects,$timeout); } } @@ -163,11 +166,13 @@ function post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0) if($http_code == 301 || $http_code == 302 || $http_code == 303) { $matches = array(); preg_match('/(Location:|URI:)(.*?)\n/', $header, $matches); - $url = trim(array_pop($matches)); - $url_parsed = @parse_url($url); + $newurl = trim(array_pop($matches)); + if(strpos($newurl,'/') === 0) + $newurl = $url . $newurl; + $url_parsed = @parse_url($newurl); if (isset($url_parsed)) { $redirects++; - return post_url($url,$params,$headers,$redirects,$timeout); + return fetch_url($newurl,$binary,$redirects,$timeout); } } $a->set_curl_code($http_code); From fe3dfbee5638dd2988bd8b126652b3138572f02c Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 26 Feb 2012 23:39:29 +0100 Subject: [PATCH 36/56] Mail: New options for actions after importing mails. --- boot.php | 2 +- database.sql | 3 +- include/poller.php | 46 ++++++++++++++++++++++++------- mod/settings.php | 53 +++++++++++++++++++++--------------- update.php | 6 +++- view/settings_connectors.tpl | 2 ++ view/theme/vier/style.css | 13 +++++---- 7 files changed, 84 insertions(+), 41 deletions(-) diff --git a/boot.php b/boot.php index 54f318e5e9..e9f9efd70d 100755 --- a/boot.php +++ b/boot.php @@ -11,7 +11,7 @@ require_once('include/cache.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); define ( 'FRIENDICA_VERSION', '2.3.1263' ); define ( 'DFRN_PROTOCOL_VERSION', '2.22' ); -define ( 'DB_UPDATE_VERSION', 1126 ); +define ( 'DB_UPDATE_VERSION', 1127 ); define ( 'EOL', "
    \r\n" ); define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); diff --git a/database.sql b/database.sql index 9ad96ca77d..ced646f595 100755 --- a/database.sql +++ b/database.sql @@ -634,7 +634,8 @@ CREATE TABLE IF NOT EXISTS `mailacct` ( `mailbox` CHAR( 255 ) NOT NULL, `user` CHAR( 255 ) NOT NULL , `pass` TEXT NOT NULL , -`reply_to` CHAR( 255 ) NOT NULL , +`action` INT NOT NULL , +`movetofolder` CHAR(255) NOT NULL , `pubmail` TINYINT(1) NOT NULL DEFAULT '0', `last_check` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' ) ENGINE = MyISAM DEFAULT CHARSET=utf8; diff --git a/include/poller.php b/include/poller.php index d79079fcda..cfbc46b87e 100755 --- a/include/poller.php +++ b/include/poller.php @@ -454,11 +454,24 @@ function poller_run($argv, $argc){ intval($r[0]['id']) ); } - //logger("Mail: Deleting ".$msg_uid); - //imap_delete($mbox, $msg_uid, FT_UID); - imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID); - logger("Mail: Moving ".$msg_uid); - imap_mail_move($mbox, $msg_uid, "Archiv", FT_UID); + switch ($mailconf[0]['action']) { + case 0: + break; + case 1: + logger("Mail: Deleting ".$msg_uid); + imap_delete($mbox, $msg_uid, FT_UID); + break; + case 2: + logger("Mail: Mark as seen ".$msg_uid); + imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID); + break; + case 3: + logger("Mail: Moving ".$msg_uid." to ".$mailconf[0]['movetofolder']); + imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID); + if ($mailconf[0]['movetofolder'] != "") + imap_mail_move($mbox, $msg_uid, $mailconf[0]['movetofolder'], FT_UID); + break; + } continue; } @@ -520,11 +533,24 @@ function poller_run($argv, $argc){ q("UPDATE `item` SET `last-child` = 1 WHERE `id` = %d LIMIT 1", intval($stored_item) ); - //logger("Mail: Deleting ".$msg_uid); - //imap_delete($mbox, $msg_uid, FT_UID); - imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID); - logger("Mail: Moving ".$msg_uid); - imap_mail_move($mbox, $msg_uid, "Archiv", FT_UID); + switch ($mailconf[0]['action']) { + case 0: + break; + case 1: + logger("Mail: Deleting ".$msg_uid); + imap_delete($mbox, $msg_uid, FT_UID); + break; + case 2: + logger("Mail: Mark as seen ".$msg_uid); + imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID); + break; + case 3: + logger("Mail: Moving ".$msg_uid." to ".$mailconf[0]['movetofolder']); + imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID); + if ($mailconf[0]['movetofolder'] != "") + imap_mail_move($mbox, $msg_uid, $mailconf[0]['movetofolder'], FT_UID); + break; + } } } diff --git a/mod/settings.php b/mod/settings.php index 91f4325dad..90eb9dbd78 100755 --- a/mod/settings.php +++ b/mod/settings.php @@ -110,13 +110,15 @@ function settings_post(&$a) { if(($a->argc > 1) && ($a->argv[1] == 'connectors')) { if(x($_POST['imap-submit'])) { - $mail_server = ((x($_POST,'mail_server')) ? $_POST['mail_server'] : ''); - $mail_port = ((x($_POST,'mail_port')) ? $_POST['mail_port'] : ''); - $mail_ssl = ((x($_POST,'mail_ssl')) ? strtolower(trim($_POST['mail_ssl'])) : ''); - $mail_user = ((x($_POST,'mail_user')) ? $_POST['mail_user'] : ''); - $mail_pass = ((x($_POST,'mail_pass')) ? trim($_POST['mail_pass']) : ''); - $mail_replyto = ((x($_POST,'mail_replyto')) ? $_POST['mail_replyto'] : ''); - $mail_pubmail = ((x($_POST,'mail_pubmail')) ? $_POST['mail_pubmail'] : ''); + $mail_server = ((x($_POST,'mail_server')) ? $_POST['mail_server'] : ''); + $mail_port = ((x($_POST,'mail_port')) ? $_POST['mail_port'] : ''); + $mail_ssl = ((x($_POST,'mail_ssl')) ? strtolower(trim($_POST['mail_ssl'])) : ''); + $mail_user = ((x($_POST,'mail_user')) ? $_POST['mail_user'] : ''); + $mail_pass = ((x($_POST,'mail_pass')) ? trim($_POST['mail_pass']) : ''); + $mail_action = ((x($_POST,'mail_action')) ? trim($_POST['mail_action']) : ''); + $mail_movetofolder = ((x($_POST,'mail_movetofolder')) ? trim($_POST['mail_movetofolder']) : ''); + $mail_replyto = ((x($_POST,'mail_replyto')) ? $_POST['mail_replyto'] : ''); + $mail_pubmail = ((x($_POST,'mail_pubmail')) ? $_POST['mail_pubmail'] : ''); $mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1); @@ -142,11 +144,14 @@ function settings_post(&$a) { ); } $r = q("UPDATE `mailacct` SET `server` = '%s', `port` = %d, `ssltype` = '%s', `user` = '%s', + `action` = %d, `movetofolder` = '%s', `mailbox` = 'INBOX', `reply_to` = '%s', `pubmail` = %d WHERE `uid` = %d LIMIT 1", dbesc($mail_server), intval($mail_port), dbesc($mail_ssl), dbesc($mail_user), + intval($mail_action), + dbesc($mail_movetofolder), dbesc($mail_replyto), intval($mail_pubmail), intval(local_user()) @@ -218,8 +223,8 @@ function settings_post(&$a) { $openid = ((x($_POST,'openid_url')) ? notags(trim($_POST['openid_url'])) : ''); $maxreq = ((x($_POST,'maxreq')) ? intval($_POST['maxreq']) : 0); $expire = ((x($_POST,'expire')) ? intval($_POST['expire']) : 0); - - + + $expire_items = ((x($_POST,'expire_items')) ? intval($_POST['expire_items']) : 0); $expire_notes = ((x($_POST,'expire_notes')) ? intval($_POST['expire_notes']) : 0); $expire_starred = ((x($_POST,'expire_starred')) ? intval($_POST['expire_starred']) : 0); @@ -561,23 +566,25 @@ function settings_content(&$a) { $r = null; } - $mail_server = ((count($r)) ? $r[0]['server'] : ''); - $mail_port = ((count($r) && intval($r[0]['port'])) ? intval($r[0]['port']) : ''); - $mail_ssl = ((count($r)) ? $r[0]['ssltype'] : ''); - $mail_user = ((count($r)) ? $r[0]['user'] : ''); - $mail_replyto = ((count($r)) ? $r[0]['reply_to'] : ''); - $mail_pubmail = ((count($r)) ? $r[0]['pubmail'] : 0); - $mail_chk = ((count($r)) ? $r[0]['last_check'] : '0000-00-00 00:00:00'); + $mail_server = ((count($r)) ? $r[0]['server'] : ''); + $mail_port = ((count($r) && intval($r[0]['port'])) ? intval($r[0]['port']) : ''); + $mail_ssl = ((count($r)) ? $r[0]['ssltype'] : ''); + $mail_user = ((count($r)) ? $r[0]['user'] : ''); + $mail_replyto = ((count($r)) ? $r[0]['reply_to'] : ''); + $mail_pubmail = ((count($r)) ? $r[0]['pubmail'] : 0); + $mail_action = ((count($r)) ? $r[0]['action'] : 0); + $mail_movetofolder = ((count($r)) ? $r[0]['movetofolder'] : ''); + $mail_chk = ((count($r)) ? $r[0]['last_check'] : '0000-00-00 00:00:00'); + - $tpl = get_markup_template("settings_connectors.tpl"); $o .= replace_macros($tpl, array( '$title' => t('Connector Settings'), '$tabs' => $tabs, - + '$diasp_enabled' => $diasp_enabled, '$ostat_enabled' => $ostat_enabled, - + '$h_imap' => t('Email/Mailbox Setup'), '$imap_desc' => t("If you wish to communicate with email contacts using this service \x28optional\x29, please specify how to connect to your mailbox."), '$imap_lastcheck' => array('imap_lastcheck', t('Last successful email check:'), $mail_chk,''), @@ -589,8 +596,10 @@ function settings_content(&$a) { '$mail_pass' => array('mail_pass', t('Email password:'), '', ''), '$mail_replyto' => array('mail_replyto', t('Reply-to address:'), '', 'Optional'), '$mail_pubmail' => array('mail_pubmail', t('Send public posts to all email contacts:'), $mail_pubmail, ''), - '$submit' => t('Submit'), - + '$mail_action' => array('mail_action', t('Action after import:'), $mail_action, '', array(0=>t('None'), 1=>t('Delete'), 2=>t('Mark as seen'), 3=>t('Move to folder'))), + '$mail_movetofolder' => array('mail_movetofolder', t('Move to folder:'), $mail_movetofolder, ''), + '$submit' => t('Submit'), + '$settings_connectors' => $settings_connectors @@ -598,7 +607,7 @@ function settings_content(&$a) { return $o; } - + require_once('include/acl_selectors.php'); $p = q("SELECT * FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1", diff --git a/update.php b/update.php index 18dc90cce0..8a2d891cab 100755 --- a/update.php +++ b/update.php @@ -1,6 +1,6 @@ diff --git a/view/theme/vier/style.css b/view/theme/vier/style.css index 5ffb02f48b..39f4ffea47 100644 --- a/view/theme/vier/style.css +++ b/view/theme/vier/style.css @@ -593,15 +593,15 @@ nav #nav-apps-link.selected { #nav-notifications-mark-all { /* padding: 1px 1px 2px 26px; */ /* border-bottom: 1px solid #364E59; */ - margin: 0px 0px 2px 0px; - padding: 5px 10px; + /* margin: 0px 0px 2px 0px; + padding: 5px 10px; */ } #nav-notifications-see-all { /* padding: 1px 1px 2px 26px; */ /* border-bottom: 1px solid #364E59; */ - margin: 0px 0px 2px 0px; - padding: 5px 10px; + /* margin: 0px 0px 2px 0px; + padding: 5px 10px; */ } ul.menu-popup { @@ -677,14 +677,14 @@ ul.menu-popup .empty { max-height: 550px; overflow: auto; } -#nav-notifications-menu a { +/* #nav-notifications-menu a { display: inline; padding: 5px 0px; margin: 0px 0px 2px 0px; } #nav-notifications-menu li:hover { background-color: #bdcdd4; -} +}*/ #nav-notifications-menu img { float: left; @@ -1054,6 +1054,7 @@ section { .shiny { /* border-right: 10px solid #fce94f; */ border-right: 1px solid #A7C7F7; + padding-right: 12px; } #jot-preview-content .tread-wrapper { background-color: #fce94f; From a1861d1128aacc1ab98b33a1d035bfc27c9979f5 Mon Sep 17 00:00:00 2001 From: friendica Date: Sun, 26 Feb 2012 16:29:06 -0800 Subject: [PATCH 37/56] tagging missing from wallwall and a couple of themes, star missing from dispy --- include/conversation.php | 14 ++++++++++++-- mod/tagger.php | 1 + view/theme/dispy/premium.png | Bin 0 -> 2317 bytes view/theme/dispy/star.png | Bin 0 -> 2129 bytes view/theme/dispy/style.css | 15 +++++++++++++++ view/theme/dispy/tag.png | Bin 0 -> 535 bytes view/theme/dispy/wall_item.tpl | 1 + view/theme/dispy/wallwall_item.tpl | 1 + view/theme/duepuntozero/wallwall_item.tpl | 1 + view/theme/loozah/wall_item.tpl | 2 ++ view/theme/loozah/wallwall_item.tpl | 1 + view/theme/vier/wallwall_item.tpl | 1 + view/wallwall_item.tpl | 2 ++ 13 files changed, 37 insertions(+), 2 deletions(-) create mode 100755 view/theme/dispy/premium.png create mode 100755 view/theme/dispy/star.png create mode 100644 view/theme/dispy/tag.png diff --git a/include/conversation.php b/include/conversation.php index 53369cf20f..2ef37694dc 100755 --- a/include/conversation.php +++ b/include/conversation.php @@ -6,6 +6,11 @@ function localize_item(&$item){ $Text = $item['body']; + + + // find private image (w/data url) if present and convert image + // link to a magic-auth redirect. + $saved_image = ''; $img_start = strpos($Text,'[img]data:'); $img_end = strpos($Text,'[/img]'); @@ -403,6 +408,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { $toplevelprivate = false; // Take care of author collapsing and comment collapsing + // (author collapsing is currently disabled) // If a single author has more than 3 consecutive top-level posts, squash the remaining ones. // If there are more than two comments, squash all but the last 2. @@ -410,7 +416,9 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { $toplevelprivate = (($toplevelpost && $item['private']) ? true : false); $item_writeable = (($item['writable'] || $item['self']) ? true : false); - /*if($blowhard == $item['cid'] && (! $item['self']) && ($mode != 'profile') && ($mode != 'notes')) { + // DISABLED + /* + if($blowhard == $item['cid'] && (! $item['self']) && ($mode != 'profile') && ($mode != 'notes')) { $blowhard_count ++; if($blowhard_count == 3) { $o .= '