Merge commit 'upstream/master'

This commit is contained in:
Michael Vogel 2012-03-09 11:41:23 +01:00
commit 11c29e0cba
255 changed files with 20796 additions and 3539 deletions

8
.gitignore vendored
View File

@ -10,3 +10,11 @@ home.html
addon
*~
#ignore documentation, it should be newly built
doc/api
#ignore config files from eclipse, we don't want IDE files in our repository
.project
.buildpath
.externalToolBuilders
.settings

0
view/theme/dispy/experimental → .gitmodules vendored Executable file → Normal file
View File

View File

@ -1,4 +1,4 @@
Copyright (c) 2010, 2011 the Friendica Project
Copyright (c) 2010-2012 the Friendica Project
All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy

11
README
View File

@ -0,0 +1,11 @@
Friendica Social Communications Server
======================================
http://friendica.com
Welcome to the free social web.
Friendica is a communications platform for integrated social communications utilising decentralised communications and linkage to several indie social projects - as well as popular mainstream providers.
Our mission is to free our friends and families from the clutches of data-harvesting corporations, and pave the way to a future where social communications are free and open and flow between alternate providers as easily as email does today.

View File

@ -9,9 +9,9 @@ require_once('include/nav.php');
require_once('include/cache.php');
define ( 'FRIENDICA_PLATFORM', 'Friendica');
define ( 'FRIENDICA_VERSION', '2.3.1264' );
define ( 'FRIENDICA_VERSION', '2.3.1275' );
define ( 'DFRN_PROTOCOL_VERSION', '2.22' );
define ( 'DB_UPDATE_VERSION', 1128 );
define ( 'DB_UPDATE_VERSION', 1131 );
define ( 'EOL', "<br />\r\n" );
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );

38
build.xml Normal file
View File

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="friendica" default="test">
<!-- =================================== -->
<!-- Target: test -->
<!-- this target runs all test files -->
<!-- =================================== -->
<target name="test">
<!-- there are no tests by now, so, nothing to do -->
</target>
<!-- ===================================================== -->
<!-- Target: clean-doc -->
<!-- this target removes documentation from a previous run -->
<!-- ===================================================== -->
<target name="doc-clean">
<echo msg="Removing old documentation..." />
<delete dir="./doc/api/" />
<echo msg="Generate documentation directory..." />
<mkdir dir="./doc/api/" />
</target>
<!-- ====================================== -->
<!-- Target: doc -->
<!-- this target builds all documentation -->
<!-- ====================================== -->
<target name="doc" depends="doc-clean">
<echo msg="Building documentation..." />
<docblox title="Friendica API" destdir="./doc/api">
<fileset dir=".">
<include name="**/*.php" />
</fileset>
</docblox>
</target>
</project>

View File

@ -216,6 +216,7 @@ CREATE TABLE IF NOT EXISTS `item` (
`tag` mediumtext NOT NULL,
`attach` mediumtext NOT NULL,
`inform` mediumtext NOT NULL,
`file` mediumtext NOT NULL,
`location` char(255) NOT NULL,
`coord` char(255) NOT NULL,
`allow_cid` mediumtext NOT NULL,
@ -262,6 +263,7 @@ CREATE TABLE IF NOT EXISTS `item` (
FULLTEXT KEY `title` (`title`),
FULLTEXT KEY `body` (`body`),
FULLTEXT KEY `tag` (`tag`),
FULLTEXT KEY `file` (`file`),
FULLTEXT KEY `allow_cid` (`allow_cid`),
FULLTEXT KEY `allow_gid` (`allow_gid`),
FULLTEXT KEY `deny_cid` (`deny_cid`),
@ -752,14 +754,18 @@ CREATE TABLE IF NOT EXISTS `notify` (
`msg` MEDIUMTEXT NOT NULL ,
`uid` INT NOT NULL ,
`link` CHAR( 255 ) NOT NULL ,
`parent` INT( 11 ) NOT NULL,
`seen` TINYINT( 1 ) NOT NULL DEFAULT '0',
`verb` CHAR( 255 ) NOT NULL,
`otype` CHAR( 16 ) NOT NULL,
INDEX ( `hash` ),
INDEX ( `type` ),
INDEX ( `uid` ),
INDEX ( `link` ),
INDEX ( `parent` ),
INDEX ( `seen` ),
INDEX ( `date` )
INDEX ( `date` ),
INDEX ( `otype` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `item_id` (
@ -844,6 +850,7 @@ CREATE TABLE IF NOT EXISTS `spam` (
`spam` INT NOT NULL DEFAULT '0',
`ham` INT NOT NULL DEFAULT '0',
`term` CHAR(255) NOT NULL,
`date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
INDEX ( `uid` ),
INDEX ( `spam` ),
INDEX ( `ham` ),

View File

@ -6,7 +6,9 @@ Account Basics
**Registration**
Not all Friendica sites allow open registration. If registration is allowed, you will see a "Register" link immediately below the login prompts on the site home page. Following this link will take you to the site Registration page.
Not all Friendica sites allow open registration. If registration is allowed, you will see a "Register" link immediately below the login prompts on the site home page. Following this link will take you to the site registration page. The strength of our network is that lots of different sites are all completely compatible with each other. If the site you're visting doesn't allow registration, or you think you might prefer another one, you can find a <a href ="http://dir.friendica.com/siteinfo">list of public servers here</a>, and find one that meets your needs.
If you'd like to have your own server, you can do that too. Visit <a href = "http://friendica.com/download">the Friendica website</a> to download the code with setup instructions. It's a very simple install process that anybody experienced in hosting websites, or with basic Linux experience can handle easily.
*OpenID*
@ -14,11 +16,11 @@ The first field on the Registration page is for an OpenID address. If you do not
*Your Full Name*
Please provide your full name as you would like it to be displayed on this system.
Please provide your full name **as you would like it to be displayed on this system**. Most people use their real name for this, but you're under no obligation to do so yourself.
*Email Address*
Please provide a valid email address. Your email address is **never** published. We need this to send you account information and your login details. You may also occasionally receive notifications of incoming messages or items requiring your attention, but you have the ability to completely disable these from your Settings page once you have logged in.
Please provide a valid email address. Your email address is **never** published. We need this to send you account information and your login details. You may also occasionally receive notifications of incoming messages or items requiring your attention, but you have the ability to completely disable these from your Settings page once you have logged in. This doesn't have to be your primary email address, but it does need to be a real email address. You can't get your initial password, or reset a lost password later without it. This is the only bit of personal information that has to be accurate.
*Nickname*
@ -28,12 +30,12 @@ A nickname is used to generate web addresses for many of your personal pages, an
*Directory Publishing*
The Registration form also allows you to choose whether or not to list your account in the online directory. This is like a "phone book" and you may choose to be unlisted. We recommend that you select 'Yes' so that other people (friends, family, etc.) will be able to find you. If you choose 'No', you will essentially be invisible and have few opportunities for interaction. Whichever you choose, this can be changed any time from your Settings page after you login.
The Registration form also allows you to choose whether or not to list your account in the online directory. This is like a "phone book" and you may choose to be unlisted. We recommend that you select 'Yes' so that other people (friends, family, etc.) will be able to find you. If you choose 'No', you will essentially be invisible and have few opportunities for interaction. Whichever you choose, this can be changed any time from your Settings page after you login.
*Register*
Once you have provided the necessary details, click the 'Register' button. An email will be sent to you providing your account login details. Some sites may require administrator approval before the registration is processed, and you will be alerted if this is the case. Please watch your email (including spam folders) for your registration approval.
Once you have provided the necessary details, click the 'Register' button. An email will be sent to you providing your account login details. Please watch your email (including spam folders) for your registration details and initial password.
@ -58,6 +60,11 @@ After your first login, please visit the 'Settings' page from the top menu bar a
A ['Tips for New Members'](newmember) link will show up on your home page for two weeks to provide some important Getting Started information.
**Retrieving Personal Data**
You can export a copy of your personal data in XML format from the "Export personal data" link at the top of your settings page.
**See Also**
* [Profiles](help/Profiles)
@ -66,4 +73,3 @@ A ['Tips for New Members'](newmember) link will show up on your home page for tw
* [Remove Account](help/Remove-Account)

View File

@ -4,18 +4,19 @@ Bugs and Issues
* [Home](help)
Please report any bugs/issues you encounter using our bug tracker at [[http://bugs.friendica.com]]
If your server has a support page, you should report any bugs/issues you encounter there first. Reporting to your support page before reporting to the developers makes their job easier, as they don't have to deal with bug reports that might not have anything to do with them, and that helps us get new features faster.
Try to provide as much information as you can about the bug (including the full text of any error messages or notices), and if possible your Friendica version.
If you're a technical user, or your site doesn't have a support page, you'll need to use the <a href = "http://bugs.friendica.com/">Bug Tracker</a>. Please perform a search to see if there's already an open bug that matches yours before submitting anything.
Your Friendica version may be found in newer releases by visiting http://YOURFRIENDICASITE/friendica
Try to provide as much information as you can about the bug, including the **full** text of any error messages or notices, and any steps required to replicate the problem in as much detail as possible. It's generally better to provide too much information than not enough.
For older versions, view the HTML source of your profile page. The Friendica version is in the HTML header, 5-10 lines from the top of the page.
<a href = "http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">See this article</a> to learn more about submitting **good** bug reports.
For really old versions which don't have a version number in the HTML header - please upgrade. Your bug was probably fixed a long time ago.
**Bug Sponsorship**
If you find a bug, and it is caused by a problem in main branch (ie, is not specific to our site), you may sponsor it.
The bug/issue database allows you to sponsor issues. This provides an incentive for developers to work on your issue. This isn't necessary - we don't like bugs and will try to fix them. This has more importance for future development projects and feature requests.
Bug sponsorship works on the honour system. If you agree to pay $10 to fix a bug, when the fix has been checked in and verified you should send a paypal payment to the developer assigned to the bug. Don't ever think you can get away with not paying a developer for work performed. Some of these guys could hack into your credit card account if you make them mad.

View File

@ -5,7 +5,13 @@ Making Friends
Friendship in Friendica can take on a great many different meanings. But let's keep it simple, you want to be friends with somebody. How do you do it?
The first thing you can do is look at the Directory for somebody you would like to connect with. Visit their profile. Just beneath their profile picture will be the word 'Connect' (we're assuming this is an English language profile).
The easiest thing to do is to join the <a href = "http://kakste.com/profile/newhere">New Here</a> group. This group is especially for people new to the Friendica network. Simply connect to the group, post to the wall, and make new friends. You don't even have to like us - comment on a few of our posts, and other people will start to add you too.
The next thing you can do is look at the Directory. The directory is split up into two parts. If you click the directory button, you will be presented with a list of all members (who chose to be listed) on your server. You'll also see a link to the Global Directory. If you click through to the global directory, you will be presented with a list of everybody who chose to be listed across all instances of Friendica. You will also see a "Show Community Forums" link, which will direct you to Groups, Forums and Fanpages. You connect to people, groups and forums in the same way, except groups and forums will automatically accept your introduction request, whereas a human will approve you manually.
To connect with other Friendica user
Visit their profile. Just beneath their profile picture will be the word 'Connect' (we're assuming this is an English language profile).
Click that. It will take you to a "Connect" form.
@ -23,6 +29,7 @@ When you've submitted the connection page, it will take you back to your own sit
If you already know somebody's Identity Address, you can enter it in the "connect" box on your "Contacts" page. This will take you through a similar process.
**Alternate Networks**
You can also use your Identity Address or other people's Identity Addresses to become friends across networks. The list of possible networks is growing all the time. If you know (for instance) "bob" on identi.ca (a Status.Net site) you could put bob@identi.ca into your Contact page and become friends across networks. (Or you can put in the URL to Bob's identi.ca page if you wish). You can also be "partial" friends with somebody on Google Buzz by putting in their gmail address. Google Buzz does not yet support all the protocols we need for direct messaging, but you should be able to follow status updates from within Friendica. You can do the same for Twitter accounts and Diaspora accounts. In fact you can "follow" most anybody or any website that produces a syndication feed (RSS/Atom,etc.). If we can find an information stream and a name to attach to the contact, we'll try to connect with them.

View File

@ -5,9 +5,20 @@ Remove Account
We don't like to see people leave Friendica, but if you need to remove your account, you should visit the URL
http://friendica-site/removeme
http://sitename/removeme
with your web browser. You will need to be logged in at the time. (Replace "friendica-site" with the hostname of your Friendica server)
with your web browser. You will need to be logged in at the time.
You will be asked for your password to confirm the request. If this matches your stored password, your account will immediately be removed. Unlike some social networks we do **not** hold onto it for a grace period in case you change your mind. Your user details, your conversations, your photos, your friends - everything; will be removed immediately and you will be logged out.
When we expire posts we send notifications out to Friendica to remove the posts. Diaspora doesn't have a bulk delete so this step is skipped on that network - and hopefully it will be obvious that deletion doesn't work on any other networks. If you manually delete a post or a range of posts we send individual delete notifications to Friendica and Diaspora for each deleted post.
Diaspora often loses these.
If you delete a post but somebody else has starred it, it is still removed. Your wishes take priority.
When you remove your account we physically remove all your posts and your profile and user data, etc. immediately.
In order to send out a bulk remove we would need to keep your account around to do this, as we would need to prove to your friends who it is that is submitting the request. We can't do this if you don't have an account.
Your friends may still see your posts if your account is gone, but there is no public place within Friendica where they can be viewed. If you had friends on Diaspora, your public posts may stick around and be visible to others from that network.

13
docblox.dist.xml Normal file
View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<docblox>
<parser>
<target>data/output</target>
</parser>
<transformer>
<target>data/output</target>
</transformer>
<files>
<directory>.</directory>
</files>
</docblox>

View File

@ -69,7 +69,7 @@ $a->config['system']['rino_encrypt'] = true;
// allowed themes (change this from admin panel after installation)
$a->config['system']['allowed_themes'] = 'dispy,quattro,testbubble,vier,darkbubble,darkzero,duepuntozero,greenzero,purplezero,quattro-green,slackr';
$a->config['system']['allowed_themes'] = 'dispy,quattro,testbubble,vier,darkbubble,darkzero,duepuntozero,greenzero,purplezero,quattro-green,slackr,diabook,diabook-blue';
// default system theme

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1021 B

BIN
images/bug-x.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1003 B

BIN
images/smiley-beard.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 616 B

After

Width:  |  Height:  |  Size: 598 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 354 B

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 329 B

After

Width:  |  Height:  |  Size: 303 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 B

After

Width:  |  Height:  |  Size: 300 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 344 B

After

Width:  |  Height:  |  Size: 306 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 340 B

After

Width:  |  Height:  |  Size: 301 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 592 B

After

Width:  |  Height:  |  Size: 577 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 336 B

After

Width:  |  Height:  |  Size: 305 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 338 B

After

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 344 B

After

Width:  |  Height:  |  Size: 306 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 321 B

After

Width:  |  Height:  |  Size: 291 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 325 B

After

Width:  |  Height:  |  Size: 293 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 345 B

After

Width:  |  Height:  |  Size: 306 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 342 B

After

Width:  |  Height:  |  Size: 303 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 328 B

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 337 B

After

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 351 B

After

Width:  |  Height:  |  Size: 312 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 336 B

After

Width:  |  Height:  |  Size: 298 B

BIN
images/star.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 388 B

BIN
images/star_dummy.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 B

View File

@ -255,6 +255,11 @@ function scrape_feed($url) {
}
}
}
// perhaps an RSS version 1 feed with a generic or incorrect content-type?
if(stristr($s,'</item>')) {
$ret['feed_rss'] = $url;
return $ret;
}
}
try {

View File

@ -1,6 +1,11 @@
<?php
/**
*
*/
/**
* @package acl_selectors
*/
function group_select($selname,$selclass,$preselected = false,$size = 4) {
$a = get_app();

View File

@ -6,11 +6,6 @@
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]');
@ -184,8 +179,11 @@ function localize_item(&$item){
* that are based on unique features of the calling module.
*
*/
if(!function_exists('conversation')) {
function conversation(&$a, $items, $mode, $update, $preview = false) {
require_once('bbcode.php');
$profile_owner = 0;
@ -221,7 +219,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
if($update)
$return_url = $_SESSION['return_url'];
else
$return_url = $_SESSION['return_url'] = $a->cmd;
$return_url = $_SESSION['return_url'] = $a->query_string;
load_contact_links(local_user());
@ -231,13 +229,13 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
$items = $cb['items'];
$cmnt_tpl = get_markup_template('comment_item.tpl');
$tpl = get_markup_template('wall_item.tpl');
$wallwall = get_markup_template('wallwall_item.tpl');
$tpl = 'wall_item.tpl';
$wallwall = 'wallwall_item.tpl';
$hide_comments_tpl = get_markup_template('hide_comments.tpl');
$alike = array();
$dlike = array();
$o = "";
// array with html for each thread (parent+comments)
$threads = array();
@ -250,7 +248,8 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
// "New Item View" on network page or search page results
// - just loop through the items and format them minimally for display
$tpl = get_markup_template('search_item.tpl');
//$tpl = get_markup_template('search_item.tpl');
$tpl = 'search_item.tpl';
foreach($items as $item) {
$threadsid++;
@ -316,43 +315,46 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
$body = prepare_body($item,true);
$tmp_item = replace_macros($tpl,array(
'$id' => (($preview) ? 'P0' : $item['item_id']),
'$linktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['author-link'])) ? $item['author-link'] : $item['url'])),
'$profile_url' => $profile_link,
'$item_photo_menu' => item_photo_menu($item),
'$name' => template_escape($profile_name),
'$sparkle' => $sparkle,
'$lock' => $lock,
'$thumb' => $profile_avatar,
'$title' => template_escape($item['title']),
'$body' => template_escape($body),
'$ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])),
'$lock' => $lock,
'$location' => template_escape($location),
'$indent' => '',
'$owner_name' => template_escape($owner_name),
'$owner_url' => $owner_url,
'$owner_photo' => $owner_photo,
'$plink' => get_plink($item),
'$edpost' => false,
'$isstarred' => $isstarred,
'$star' => $star,
'$drop' => $drop,
'$vote' => $likebuttons,
'$like' => '',
'$dislike' => '',
'$comment' => '',
'$conv' => (($preview) ? '' : array('href'=> $a->get_baseurl() . '/display/' . $nickname . '/' . $item['id'], 'title'=> t('View in context'))),
'$previewing' => $previewing,
'$wait' => t('Please wait'),
));
//$tmp_item = replace_macros($tpl,array(
$tmp_item = array(
'template' => $tpl,
'id' => (($preview) ? 'P0' : $item['item_id']),
'linktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['author-link'])) ? $item['author-link'] : $item['url'])),
'profile_url' => $profile_link,
'item_photo_menu' => item_photo_menu($item),
'name' => template_escape($profile_name),
'sparkle' => $sparkle,
'lock' => $lock,
'thumb' => $profile_avatar,
'title' => template_escape($item['title']),
'body' => template_escape($body),
'text' => strip_tags(template_escape($body)),
'ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])),
'lock' => $lock,
'location' => template_escape($location),
'indent' => '',
'owner_name' => template_escape($owner_name),
'owner_url' => $owner_url,
'owner_photo' => $owner_photo,
'plink' => get_plink($item),
'edpost' => false,
'isstarred' => $isstarred,
'star' => $star,
'drop' => $drop,
'vote' => $likebuttons,
'like' => '',
'dislike' => '',
'comment' => '',
'conv' => (($preview) ? '' : array('href'=> $a->get_baseurl() . '/display/' . $nickname . '/' . $item['id'], 'title'=> t('View in context'))),
'previewing' => $previewing,
'wait' => t('Please wait'),
);
$arr = array('item' => $item, 'output' => $tmp_item);
call_hooks('display_item', $arr);
$threads[$threadsid]['id'] = $item['item_id'];
$threads[$threadsid]['html'] .= $arr['output'];
$threads[$threadsid]['items'] = array($arr['output']);
}
@ -385,6 +387,8 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
}
$comments_collapsed = false;
$comment_lastcollapsed = false;
$comment_firstcollapsed = false;
$blowhard = 0;
$blowhard_count = 0;
@ -416,39 +420,26 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
$toplevelprivate = (($toplevelpost && $item['private']) ? true : false);
$item_writeable = (($item['writable'] || $item['self']) ? true : false);
// DISABLED
/*
if($blowhard == $item['cid'] && (! $item['self']) && ($mode != 'profile') && ($mode != 'notes')) {
$blowhard_count ++;
if($blowhard_count == 3) {
$o .= '<div class="icollapse-wrapper fakelink" id="icollapse-wrapper-' . $item['parent']
. '" onclick="openClose(' . '\'icollapse-' . $item['parent'] . '\'); $(\'#icollapse-wrapper-' . $item['parent'] . '\').hide();" >'
. t('See more posts like this') . '</div>' . '<div class="icollapse" id="icollapse-'
. $item['parent'] . '" style="display: none;" >';
}
}
else {
$blowhard = $item['cid'];
if($blowhard_count >= 3)
$o .= '</div>';
$blowhard_count = 0;
}
// END DISABLED
*/
$comments_seen = 0;
$comments_collapsed = false;
$comment_lastcollapsed = false;
$comment_firstcollapsed = false;
$threadsid++;
$threads[$threadsid]['id'] = $item['item_id'];
$threads[$threadsid]['html'] = "";
$threads[$threadsid]['private'] = $item['private'];
$threads[$threadsid]['items'] = array();
}
else {
// prevent private email from leaking into public conversation
if((! $toplevelpost) && (! $toplevelprivate) && ($item['private']) && ($profile_owner != local_user()))
// prevent private email reply to public conversation from leaking.
if($item['private'] && ! $threads[$threadsid]['private'])
continue;
$comments_seen ++;
$comment_lastcollapsed = false;
$comment_firstcollapsed = false;
}
$override_comment_box = ((($page_writeable) && ($item_writeable)) ? true : false);
@ -456,23 +447,17 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
if(($comments[$item['parent']] > 2) && ($comments_seen <= ($comments[$item['parent']] - 2)) && ($item['gravity'] == 6)) {
if(! $comments_collapsed) {
// IMPORTANT: the closing </div> in the hide_comments template
// is supplied below in code.
$threads[$threadsid]['html'] .= replace_macros($hide_comments_tpl,array(
'$id' => $item['parent'],
'$num_comments' => sprintf( tt('%d comment','%d comments',$comments[$item['parent']]),
$comments[$item['parent']]),
'$display' => 'none',
'$hide_text' => t('show more')
));
if (!$comments_collapsed){
$threads[$threadsid]['num_comments'] = sprintf( tt('%d comment','%d comments',$comments[$item['parent']]),$comments[$item['parent']] );
$threads[$threadsid]['hide_text'] = t('show more');
$comments_collapsed = true;
$comment_firstcollapsed = true;
}
}
if(($comments[$item['parent']] > 2) && ($comments_seen == ($comments[$item['parent']] - 1))) {
$threads[$threadsid]['html'] .= '</div>';
$comment_lastcollapsed = true;
}
$redirect_url = $a->get_baseurl() . '/redir/' . $item['cid'] ;
@ -502,7 +487,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
$template = $wallwall;
$commentww = 'ww';
}
if((! $item['wall']) && (strlen($item['owner-link'])) && ($item['owner-link'] != $item['author-link'])) {
if((! $item['wall']) && (strlen($item['owner-link'])) && (! link_compare($item['owner-link'],$item['author-link']))) {
// Could be anybody.
@ -649,63 +634,72 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
// Build the HTML
$body = prepare_body($item,true);
//$tmp_item = replace_macros($template,
$tmp_item = array(
// collapse comments in template. I don't like this much...
'comment_firstcollapsed' => $comment_firstcollapsed,
'comment_lastcollapsed' => $comment_lastcollapsed,
// template to use to render item (wall, walltowall, search)
'template' => $template,
'type' => implode("",array_slice(split("/",$item['verb']),-1)),
'tags' => $tags,
'body' => template_escape($body),
'text' => strip_tags(template_escape($body)),
'id' => $item['item_id'],
'linktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['author-link'])) ? $item['author-link'] : $item['url'])),
'olinktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['owner-link'])) ? $item['owner-link'] : $item['url'])),
'to' => t('to'),
'wall' => t('Wall-to-Wall'),
'vwall' => t('via Wall-To-Wall:'),
'profile_url' => $profile_link,
'item_photo_menu' => item_photo_menu($item),
'name' => template_escape($profile_name),
'thumb' => $profile_avatar,
'osparkle' => $osparkle,
'sparkle' => $sparkle,
'title' => template_escape($item['title']),
'ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])),
'lock' => $lock,
'location' => template_escape($location),
'indent' => $indent,
'owner_url' => $owner_url,
'owner_photo' => $owner_photo,
'owner_name' => template_escape($owner_name),
'plink' => get_plink($item),
'edpost' => $edpost,
'isstarred' => $isstarred,
'star' => $star,
'drop' => $drop,
'vote' => $likebuttons,
'like' => $like,
'dislike' => $dislike,
'comment' => $comment,
'previewing' => $previewing,
'wait' => t('Please wait'),
$tmp_item = replace_macros($template,array(
'$type' => implode("",array_slice(explode("/",$item['verb']),-1)),
'$tags' => $tags,
'$body' => template_escape($body),
'$id' => $item['item_id'],
'$linktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['author-link'])) ? $item['author-link'] : $item['url'])),
'$olinktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['owner-link'])) ? $item['owner-link'] : $item['url'])),
'$to' => t('to'),
'$wall' => t('Wall-to-Wall'),
'$vwall' => t('via Wall-To-Wall:'),
'$profile_url' => $profile_link,
'$item_photo_menu' => item_photo_menu($item),
'$name' => template_escape($profile_name),
'$thumb' => $profile_avatar,
'$osparkle' => $osparkle,
'$sparkle' => $sparkle,
'$title' => template_escape($item['title']),
'$ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])),
'$lock' => $lock,
'$location' => template_escape($location),
'$indent' => $indent,
'$owner_url' => $owner_url,
'$owner_photo' => $owner_photo,
'$owner_name' => template_escape($owner_name),
'$plink' => get_plink($item),
'$edpost' => $edpost,
'$isstarred' => $isstarred,
'$star' => $star,
'$drop' => $drop,
'$vote' => $likebuttons,
'$like' => $like,
'$dislike' => $dislike,
'$comment' => $comment,
'$previewing' => $previewing,
'$wait' => t('Please wait'),
));
);
$arr = array('item' => $item, 'output' => $tmp_item);
call_hooks('display_item', $arr);
$threads[$threadsid]['html'] .= $arr['output'];
$threads[$threadsid]['items'][] = $arr['output'];
}
}
}
$page_template = get_markup_template("conversation.tpl");
$o .= replace_macros($page_template, array(
'$baseurl' => $a->get_baseurl(),
'$mode' => $mode,
'$user' => $a->user,
'$threads' => $threads,
'$dropping' => ($dropping?t('Delete Selected Items'):False),
));
return $o;
}
}}
function best_link_url($item,&$sparkle) {

View File

@ -25,9 +25,12 @@ function notification($params) {
$title = $body = '';
}
// e.g. "your post", "David's photo", etc.
$possess_desc = t('%s <!item_type!>');
if($params['type'] == NOTIFY_MAIL) {
$subject = sprintf( t('New mail received at %s'),$sitename);
$subject = sprintf( t('[Friendica:Notify] New mail received at %s'),$sitename);
$preamble = sprintf( t('%s sent you a new private message at %s.'),$params['source_name'],$sitename);
$epreamble = sprintf( t('%s sent you %s.'),'[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', '[url=$itemlink]' . t('a private message') . '[/url]');
@ -38,17 +41,43 @@ function notification($params) {
}
if($params['type'] == NOTIFY_COMMENT) {
logger("notification: params = " . print_r($params, true), LOGGER_DEBUG);
// logger("notification: params = " . print_r($params, true), LOGGER_DEBUG);
$parent_id = $params['parent'];
// if it's a post figure out who's post it is.
$p = null;
if($params['otype'] === 'item' && $parent_id) {
$p = q("select * from item where id = %d and uid = %d limit 1",
intval($parent_id),
intval($params['uid'])
);
}
$possess_desc = str_replace('<!item_type!>',item_post_type($p[0]),$possess_desc);
// "a post"
$dest_str = sprintf($possess_desc,'a');
// "George Bull's post"
if($p)
$dest_str = sprintf($possess_desc,sprintf( t("%s's"),$p[0]['author-name']));
// "your post"
if($p[0]['owner-name'] == $p[0]['author-name'] && $p[0]['wall'])
$dest_str = sprintf($possess_desc, t('your') );
// 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);
$subject = sprintf( t('[Friendica:Notify] Comment to conversation #%d by %s'), $parent_id, $params['source_name']);
$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]');
$epreamble = sprintf( t('%s commented on %s.'), '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', '[url=$itemlink]' . $dest_str . '[/url]');
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
$tsitelink = sprintf( $sitelink, $siteurl );
@ -57,7 +86,10 @@ function notification($params) {
}
if($params['type'] == NOTIFY_WALL) {
$preamble = $subject = sprintf( t('%s posted to your profile wall at %s') , $params['source_name'], $sitename);
$subject = sprintf( t('[Friendica:Notify] %s posted to your profile wall') , $params['source_name']);
$preamble = sprintf( t('%s posted to your profile wall at %s') , $params['source_name'], $sitename);
$epreamble = sprintf( t('%s posted to %s') , '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', '[url=$itemlink]' . t('your profile wall.') . '[/url]');
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
@ -67,7 +99,8 @@ function notification($params) {
}
if($params['type'] == NOTIFY_TAGSELF) {
$preamble = $subject = sprintf( t('%s tagged you at %s') , $params['source_name'], $sitename);
$subject = sprintf( t('[Friendica:Notify] %s tagged you') , $params['source_name']);
$preamble = sprintf( t('%s tagged you at %s') , $params['source_name'], $sitename);
$epreamble = sprintf( t('%s %s.') , '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', '[url=' . $params['link'] . ']' . t('tagged you') . '[/url]');
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
@ -77,7 +110,8 @@ function notification($params) {
}
if($params['type'] == NOTIFY_TAGSHARE) {
$preamble = $subject = sprintf( t('%s tagged your post at %s') , $params['source_name'], $sitename);
$subject = sprintf( t('[Friendica:Notify] %s tagged your post') , $params['source_name']);
$preamble = sprintf( t('%s tagged your post at %s') , $params['source_name'], $sitename);
$epreamble = sprintf( t('%s tagged %s') , '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', '[url=$itemlink]' . t('your post') . '[/url]' );
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
@ -87,7 +121,7 @@ function notification($params) {
}
if($params['type'] == NOTIFY_INTRO) {
$subject = sprintf( t('Introduction received at %s'), $sitename);
$subject = sprintf( t('[Friendica:Notify] Introduction received'));
$preamble = sprintf( t('You\'ve received an introduction from \'%s\' at %s'), $params['source_name'], $sitename);
$epreamble = sprintf( t('You\'ve received %s from %s.'), '[url=$itemlink]' . t('an introduction') . '[/url]' , '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]');
$body = sprintf( t('You may visit their profile at %s'),$params['source_link']);
@ -99,7 +133,7 @@ function notification($params) {
}
if($params['type'] == NOTIFY_SUGGEST) {
$subject = sprintf( t('Friend suggestion received at %s'), $sitename);
$subject = sprintf( t('[Friendica:Notify] Friend suggestion received'));
$preamble = sprintf( t('You\'ve received a friend suggestion from \'%s\' at %s'), $params['source_name'], $sitename);
$epreamble = sprintf( t('You\'ve received %s for %s from %s.'),
'[url=$itemlink]' . t('a friend suggestion') . '[/url]',
@ -143,6 +177,7 @@ function notification($params) {
$datarray['date'] = datetime_convert();
$datarray['uid'] = $params['uid'];
$datarray['link'] = $itemlink;
$datarray['parent'] = $parent_id;
$datarray['type'] = $params['type'];
$datarray['verb'] = $params['verb'];
$datarray['otype'] = $params['otype'];
@ -151,8 +186,8 @@ function notification($params) {
// create notification entry in DB
$r = q("insert into notify (hash,name,url,photo,date,uid,link,type,verb,otype)
values('%s','%s','%s','%s','%s',%d,'%s',%d,'%s','%s')",
$r = q("insert into notify (hash,name,url,photo,date,uid,link,parent,type,verb,otype)
values('%s','%s','%s','%s','%s',%d,'%s',%d,%d,'%s','%s')",
dbesc($datarray['hash']),
dbesc($datarray['name']),
dbesc($datarray['url']),
@ -160,6 +195,7 @@ function notification($params) {
dbesc($datarray['date']),
intval($datarray['uid']),
dbesc($datarray['link']),
intval($datarray['parent']),
intval($datarray['type']),
dbesc($datarray['verb']),
dbesc($datarray['otype'])
@ -237,9 +273,12 @@ intval($params['uid']), LOGGER_DEBUG);
$datarray['preamble'] = $preamble;
$datarray['sitename'] = $sitename;
$datarray['siteurl'] = $siteurl;
$datarray['type'] = $params['type'];
$datarray['parent'] = $params['parent'];
$datarray['source_name'] = $params['source_name'];
$datarray['source_link'] = $params['source_link'];
$datarray['source_photo'] = $params['source_photo'];
$datarray['uid'] = $params['uid'];
$datarray['username'] = $params['to_name'];
$datarray['hsitelink'] = $hsitelink;
$datarray['tsitelink'] = $tsitelink;

View File

@ -216,7 +216,7 @@ function html2bbcode($message)
node2bbcode($doc, 'audio', array('src'=>'/(.+)/'), '[audio]$1', '[/audio]');
node2bbcode($doc, 'iframe', array('src'=>'/(.+)/'), '[iframe]$1', '[/iframe]');
node2bbcode($doc, 'code', array(), '[code]$1', '[/code]');
node2bbcode($doc, 'code', array(), '[code]', '[/code]');
$message = $doc->saveHTML();

View File

@ -1595,6 +1595,14 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
if((activity_match($datarray['verb'],ACTIVITY_LIKE)) || (activity_match($datarray['verb'],ACTIVITY_DISLIKE))) {
$datarray['type'] = 'activity';
$datarray['gravity'] = GRAVITY_LIKE;
// only one like or dislike per person
$r = q("select id from item where uid = %d and `contact-id` = %d and verb ='%s' and deleted = 0 limit 1",
intval($datarray['uid']),
intval($datarray['contact-id']),
dbesc($datarray['verb'])
);
if($r && count($r))
continue;
}
if(($datarray['verb'] === ACTIVITY_TAG) && ($datarray['object-type'] === ACTIVITY_OBJ_TAGTERM)) {
@ -1747,6 +1755,18 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
$datarray['parent-uri'] = $item_id;
$datarray['uid'] = $importer['uid'];
$datarray['contact-id'] = $contact['id'];
if(! link_compare($datarray['owner-link'],$contact['url'])) {
// The item owner info is not our contact. It's OK and is to be expected if this is a tgroup delivery,
// but otherwise there's a possible data mixup on the sender's system.
// the tgroup delivery code called from item_store will correct it if it's a forum,
// but we're going to unconditionally correct it here so that the post will always be owned by our contact.
logger('local_delivery: Correcting item owner.', LOGGER_DEBUG);
$datarray['owner-name'] = $contact['name'];
$datarray['owner-link'] = $contact['url'];
$datarray['owner-avatar'] = $contact['thumb'];
}
$r = item_store($datarray);
continue;
@ -2136,6 +2156,14 @@ function local_delivery($importer,$data) {
$datarray['type'] = 'activity';
$datarray['gravity'] = GRAVITY_LIKE;
$datarray['last-child'] = 0;
// only one like or dislike per person
$r = q("select id from item where uid = %d and `contact-id` = %d and verb ='%s' and deleted = 0 limit 1",
intval($datarray['uid']),
intval($datarray['contact-id']),
dbesc($datarray['verb'])
);
if($r && count($r))
continue;
}
if(($datarray['verb'] === ACTIVITY_TAG) && ($datarray['object-type'] === ACTIVITY_OBJ_TAGTERM)) {
@ -2285,6 +2313,15 @@ function local_delivery($importer,$data) {
if(($datarray['verb'] == ACTIVITY_LIKE) || ($datarray['verb'] == ACTIVITY_DISLIKE)) {
$datarray['type'] = 'activity';
$datarray['gravity'] = GRAVITY_LIKE;
// only one like or dislike per person
$r = q("select id from item where uid = %d and `contact-id` = %d and verb ='%s' and deleted = 0 limit 1",
intval($datarray['uid']),
intval($datarray['contact-id']),
dbesc($datarray['verb'])
);
if($r && count($r))
continue;
}
if(($datarray['verb'] === ACTIVITY_TAG) && ($datarray['object-type'] === ACTIVITY_OBJ_TAGTERM)) {
@ -2325,35 +2362,44 @@ function local_delivery($importer,$data) {
if(count($myconv)) {
$importer_url = $a->get_baseurl() . '/profile/' . $importer['nickname'];
foreach($myconv as $conv) {
if(! link_compare($conv['author-link'],$importer_url))
continue;
// first make sure this isn't our own post coming back to us from a wall-to-wall event
if(! link_compare($datarray['author-link'],$importer_url)) {
require_once('include/enotify.php');
$conv_parent = $conv['parent'];
foreach($myconv as $conv) {
notification(array(
'type' => NOTIFY_COMMENT,
'notify_flags' => $importer['notify-flags'],
'language' => $importer['language'],
'to_name' => $importer['username'],
'to_email' => $importer['email'],
'uid' => $importer['importer_uid'],
'item' => $datarray,
'link' => $a->get_baseurl() . '/display/' . $importer['nickname'] . '/' . $posted_id,
'source_name' => stripslashes($datarray['author-name']),
'source_link' => $datarray['author-link'],
'source_photo' => ((link_compare($datarray['author-link'],$importer['url']))
? $importer['thumb'] : $datarray['author-avatar']),
'verb' => ACTIVITY_POST,
'otype' => 'item',
'parent' => $conv_parent,
// now if we find a match, it means we're in this conversation
if(! link_compare($conv['author-link'],$importer_url))
continue;
));
require_once('include/enotify.php');
$conv_parent = $conv['parent'];
break;
notification(array(
'type' => NOTIFY_COMMENT,
'notify_flags' => $importer['notify-flags'],
'language' => $importer['language'],
'to_name' => $importer['username'],
'to_email' => $importer['email'],
'uid' => $importer['importer_uid'],
'item' => $datarray,
'link' => $a->get_baseurl() . '/display/' . $importer['nickname'] . '/' . $posted_id,
'source_name' => stripslashes($datarray['author-name']),
'source_link' => $datarray['author-link'],
'source_photo' => ((link_compare($datarray['author-link'],$importer['url']))
? $importer['thumb'] : $datarray['author-avatar']),
'verb' => ACTIVITY_POST,
'otype' => 'item',
'parent' => $conv_parent,
));
// only send one notification
break;
}
}
}
}
@ -2424,12 +2470,24 @@ function local_delivery($importer,$data) {
// This is my contact on another system, but it's really me.
// Turn this into a wall post.
if($contact['remote_self'])
if($importer['remote_self'])
$datarray['wall'] = 1;
$datarray['parent-uri'] = $item_id;
$datarray['uid'] = $importer['importer_uid'];
$datarray['contact-id'] = $importer['id'];
if(! link_compare($datarray['owner-link'],$contact['url'])) {
// The item owner info is not our contact. It's OK and is to be expected if this is a tgroup delivery,
// but otherwise there's a possible data mixup on the sender's system.
// the tgroup delivery code called from item_store will correct it if it's a forum,
// but we're going to unconditionally correct it here so that the post will always be owned by our contact.
logger('local_delivery: Correcting item owner.', LOGGER_DEBUG);
$datarray['owner-name'] = $importer['senderName'];
$datarray['owner-link'] = $importer['url'];
$datarray['owner-avatar'] = $importer['thumb'];
}
$r = item_store($datarray);
continue;
}

View File

@ -122,6 +122,9 @@ function nav(&$a) {
}
$nav['messages'] = array('message', t('Messages'), "", t('Private mail'));
$nav['messages']['inbox'] = array('message', t('Inbox'), "", t('Inbox'));
$nav['messages']['outbox']= array('message/sent', t('Outbox'), "", t('Outbox'));
$nav['messages']['new'] = array('message/new', t('New Message'), "", t('New Message'));
if(is_array($a->identities) && count($a->identities) > 1) {
$nav['manage'] = array('manage', t('Manage'), "", t('Manage other pages'));

View File

@ -201,7 +201,7 @@ function notifier_run($argv, $argc){
// by stringing togther an array of retractions and sending them onward.
$localhost = $a->get_hostname();
$localhost = str_replace('www.','',$a->get_hostname());
if(strpos($localhost,':'))
$localhost = substr($localhost,0,strpos($localhost,':'));

View File

@ -108,14 +108,18 @@ function can_write_wall(&$a,$owner) {
if(remote_user()) {
// user remembered decision and avoid a DB lookup for each and every display item
// use remembered decision and avoid a DB lookup for each and every display item
// DO NOT use this function if there are going to be multiple owners
// We have a contact-id for an authenticated remote user, this block determines if the contact
// belongs to this page owner, and has the necessary permissions to post content
if($verified === 2)
return true;
elseif($verified === 1)
return false;
else {
$r = q("SELECT `contact`.*, `user`.`page-flags` FROM `contact` LEFT JOIN `user` on `user`.`uid` = `contact`.`uid`
WHERE `contact`.`uid` = %d AND `contact`.`id` = %d AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
AND `user`.`blockwall` = 0 AND `readonly` = 0 AND ( `contact`.`rel` IN ( %d , %d ) OR `user`.`page-flags` = %d ) LIMIT 1",
@ -125,6 +129,7 @@ function can_write_wall(&$a,$owner) {
intval(CONTACT_IS_FRIEND),
intval(PAGE_COMMUNITY)
);
if(count($r)) {
$verified = 2;
return true;
@ -197,7 +202,7 @@ function permissions_sql($owner_id,$remote_verified = false,$groups = null) {
" AND ( allow_cid = '' OR allow_cid REGEXP '<%d>' )
AND ( deny_cid = '' OR NOT deny_cid REGEXP '<%d>' )
AND ( allow_gid = '' OR allow_gid REGEXP '%s' )
AND ( deny_gid = '' OR NOT deny_gid REGEXP '%s')
AND ( deny_gid = '' OR NOT deny_gid REGEXP '%s')
",
intval($remote_user),
intval($remote_user),
@ -207,4 +212,79 @@ function permissions_sql($owner_id,$remote_verified = false,$groups = null) {
}
}
return $sql;
}
}
function item_permissions_sql($owner_id,$remote_verified = false,$groups = null) {
$local_user = local_user();
$remote_user = remote_user();
/**
* Construct permissions
*
* default permissions - anonymous user
*/
$sql = " AND allow_cid = ''
AND allow_gid = ''
AND deny_cid = ''
AND deny_gid = ''
AND private = 0
";
/**
* Profile owner - everything is visible
*/
if(($local_user) && ($local_user == $owner_id)) {
$sql = '';
}
/**
* Authenticated visitor. Unless pre-verified,
* check that the contact belongs to this $owner_id
* and load the groups the visitor belongs to.
* If pre-verified, the caller is expected to have already
* done this and passed the groups into this function.
*/
elseif($remote_user) {
if(! $remote_verified) {
$r = q("SELECT id FROM contact WHERE id = %d AND uid = %d AND blocked = 0 LIMIT 1",
intval($remote_user),
intval($owner_id)
);
if(count($r)) {
$remote_verified = true;
$groups = init_groups_visitor($remote_user);
}
}
if($remote_verified) {
$gs = '<<>>'; // should be impossible to match
if(is_array($groups) && count($groups)) {
foreach($groups as $g)
$gs .= '|<' . intval($g) . '>';
}
$sql = sprintf(
" AND ( private = 0 OR ( private = 1 AND wall = 1 AND ( allow_cid = '' OR allow_cid REGEXP '<%d>' )
AND ( deny_cid = '' OR NOT deny_cid REGEXP '<%d>' )
AND ( allow_gid = '' OR allow_gid REGEXP '%s' )
AND ( deny_gid = '' OR NOT deny_gid REGEXP '%s')))
",
intval($remote_user),
intval($remote_user),
dbesc($gs),
dbesc($gs)
);
}
}
return $sql;
}

View File

@ -1,5 +1,5 @@
<?php
define ("KEY_NOT_EXISTS", '^R_key_not_Exists^');
class Template {
var $r;
@ -28,30 +28,18 @@
die();
}
private function _build_replace($r, $prefix){
if(is_array($r) && count($r)) {
foreach ($r as $k => $v ) {
if (is_array($v)) {
$this->_build_replace($v, "$prefix$k.");
} else {
$this->search[] = $prefix . $k;
$this->replace[] = $v;
}
}
}
}
private function _push_stack(){
$this->stack[] = array($this->r, $this->search, $this->replace, $this->nodes);
$this->stack[] = array($this->r, $this->nodes);
}
private function _pop_stack(){
list($this->r, $this->search, $this->replace, $this->nodes) = array_pop($this->stack);
list($this->r, $this->nodes) = array_pop($this->stack);
}
private function _get_var($name){
$keys = array_map('trim',explode(".",$name));
private function _get_var($name, $retNoKey=false){
$keys = array_map('trim',explode(".",$name));
if ($retNoKey && !array_key_exists($keys[0], $this->r)) return KEY_NOT_EXISTS;
$val = $this->r;
foreach($keys as $k) {
$val = (isset($val[$k]) ? $val[$k] : null);
@ -116,7 +104,15 @@
* {{ inc <templatefile> [with $var1=$var2] }}{{ endinc }}
*/
private function _replcb_inc($args){
list($tplfile, $newctx) = array_map('trim', explode("with",$args[2]));
if (strpos($args[2],"with")) {
list($tplfile, $newctx) = array_map('trim', explode("with",$args[2]));
} else {
$tplfile = trim($args[2]);
$newctx = null;
}
if ($tplfile[0]=="$") $tplfile = $this->_get_var($tplfile);
$this->_push_stack();
$r = $this->r;
if (!is_null($newctx)) {
@ -161,40 +157,33 @@
return $s;
}
/*
private function _str_replace($str){
#$this->search,$this->replace,
$searchs = $this->search;
foreach($searchs as $search){
$search = "|".preg_quote($search)."(\|[a-zA-Z0-9_]*)*|";
$m = array();
if (preg_match_all($search, $str,$m)){
foreach ($m[0] as $match){
$toks = explode("|",$match);
$val = $this->_get_var($toks[0]);
for($k=1; $k<count($toks); $k++){
$func = $toks[$k];
if (function_exists($func)) $val = $func($val);
}
if (count($toks)>1){
$str = str_replace( $match, $val, $str);
}
}
}
}
return str_replace($this->search,$this->replace, $str);
}*/
private function var_replace($s){
$m = array();
/** regexp:
* \$ literal $
* (\[)? optional open square bracket
* ([a-zA-Z0-9-_]+\.?)+ var name, followed by optional
* dot, repeated at least 1 time
* (?(1)\]) if there was opened square bracket
* (subgrup 1), match close bracket
*/
if (preg_match_all('/\$(\[)?([a-zA-Z0-9-_]+\.?)+(?(1)\])/', $s,$m)){
foreach($m[0] as $var){
$varn = str_replace(array("[","]"), array("",""), $var);
$val = $this->_get_var($varn, true);
if ($val!=KEY_NOT_EXISTS)
$s = str_replace($var, $val, $s);
}
}
return $s;
}
public function replace($s, $r) {
$this->r = $r;
$this->search = array();
$this->replace = array();
$this->_build_replace($r, "");
#$s = str_replace(array("\n","\r"),array("§n§","§r§"),$s);
$s = $this->_build_nodes($s);
$s = preg_replace_callback('/\|\|([0-9]+)\|\|/', array($this, "_replcb_node"), $s);
@ -202,12 +191,12 @@
// remove comments block
$s = preg_replace('/{#[^#]*#}/', "" , $s);
// replace strings recursively (limit to 10 loops)
$os = ""; $count=0;
while($os!=$s && $count<10){
$os=$s; $count++;
//$s = $this->_str_replace($s);
$s = str_replace($this->search, $this->replace, $s);
$s = $this->var_replace($s);
}
return template_unescape($s);
}

43
include/text.php Executable file → Normal file
View File

@ -14,7 +14,13 @@ if(! function_exists('replace_macros')) {
function replace_macros($s,$r) {
global $t;
return $t->replace($s,$r);
//$ts = microtime();
$r = $t->replace($s,$r);
//$tt = microtime() - $ts;
//$a = get_app();
//$a->page['debug'] .= "$tt <br>\n";
return $r;
}}
@ -731,7 +737,10 @@ function smilies($s, $sample = false) {
':headdesk',
'~friendika',
'~friendica',
'Diaspora*'
// 'Diaspora*'
':beard',
':whitebeard'
);
$icons = array(
@ -772,8 +781,9 @@ function smilies($s, $sample = false) {
'<img src="' . $a->get_baseurl() . '/images/smiley-bangheaddesk.gif" alt=":headdesk" />',
'<a href="http://project.friendika.com">~friendika <img src="' . $a->get_baseurl() . '/images/friendika-16.png" alt="~friendika" /></a>',
'<a href="http://friendica.com">~friendica <img src="' . $a->get_baseurl() . '/images/friendica-16.png" alt="~friendica" /></a>',
'<a href="http://diasporafoundation.org">Diaspora<img src="' . $a->get_baseurl() . '/images/diaspora.png" alt="Diaspora*" /></a>',
// '<a href="http://diasporafoundation.org">Diaspora<img src="' . $a->get_baseurl() . '/images/diaspora.png" alt="Diaspora*" /></a>',
'<img src="' . $a->get_baseurl() . '/images/smiley-beard.png" alt=":beard" />',
'<img src="' . $a->get_baseurl() . '/images/smiley-whitebeard.png" alt=":whitebeard" />'
);
$params = array('texts' => $texts, 'icons' => $icons, 'string' => $s);
@ -786,6 +796,7 @@ function smilies($s, $sample = false) {
}
}
else {
$params['string'] = preg_replace_callback('/&lt;(3+)/','preg_heart',$params['string']);
$s = str_replace($params['texts'],$params['icons'],$params['string']);
}
@ -804,7 +815,18 @@ function smile_decode($m) {
return(str_replace($m[1],base64url_decode($m[1]),$m[0]));
}
// expand <3333 to the correct number of hearts
function preg_heart($x) {
$a = get_app();
if(strlen($x[1]) == 1)
return $x[0];
$t = '';
for($cnt = 0; $cnt < strlen($x[1]); $cnt ++)
$t .= '<img src="' . $a->get_baseurl() . '/images/smiley-heart.gif" alt="<3" />';
$r = str_replace($x[0],$t,$x[0]);
return $r;
}
if(! function_exists('day_translate')) {
@ -1201,3 +1223,16 @@ function reltoabs($text, $base)
return $text;
}
function item_post_type($item) {
if(intval($item['event-id']))
return t('event');
if(strlen($item['resource-id']))
return t('photo');
if(strlen($item['verb']) && $item['verb'] !== ACTIVITY_POST)
return t('activity');
if($item['id'] != $item['parent'])
return t('comment');
return t('post');
}

View File

@ -103,6 +103,7 @@ ACPopup.prototype._search = function(){
}
else {
txt = tinyMCE.activeEditor.getContent();
// alert(that.searchText + ':' + t);
newtxt = txt.replace(that.searchText,t+' ');
tinyMCE.activeEditor.setContent(newtxt);
tinyMCE.activeEditor.focus();

View File

@ -292,7 +292,7 @@
$('body').css('cursor', 'auto');
}
/* autocomplete @nicknames */
$(".comment-edit-wrapper textarea").contact_autocomplete(baseurl+"/acl");
$(".comment-edit-form textarea").contact_autocomplete(baseurl+"/acl");
});
}

View File

@ -730,8 +730,8 @@ class Net_SSH1 {
/**
* Reads the output of an interactive shell.
*
* Requires PHP 4.3.0 or later due to the use of the stream_select() function. If you see stuff like
* "", you're seeing ANSI escape codes. According to
* Requires PHP 4.3.0 or later due to the use of the stream_select() function. If you see crap,
* you're seeing ANSI escape codes. According to
* {@link http://support.microsoft.com/kb/101875 How to Enable ANSI.SYS in a Command Window}, "Windows NT
* does not support ANSI escape sequences in Win32 Console applications", so if you're a Windows user,
* there's not going to be much recourse.

View File

@ -147,58 +147,8 @@ class b8_storage_frndc extends b8_storage_base
public function connect()
{
return TRUE;
# Are we already connected?
if($this->connected === TRUE)
return TRUE;
# Are we using an existing passed resource?
if($this->config['connection'] === FALSE) {
# ... yes we are, but the connection is not a resource, so return an error
$this->connected = FALSE;
return self::DATABASE_CONNECTION_BAD_RESOURCE;
}
elseif($this->config['connection'] === NULL) {
# ... no we aren't so we have to connect.
if($this->_connection = mysql_connect($this->config['host'], $this->config['user'], $this->config['pass'])) {
if(mysql_select_db($this->config['database'], $this->_connection) === FALSE) {
$this->connected = FALSE;
return self::DATABASE_SELECT_ERROR . ": " . mysql_error();
}
}
else {
$this->connected = FALSE;
return self::DATABASE_CONNECTION_ERROR;
}
}
else {
# ... yes we are
$this->_connection = $this->config['connection'];
}
# Just in case ...
if($this->_connection === NULL) {
$this->connected = FALSE;
return self::DATABASE_CONNECTION_FAIL;
}
# Check to see if the wordlist table exists
if(mysql_query('DESCRIBE ' . $this->config['table_name'], $this->_connection) === FALSE) {
$this->connected = FALSE;
return self::DATABASE_TABLE_ACCESS_FAIL . ": " . mysql_error();
}
# Everything is okay and connected
$this->connected = TRUE;
# Let's see if this is a b8 database and the version is okay
return $this->check_database();
return TRUE;
}
@ -224,20 +174,44 @@ class b8_storage_frndc extends b8_storage_base
array_push($where, $token);
}
$where = 'token IN ("' . implode('", "', $where) . '")';
$where = 'term IN ("' . implode('", "', $where) . '")';
}
else {
$token = dbesc($token);
$where = 'token = "' . $token . '"';
$where = 'term = "' . $token . '"';
}
# ... and fetch the data
$result = q('
SELECT token, count
FROM ' . $this->config['table_name'] . '
WHERE ' . $where . ' AND uid = ' . $uid );
SELECT * FROM spam WHERE ' . $where . ' AND uid = ' . $uid );
$returned_tokens = array();
if(count($result)) {
foreach($result as $rr)
$returned_tokens[] = $rr['term'];
}
$to_create = array();
if(count($tokens) > 0) {
foreach($tokens as $token)
if(! in_array($token,$returned_tokens))
$to_create[] = str_tolower($token);
}
if(count($to_create)) {
$sql = '';
foreach($to_create as $term) {
if(strlen($sql))
$sql .= ',';
$sql .= sprintf("(term,datetime,uid) values('%s','%s',%d)",
dbesc(str_tolower($term))
dbesc(datetime_convert()),
intval($uid)
);
q("insert into spam " . $sql);
}
return $result;

View File

@ -145,9 +145,10 @@ function admin_page_summary(&$a) {
Array( t('Automatic Friend Account'), 0)
);
$users=0;
foreach ($r as $u){ $accounts[$u['page-flags']][1] = $u['count']; $users+=$u['count']; }
foreach ($r as $u){ $accounts[$u['page-flags']][1] = $u['count']; $users+= $u['count']; }
logger('accounts: ' . print_r($accounts,true));
$r = q("SELECT COUNT(id) as `count` FROM `register`");
$pending = $r[0]['count'];
@ -320,32 +321,32 @@ function admin_page_site(&$a) {
'$sitename' => array('sitename', t("Site name"), htmlentities($a->config['sitename'], ENT_QUOTES), ""),
'$banner' => array('banner', t("Banner/Logo"), $banner, ""),
'$language' => array('language', t("System language"), get_config('system','language'), "", $lang_choices),
'$theme' => array('theme', t("System theme"), get_config('system','theme'), "Default system theme (which may be over-ridden by user profiles)", $theme_choices),
'$theme' => array('theme', t("System theme"), get_config('system','theme'), t("Default system theme - may be over-ridden by user profiles"), $theme_choices),
'$maximagesize' => array('maximagesize', t("Maximum image size"), get_config('system','maximagesize'), "Maximum size in bytes of uploaded images. Default is 0, which means no limits."),
'$maximagesize' => array('maximagesize', t("Maximum image size"), get_config('system','maximagesize'), t("Maximum size in bytes of uploaded images. Default is 0, which means no limits.")),
'$register_policy' => array('register_policy', t("Register policy"), $a->config['register_policy'], "", $register_choices),
'$register_text' => array('register_text', t("Register text"), htmlentities($a->config['register_text'], ENT_QUOTES), "Will be displayed prominently on the registration page."),
'$register_text' => array('register_text', t("Register text"), htmlentities($a->config['register_text'], ENT_QUOTES), t("Will be displayed prominently on the registration page.")),
'$abandon_days' => array('abandon_days', t('Accounts abandoned after x days'), get_config('system','account_abandon_days'), t('Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit.')),
'$allowed_sites' => array('allowed_sites', t("Allowed friend domains"), get_config('system','allowed_sites'), "Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"),
'$allowed_email' => array('allowed_email', t("Allowed email domains"), get_config('system','allowed_email'), "Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains"),
'$block_public' => array('block_public', t("Block public"), get_config('system','block_public'), "Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."),
'$force_publish' => array('publish_all', t("Force publish"), get_config('system','publish_all'), "Check to force all profiles on this site to be listed in the site directory."),
'$global_directory' => array('directory_submit_url', t("Global directory update URL"), get_config('system','directory_submit_url'), "URL to update the global directory. If this is not set, the global directory is completely unavailable to the application."),
'$allowed_sites' => array('allowed_sites', t("Allowed friend domains"), get_config('system','allowed_sites'), t("Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains")),
'$allowed_email' => array('allowed_email', t("Allowed email domains"), get_config('system','allowed_email'), t("Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains")),
'$block_public' => array('block_public', t("Block public"), get_config('system','block_public'), t("Check to block public access to all otherwise public personal pages on this site unless you are currently logged in.")),
'$force_publish' => array('publish_all', t("Force publish"), get_config('system','publish_all'), t("Check to force all profiles on this site to be listed in the site directory.")),
'$global_directory' => array('directory_submit_url', t("Global directory update URL"), get_config('system','directory_submit_url'), t("URL to update the global directory. If this is not set, the global directory is completely unavailable to the application.")),
'$no_multi_reg' => array('no_multi_reg', t("Block multiple registrations"), get_config('system','block_extended_register'), "Disallow users to register additional accounts for use as pages."),
'$no_openid' => array('no_openid', t("OpenID support"), !get_config('system','no_openid'), "OpenID support for registration and logins."),
'$no_gravatar' => array('no_gravatar', t("Gravatar support"), !get_config('system','no_gravatar'), "Search new user's photo on Gravatar."),
'$no_regfullname' => array('no_regfullname', t("Fullname check"), !get_config('system','no_regfullname'), "Force users to register with a space between firstname and lastname in Full name, as an antispam measure"),
'$no_utf' => array('no_utf', t("UTF-8 Regular expressions"), !get_config('system','no_utf'), "Use PHP UTF8 regular expressions"),
'$no_community_page' => array('no_community_page', t("Show Community Page"), !get_config('system','no_community_page'), "Display a Community page showing all recent public postings on this site."),
'$ostatus_disabled' => array('ostatus_disabled', t("Enable OStatus support"), !get_config('system','ostatus_disable'), "Provide built-in OStatus \x28identi.ca, status.net, etc.\x29 compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed."),
'$diaspora_enabled' => array('diaspora_enabled', t("Enable Diaspora support"), get_config('system','diaspora_enabled'), "Provide built-in Diaspora network compatibility."),
'$dfrn_only' => array('dfrn_only', t('Only allow Friendica contacts'), get_config('system','dfrn_only'), "All contacts must use Friendica protocols. All other built-in communication protocols disabled."),
'$verifyssl' => array('verifyssl', t("Verify SSL"), get_config('system','verifyssl'), "If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites."),
'$no_multi_reg' => array('no_multi_reg', t("Block multiple registrations"), get_config('system','block_extended_register'), t("Disallow users to register additional accounts for use as pages.")),
'$no_openid' => array('no_openid', t("OpenID support"), !get_config('system','no_openid'), t("OpenID support for registration and logins.")),
'$no_gravatar' => array('no_gravatar', t("Gravatar support"), !get_config('system','no_gravatar'), t("Search new user's photo on Gravatar.")),
'$no_regfullname' => array('no_regfullname', t("Fullname check"), !get_config('system','no_regfullname'), t("Force users to register with a space between firstname and lastname in Full name, as an antispam measure")),
'$no_utf' => array('no_utf', t("UTF-8 Regular expressions"), !get_config('system','no_utf'), t("Use PHP UTF8 regular expressions")),
'$no_community_page' => array('no_community_page', t("Show Community Page"), !get_config('system','no_community_page'), t("Display a Community page showing all recent public postings on this site.")),
'$ostatus_disabled' => array('ostatus_disabled', t("Enable OStatus support"), !get_config('system','ostatus_disable'), t("Provide built-in OStatus \x28identi.ca, status.net, etc.\x29 compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed.")),
'$diaspora_enabled' => array('diaspora_enabled', t("Enable Diaspora support"), get_config('system','diaspora_enabled'), t("Provide built-in Diaspora network compatibility.")),
'$dfrn_only' => array('dfrn_only', t('Only allow Friendica contacts'), get_config('system','dfrn_only'), t("All contacts must use Friendica protocols. All other built-in communication protocols disabled.")),
'$verifyssl' => array('verifyssl', t("Verify SSL"), get_config('system','verifyssl'), t("If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites.")),
'$proxyuser' => array('proxyuser', t("Proxy user"), get_config('system','proxyuser'), ""),
'$proxy' => array('proxy', t("Proxy URL"), get_config('system','proxy'), ""),
'$timeout' => array('timeout', t("Network timeout"), (x(get_config('system','curl_timeout'))?get_config('system','curl_timeout'):60), "Value is in seconds. Set to 0 for unlimited (not recommended)."),
'$timeout' => array('timeout', t("Network timeout"), (x(get_config('system','curl_timeout'))?get_config('system','curl_timeout'):60), t("Value is in seconds. Set to 0 for unlimited (not recommended).")),
));
@ -366,7 +367,7 @@ function admin_page_users_post(&$a){
intval( $uid )
);
}
notice( sprintf( tt("%s user blocked", "%s users blocked/unblocked", count($users)), count($users)) );
notice( sprintf( tt("%s user blocked/unblocked", "%s users blocked/unblocked", count($users)), count($users)) );
}
if (x($_POST,'page_users_delete')){
require_once("include/Contact.php");
@ -428,6 +429,7 @@ function admin_page_users(&$a){
LEFT JOIN `contact` ON `register`.`uid` = `contact`.`uid`
LEFT JOIN `user` ON `register`.`uid` = `user`.`uid`;");
/* get users */
$total = q("SELECT count(*) as total FROM `user` where 1");
@ -435,7 +437,8 @@ function admin_page_users(&$a){
$a->set_pager_total($total[0]['total']);
$a->set_pager_itemspage(100);
}
$users = q("SELECT `user` . * , `contact`.`name` , `contact`.`url` , `contact`.`micro`, `lastitem`.`lastitem_date`
FROM
(SELECT MAX(`item`.`changed`) as `lastitem_date`, `item`.`uid`
@ -469,6 +472,7 @@ function admin_page_users(&$a){
}
$users = array_map("_setup_users", $users);
$t = get_markup_template("admin_users.tpl");
$o = replace_macros($t, array(
// strings //
@ -571,6 +575,8 @@ function admin_page_plugins(&$a){
'$status' => $status,
'$action' => $action,
'$info' => get_plugin_info($plugin),
'$str_author' => t('Author: '),
'$str_maintainer' => t('Maintainer: '),
'$admin_form' => $admin_form,
'$function' => 'plugins',
@ -744,7 +750,8 @@ function admin_page_themes(&$a){
'$info' => get_theme_info($theme),
'$function' => 'themes',
'$admin_form' => $admin_form,
'$str_author' => t('Author: '),
'$str_maintainer' => t('Maintainer: '),
'$readme' => $readme
));
}

View File

@ -505,6 +505,7 @@ function contacts_content(&$a) {
'username' => $rr['name'],
'sparkle' => $sparkle,
'itemurl' => $rr['url'],
'url' => $url,
'network' => network_to_name($rr['network']),
);
}

View File

@ -107,7 +107,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
*
*/
$r = q("SELECT * FROM `contact` WHERE ( ( `issued-id` != '' AND `issued-id` = '%s' ) OR ( `id` = %d AND `id` != 0 ) ) AND `uid` = %d LIMIT 1",
$r = q("SELECT * FROM `contact` WHERE ( ( `issued-id` != '' AND `issued-id` = '%s' ) OR ( `id` = %d AND `id` != 0 ) ) AND `uid` = %d AND `duplex` = 0 LIMIT 1",
dbesc($dfrn_id),
intval($cid),
intval($uid)
@ -116,6 +116,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
if(! count($r)) {
logger('dfrn_confirm: Contact not found in DB.');
notice( t('Contact not found.') . EOL );
notice( t('This may occasionally happen if contact was requested by both persons and it has already been approved.') . EOL );
return;
}
@ -631,6 +632,15 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
xml_status(3,$message);
}
// It's possible that the other person also requested friendship.
// If it is a duplex relationship, ditch the issued-id if one exists.
if($duplex) {
$r = q("UPDATE `contact` SET `issued-id` = '' WHERE `id` = %d LIMIT 1",
intval($dfrn_record)
);
}
// We're good but now we have to scrape the profile photo and send notifications.

View File

@ -74,18 +74,18 @@ function display_content(&$a) {
$x = array(
'is_owner' => true,
'allow_location' => $a->user['allow_location'],
'default_location' => $a->user['default_location'],
'default_location' => $a->user['default-location'],
'nickname' => $a->user['nickname'],
'lockstate' => ((($group) || (is_array($a->user) && ((strlen($a->user['allow_cid'])) || (strlen($a->user['allow_gid'])) || (strlen($a->user['deny_cid'])) || (strlen($a->user['deny_gid']))))) ? 'lock' : 'unlock'),
'acl' => populate_acl((($group || $cid) ? $def_acl : $a->user), $celeb),
'bang' => (($group || $cid) ? '!' : ''),
'lockstate' => ( (is_array($a->user)) && ((strlen($a->user['allow_cid'])) || (strlen($a->user['allow_gid'])) || (strlen($a->user['deny_cid'])) || (strlen($a->user['deny_gid']))) ? 'lock' : 'unlock'),
'acl' => populate_acl($a->user, $celeb),
'bang' => '',
'visitor' => 'block',
'profile_uid' => local_user()
);
$o .= status_editor($a,$x,0,true);
$sql_extra = permissions_sql($a->profile['uid'],$remote_contact,$groups);
$sql_extra = item_permissions_sql($a->profile['uid'],$remote_contact,$groups);
$r = q("SELECT `item`.*, `item`.`id` AS `item_id`,
`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,

View File

@ -76,14 +76,18 @@ function group_content(&$a) {
if($switchtotext === false)
$switchtotext = 400;
$tpl = get_markup_template('group_edit.tpl');
$context = array('$submit' => t('Submit'));
if(($a->argc == 2) && ($a->argv[1] === 'new')) {
$tpl = get_markup_template('group_new.tpl');
$o .= replace_macros($tpl,array(
'$desc' => t('Create a group of contacts/friends.'),
'$name' => t('Group Name: '),
'$submit' => t('Submit')
));
return $o;
return replace_macros($tpl, $context + array(
'$title' => t('Create a group of contacts/friends.'),
'$gname' => array('groupname',t('Group Name: '),$group['name'], ''),
'$gid' => 'new',
));
}
if(($a->argc == 3) && ($a->argv[1] === 'drop')) {
@ -156,66 +160,61 @@ function group_content(&$a) {
$celeb = ((($a->user['page-flags'] == PAGE_SOAPBOX) || ($a->user['page-flags'] == PAGE_COMMUNITY)) ? true : false);
$tpl = get_markup_template('group_edit.tpl');
$o .= replace_macros($tpl, array(
'$gid' => $group['id'],
'$name' => $group['name'],
'$drop' => $drop_txt,
'$desc' => t('Click on a contact to add or remove.'),
$context = $context + array(
'$title' => t('Group Editor'),
'$gname' => t('Group Name: '),
'$submit' => t('Submit')
));
'$gname' => array('groupname',t('Group Name: '),$group['name'], ''),
'$gid' => $group['id'],
'$drop' => $drop_txt,
);
}
if(! isset($group))
return;
$o .= '<div id="group-update-wrapper">';
if($change)
$o = '';
$groupeditor = array(
'label_members' => t('Members'),
'members' => array(),
'label_contacts' => t('All Contacts'),
'contacts' => arraY(),
);
$o .= '<h3>' . t('Members') . '</h3>';
$o .= '<div id="group-members">';
$textmode = (($switchtotext && (count($members) > $switchtotext)) ? true : false);
foreach($members as $member) {
if($member['url']) {
$member['click'] = 'groupChangeMember(' . $group['id'] . ',' . $member['id'] . '); return true;';
$o .= micropro($member,true,'mpgroup', $textmode);
$groupeditor['members'][] = micropro($member,true,'mpgroup', $textmode);
}
else
group_rmv_member(local_user(),$group['name'],$member['id']);
}
$o .= '</div><div id="group-members-end"></div>';
$o .= '<hr id="group-separator" />';
$o .= '<h3>' . t('All Contacts') . '</h3>';
$o .= '<div id="group-all-contacts">';
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `blocked` = 0 and `pending` = 0 and `self` = 0 ORDER BY `name` ASC",
intval(local_user())
);
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `blocked` = 0 and `pending` = 0 and `self` = 0 ORDER BY `name` ASC",
intval(local_user())
);
if(count($r)) {
$textmode = (($switchtotext && (count($r) > $switchtotext)) ? true : false);
foreach($r as $member) {
if(! in_array($member['id'],$preselected)) {
$member['click'] = 'groupChangeMember(' . $group['id'] . ',' . $member['id'] . '); return true;';
$o .= micropro($member,true,'mpall', $textmode);
}
if(count($r)) {
$textmode = (($switchtotext && (count($r) > $switchtotext)) ? true : false);
foreach($r as $member) {
if(! in_array($member['id'],$preselected)) {
$member['click'] = 'groupChangeMember(' . $group['id'] . ',' . $member['id'] . '); return true;';
$groupeditor['contacts'][] = micropro($member,true,'mpall', $textmode);
}
}
}
$o .= '</div><div id="group-all-contacts-end"></div>';
$context['$groupeditor'] = $groupeditor;
$context['$desc'] = t('Click on a contact to add or remove.');
if($change) {
echo $o;
$tpl = get_markup_template('groupeditor.tpl');
echo replace_macros($tpl, $context);
killme();
}
$o .= '</div>';
return $o;
return replace_macros($tpl, $context);
}

View File

@ -129,10 +129,16 @@ function message_content(&$a) {
$o .= $header;
$plaintext = false;
if(intval(get_pconfig(local_user(),'system','plaintext')))
$plaintext = true;
$tpl = get_markup_template('msg-header.tpl');
$a->page['htmlhead'] .= replace_macros($tpl, array(
'$baseurl' => $a->get_baseurl(),
'$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
'$nickname' => $a->user['nickname'],
'$linkurl' => t('Please enter a link URL:')
));

View File

@ -51,14 +51,14 @@ function network_init(&$a) {
function saved_searches($search) {
$srchurl = '/network'
. ((x($_GET,'cid')) ? '?cid=' . $_GET['cid'] : '')
. ((x($_GET,'star')) ? '?star=' . $_GET['star'] : '')
. ((x($_GET,'bmark')) ? '?bmark=' . $_GET['bmark'] : '')
. ((x($_GET,'conv')) ? '?conv=' . $_GET['conv'] : '')
. ((x($_GET,'nets')) ? '?nets=' . $_GET['nets'] : '')
. ((x($_GET,'cmin')) ? '?cmin=' . $_GET['cmin'] : '')
. ((x($_GET,'cmax')) ? '?cmax=' . $_GET['cmax'] : '');
$srchurl = '/network?f='
. ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '')
. ((x($_GET,'star')) ? '&star=' . $_GET['star'] : '')
. ((x($_GET,'bmark')) ? '&bmark=' . $_GET['bmark'] : '')
. ((x($_GET,'conv')) ? '&conv=' . $_GET['conv'] : '')
. ((x($_GET,'nets')) ? '&nets=' . $_GET['nets'] : '')
. ((x($_GET,'cmin')) ? '&cmin=' . $_GET['cmin'] : '')
. ((x($_GET,'cmax')) ? '&cmax=' . $_GET['cmax'] : '');
$o = '';
@ -164,33 +164,33 @@ function network_content(&$a, $update = 0) {
$tabs = array(
array(
'label' => t('Commented Order'),
'url'=>$a->get_baseurl() . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '?cid=' . $_GET['cid'] : ''),
'url'=>$a->get_baseurl() . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '?f=&cid=' . $_GET['cid'] : ''),
'sel'=>$all_active,
),
array(
'label' => t('Posted Order'),
'url'=>$a->get_baseurl() . '/' . str_replace('/new', '', $a->cmd) . '?order=post' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : ''),
'url'=>$a->get_baseurl() . '/' . str_replace('/new', '', $a->cmd) . '?f=&order=post' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : ''),
'sel'=>$postord_active,
),
array(
'label' => t('Personal'),
'url' => $a->get_baseurl() . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '/?cid=' . $_GET['cid'] : '') . '&conv=1',
'url' => $a->get_baseurl() . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&conv=1',
'sel' => $conv_active,
),
array(
'label' => t('New'),
'url' => $a->get_baseurl() . '/' . str_replace('/new', '', $a->cmd) . '/new' . ((x($_GET,'cid')) ? '/?cid=' . $_GET['cid'] : ''),
'url' => $a->get_baseurl() . '/' . str_replace('/new', '', $a->cmd) . '/new' . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : ''),
'sel' => $new_active,
),
array(
'label' => t('Starred'),
'url'=>$a->get_baseurl() . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '/?cid=' . $_GET['cid'] : '') . '&star=1',
'url'=>$a->get_baseurl() . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&star=1',
'sel'=>$starred_active,
),
array(
'label' => t('Bookmarks'),
'url'=>$a->get_baseurl() . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '/?cid=' . $_GET['cid'] : '') . '&bmark=1',
'url'=>$a->get_baseurl() . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&bmark=1',
'sel'=>$bookmarked_active,
),
// array(
@ -256,14 +256,12 @@ function network_content(&$a, $update = 0) {
nav_set_selected('network');
$_SESSION['return_url'] = $a->query_string;
$celeb = ((($a->user['page-flags'] == PAGE_SOAPBOX) || ($a->user['page-flags'] == PAGE_COMMUNITY)) ? true : false);
$x = array(
'is_owner' => true,
'allow_location' => $a->user['allow_location'],
'default_location' => $a->user['default_location'],
'default_location' => $a->user['default-location'],
'nickname' => $a->user['nickname'],
'lockstate' => ((($group) || (is_array($a->user) && ((strlen($a->user['allow_cid'])) || (strlen($a->user['allow_gid'])) || (strlen($a->user['deny_cid'])) || (strlen($a->user['deny_gid']))))) ? 'lock' : 'unlock'),
'acl' => populate_acl((($group || $cid) ? $def_acl : $a->user), $celeb),
@ -472,7 +470,7 @@ function network_content(&$a, $update = 0) {
if(count($r)) {
foreach($r as $rr)
if(! array_key_exists($rr['item_id'],$parents_arr))
if(! in_array($rr['item_id'],$parents_arr))
$parents_arr[] = $rr['item_id'];
$parents_str = implode(', ', $parents_arr);

View File

@ -11,8 +11,10 @@ function notify_init(&$a) {
intval(local_user())
);
if(count($r)) {
q("update notify set seen = 1 where id = %d and uid = %d limit 1",
intval($a->argv[2]),
q("update notify set seen = 1 where ( link = '%s' or ( parent != 0 and parent = %d and otype = '%s' )) and uid = %d",
dbesc($r[0]['link']),
intval($r[0]['parent']),
dbesc($r[0]['otype']),
intval(local_user())
);
goaway($r[0]['link']);

View File

@ -14,10 +14,29 @@ function ping_init(&$a) {
$firehose = intval(get_pconfig(local_user(),'system','notify_full'));
$z = q("select * from notify where uid = %d
order by seen asc, date desc limit 0, 50",
$t = q("select count(*) as total from notify where uid = %d and seen = 0",
intval(local_user())
);
if($t && intval($t[0]['total']) > 49) {
$z = q("select * from notify where uid = %d
and seen = 0 order by date desc limit 0, 50",
intval(local_user())
);
}
else {
$z1 = q("select * from notify where uid = %d
and seen = 0 order by date desc limit 0, 50",
intval(local_user())
);
$z2 = q("select * from notify where uid = %d
and seen = 1 order by date desc limit 0, %d",
intval(local_user()),
intval(50 - intval($t[0]['total']))
);
$z = array_merge($z1,$z2);
}
$tags = array();

View File

@ -159,7 +159,7 @@ function profile_content(&$a, $update = 0) {
* Get permissions SQL - if $remote_contact is true, our remote user has been pre-verified and we already have fetched his/her groups
*/
$sql_extra = permissions_sql($a->profile['profile_uid'],$remote_contact,$groups);
$sql_extra = item_permissions_sql($a->profile['profile_uid'],$remote_contact,$groups);
if($update) {

View File

@ -127,7 +127,7 @@ function search_content(&$a) {
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
LEFT JOIN `user` ON `user`.`uid` = `item`.`uid`
WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
AND (( `wall` = 1 AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' AND `user`.`hidewall` = 0 )
AND (( `wall` = 1 AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' AND `item`.`private` = 0 AND `user`.`hidewall` = 0 )
OR `item`.`uid` = %d )
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
$search_alg

View File

@ -50,6 +50,8 @@ function settings_post(&$a) {
return;
}
$old_page_flags = $a->user['page-flags'];
if(($a->argc > 1) && ($a->argv[1] === 'oauth') && x($_POST,'remove')){
$key = $_POST['remove'];
q("DELETE FROM tokens WHERE id='%s' AND uid=%d",
@ -375,7 +377,7 @@ function settings_post(&$a) {
);
}
if($old_visibility != $net_publish) {
if(($old_visibility != $net_publish) || ($page_flags != $old_page_flags)) {
// Update global directory in background
$url = $_SESSION['my_url'];
if($url && strlen(get_config('system','directory_submit_url')))

View File

@ -16,10 +16,18 @@ function share_init(&$a) {
$o = '';
$o .= '&#x2672; <a href="' . $r[0]['author-link'] . '">' . $r[0]['author-name'] . '</a><br />';
if($r[0]['title'])
$o .= '<strong>' . $r[0]['title'] . '</strong><br />';
$o .= bbcode($r[0]['body'], true);
echo $o . '<br />';
if(local_user() && intval(get_pconfig(local_user(),'system','plaintext'))) {
$o .= '&#x2672; [url=' . $r[0]['author-link'] . ']' . $r[0]['author-name'] . '[/url]';
if($r[0]['title'])
$o .= '[b]' . $r[0]['title'] . '[/b]' . "\n";
$o .= $r[0]['body'] . "\n";
}
else {
$o .= '&#x2672; <a href="' . $r[0]['author-link'] . '">' . $r[0]['author-name'] . '</a><br />';
if($r[0]['title'])
$o .= '<strong>' . $r[0]['title'] . '</strong><br />';
$o .= bbcode($r[0]['body'], true) . '<br />';
}
echo $o;
killme();
}

View File

@ -63,7 +63,8 @@ function viewcontacts_content(&$a) {
'username' => $rr['name'],
'url' => $url,
'sparkle' => '',
'item' => $rr,
'itemurl' => $rr['url'],
'network' => network_to_name($rr['network']),
);
}

View File

@ -1,6 +1,6 @@
<?php
define( 'UPDATE_VERSION' , 1128 );
define( 'UPDATE_VERSION' , 1131 );
/**
*
@ -1109,3 +1109,16 @@ function update_1127() {
) ENGINE = MyISAM DEFAULT CHARSET=utf8");
}
function update_1128() {
q("alter table spam add `date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER `term` ");
}
function update_1129() {
q("ALTER TABLE `notify` ADD `parent` INT NOT NULL AFTER `link` , ADD INDEX ( `parent` ), ADD INDEX ( `link` ), ADD INDEX ( `otype` ) ");
}
function update_1130() {
q("ALTER TABLE `item` ADD `file` MEDIUMTEXT NOT NULL AFTER `inform`, ADD FULLTEXT KEY (`file`) ");
}

View File

@ -1,5 +1,11 @@
<?php
/**
* @package util
*/
/*
* require boot.php
*/
require_once("boot.php");
$a = new App;

View File

@ -0,0 +1,145 @@
<?php
/**
* When I installed docblox, I had the experience that it does not generate any output at all.
* This script may be used to find that kind of problems with the documentation build process.
* If docblox generates output, use another approach for debugging.
*
* Basically, docblox takes a list of files to build documentation from. This script assumes there is a file or set of files
* breaking the build when it is included in that list. It tries to calculate the smallest list containing these files.
* Unfortunatly, the original problem is NP-complete, so what the script does is a best guess only.
*
* So it starts with a list of all files in the project.
* If that list can't be build, it cuts it in two parts and tries both parts independently. If only one of them breaks,
* it takes that one and tries the same independently. If both break, it assumes this is the smallest set. This assumption
* is not necessarily true. Maybe the smallest set consists of two files and both of them were in different parts when
* the list was divided, but by now it is my best guess. To make this assumption better, the list is shuffled after every step.
*
* After that, the script tries to remove a file from the list. It tests if the list breaks and if so, it
* assumes that the file it removed belongs to the set of errorneous files.
* This is done for all files, so, in the end removing one file leads to a working doc build.
*
* @package util
* @author Alexander Kampmann
*/
/**
* This function generates a comma seperated list of file names.
*
* @package util
*
* @param array $fileset Set of file names
*
* @return string comma-seperated list of the file names
*/
function namesList($fileset) {
$fsparam="";
foreach($fileset as $file) {
$fsparam=$fsparam.",".$file;
}
return $fsparam;
};
/**
* This functions runs phpdoc on the provided list of files
* @package util
*
* @param array $fileset Set of filenames
*
* @return bool true, if that set can be built
*/
function runs($fileset) {
$fsParam=namesList($fileset);
exec('docblox -t phpdoc_out -f '.$fsParam);
if(file_exists("phpdoc_out/index.html")) {
echo "\n Subset ".$fsParam." is okay. \n";
exec('rm -r phpdoc_out');
return true;
} else {
echo "\n Subset ".$fsParam." failed. \n";
return false;
}
};
/**
* This functions cuts down a fileset by removing files until it finally works.
* it was meant to be recursive, but php's maximum stack size is to small. So it just simulates recursion.
*
* In that version, it does not necessarily generate the smallest set, because it may not alter the elements order enough.
*
* @package util
*
* @param array $fileset set of filenames
* @param int $ps number of files in subsets
*
* @return array a part of $fileset, that crashes
*/
function reduce($fileset, $ps) {
//split array...
$parts=array_chunk($fileset, $ps);
//filter working subsets...
$parts=array_filter($parts, "runs");
//melt remaining parts together
if(is_array($parts)) {
return array_reduce($parts, "array_merge", array());
}
return array();
};
//return from util folder to frindica base dir
$dir='..';
//stack for dirs to search
$dirstack=array();
//list of source files
$filelist=array();
//loop over all files in $dir
while($dh=opendir($dir)) {
while($file=readdir($dh)) {
if(is_dir($dir."/".$file)) {
//add to directory stack
if($file!=".." && $file!=".") {
array_push($dirstack, $dir."/".$file);
echo "dir ".$dir."/".$file."\n";
}
} else {
//test if it is a source file and add to filelist
if(substr($file, strlen($file)-4)==".php") {
array_push($filelist, $dir."/".$file);
echo $dir."/".$file."\n";
}
}
}
//look at the next dir
$dir=array_pop($dirstack);
}
//check the entire set
if(runs($filelist)) {
echo "I can not detect a problem. \n";
exit;
}
//check half of the set and discard if that half is okay
$res=$filelist;
$i=0;
do {
$i=count($res);
echo $i."/".count($fileset)." elements remaining. \n";
$res=reduce($res, count($res)/2);
shuffle($res);
} while(count($res)<$i);
//check one file after another
$needed=array();
while(count($res)!=0) {
$file=array_pop($res);
if(runs(array_merge($res, $needed))) {
echo "needs: ".$file." and file count ".count($needed);
array_push($needed, $file);
}
}
echo "\nSmallest Set is: ".namesList($needed)." with ".count($needed)." files. ";

File diff suppressed because it is too large Load Diff

2
view/acl_selector.tpl Executable file → Normal file
View File

@ -19,7 +19,7 @@ $(document).ready(function() {
if(typeof acl=="undefined"){
acl = new ACL(
baseurl+"/acl",
[$allowcid,$allowgid,$denycid,$denygid]
[ $allowcid,$allowgid,$denycid,$denygid ]
);
}
});

View File

@ -4,13 +4,18 @@
<p><span class='toggleplugin icon $status'></span> $info.name - $info.version : <a href="$baseurl/admin/$function/$plugin/?a=t">$action</a></p>
<p>$info.description</p>
<p class="author">
<p class="author">$str_author
{{ for $info.author as $a }}
{{ if $a.link }}<a href="$a.link">$a.name</a>{{ else }}$a.name{{ endif }},
{{ endfor }}
</p>
<p class="maintainer">$str_maintainer
{{ for $info.maintainer as $a }}
{{ if $a.link }}<a href="$a.link">$a.name</a>{{ else }}$a.name{{ endif }},
{{ endfor }}
</p>
{{ if $admin_form }}
<h3>$settings</h3>
<form method="post" action="$baseurl/admin/$function/$plugin/">

View File

@ -13,7 +13,7 @@
{{ for $accounts as $p }}
<dl>
<dt>$p.0</dt>
<dd>$p.1</dd>
<dd>{{ if $p.1 }}$p.1{{ else }}0{{ endif }}</dd>
</dl>
{{ endfor }}

18
view/ca/cmnt_received_eml.tpl Executable file
View File

@ -0,0 +1,18 @@
Apreciat/da $username,
'$from' ha comentat un element/conversació que estàs seguint.
-----
$body
-----
Accedeix a $siteurl per a veure la conversa completa:
$display
$sitename

13
view/ca/follow_notify_eml.tpl Executable file
View File

@ -0,0 +1,13 @@
Apreciat/da $myname,
Tens un nou seguidor en $sitename - '$requestor'.
Pots visitar el seu perfil en $url.
Iniciï sessió en el seu lloc per a aprovar o rebutjar/cancelar la sol·licitud.
$siteurl
$sitename

19
view/ca/friend_complete_eml.tpl Executable file
View File

@ -0,0 +1,19 @@
Apreciat/da $username,
Grans noticies... '$fn' a '$dfrn_url' ha acceptat la teva sol·licitud de connexió en '$sitename'.
Ara sous amics mutus i podreu intercanviar actualizacions de estatus, fotos, i correu electrónic
sense cap restricció.
Visita la teva pàgina de 'Contactes' en $sitename si desitja realizar qualsevol canvi en aquesta relació.
$siteurl
[Per exemple, pots crear un perfil independent amb informació que no esta disponible al públic en general
- i assignar drets de visualització a '$fn'].
$sitename

68
view/ca/htconfig.tpl Executable file
View File

@ -0,0 +1,68 @@
<?php
// Set the following for your MySQL installation
// Copy or rename this file to .htconfig.php
$db_host = '$dbhost';
$db_user = '$dbuser';
$db_pass = '$dbpass';
$db_data = '$dbdata';
// If you are using a subdirectory of your domain you will need to put the
// relative path (from the root of your domain) here.
// For instance if your URL is 'http://example.com/directory/subdirectory',
// set $a->path to 'directory/subdirectory'.
$a->path = '$urlpath';
// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
// It can be changed later and only applies to timestamps for anonymous viewers.
$default_timezone = '$timezone';
// What is your site name?
$a->config['sitename'] = "La Meva Xarxa d'Amics";
// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
// Be certain to create your own personal account before setting
// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
// the registration page. REGISTER_APPROVE requires you set 'admin_email'
// to the email address of an already registered person who can authorise
// and/or approve/deny the request.
$a->config['register_policy'] = REGISTER_OPEN;
$a->config['register_text'] = '';
$a->config['admin_email'] = '$adminmail';
// Maximum size of an imported message, 0 is unlimited
$a->config['max_import_size'] = 200000;
// maximum size of uploaded photos
$a->config['system']['maximagesize'] = 800000;
// Location of PHP command line processor
$a->config['php_path'] = '$phpath';
// Location of global directory submission page.
$a->config['system']['directory_submit_url'] = 'http://dir.friendika.com/submit';
$a->config['system']['directory_search_url'] = 'http://dir.friendika.com/directory?search=';
// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts
$a->config['system']['huburl'] = 'http://pubsubhubbub.appspot.com';
// Server-to-server private message encryption (RINO) is allowed by default.
// Encryption will only be provided if this setting is true and the
// PHP mcrypt extension is installed on both systems
$a->config['system']['rino_encrypt'] = true;
// default system theme
$a->config['system']['theme'] = 'duepuntozero';

21
view/ca/intro_complete_eml.tpl Executable file
View File

@ -0,0 +1,21 @@
Apreciat/da $username,
'$fn' en '$dfrn_url' ha acceptat la teva petició
connexió a '$sitename'.
'$fn' ha optat per acceptar-te com a "fan", que restringeix certes
formes de comunicació, com missatges privats i algunes interaccions
amb el perfil. Si ets una "celebritat" o una pàgina de comunitat,
aquests ajustos s'aplican automàticament
'$fn' pot optar per extendre aixó en una relació més permisiva
en el futur.
Començaràs a rebre les actualizacions públiques de estatus de '$fn',
que apareixeran a la teva pàgina "Xarxa" en
$siteurl
$sitename

35
view/ca/lostpass_eml.tpl Executable file
View File

@ -0,0 +1,35 @@
Apreciat/da $username,
S'ha rebut una sol·licitud en $sitename recentment per restablir
la teva contrasenya. Per confirmar aquesta sol·licitud, per favor seleccioni l'enllaç de
verificació sota o copia-ho i pega-ho en la barra d'adreces del teu navegador.
Si NO has sol·licitat aquest canvi, per favor NO segueixis l'enllaç indicat i ignora
i/o elimina aquest missatge.
La teva contrasenya no es canviarà tret que puguem verificar que ets la teva qui
va emetre aquesta sol·licitud.
Segueix aquest enllaç per verificar la teva identitat:
$reset_link
A continuació rebràs un missatge amb la nova contrasenya.
Després de accedir, podràs canviar la contrasenya del teu compte a la pàgina de
configuració.
Les dades d'accés són els següents:
Lloc: $siteurl
Nom: $email
Salutacions,
L'administració de $sitename

View File

@ -0,0 +1,24 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
<html>
<head>
<title>Mensaje de Friendica</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body>
<table style="border:1px solid #ccc">
<tbody>
<tr><td colspan="2" style="background:#3b5998; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px;" src='$siteurl/images/friendika-32.png'><span style="padding:7px;">Friendica</span></td></tr>
<tr><td style="padding-top:22px;" colspan="2">Has rebut un nou missatge privat de '$from' en $siteName.</td></tr>
<tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="$url"><img style="border:0px;width:48px;height:48px;" src="$thumb"></a></td>
<td style="padding-top:22px;"><a href="$url">$from</a></td></tr>
<tr><td style="font-weight:bold;padding-bottom:5px;">$title</td></tr>
<tr><td style="padding-right:22px;">$htmlversion</td></tr>
<tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Accedeix a <a href="$siteurl">$siteurl</a> per a llegir i respondre als teus missatges privats.</td></tr>
<tr><td></td><td>$siteName</td></tr>
</tbody>
</table>
</body>
</html>

View File

@ -0,0 +1,9 @@
Has rebut un nou missatge privat de '$from' en $siteName.
$title
$textversion
Accedeix a $siteurl per a llegir i respondre als teus missatges privats.
$siteName

6127
view/ca/messages.po Executable file

File diff suppressed because it is too large Load Diff

19
view/ca/passchanged_eml.tpl Executable file
View File

@ -0,0 +1,19 @@
Apreciat/da $username,
La teva contrasenya ha estat modificada com has sol·licitat. Pren nota d'aquesta informació
(o canvía immediatament la contrasenya amb quelcom que recordis).
Les teves dades d'accés son les següents:
Lloc: $siteurl
Nom: $email
Contrasenya: $new_password
Després d'accedir pots canviar la contrasenya des de la pàgina de configuració del teu perfil.
$sitename

22
view/ca/register_open_eml.tpl Executable file
View File

@ -0,0 +1,22 @@
Apreciat/da $username,
Gràcies per registrar-te en $sitename. El teu compte ha estat creat.
Les dades d'accés són les següents:
Lloc: $siteurl
Nom: $email
Contrasenya: $password
Després d'accedir pots canviar la teva contrasenya a la pàgina de "Configuració".
Pren un moment per revisar les altres configuracions del compte en aquesta pàgina.
Gràcies i benvingut/da $sitename.

23
view/ca/register_verify_eml.tpl Executable file
View File

@ -0,0 +1,23 @@
S'ha rebut la sol·licitud de registre d'un nou usuari en
$sitename que requereix la teva aprovació.
Les dades d'accés són els següents:
Nom Complet: $username
Lloc: $siteurl
Nom: $email
Per aprovar aquesta sol·licitud, visita el següent enllaç:
$siteurl/regmod/allow/$hash
Per denegar la sol·licitud i eliminar el compte, per favor visita:
$siteurl/regmod/deny/$hash
Gràcies.

13
view/ca/request_notify_eml.tpl Executable file
View File

@ -0,0 +1,13 @@
Apreciat/da $myname,
Acabes de rebre una sol·licitud de connexió de '$requestor' en $sitename.
Pots visitar el seu perfil en $url.
Accedeix al teu lloc per a veure la presentació completa i acceptar o ignorar/cancel·lar la sol·licitud.
$siteurl
$sitename

1425
view/ca/strings.php Executable file

File diff suppressed because it is too large Load Diff

18
view/ca/wall_received_eml.tpl Executable file
View File

@ -0,0 +1,18 @@
Apreciat/da $username,
'$from' ha escrit quelcom en el mur del teu perfil.
-----
$body
-----
Accedeix a $siteurl per a veure o esborrar l'element:
$display
$sitename

View File

@ -1,4 +1,4 @@
<div class="comment-$wwedit-wrapper" id="comment-edit-wrapper-$id" style="display: block;">
<div class="comment-wwedit-wrapper" id="comment-edit-wrapper-$id" style="display: block;">
<form class="comment-edit-form" id="comment-edit-form-$id" action="item" method="post" onsubmit="post_comment($id); return false;">
<input type="hidden" name="type" value="$type" />
<input type="hidden" name="profile_uid" value="$profile_uid" />

2
view/contact_block.tpl Executable file → Normal file
View File

@ -1,7 +1,7 @@
<div id="contact-block">
<h4 class="contact-block-h4">$contacts</h4>
{{ if $micropro }}
<a class="allcontact-link" href="viewcontacts/$nickname">$viewcontacts</a>
<a class="allcontact-link" href="contacts/$nickname">$viewcontacts</a>
<div class='contact-block-content'>
{{ for $micropro as $m }}
$m

View File

@ -17,6 +17,7 @@
</div>
<div class="contact-name" id="contact-entry-name-$contact.id" >$contact.name</div>
{{ if $contact.alt_text }}<div class="contact-details" id="contact-entry-rel-$contact.id" >$contact.alt_text</div>{{ endif }}
<div class="contact-details" id="contact-entry-url-$contact.id" >$contact.itemurl</div>
<div class="contact-details" id="contact-entry-network-$contact.id" >$contact.network</div>

View File

@ -1,6 +1,18 @@
{{ for $threads as $thread }}
<div id="tread-wrapper-$thread.id" class="tread-wrapper">
$thread.html
{{ for $thread.items as $item }}
{{if $item.comment_firstcollapsed}}
<div class="hide-comments-outer">
<span id="hide-comments-total-$thread.id" class="hide-comments-total">$thread.num_comments</span> <span id="hide-comments-$thread.id" class="hide-comments fakelink" onclick="showHideComments($thread.id);">$thread.hide_text</span>
</div>
<div id="collapsed-comments-$thread.id" class="collapsed-comments" style="display: none;">
{{endif}}
{{if $item.comment_lastcollapsed}}</div>{{endif}}
{{ inc $item.template }}{{ endinc }}
{{ endfor }}
</div>
{{ endfor }}

View File

@ -17,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 15:58+0000\n"
"Last-Translator: marmor <marmor69@web.de>\n"
"PO-Revision-Date: 2012-02-28 20:51+0000\n"
"Last-Translator: greeneyedred <greeneyedred@googlemail.com>\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"
@ -78,13 +78,13 @@ msgstr "Kontakt-Einstellungen reparieren"
msgid ""
"<strong>WARNING: This is highly advanced</strong> and if you enter incorrect"
" information your communications with this contact may stop working."
msgstr "<strong>ACHTUNG: Das sind Experten-Einstellungen!</strong> Wenn Du etwas falsches eingibst, funktioniert die Kommunikation mit diesem Kontakt evtl. nicht mehr."
msgstr "<strong>ACHTUNG: Das sind Experten-Einstellungen!</strong> Wenn Du etwas Falsches eingibst, funktioniert die Kommunikation mit diesem Kontakt evtl. nicht mehr."
#: ../../mod/crepair.php:138
msgid ""
"Please use your browser 'Back' button <strong>now</strong> if you are "
"uncertain what to do on this page."
msgstr "Bitte nutze den Zurück-Button deines Browsers <strong>jetzt</strong>, wenn du dir unsicher bist, was auf dieser Seite gemacht wird."
msgstr "Bitte nutze den Zurück-Button deines Browsers <strong>jetzt</strong>, wenn du dir unsicher bist, was du tun willst."
#: ../../mod/crepair.php:144
msgid "Return to contact editor"
@ -303,7 +303,7 @@ msgstr "%s heißt %s herzlich willkommen"
#: ../../mod/api.php:76 ../../mod/api.php:102
msgid "Authorize application connection"
msgstr "Verbindung der Applikation authorisieren"
msgstr "Verbindung der Applikation autorisieren"
#: ../../mod/api.php:77
msgid "Return to your app and insert this Securty Code:"
@ -317,7 +317,7 @@ msgstr "Bitte melde dich an um fortzufahren."
msgid ""
"Do you want to authorize this application to access your posts and contacts,"
" 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?"
msgstr "Möchtest du dieser Anwendung den Zugriff auf deine Beiträge und Kontakte, sowie das Erstellen neuer Beiträge in deinem Namen gestatten?"
#: ../../mod/api.php:105 ../../mod/dfrn_request.php:676
#: ../../mod/settings.php:681 ../../mod/settings.php:687
@ -576,7 +576,7 @@ msgstr "Keine Ergebnisse."
#: ../../mod/friendica.php:43
msgid "This is Friendica, version"
msgstr "Dies ist Friendica version"
msgstr "Dies ist Friendica, Version"
#: ../../mod/friendica.php:44
msgid "running at web location"
@ -740,7 +740,7 @@ msgstr "Du hast dich hier bereits vorgestellt."
#: ../../mod/dfrn_request.php:343
#, php-format
msgid "Apparently you are already friends with %s."
msgstr "Es scheint so, als ob du bereits ein Freund von %s bist."
msgstr "Es scheint so, als ob du bereits mit %s befreundet bist."
#: ../../mod/dfrn_request.php:364
msgid "Invalid profile URL."
@ -766,7 +766,7 @@ msgstr "Bitte melde dich an, um die Kontaktanfrage zu bestätigen."
msgid ""
"Incorrect identity currently logged in. Please login to "
"<strong>this</strong> profile."
msgstr "Incorrect identity currently logged in. Please login to <strong>this</strong> profile."
msgstr "Momentan bist du mit einer anderen Identität angemeldet. Bitte melde Dich mit <strong>diesem</strong> Profil an."
#: ../../mod/dfrn_request.php:539
#, php-format
@ -784,7 +784,7 @@ msgstr "Bestätigen"
#: ../../mod/dfrn_request.php:582 ../../include/items.php:2504
msgid "[Name Withheld]"
msgstr "[Name Zurückgehalten]"
msgstr "[Name unterdrückt]"
#: ../../mod/dfrn_request.php:666
#, php-format
@ -811,7 +811,7 @@ msgstr "Beispiele: jojo@demo.friendica.com, http://demo.friendica.com/profile/jo
#: ../../mod/dfrn_request.php:674
msgid "Please answer the following:"
msgstr "Bitte beantworte folgende Fragen:"
msgstr "Bitte beantworte Folgendes:"
#: ../../mod/dfrn_request.php:675
#, php-format
@ -820,7 +820,7 @@ msgstr "Kennt %s dich?"
#: ../../mod/dfrn_request.php:678
msgid "Add a personal note:"
msgstr "Eine persönliche Notiz anfügen:"
msgstr "Eine persönliche Notiz beifügen:"
#: ../../mod/dfrn_request.php:680 ../../include/contact_selectors.php:76
msgid "Friendica"
@ -909,7 +909,7 @@ msgstr "Noch einmal testen"
msgid ""
"In order to install Friendica we need to know how to connect to your "
"database."
msgstr "Um Friendica installieren zu können müssen wir wissen wie wir zu deiner Datenbank Kontakt aufnehmen können."
msgstr "Um Friendica installieren zu können, müssen wir wissen, wie wir zu deiner Datenbank Kontakt aufnehmen können."
#: ../../mod/install.php:232
msgid ""
@ -947,7 +947,7 @@ msgstr "E-Mail-Adresse des Administrators"
msgid ""
"Your account email address must match this in order to use the web admin "
"panel."
msgstr "Die E-Mail-Adresse, die in deinem Friendica-Account eingetragen, muss mit dieser Adresse übereinstimmen, damit du das Admin-Panel benutzen kannst."
msgstr "Die E-Mail-Adresse, die in deinem Friendica-Account eingetragen ist, muss mit dieser Adresse übereinstimmen, damit du das Admin-Panel benutzen kannst."
#: ../../mod/install.php:245 ../../mod/install.php:283
msgid "Please select a default timezone for your website"
@ -971,7 +971,7 @@ msgstr "Kompletter Pfad zum PHP-Executable"
#: ../../mod/install.php:331
msgid "Command line PHP"
msgstr "Kommadozeilen-PHP"
msgstr "Kommandozeilen-PHP"
#: ../../mod/install.php:340
msgid ""
@ -1105,7 +1105,7 @@ msgstr "Zeitumrechnung"
msgid ""
"Friendika provides this service for sharing events with other networks and "
"friends in unknown timezones."
msgstr "Friendica bietet diese Funktion an, um das teilen von Events mit Kontakten zu vereinfachen, deren Zeitzone nicht ermittelt werden kann."
msgstr "Friendica bietet diese Funktion an, um das Teilen von Events mit den Kontakten zu vereinfachen, deren Zeitzone nicht ermittelt werden kann."
#: ../../mod/localtime.php:30
#, php-format
@ -1602,7 +1602,7 @@ msgstr "Administrator"
msgid ""
"Request could not be verified. (You may have previously submitted it.) "
"Password reset failed."
msgstr "Anfrage konnte nicht verifiziert werden. (Eventuell hast du bereits ähnliche Anfrage gestellt.) Zurücksetzen des Passworts gescheitert."
msgstr "Anfrage konnte nicht verifiziert werden. (Eventuell hast du bereits eine ähnliche Anfrage gestellt.) Zurücksetzen des Passworts gescheitert."
#: ../../mod/lostpass.php:82 ../../boot.php:723
msgid "Password Reset"
@ -1628,7 +1628,7 @@ msgstr "hier klicken, um dich anzumelden"
msgid ""
"Your password may be changed from the <em>Settings</em> page after "
"successful login."
msgstr "Du kannst das Passwort in den <em>Einstellungen</em> ändern sobald du dich erfolgreich angemeldet hast."
msgstr "Du kannst das Passwort in den <em>Einstellungen</em> ändern, sobald du dich erfolgreich angemeldet hast."
#: ../../mod/lostpass.php:118
msgid "Forgot your Password?"
@ -1764,7 +1764,7 @@ msgstr "Kein Name"
#: ../../mod/settings.php:516
msgid "Remove authorization"
msgstr "Authorisierung entziehen"
msgstr "Autorisierung entziehen"
#: ../../mod/settings.php:528
msgid "No Plugin settings configured"
@ -2044,31 +2044,31 @@ msgstr "Benachrichtigungs-E-Mail senden wenn:"
#: ../../mod/settings.php:828
msgid "You receive an introduction"
msgstr "Du eine Kontaktanfrage erhältst"
msgstr "- du eine Kontaktanfrage erhältst"
#: ../../mod/settings.php:829
msgid "Your introductions are confirmed"
msgstr "Eine deiner Kontaktanfragen akzeptiert wurde"
msgstr "- eine deiner Kontaktanfragen akzeptiert wurde"
#: ../../mod/settings.php:830
msgid "Someone writes on your profile wall"
msgstr "Jemand schreibt etwas auf deine Pinnwand"
msgstr "- jemand etwas auf deine Pinnwand schreibt"
#: ../../mod/settings.php:831
msgid "Someone writes a followup comment"
msgstr "Jemand verfasst auch einen Kommentar"
msgstr "- jemand auch einen Kommentar verfasst"
#: ../../mod/settings.php:832
msgid "You receive a private message"
msgstr "Du erhältst eine private Nachricht"
msgstr "- du eine private Nachricht erhältst"
#: ../../mod/settings.php:833
msgid "You receive a friend suggestion"
msgstr "Du eine Empfehlung erhältst"
msgstr "- du eine Empfehlung erhältst"
#: ../../mod/settings.php:834
msgid "You are tagged in a post"
msgstr "Du wurdest in einem Beitrag erwähnt"
msgstr "- du in einem Beitrag erwähnt wurdest"
#: ../../mod/settings.php:837
msgid "Advanced Page Settings"
@ -2082,7 +2082,7 @@ msgstr "Verwalte Identitäten und/oder Seiten"
msgid ""
"Toggle between different identities or community/group pages which share "
"your account details or which you have been granted \"manage\" permissions"
msgstr "Wechsle zwischen verschiedenen Identitäten oder Gemeinschafts-/Gruppen Seiten die deine Zugangsdetails teilen oder zu denen du \"Manage\" Befugnisse bekommen hast."
msgstr "Wechsle zwischen verschiedenen Identitäten oder Gemeinschafts-/Gruppen-Seiten, die deine Zugangsdetails teilen oder zu denen du \"Manage\" Befugnisse bekommen hast."
#: ../../mod/manage.php:95
msgid "Select an identity to manage: "
@ -2182,14 +2182,14 @@ msgid ""
"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."
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 für Dich an Deiner Pinnwand für zwei Wochen nach dem Registrierungsdatum sichtbar und wird dann verschwinden."
#: ../../mod/newmember.php:16
msgid ""
"On your <em>Settings</em> page - change your initial password. Also make a "
"note of your Identity Address. This looks just like an email address - and "
"will be useful in making friends on the free social web."
msgstr "Ändere bitte unter <em>Einstellungen</em> 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."
msgstr "Ändere bitte unter <em>Einstellungen</em> Dein Passwort. Außerdem merke Dir Deine Indentifikations-Adresse. Diese sieht aus wie eine E-Mail-Adresse und wird benötigt, um Freundschaften mit anderen im Friendica Netzwerk zu schliessen."
#: ../../mod/newmember.php:18
msgid ""
@ -2197,14 +2197,14 @@ msgid ""
" directory listing is like having an unlisted phone number. In general, you "
"should probably publish your listing - unless all of your friends and "
"potential friends know exactly how to find you."
msgstr "Ü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."
msgstr "Überprüfe die restlichen Einstellungen, insbesondere die Einstellungen zur Privatsphäre. Wenn du dein Profil nicht veröffentlichst, ist das als wenn Du Deine Telefonnummer nicht ins Telefonbuch einträgst. Im Allgemeinen solltest du es veröffentlichen - außer all deine Freunde und potentiellen Freunde wissen genau, wie sie dich finden können."
#: ../../mod/newmember.php:20
msgid ""
"Upload a profile photo if you have not done so already. Studies have shown "
"that people with real photos of themselves are ten times more likely to make"
" friends than people who do not."
msgstr "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."
msgstr "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."
#: ../../mod/newmember.php:23
msgid ""
@ -2216,7 +2216,7 @@ msgstr "Richte die Verbindung zu Facebook ein, wenn du im Augenblick ein Faceboo
msgid ""
"<em>If</em> this is your own personal server, installing the Facebook addon "
"may ease your transition to the free social web."
msgstr "<em>Wenn</em> dies dein privater Server ist könnte die Installation des Facebook Connectors deinen Umzug ins freie Soziale Netz angenehmer gestalten."
msgstr "<em>Wenn</em> 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 ""
@ -2251,7 +2251,7 @@ msgid ""
"The Directory page lets you find other people in this network or other "
"federated sites. Look for a <em>Connect</em> or <em>Follow</em> 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 <em>Verbinden</em> oder <em>Folgen</em> Link auf deren Profilseiten Ausschau und gib deine eigene Profiladresse an falls du danach gefragt wirst."
msgstr "Über die Verzeichnisseite kannst du andere Personen auf diesem Server oder anderen verknüpften Seiten finden. Halte nach einem <em>Verbinden</em> oder <em>Folgen</em> Link auf deren Profilseiten Ausschau und gib deine eigene Profiladresse an, falls du danach gefragt wirst."
#: ../../mod/newmember.php:40
msgid ""
@ -2835,7 +2835,7 @@ msgstr "Geschlossen"
#: ../../mod/admin.php:304
msgid "Requires approval"
msgstr "Bedarf Zustimmung"
msgstr "Bedarf der Zustimmung"
#: ../../mod/admin.php:305
msgid "Open"
@ -2889,7 +2889,7 @@ msgstr "Accounts gelten nach x Tagen als unbenutzt"
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."
msgstr "Verschwende keine System-Ressourcen auf das Pollen externer Seiten, wenn Accounts nicht mehr benutzt werden. 0 eingeben für kein Limit."
#: ../../mod/admin.php:330
msgid "Allowed friend domains"
@ -2925,7 +2925,7 @@ msgstr "Gravatar Unterstützung"
#: ../../mod/admin.php:339
msgid "Fullname check"
msgstr "Name auf Vollständigkeit überprüfen"
msgstr "Namen auf Vollständigkeit überprüfen"
#: ../../mod/admin.php:340
msgid "UTF-8 Regular expressions"
@ -3095,11 +3095,11 @@ msgstr "Protokolldatei"
msgid ""
"Must be writable by web server. Relative to your Friendica top-level "
"directory."
msgstr "Webserver muss Schreibrechte besitzen. Relativ zum Friendica-Installationsverzeichnis."
msgstr "Webserver muss Schreibrechte besitzen. Abhängig vom Friendica-Installationsverzeichnis."
#: ../../mod/admin.php:856
msgid "Log level"
msgstr "Protokollevel"
msgstr "Protokoll-Level"
#: ../../mod/admin.php:897
msgid "Close"
@ -3123,7 +3123,7 @@ msgstr "FTP Passwort"
#: ../../mod/profile.php:15 ../../boot.php:845
msgid "Requested profile is not available."
msgstr "Profil nicht vorhanden."
msgstr "Das angefragte Profil ist nicht vorhanden."
#: ../../mod/profile.php:111 ../../mod/display.php:67
msgid "Access to this profile has been restricted."
@ -3212,7 +3212,7 @@ msgstr "Zu dieser Adresse konnte keine passende Browser URL gefunden werden."
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."
msgstr "Die Adresse dieses Profils gehört zu einem Netzwerk, mit dem die Kommunikation auf dieser Seite ausgeschaltet wurde."
#: ../../mod/follow.php:79
msgid ""
@ -3475,7 +3475,7 @@ msgstr "%1$s hat %2$ss %3$s mit %4$s getaggt"
#: ../../mod/delegate.php:95
msgid "No potential page delegates located."
msgstr "Keine potentiellen Bevollmächtigte für die Seite gefunden."
msgstr "Keine potentiellen Bevollmächtigten für die Seite gefunden."
#: ../../mod/delegate.php:121
msgid "Delegate Page Management"
@ -3486,7 +3486,7 @@ msgid ""
"Delegates are able to manage all aspects of this account/page except for "
"basic account settings. Please do not delegate your personal account to "
"anybody that you do not trust completely."
msgstr "Bevollmächtigte sind in der Lage alle Aspekte dieses Accounts/dieser Seite zu verwalten, abgesehen von den Grundeinstellungen des Accounts. Bitte gib Niemandem eine Bevollmächtigung für deinen privaten Account dem du nicht absolut vertraust."
msgstr "Bevollmächtigte sind in der Lage alle Aspekte dieses Accounts/dieser Seite zu verwalten, abgesehen von den Grundeinstellungen des Accounts. Bitte gib niemandem eine Bevollmächtigung für deinen privaten Account, dem du nicht absolut vertraust."
#: ../../mod/delegate.php:124
msgid "Existing Page Managers"
@ -3595,7 +3595,7 @@ msgstr "Um diese Einladung anzunehmen besuche bitte:"
#: ../../mod/invite.php:104
msgid "You will need to supply this invitation code: $invite_code"
msgstr "Du benötigst den folgenden Einladungs Code: $invite_code"
msgstr "Du benötigst den folgenden Einladungscode: $invite_code"
#: ../../mod/invite.php:104
msgid ""
@ -3604,7 +3604,7 @@ msgstr "Sobald du registriert bist, kontaktiere mich bitte auf meiner Profilseit
#: ../../mod/dfrn_confirm.php:238
msgid "Response from remote site was not understood."
msgstr "Antwort der entfernten Gegenstelle unverständlich."
msgstr "Antwort der Gegenstelle unverständlich."
#: ../../mod/dfrn_confirm.php:247
msgid "Unexpected response from remote site: "
@ -3617,7 +3617,7 @@ msgstr "Bestätigung erfolgreich abgeschlossen."
#: ../../mod/dfrn_confirm.php:257 ../../mod/dfrn_confirm.php:271
#: ../../mod/dfrn_confirm.php:278
msgid "Remote site reported: "
msgstr "Entfernte Seite meldet: "
msgstr "Gegenstelle meldet: "
#: ../../mod/dfrn_confirm.php:269
msgid "Temporary failure. Please wait and try again."
@ -3663,7 +3663,7 @@ msgstr "Die Kontaktdaten für URL %s enthalten keinen Public Key für den Server
msgid ""
"The ID provided by your system is a duplicate on our system. It should work "
"if you try again."
msgstr "Die ID die uns dein System angeboten hat ist hier bereits vergeben. Bitte versuche es noch einmal."
msgstr "Die ID, die uns dein System angeboten hat, ist hier bereits vergeben. Bitte versuche es noch einmal."
#: ../../mod/dfrn_confirm.php:630
msgid "Unable to set your contact credentials on our system."
@ -3720,7 +3720,7 @@ msgstr "All meine Facebook-Kontakte und -Konversationen hier auf diese Website i
msgid ""
"Facebook conversations consist of your <em>profile wall</em> and your friend"
" <em>stream</em>."
msgstr "Facebook-Konversationen sind alles, was auf deiner <em>Pinnwand</em> erscheint, und die Beiträge deiner Freunde <em>(Stream).</em>"
msgstr "Facebook-Konversationen bestehen aus deinen Beiträgen auf deiner<em>Pinnwand</em>, sowie den Beiträgen deiner Freunde <em>Stream</em>."
#: ../../addon/facebook/facebook.php:391
msgid "On this website, your Facebook friend stream is only visible to you."
@ -3752,7 +3752,7 @@ msgstr "Wenn Du Facebook-Konversationen importierst und diese beiden Häkchen ni
#: ../../addon/facebook/facebook.php:408
msgid "Comma separated applications to ignore"
msgstr "Komma separierte Liste von Anwendungen die ignoriert werden sollen"
msgstr "Komma separiert Anwendungen, die ignoriert werden sollen"
#: ../../addon/facebook/facebook.php:476
#: ../../include/contact_selectors.php:81
@ -3858,7 +3858,7 @@ msgstr "Wörter, die gefiltert werden sollen (durch Kommas getrennt)"
#: ../../addon/nsfw/nsfw.php:58
msgid "Use /expression/ to provide regular expressions"
msgstr "Verwende /expression/ um Reguläre Ausdrücke zu verwenden"
msgstr "Verwende /expression/ um reguläre Ausdrücke zu verwenden"
#: ../../addon/nsfw/nsfw.php:74
msgid "NSFW Settings saved."
@ -3907,7 +3907,7 @@ msgid ""
" storage (like ownCloud). See <a "
"href=\"http://www.w3.org/community/unhosted/wiki/RemoteStorage#WebFinger\">RemoteStorage"
" WebFinger</a>"
msgstr "Ermöglicht es deine friendica id (%s) mit externen unhosted-fähigen Speichern (z.B. ownCloud) zu verbinden. Siehe <a href=\"http://www.w3.org/community/unhosted/wiki/RemoteStorage#WebFinger\">RemoteStorage WebFinger</a>"
msgstr "Ermöglicht dir, deine friendica id (%s) mit externen unhosted-fähigen Speichern (z.B. ownCloud) zu verbinden. Siehe <a href=\"http://www.w3.org/community/unhosted/wiki/RemoteStorage#WebFinger\">RemoteStorage WebFinger</a>"
#: ../../addon/uhremotestorage/uhremotestorage.php:85
msgid "Template URL (with {category})"
@ -3957,7 +3957,7 @@ msgstr "In diesem Fall sind es drei Ebenen. Man gewinnt indem man drei in einer
msgid ""
"The handicap game disables the center position on the middle level because "
"the player claiming this square often has an unfair advantage."
msgstr "Beim Handicap-Spiel wird die zentrale Position der mittleren Ebene gesperrt da der Spieler der diese Ebene besitzt oft einen unfairen Vorteil genießt."
msgstr "Beim Handicap-Spiel wird die zentrale Position der mittleren Ebene gesperrt, da der Spieler, der diese Ebene besitzt, oft einen unfairen Vorteil genießt."
#: ../../addon/tictac/tictac.php:182
msgid "You go first..."
@ -4046,7 +4046,7 @@ msgstr "Datei hochladen"
#: ../../addon/js_upload/js_upload.php:44
msgid "Drop files here to upload"
msgstr "Ziehe die Dateien hierher die du hochladen willst"
msgstr "Ziehe Dateien hierher, um sie hochzuladen"
#: ../../addon/js_upload/js_upload.php:46
msgid "Failed"
@ -4166,7 +4166,7 @@ msgstr "Schnell-Kommentar Einstellungen"
#: ../../addon/qcomment/qcomment.php:56
msgid "Enter quick comments, one per line"
msgstr "Gibt ein Schnell-Kommentar pro Zeile ein"
msgstr "Gib einen Schnell-Kommentar pro Zeile ein"
#: ../../addon/qcomment/qcomment.php:74
msgid "Quick Comment settings saved."
@ -4188,7 +4188,7 @@ 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)"
msgstr "Standard Zoomlevel (1: Welt; 18: höchstes)"
#: ../../addon/editplain/editplain.php:46
msgid "Editplain settings updated."
@ -4245,7 +4245,7 @@ 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."
msgstr "Für einige StatusNet Server sind voreingestellt OAuth Schlüsselpaare verfügbar. Solltest du einen dieser Server benutzen, dann verwende bitte diese Schlüssel. Falls nicht, stellen stattdessen eine Verbindung zu irgend einem anderen StatusNet Server her (siehe unten)."
#: ../../addon/statusnet/statusnet.php:275
msgid "Provide your own OAuth Credentials"
@ -4309,7 +4309,7 @@ msgid ""
"If enabled all your <strong>public</strong> 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 <strong>öffentlichen</strong> 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."
msgstr "Wenn aktiviert, so können all deine <strong>öffentlichen</strong> 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:331
msgid ""
@ -4317,7 +4317,7 @@ msgid ""
"details from unknown viewers?</em>) 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 "<strong>Hinweis</strong>: Aufgrund deiner Privatsphären Einstellungen (<em>Profil-Details vor unbekannten Betrachtern verbergen?</em>) 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."
msgstr "<strong>Hinweis</strong>: Aufgrund deiner Privatsphären-Einstellungen (<em>Profil-Details vor unbekannten Betrachtern verbergen?</em>) wird der Link, der eventuell an deinen StatusNet Account angehängt wird, um auf den original Artikel zu verweisen, den Betrachter auf eine leere Seite führen, die ihn darüber informiert, dass der Zugriff eingeschränkt wurde."
#: ../../addon/statusnet/statusnet.php:334
msgid "Allow posting to StatusNet"
@ -4409,7 +4409,7 @@ 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"
msgstr "Begrenze Beiträge nach einer bestimmten Anzahl an Buchstaben"
#: ../../addon/showmore/showmore.php:64
msgid "Show More Settings saved."
@ -4441,7 +4441,7 @@ msgstr "Piwik Basis URL"
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)"
msgstr "Absoluter Pfad zu deiner Piwik Installation (ohne Protokoll (http/s) und mit abschließendem Schrägstrich)"
#: ../../addon/piwik/piwik.php:91
msgid "Site ID"
@ -4453,7 +4453,7 @@ msgstr "Link zum Setzen des Opt-Out Cookies anzeigen?"
#: ../../addon/piwik/piwik.php:93
msgid "Asynchronous tracking"
msgstr "Asynchroned Tracken"
msgstr "Asynchrones Tracken"
#: ../../addon/twitter/twitter.php:73
msgid "Post to Twitter"
@ -4480,7 +4480,7 @@ msgid ""
"button below to get a PIN from Twitter which you have to copy into the input"
" box below and submit the form. Only your <strong>public</strong> posts will"
" 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 <strong>öffentliche</strong> Beiträge werden bei Twitter veröffentlicht."
msgstr "Auf diesem Friendica-Server wurde das Twitter-Plugin aktiviert, aber du hast deinen Account noch nicht mit deinem Twitter-Account verbunden. Klicke dazu auf die Schaltfläche unten. Du erhältst dann eine PIN von Twitter, die du dann in das Eingabefeld unten einfügst. Denk daran, den Senden-Knopf zu drücken! Nur <strong>öffentliche</strong> Beiträge werden bei Twitter veröffentlicht."
#: ../../addon/twitter/twitter.php:168
msgid "Log in with Twitter"
@ -4495,7 +4495,7 @@ msgid ""
"If enabled all your <strong>public</strong> 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 <strong>öffentlichen</strong> 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."
msgstr "Wenn aktiviert, so können all deine <strong>öffentlichen</strong> 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:187
msgid ""
@ -4503,7 +4503,7 @@ msgid ""
"details from unknown viewers?</em>) 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 "<strong>Hinweis</strong>: Aufgrund deiner Privatsphären Einstellungen (<em>Profil-Details vor unbekannten Betrachtern verbergen?</em>) 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."
msgstr "<strong>Hinweis</strong>: Aufgrund deiner Privatsphären-Einstellungen (<em>Profil-Details vor unbekannten Betrachtern verbergen?</em>) wird der Link, der eventuell an an deinen Twitter Account angehängt wird, um auf den original Artikel zu verweisen, den Betrachter auf eine leere Seite führen, die ihn darüber informiert, dass der Zugriff eingeschränkt wurde."
#: ../../addon/twitter/twitter.php:190
msgid "Allow posting to Twitter"
@ -4648,7 +4648,7 @@ msgstr "Seriös, hat mein Vertrauen"
#: ../../include/contact_selectors.php:56
msgid "Frequently"
msgstr "Häufig"
msgstr "immer wieder"
#: ../../include/contact_selectors.php:57
msgid "Hourly"
@ -4656,7 +4656,7 @@ msgstr "Stündlich"
#: ../../include/contact_selectors.php:58
msgid "Twice daily"
msgstr "Zweimal Täglich"
msgstr "Zweimal täglich"
#: ../../include/contact_selectors.php:59
msgid "Daily"
@ -4856,7 +4856,7 @@ msgstr "Partner"
#: ../../include/profile_selectors.php:33
msgid "Cohabiting"
msgstr "kohabitierend"
msgstr "zusammenlebend"
#: ../../include/profile_selectors.php:33
msgid "Happy"
@ -5068,7 +5068,7 @@ msgid ""
"A deleted group with this name was revived. Existing item permissions "
"<strong>may</strong> apply to this group and any future members. If this is "
"not what you intended, please create another group with a different name."
msgstr "Eine gelöschte Gruppe mit diesem Namen wurde wiederbelebt. Bestehende Berechtigungseinstellungen <strong>könnten</strong> auf diese Gruppe oder zukünftige Mitglieder angewandt werden. Falls du dies nicht möchtest erstelle bitte eine andere Gruppe mit einem anderen Namen."
msgstr "Eine gelöschte Gruppe mit diesem Namen wurde wiederbelebt. Bestehende Berechtigungseinstellungen <strong>könnten</strong> auf diese Gruppe oder zukünftige Mitglieder angewandt werden. Falls du dies nicht möchtest, erstelle bitte eine andere Gruppe mit einem anderen Namen."
#: ../../include/group.php:168
msgid "Everybody"
@ -5184,7 +5184,7 @@ msgstr "Alle Benachrichtigungen anzeigen"
#: ../../include/nav.php:120
msgid "Mark all system notifications seen"
msgstr "Markiere alle System Benachrichtigungen als gelesen"
msgstr "Markiere alle System-Benachrichtigungen als gelesen"
#: ../../include/nav.php:124
msgid "Private mail"
@ -5356,7 +5356,7 @@ msgstr "Von: "
#: ../../include/bbcode.php:202
msgid "$1 wrote:"
msgstr "$1 geschrieben:"
msgstr "$1 hat geschrieben:"
#: ../../include/bbcode.php:216 ../../include/bbcode.php:282
msgid "Image/photo"
@ -5648,7 +5648,7 @@ msgstr "mag ich nicht"
#: ../../include/conversation.php:522
msgid "Share this"
msgstr "Teilen"
msgstr "Teile dieses"
#: ../../include/conversation.php:522
msgid "share"
@ -5676,7 +5676,7 @@ msgstr "Tag hinzufügen"
#: ../../include/conversation.php:650
msgid "to"
msgstr "to"
msgstr "zu"
#: ../../include/conversation.php:651
msgid "Wall-to-Wall"
@ -5731,7 +5731,7 @@ msgstr "%s mögen das nicht."
#: ../../include/conversation.php:867
msgid "Visible to <strong>everybody</strong>"
msgstr "Für <strong>Jedermann</strong> sichtbar"
msgstr "Für <strong>jedermann</strong> sichtbar"
#: ../../include/conversation.php:869
msgid "Please enter a video link/URL:"

View File

@ -11,8 +11,8 @@ $a->strings["Contact update failed."] = "Konnte den Kontakt nicht aktualisieren.
$a->strings["Permission denied."] = "Zugriff verweigert.";
$a->strings["Contact not found."] = "Kontakt nicht gefunden.";
$a->strings["Repair Contact Settings"] = "Kontakt-Einstellungen reparieren";
$a->strings["<strong>WARNING: This is highly advanced</strong> and if you enter incorrect information your communications with this contact may stop working."] = "<strong>ACHTUNG: Das sind Experten-Einstellungen!</strong> Wenn Du etwas falsches eingibst, funktioniert die Kommunikation mit diesem Kontakt evtl. nicht mehr.";
$a->strings["Please use your browser 'Back' button <strong>now</strong> if you are uncertain what to do on this page."] = "Bitte nutze den Zurück-Button deines Browsers <strong>jetzt</strong>, wenn du dir unsicher bist, was auf dieser Seite gemacht wird.";
$a->strings["<strong>WARNING: This is highly advanced</strong> and if you enter incorrect information your communications with this contact may stop working."] = "<strong>ACHTUNG: Das sind Experten-Einstellungen!</strong> Wenn Du etwas Falsches eingibst, funktioniert die Kommunikation mit diesem Kontakt evtl. nicht mehr.";
$a->strings["Please use your browser 'Back' button <strong>now</strong> if you are uncertain what to do on this page."] = "Bitte nutze den Zurück-Button deines Browsers <strong>jetzt</strong>, wenn du dir unsicher bist, was du tun willst.";
$a->strings["Return to contact editor"] = "Zurück zum Kontakteditor";
$a->strings["Name"] = "Name";
$a->strings["Account Nickname"] = "Account-Spitzname";
@ -57,10 +57,10 @@ $a->strings["Remove Item Tag"] = "Gegenstands-Tag entfernen";
$a->strings["Select a tag to remove: "] = "Wähle ein Tag zum Entfernen aus: ";
$a->strings["Remove"] = "Entfernen";
$a->strings["%s welcomes %s"] = "%s heißt %s herzlich willkommen";
$a->strings["Authorize application connection"] = "Verbindung der Applikation authorisieren";
$a->strings["Authorize application connection"] = "Verbindung der Applikation autorisieren";
$a->strings["Return to your app and insert this Securty Code:"] = "Gehe zu deiner Anwendung zurück und trage dort folgenden Sicherheitscode ein:";
$a->strings["Please login to continue."] = "Bitte melde dich an um fortzufahren.";
$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Möchtest du dieser Anwendung den Zugriff auf deine Beiträge und Kontakte sowie die Erstellung neuer Beiträge in deinem Namen gestatten?";
$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Möchtest du dieser Anwendung den Zugriff auf deine Beiträge und Kontakte, sowie das Erstellen neuer Beiträge in deinem Namen gestatten?";
$a->strings["Yes"] = "Ja";
$a->strings["No"] = "Nein";
$a->strings["Photo Albums"] = "Fotoalben";
@ -115,7 +115,7 @@ $a->strings["Recent Photos"] = "Neueste Fotos";
$a->strings["Not available."] = "Nicht verfügbar.";
$a->strings["Community"] = "Gemeinschaft";
$a->strings["No results."] = "Keine Ergebnisse.";
$a->strings["This is Friendica, version"] = "Dies ist Friendica version";
$a->strings["This is Friendica, version"] = "Dies ist Friendica, Version";
$a->strings["running at web location"] = "die unter folgender Webadresse zu finden ist";
$a->strings["Please visit <a href=\"http://friendica.com\">Friendica.com</a> to learn more about the Friendica project."] = "Bitte besuche <a href=\"http://friendica.com\">Friendica.com</a> um mehr über das Friendica Projekt zu erfahren.";
$a->strings["Bug reports and issues: please visit"] = "Probleme oder Fehler gefunden? Bitte besuche";
@ -156,24 +156,24 @@ $a->strings["Friends are advised to please try again in 24 hours."] = "Freunde s
$a->strings["Invalid locator"] = "Ungültiger Locator";
$a->strings["Unable to resolve your name at the provided location."] = "Konnte deinen Namen an der angegebenen Stelle nicht finden.";
$a->strings["You have already introduced yourself here."] = "Du hast dich hier bereits vorgestellt.";
$a->strings["Apparently you are already friends with %s."] = "Es scheint so, als ob du bereits ein Freund von %s bist.";
$a->strings["Apparently you are already friends with %s."] = "Es scheint so, als ob du bereits mit %s befreundet bist.";
$a->strings["Invalid profile URL."] = "Ungültige Profil-URL.";
$a->strings["Disallowed profile URL."] = "Nicht erlaubte Profil-URL.";
$a->strings["Failed to update contact record."] = "Aktualisierung der Kontaktdaten fehlgeschlagen.";
$a->strings["Your introduction has been sent."] = "Deine Kontaktanfrage wurde gesendet.";
$a->strings["Please login to confirm introduction."] = "Bitte melde dich an, um die Kontaktanfrage zu bestätigen.";
$a->strings["Incorrect identity currently logged in. Please login to <strong>this</strong> profile."] = "Incorrect identity currently logged in. Please login to <strong>this</strong> profile.";
$a->strings["Incorrect identity currently logged in. Please login to <strong>this</strong> profile."] = "Momentan bist du mit einer anderen Identität angemeldet. Bitte melde Dich mit <strong>diesem</strong> Profil an.";
$a->strings["Welcome home %s."] = "Willkommen zurück %s.";
$a->strings["Please confirm your introduction/connection request to %s."] = "Bitte bestätige deine Kontaktanfrage bei %s.";
$a->strings["Confirm"] = "Bestätigen";
$a->strings["[Name Withheld]"] = "[Name Zurückgehalten]";
$a->strings["[Name Withheld]"] = "[Name unterdrückt]";
$a->strings["Diaspora members: Please do not use this form. Instead, enter \"%s\" into your Diaspora search bar."] = "Diaspora-User: Bitte nicht dieses Formular benutzen! Gebt statt dessen \"%s\" in der Diaspora-Suchleiste ein.";
$a->strings["Please enter your 'Identity Address' from one of the following supported social networks:"] = "Bitte gib die Adresse deines Profils in einem der unterstützten sozialen Netzwerke an:";
$a->strings["Friend/Connection Request"] = "Freundschafts-/Kontaktanfrage";
$a->strings["Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca"] = "Beispiele: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca";
$a->strings["Please answer the following:"] = "Bitte beantworte folgende Fragen:";
$a->strings["Please answer the following:"] = "Bitte beantworte Folgendes:";
$a->strings["Does %s know you?"] = "Kennt %s dich?";
$a->strings["Add a personal note:"] = "Eine persönliche Notiz anfügen:";
$a->strings["Add a personal note:"] = "Eine persönliche Notiz beifügen:";
$a->strings["Friendica"] = "Friendica";
$a->strings["StatusNet/Federated Social Web"] = "StatusNet/Federated Social Web";
$a->strings["Diaspora"] = "Diaspora";
@ -193,7 +193,7 @@ $a->strings["You may need to import the file \"database.sql\" manually using php
$a->strings["Database import failed."] = "Import der Datenbank schlug fehl.";
$a->strings["System check"] = "Systemtest";
$a->strings["Check again"] = "Noch einmal testen";
$a->strings["In order to install Friendica we need to know how to connect to your database."] = "Um Friendica installieren zu können müssen wir wissen wie wir zu deiner Datenbank Kontakt aufnehmen können.";
$a->strings["In order to install Friendica we need to know how to connect to your database."] = "Um Friendica installieren zu können, müssen wir wissen, wie wir zu deiner Datenbank Kontakt aufnehmen können.";
$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Bitte kontaktiere den Hosting Provider oder den Administrator der Seite, falls du Fragen zu diesen Einstellungen haben solltest.";
$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "Die Datenbank, die du unten angibst, sollte bereits existieren. Ist dies noch nicht der Fall, erzeuge sie bitte bevor du mit der Installation fortfährst.";
$a->strings["Database Server Name"] = "Datenbank-Server";
@ -201,13 +201,13 @@ $a->strings["Database Login Name"] = "Datenbank-Nutzer";
$a->strings["Database Login Password"] = "Datenbank-Passwort";
$a->strings["Database Name"] = "Datenbank-Name";
$a->strings["Site administrator email address"] = "E-Mail-Adresse des Administrators";
$a->strings["Your account email address must match this in order to use the web admin panel."] = "Die E-Mail-Adresse, die in deinem Friendica-Account eingetragen, muss mit dieser Adresse übereinstimmen, damit du das Admin-Panel benutzen kannst.";
$a->strings["Your account email address must match this in order to use the web admin panel."] = "Die E-Mail-Adresse, die in deinem Friendica-Account eingetragen ist, muss mit dieser Adresse übereinstimmen, damit du das Admin-Panel benutzen kannst.";
$a->strings["Please select a default timezone for your website"] = "Bitte wähle die Standardzeitzone deiner Webseite";
$a->strings["Site settings"] = "Server-Einstellungen";
$a->strings["Could not find a command line version of PHP in the web server PATH."] = "Konnte keine Kommandozeilenversion von PHP im PATH des Servers finden.";
$a->strings["PHP executable path"] = "Pfad zu PHP";
$a->strings["Enter full path to php executable"] = "Kompletter Pfad zum PHP-Executable";
$a->strings["Command line PHP"] = "Kommadozeilen-PHP";
$a->strings["Command line PHP"] = "Kommandozeilen-PHP";
$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "Die Kommandozeilenversion von PHP auf deinem System hat \"register_argc_argv\" nicht aktiviert.";
$a->strings["This is required for message delivery to work."] = "Dies wird für die Auslieferung von Nachrichten benötigt.";
$a->strings["PHP \"register_argc_argv\""] = "PHP \"register_argc_argv\"";
@ -235,7 +235,7 @@ $a->strings["The database configuration file \".htconfig.php\" could not be writ
$a->strings["Errors encountered creating database tables."] = "Fehler aufgetreten während der Erzeugung der Datenbanktabellen.";
$a->strings["l F d, Y \\@ g:i A"] = "l F d, Y \\@ g:i A";
$a->strings["Time Conversion"] = "Zeitumrechnung";
$a->strings["Friendika provides this service for sharing events with other networks and friends in unknown timezones."] = "Friendica bietet diese Funktion an, um das teilen von Events mit Kontakten zu vereinfachen, deren Zeitzone nicht ermittelt werden kann.";
$a->strings["Friendika provides this service for sharing events with other networks and friends in unknown timezones."] = "Friendica bietet diese Funktion an, um das Teilen von Events mit den Kontakten zu vereinfachen, deren Zeitzone nicht ermittelt werden kann.";
$a->strings["UTC time: %s"] = "UTC Zeit: %s";
$a->strings["Current timezone: %s"] = "Aktuelle Zeitzone: %s";
$a->strings["Converted localtime: %s"] = "Umgerechnete lokale Zeit: %s";
@ -351,13 +351,13 @@ $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";
$a->strings["Administrator"] = "Administrator";
$a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "Anfrage konnte nicht verifiziert werden. (Eventuell hast du bereits ähnliche Anfrage gestellt.) Zurücksetzen des Passworts gescheitert.";
$a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "Anfrage konnte nicht verifiziert werden. (Eventuell hast du bereits eine ähnliche Anfrage gestellt.) Zurücksetzen des Passworts gescheitert.";
$a->strings["Password Reset"] = "Passwort zurücksetzen";
$a->strings["Your password has been reset as requested."] = "Dein Passwort wurde wie gewünscht zurückgesetzt.";
$a->strings["Your new password is"] = "Dein neues Passwort lautet";
$a->strings["Save or copy your new password - and then"] = "Speichere oder kopiere dein neues Passwort - und dann";
$a->strings["click here to login"] = "hier klicken, um dich anzumelden";
$a->strings["Your password may be changed from the <em>Settings</em> page after successful login."] = "Du kannst das Passwort in den <em>Einstellungen</em> ändern sobald du dich erfolgreich angemeldet hast.";
$a->strings["Your password may be changed from the <em>Settings</em> page after successful login."] = "Du kannst das Passwort in den <em>Einstellungen</em> ändern, sobald du dich erfolgreich angemeldet hast.";
$a->strings["Forgot your Password?"] = "Hast du dein Passwort vergessen?";
$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Gib deine Email-Adresse an und fordere ein neues Passwort an. Es werden dir dann weitere Informationen per Mail zugesendet.";
$a->strings["Nickname or Email: "] = "Spitzname oder Email:";
@ -389,7 +389,7 @@ $a->strings["You can't edit this application."] = "Du kannst dieses Programm nic
$a->strings["Connected Apps"] = "Verbundene Programme";
$a->strings["Client key starts with"] = "Anwender Schlüssel beginnt mit";
$a->strings["No name"] = "Kein Name";
$a->strings["Remove authorization"] = "Authorisierung entziehen";
$a->strings["Remove authorization"] = "Autorisierung entziehen";
$a->strings["No Plugin settings configured"] = "Keine Plugin-Einstellungen konfiguriert";
$a->strings["Plugin Settings"] = "Plugin-Einstellungen";
$a->strings["Built-in support for %s connectivity is %s"] = "Eingebaute Unterstützung für Verbindungen zu %s ist %s";
@ -458,16 +458,16 @@ $a->strings["Default Post Permissions"] = "Standard-Zugriffsrechte für Beiträg
$a->strings["(click to open/close)"] = "(klicke zum öffnen/schließen)";
$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 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["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["You receive a friend suggestion"] = "- du eine Empfehlung erhältst";
$a->strings["You are tagged in a post"] = "- du in einem Beitrag erwähnt wurdest";
$a->strings["Advanced Page Settings"] = "Erweiterte Seiten-Einstellungen";
$a->strings["Manage Identities and/or Pages"] = "Verwalte Identitäten und/oder Seiten";
$a->strings["Toggle between different identities or community/group pages which share your account details or which you have been granted \"manage\" permissions"] = "Wechsle zwischen verschiedenen Identitäten oder Gemeinschafts-/Gruppen Seiten die deine Zugangsdetails teilen oder zu denen du \"Manage\" Befugnisse bekommen hast.";
$a->strings["Toggle between different identities or community/group pages which share your account details or which you have been granted \"manage\" permissions"] = "Wechsle zwischen verschiedenen Identitäten oder Gemeinschafts-/Gruppen-Seiten, die deine Zugangsdetails teilen oder zu denen du \"Manage\" Befugnisse bekommen hast.";
$a->strings["Select an identity to manage: "] = "Wähle eine Identität zum Verwalten: ";
$a->strings["Search Results For:"] = "Suchergebnisse für:";
$a->strings["Remove term"] = "Begriff entfernen";
@ -493,17 +493,17 @@ $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. 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 <em>Settings</em> 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 <em>Einstellungen</em> 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["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 für Dich an Deiner Pinnwand für zwei Wochen nach dem Registrierungsdatum sichtbar und wird dann verschwinden.";
$a->strings["On your <em>Settings</em> 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 <em>Einstellungen</em> Dein Passwort. Außerdem merke Dir Deine Indentifikations-Adresse. Diese sieht aus wie eine E-Mail-Adresse und wird benötigt, um Freundschaften 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 als wenn Du Deine Telefonnummer nicht ins Telefonbuch einträgst. Im Allgemeinen solltest du es veröffentlichen - außer all deine Freunde und potentiellen Freunde wissen genau, wie sie dich finden können.";
$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["<em>If</em> this is your own personal server, installing the Facebook addon may ease your transition to the free social web."] = "<em>Wenn</em> dies dein privater Server ist könnte die Installation des Facebook Connectors deinen Umzug ins freie Soziale Netz angenehmer gestalten.";
$a->strings["<em>If</em> this is your own personal server, installing the Facebook addon may ease your transition to the free social web."] = "<em>Wenn</em> 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 <strong>default</strong> profile to your liking. Review the settings for hiding your list of friends and hiding the profile from unknown visitors."] = "Editiere dein <strong>Standard</strong> 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 <em>Add New Contact</em> 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 <em>Neuen Kontakt hinzufügen</em> ein.";
$a->strings["The Directory page lets you find other people in this network or other federated sites. Look for a <em>Connect</em> or <em>Follow</em> 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 <em>Verbinden</em> oder <em>Folgen</em> Link auf deren Profilseiten Ausschau und gib deine eigene Profiladresse an falls du danach gefragt wirst.";
$a->strings["The Directory page lets you find other people in this network or other federated sites. Look for a <em>Connect</em> or <em>Follow</em> link on their profile page. Provide your own Identity Address if requested."] = "Über die Verzeichnisseite kannst du andere Personen auf diesem Server oder anderen verknüpften Seiten finden. Halte nach einem <em>Verbinden</em> oder <em>Folgen</em> 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 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 <strong>help</strong> pages may be consulted for detail on other program features and resources."] = "Unsere <strong>Hilfe</strong> Seiten können herangezogen werden, um weitere Einzelheiten zu andern Programm Features zu erhalten.";
@ -634,7 +634,7 @@ $a->strings["Version"] = "Version";
$a->strings["Active plugins"] = "Aktive Plugins";
$a->strings["Site settings updated."] = "Seiteneinstellungen aktualisiert.";
$a->strings["Closed"] = "Geschlossen";
$a->strings["Requires approval"] = "Bedarf Zustimmung";
$a->strings["Requires approval"] = "Bedarf der Zustimmung";
$a->strings["Open"] = "Offen";
$a->strings["File upload"] = "Datei hochladen";
$a->strings["Policies"] = "Regeln";
@ -647,7 +647,7 @@ $a->strings["Maximum image size"] = "Maximale Größe von Bildern";
$a->strings["Register policy"] = "Registrierungsmethode";
$a->strings["Register text"] = "Registrierungstext";
$a->strings["Accounts abandoned after x days"] = "Accounts gelten nach x Tagen als unbenutzt";
$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Verschwende keine System-Ressourcen fürs Pollen externer Seiten, wenn Accounts nicht mehr benutzt werden. 0 eingeben für kein Limit.";
$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Verschwende keine System-Ressourcen auf das Pollen externer Seiten, wenn Accounts nicht mehr benutzt werden. 0 eingeben für kein Limit.";
$a->strings["Allowed friend domains"] = "Erlaubte Domains für Kontakte";
$a->strings["Allowed email domains"] = "Erlaubte Domains für Emails";
$a->strings["Block public"] = "Öffentlichen Zugriff blockieren";
@ -656,7 +656,7 @@ $a->strings["Global directory update URL"] = "URL für Updates beim weltweiten V
$a->strings["Block multiple registrations"] = "Unterbinde Mehrfachregistrierung";
$a->strings["OpenID support"] = "OpenID Unterstützung";
$a->strings["Gravatar support"] = "Gravatar Unterstützung";
$a->strings["Fullname check"] = "Name auf Vollständigkeit überprüfen";
$a->strings["Fullname check"] = "Namen auf Vollständigkeit überprüfen";
$a->strings["UTF-8 Regular expressions"] = "UTF-8 Reguläre Ausdrücke";
$a->strings["Show Community Page"] = "Gemeinschaftsseite anzeigen";
$a->strings["Enable OStatus support"] = "OStatus Unterstützung aktivieren";
@ -700,14 +700,14 @@ $a->strings["Log settings updated."] = "Protokolleinstellungen aktualisiert.";
$a->strings["Clear"] = "löschen";
$a->strings["Debugging"] = "Protokoll führen";
$a->strings["Log file"] = "Protokolldatei";
$a->strings["Must be writable by web server. Relative to your Friendica top-level directory."] = "Webserver muss Schreibrechte besitzen. Relativ zum Friendica-Installationsverzeichnis.";
$a->strings["Log level"] = "Protokollevel";
$a->strings["Must be writable by web server. Relative to your Friendica top-level directory."] = "Webserver muss Schreibrechte besitzen. Abhängig vom Friendica-Installationsverzeichnis.";
$a->strings["Log level"] = "Protokoll-Level";
$a->strings["Close"] = "Schließen";
$a->strings["FTP Host"] = "FTP Host";
$a->strings["FTP Path"] = "FTP Pfad";
$a->strings["FTP User"] = "FTP Nutzername";
$a->strings["FTP Password"] = "FTP Passwort";
$a->strings["Requested profile is not available."] = "Profil nicht vorhanden.";
$a->strings["Requested profile is not available."] = "Das angefragte Profil ist nicht vorhanden.";
$a->strings["Access to this profile has been restricted."] = "Der Zugriff zu diesem Profil wurde eingeschränkt.";
$a->strings["Tips for New Members"] = "Tipps für neue Nutzer";
$a->strings["{0} wants to be your friend"] = "{0} möchte mit dir in Kontakt treten";
@ -727,7 +727,7 @@ $a->strings["No compatible communication protocols or feeds were discovered."] =
$a->strings["The profile address specified does not provide adequate information."] = "Die angegebene Profiladresse liefert unzureichende Informationen.";
$a->strings["An author or name was not found."] = "Es wurde kein Autor oder Name gefunden.";
$a->strings["No browser URL could be matched to this address."] = "Zu dieser Adresse konnte keine passende Browser URL gefunden werden.";
$a->strings["The profile address specified belongs to a network which has been disabled on this site."] = "Die Adresse dieses Profils gehört zu einem Netzwerk mit dem die Kommunikation auf dieser Seite ausgeschaltet wurde.";
$a->strings["The profile address specified belongs to a network which has been disabled on this site."] = "Die Adresse dieses Profils gehört zu einem Netzwerk, mit dem die Kommunikation auf dieser Seite ausgeschaltet wurde.";
$a->strings["Limited profile. This person will be unable to receive direct/personal notifications from you."] = "Eingeschränktes Profil. Diese Person wird keine direkten/privaten Nachrichten von dir erhalten können.";
$a->strings["Unable to retrieve contact information."] = "Konnte die Kontaktinformationen nicht empfangen.";
$a->strings["following"] = "folgen";
@ -791,9 +791,9 @@ $a->strings["Profile Image"] = "Profilbild";
$a->strings["visible to everybody"] = "sichtbar für jeden";
$a->strings["Edit visibility"] = "Sichtbarkeit bearbeiten";
$a->strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s hat %2\$ss %3\$s mit %4\$s getaggt";
$a->strings["No potential page delegates located."] = "Keine potentiellen Bevollmächtigte für die Seite gefunden.";
$a->strings["No potential page delegates located."] = "Keine potentiellen Bevollmächtigten für die Seite gefunden.";
$a->strings["Delegate Page Management"] = "Delegiere das Management für die Seite";
$a->strings["Delegates are able to manage all aspects of this account/page except for basic account settings. Please do not delegate your personal account to anybody that you do not trust completely."] = "Bevollmächtigte sind in der Lage alle Aspekte dieses Accounts/dieser Seite zu verwalten, abgesehen von den Grundeinstellungen des Accounts. Bitte gib Niemandem eine Bevollmächtigung für deinen privaten Account dem du nicht absolut vertraust.";
$a->strings["Delegates are able to manage all aspects of this account/page except for basic account settings. Please do not delegate your personal account to anybody that you do not trust completely."] = "Bevollmächtigte sind in der Lage alle Aspekte dieses Accounts/dieser Seite zu verwalten, abgesehen von den Grundeinstellungen des Accounts. Bitte gib niemandem eine Bevollmächtigung für deinen privaten Account, dem du nicht absolut vertraust.";
$a->strings["Existing Page Managers"] = "Vorhandene Seiten Manager";
$a->strings["Existing Page Delegates"] = "Vorhandene Bevollmächtigte für die Seite";
$a->strings["Potential Delegates"] = "Potentielle Bevollmächtigte";
@ -821,12 +821,12 @@ $a->strings["Send invitations"] = "Einladungen senden";
$a->strings["Enter email addresses, one per line:"] = "E-Mail-Adressen eingeben, eine pro Zeile:";
$a->strings["Please join my social network on %s"] = "Bitte trete meinem Sozialen Netzwerk auf %s bei";
$a->strings["To accept this invitation, please visit:"] = "Um diese Einladung anzunehmen besuche bitte:";
$a->strings["You will need to supply this invitation code: \$invite_code"] = "Du benötigst den folgenden Einladungs Code: \$invite_code";
$a->strings["You will need to supply this invitation code: \$invite_code"] = "Du benötigst den folgenden Einladungscode: \$invite_code";
$a->strings["Once you have registered, please connect with me via my profile page at:"] = "Sobald du registriert bist, kontaktiere mich bitte auf meiner Profilseite:";
$a->strings["Response from remote site was not understood."] = "Antwort der entfernten Gegenstelle unverständlich.";
$a->strings["Response from remote site was not understood."] = "Antwort der Gegenstelle unverständlich.";
$a->strings["Unexpected response from remote site: "] = "Unerwartete Antwort der Gegenstelle: ";
$a->strings["Confirmation completed successfully."] = "Bestätigung erfolgreich abgeschlossen.";
$a->strings["Remote site reported: "] = "Entfernte Seite meldet: ";
$a->strings["Remote site reported: "] = "Gegenstelle meldet: ";
$a->strings["Temporary failure. Please wait and try again."] = "Zeitweiser Fehler. Bitte warte einige Momente und versuche es dann noch einmal.";
$a->strings["Introduction failed or was revoked."] = "Kontaktanfrage schlug fehl oder wurde zurück gezogen.";
$a->strings["Unable to set contact photo."] = "Konnte das Bild des Kontakts nicht speichern.";
@ -836,7 +836,7 @@ $a->strings["Our site encryption key is apparently messed up."] = "Der Verschlü
$a->strings["Empty site URL was provided or URL could not be decrypted by us."] = "Leere URL für die Seite erhalten oder die URL konnte nicht entschlüsselt werden.";
$a->strings["Contact record was not found for you on our site."] = "Für diesen Kontakt wurde auf unserer Seite kein Eintrag gefunden.";
$a->strings["Site public key not available in contact record for URL %s."] = "Die Kontaktdaten für URL %s enthalten keinen Public Key für den Server.";
$a->strings["The ID provided by your system is a duplicate on our system. It should work if you try again."] = "Die ID die uns dein System angeboten hat ist hier bereits vergeben. Bitte versuche es noch einmal.";
$a->strings["The ID provided by your system is a duplicate on our system. It should work if you try again."] = "Die ID, die uns dein System angeboten hat, ist hier bereits vergeben. Bitte versuche es noch einmal.";
$a->strings["Unable to set your contact credentials on our system."] = "Deine Kontaktreferenzen konnten nicht in unserem System gespeichert werden.";
$a->strings["Unable to update your contact profile details on our system"] = "Die Updates für dein Profil konnten nicht gespeichert werden";
$a->strings["Connection accepted at %s"] = "Auf %s wurde die Verbindung akzeptiert";
@ -849,13 +849,13 @@ $a->strings["Remove Facebook connector"] = "Facebook-Connector entfernen";
$a->strings["Re-authenticate [This is necessary whenever your Facebook password is changed.]"] = "Neu authentifizieren [Das ist immer dann nötig, wenn Du Dein Facebook-Passwort geändert hast.]";
$a->strings["Post to Facebook by default"] = "Veröffentliche standardmäßig bei Facebook";
$a->strings["Link all your Facebook friends and conversations on this website"] = "All meine Facebook-Kontakte und -Konversationen hier auf diese Website importieren";
$a->strings["Facebook conversations consist of your <em>profile wall</em> and your friend <em>stream</em>."] = "Facebook-Konversationen sind alles, was auf deiner <em>Pinnwand</em> erscheint, und die Beiträge deiner Freunde <em>(Stream).</em>";
$a->strings["Facebook conversations consist of your <em>profile wall</em> and your friend <em>stream</em>."] = "Facebook-Konversationen bestehen aus deinen Beiträgen auf deiner<em>Pinnwand</em>, sowie den Beiträgen deiner Freunde <em>Stream</em>.";
$a->strings["On this website, your Facebook friend stream is only visible to you."] = "Hier auf dieser Webseite kannst nur du die Beiträge Deiner Facebook-Freunde (Stream) sehen.";
$a->strings["The following settings determine the privacy of your Facebook profile wall on this website."] = "Mit den folgenden Einstellungen kannst Du die Privatsphäre der Kopie Deiner Facebook-Pinnwand hier auf dieser Seite einstellen.";
$a->strings["On this website your Facebook profile wall conversations will only be visible to you"] = "Meine Facebook-Pinnwand hier auf dieser Webseite nur für mich sichtbar machen";
$a->strings["Do not import your Facebook profile wall conversations"] = "Facebook-Pinnwand nicht importieren";
$a->strings["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 website and your privacy settings on this website will be used to determine who may see the conversations."] = "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.";
$a->strings["Comma separated applications to ignore"] = "Komma separierte Liste von Anwendungen die ignoriert werden sollen";
$a->strings["Comma separated applications to ignore"] = "Komma separiert Anwendungen, die ignoriert werden sollen";
$a->strings["Facebook"] = "Facebook";
$a->strings["Facebook Connector Settings"] = "Facebook-Verbindungseinstellungen";
$a->strings["Post to Facebook"] = "Bei Facebook veröffentlichen";
@ -885,7 +885,7 @@ $a->strings["yourls Settings saved."] = "yourls Einstellungen gespeichert";
$a->strings["\"Not Safe For Work\" Settings"] = "\"Not Safe For Work\"-Einstellungen";
$a->strings["Enable NSFW filter"] = "NSFW Filter aktivieren";
$a->strings["Comma separated words to treat as NSFW"] = "Wörter, die gefiltert werden sollen (durch Kommas getrennt)";
$a->strings["Use /expression/ to provide regular expressions"] = "Verwende /expression/ um Reguläre Ausdrücke zu verwenden";
$a->strings["Use /expression/ to provide regular expressions"] = "Verwende /expression/ um reguläre Ausdrücke zu verwenden";
$a->strings["NSFW Settings saved."] = "NSFW-Einstellungen gespeichert";
$a->strings["%s - Click to open/close"] = "%s Zum Öffnen/Schließen klicken";
$a->strings["Login"] = "Anmeldung";
@ -895,7 +895,7 @@ $a->strings["Most active users"] = "Aktivste Nutzer";
$a->strings["Last photos"] = "Letzte Fotos";
$a->strings["Last likes"] = "Zuletzt gemocht";
$a->strings["event"] = "Veranstaltung";
$a->strings["Allow to use your friendica id (%s) to connecto to external unhosted-enabled storage (like ownCloud). See <a href=\"http://www.w3.org/community/unhosted/wiki/RemoteStorage#WebFinger\">RemoteStorage WebFinger</a>"] = "Ermöglicht es deine friendica id (%s) mit externen unhosted-fähigen Speichern (z.B. ownCloud) zu verbinden. Siehe <a href=\"http://www.w3.org/community/unhosted/wiki/RemoteStorage#WebFinger\">RemoteStorage WebFinger</a>";
$a->strings["Allow to use your friendica id (%s) to connecto to external unhosted-enabled storage (like ownCloud). See <a href=\"http://www.w3.org/community/unhosted/wiki/RemoteStorage#WebFinger\">RemoteStorage WebFinger</a>"] = "Ermöglicht dir, deine friendica id (%s) mit externen unhosted-fähigen Speichern (z.B. ownCloud) zu verbinden. Siehe <a href=\"http://www.w3.org/community/unhosted/wiki/RemoteStorage#WebFinger\">RemoteStorage WebFinger</a>";
$a->strings["Template URL (with {category})"] = "Vorlagen URL (mit {Kategorie})";
$a->strings["OAuth end-point"] = "OAuth end-point";
$a->strings["Api"] = "Api";
@ -906,7 +906,7 @@ $a->strings["New game"] = "Neues Spiel";
$a->strings["New game with handicap"] = "Neues Handicap Spiel";
$a->strings["Three dimensional tic-tac-toe is just like the traditional game except that it is played on multiple levels simultaneously. "] = "3D-Tic-Tac-Toe ist genauso wie das herkömmliche Spiel, nur dass man es auf mehreren Ebenen gleichzeitig spielt.";
$a->strings["In this case there are three levels. You win by getting three in a row on any level, as well as up, down, and diagonally across the different levels."] = "In diesem Fall sind es drei Ebenen. Man gewinnt indem man drei in einer Reihe auf einer beliebigen Reihe schafft, oder drei übereinander oder diagonal auf verschiedenen Ebenen.";
$a->strings["The handicap game disables the center position on the middle level because the player claiming this square often has an unfair advantage."] = "Beim Handicap-Spiel wird die zentrale Position der mittleren Ebene gesperrt da der Spieler der diese Ebene besitzt oft einen unfairen Vorteil genießt.";
$a->strings["The handicap game disables the center position on the middle level because the player claiming this square often has an unfair advantage."] = "Beim Handicap-Spiel wird die zentrale Position der mittleren Ebene gesperrt, da der Spieler, der diese Ebene besitzt, oft einen unfairen Vorteil genießt.";
$a->strings["You go first..."] = "Du fängst an...";
$a->strings["I'm going first this time..."] = "Diesmal fange ich an...";
$a->strings["You won!"] = "Du gewinnst!";
@ -928,7 +928,7 @@ $a->strings["Geonames settings updated."] = "Geonames Einstellungen aktualisiert
$a->strings["Geonames Settings"] = "Geonames Einstellungen";
$a->strings["Enable Geonames Plugin"] = "Geonames Plugin aktivieren";
$a->strings["Upload a file"] = "Datei hochladen";
$a->strings["Drop files here to upload"] = "Ziehe die Dateien hierher die du hochladen willst";
$a->strings["Drop files here to upload"] = "Ziehe Dateien hierher, um sie hochzuladen";
$a->strings["Failed"] = "Fehlgeschlagen";
$a->strings["No files were uploaded."] = "Keine Dateien hochgeladen.";
$a->strings["Uploaded file is empty"] = "Hochgeladene Datei ist leer";
@ -956,12 +956,12 @@ $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["Enter quick comments, one per line"] = "Gib einen 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 <a href=\"http://wiki.openstreetmap.org/wiki/TMS\" target=\"_blank\">public tile servers</a>"] = "Eine Liste <a href=\"http://wiki.openstreetmap.org/wiki/TMS\" target=\"_blank\">öffentlicher Tile Server</a>";
$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["The default zoom level. (1:world, 18:highest)"] = "Standard Zoomlevel (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";
@ -974,7 +974,7 @@ $a->strings["We could not contact the StatusNet API with the Path you entered."]
$a->strings["StatusNet settings updated."] = "StatusNet Einstellungen aktualisiert.";
$a->strings["StatusNet Posting Settings"] = "StatusNet-Beitragseinstellungen";
$a->strings["Globally Available StatusNet OAuthKeys"] = "Verfügbare OAuth Schlüssel für StatusNet";
$a->strings["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)."] = "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.";
$a->strings["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)."] = "Für einige StatusNet Server sind voreingestellt OAuth Schlüsselpaare verfügbar. Solltest du einen dieser Server benutzen, dann verwende bitte diese Schlüssel. Falls nicht, stellen stattdessen eine Verbindung zu irgend einem anderen StatusNet Server her (siehe unten).";
$a->strings["Provide your own OAuth Credentials"] = "Eigene OAuth Schlüssel eintragen";
$a->strings["No consumer key pair for StatusNet found. Register your Friendica Account as an desktop client on your StatusNet account, copy the consumer key pair here and enter the API base root.<br />Before you register your own OAuth key pair ask the administrator if there is already a key pair for this Friendica installation at your favorited StatusNet installation."] = "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.<br />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.";
$a->strings["OAuth Consumer Key"] = "OAuth Consumer Key";
@ -987,8 +987,8 @@ $a->strings["Cancel Connection Process"] = "Verbindungsprozess abbrechen";
$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 <strong>public</strong> 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 <strong>öffentlichen</strong> 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["<strong>Note</strong>: Due your privacy settings (<em>Hide your profile details from unknown viewers?</em>) 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."] = "<strong>Hinweis</strong>: Aufgrund deiner Privatsphären Einstellungen (<em>Profil-Details vor unbekannten Betrachtern verbergen?</em>) 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["If enabled all your <strong>public</strong> 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, so können all deine <strong>öffentlichen</strong> 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["<strong>Note</strong>: Due your privacy settings (<em>Hide your profile details from unknown viewers?</em>) 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."] = "<strong>Hinweis</strong>: Aufgrund deiner Privatsphären-Einstellungen (<em>Profil-Details vor unbekannten Betrachtern verbergen?</em>) wird der Link, der eventuell an deinen StatusNet Account angehängt wird, um auf den original Artikel zu verweisen, den Betrachter auf eine leere Seite führen, die ihn darüber informiert, 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";
@ -1011,25 +1011,25 @@ $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["Cutting posts after how much characters"] = "Begrenze Beiträge nach einer bestimmten Anzahl an 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 <a href='http://www.piwik.org'>Piwik</a> analytics tool."] = "Diese Website benutzt <a href='http://www.piwik.org'>Piwik</a>, eine Open Source-Software zur statistischen Auswertung der Besucherzugriffe.";
$a->strings["If you do not want that your visits are logged this way you <a href='%s'>can set a cookie to prevent Piwik from tracking further visits of the site</a> (opt-out)."] = "Wenn Du nicht willst, dass Deine Besuche auf diese Weise gespeichert werden, kannst Du <a href='%s'>ein Cookie setzen</a>. 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["Absolute path to your Piwik installation. (without protocol (http/s), with trailing slash)"] = "Absoluter Pfad zu deiner Piwik Installation (ohne 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["Asynchronous tracking"] = "Asynchrones 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";
$a->strings["No consumer key pair for Twitter found. Please contact your site administrator."] = "Kein Consumer-Schlüsselpaar für Twitter gefunden. Bitte wende dich an den Administrator der Seite.";
$a->strings["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 button below to get a PIN from Twitter which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to Twitter."] = "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 <strong>öffentliche</strong> Beiträge werden bei Twitter veröffentlicht.";
$a->strings["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 button below to get a PIN from Twitter which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to Twitter."] = "Auf diesem Friendica-Server wurde das Twitter-Plugin aktiviert, aber du hast deinen Account noch nicht mit deinem Twitter-Account verbunden. Klicke dazu auf die Schaltfläche unten. Du erhältst dann eine PIN von Twitter, die du dann in das Eingabefeld unten einfügst. Denk daran, den Senden-Knopf zu drücken! Nur <strong>öffentliche</strong> Beiträge werden bei Twitter veröffentlicht.";
$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 <strong>public</strong> 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 <strong>öffentlichen</strong> 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["<strong>Note</strong>: Due your privacy settings (<em>Hide your profile details from unknown viewers?</em>) 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."] = "<strong>Hinweis</strong>: Aufgrund deiner Privatsphären Einstellungen (<em>Profil-Details vor unbekannten Betrachtern verbergen?</em>) 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["If enabled all your <strong>public</strong> 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, so können all deine <strong>öffentlichen</strong> 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["<strong>Note</strong>: Due your privacy settings (<em>Hide your profile details from unknown viewers?</em>) 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."] = "<strong>Hinweis</strong>: Aufgrund deiner Privatsphären-Einstellungen (<em>Profil-Details vor unbekannten Betrachtern verbergen?</em>) wird der Link, der eventuell an an deinen Twitter Account angehängt wird, um auf den original Artikel zu verweisen, den Betrachter auf eine leere Seite führen, die ihn darüber informiert, 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";
@ -1065,9 +1065,9 @@ $a->strings["Shady, spammer, self-marketer"] = "Zwielichtig, Spammer, Selbstdars
$a->strings["Known to me, but no opinion"] = "Ist mir bekannt, hab aber keine Meinung";
$a->strings["OK, probably harmless"] = "OK, wahrscheinlich harmlos";
$a->strings["Reputable, has my trust"] = "Seriös, hat mein Vertrauen";
$a->strings["Frequently"] = "Häufig";
$a->strings["Frequently"] = "immer wieder";
$a->strings["Hourly"] = "Stündlich";
$a->strings["Twice daily"] = "Zweimal Täglich";
$a->strings["Twice daily"] = "Zweimal täglich";
$a->strings["Daily"] = "Täglich";
$a->strings["Weekly"] = "Wöchentlich";
$a->strings["Monthly"] = "Monatlich";
@ -1117,7 +1117,7 @@ $a->strings["Casual"] = "Casual";
$a->strings["Engaged"] = "Verlobt";
$a->strings["Married"] = "Verheiratet";
$a->strings["Partners"] = "Partner";
$a->strings["Cohabiting"] = "kohabitierend";
$a->strings["Cohabiting"] = "zusammenlebend";
$a->strings["Happy"] = "Glücklich";
$a->strings["Not Looking"] = "Nicht auf der Suche";
$a->strings["Swinger"] = "Swinger";
@ -1171,7 +1171,7 @@ $a->strings["Attachments:"] = "Anhänge:";
$a->strings["[Relayed] Comment authored by %s from network %s"] = "[Weitergeleitet] Kommentar von %s aus dem %s Netzwerk";
$a->strings["Embedded content"] = "Eingebetteter Inhalt";
$a->strings["Embedding disabled"] = "Einbettungen deaktiviert";
$a->strings["A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "Eine gelöschte Gruppe mit diesem Namen wurde wiederbelebt. Bestehende Berechtigungseinstellungen <strong>könnten</strong> auf diese Gruppe oder zukünftige Mitglieder angewandt werden. Falls du dies nicht möchtest erstelle bitte eine andere Gruppe mit einem anderen Namen.";
$a->strings["A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "Eine gelöschte Gruppe mit diesem Namen wurde wiederbelebt. Bestehende Berechtigungseinstellungen <strong>könnten</strong> auf diese Gruppe oder zukünftige Mitglieder angewandt werden. Falls du dies nicht möchtest, erstelle bitte eine andere Gruppe mit einem anderen Namen.";
$a->strings["Everybody"] = "Alle Kontakte";
$a->strings["edit"] = "bearbeiten";
$a->strings["Groups"] = "Gruppen";
@ -1200,7 +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["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";
@ -1245,7 +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["$1 wrote:"] = "$1 hat 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]";
@ -1312,14 +1312,14 @@ $a->strings["%d comment"] = array(
$a->strings["show more"] = "mehr anzeigen";
$a->strings["like"] = "mag ich";
$a->strings["dislike"] = "mag ich nicht";
$a->strings["Share this"] = "Teilen";
$a->strings["Share this"] = "Teile dieses";
$a->strings["share"] = "Teilen";
$a->strings["add star"] = "markieren";
$a->strings["remove star"] = "Markierung entfernen";
$a->strings["toggle star status"] = "Markierung umschalten";
$a->strings["starred"] = "markiert";
$a->strings["add tag"] = "Tag hinzufügen";
$a->strings["to"] = "to";
$a->strings["to"] = "zu";
$a->strings["Wall-to-Wall"] = "Wall-to-Wall";
$a->strings["via Wall-To-Wall:"] = "via Wall-To-Wall:";
$a->strings["Delete Selected Items"] = "Lösche die markierten Beiträge";
@ -1331,7 +1331,7 @@ $a->strings["and"] = "und";
$a->strings[", and %d other people"] = " und %d andere";
$a->strings["%s like this."] = "%s mögen das.";
$a->strings["%s don't like this."] = "%s mögen das nicht.";
$a->strings["Visible to <strong>everybody</strong>"] = "Für <strong>Jedermann</strong> sichtbar";
$a->strings["Visible to <strong>everybody</strong>"] = "Für <strong>jedermann</strong> sichtbar";
$a->strings["Please enter a video link/URL:"] = "Bitte Link/URL zum Video einfügen:";
$a->strings["Please enter an audio link/URL:"] = "Bitte Link/URL zum Audio einfügen:";
$a->strings["Tag term:"] = "Tag:";

View File

@ -2,17 +2,21 @@
<div id="group-edit-wrapper" >
<form action="group/$gid" id="group-edit-form" method="post" >
<div id="group-edit-name-wrapper" >
<label id="group-edit-name-label" for="group-edit-name" >$gname</label>
<input type="text" id="group-edit-name" name="groupname" value="$name" />
</div>
<div id="group-edit-name-end"></div>
$drop
<div id="group-edit-submit-wrapper" >
<input type="submit" name="submit" value="$submit" >
</div>
<div id="group-edit-desc">$desc</div>
<div id="group-edit-select-end" ></div>
</form>
<form action="group/$gid" id="group-edit-form" method="post" >
{{ inc field_input.tpl with $field=$gname }}{{ endinc }}
{{ if $drop }}$drop{{ endif }}
<div id="group-edit-submit-wrapper" >
<input type="submit" name="submit" value="$submit" >
</div>
<div id="group-edit-select-end" ></div>
</form>
</div>
{{ if $groupeditor }}
<div id="group-update-wrapper">
{{ inc groupeditor.tpl }}{{ endinc }}
</div>
{{ endif }}
{{ if $desc }}<div id="group-edit-desc">$desc</div>{{ endif }}

View File

@ -1,23 +0,0 @@
<div id="group-new-wrapper" >
<form action="group/new" method="post">
<div id="group-new-text">
<p>
$desc
<div id="group-new-input-wrapper">
<label id="group-new-label" for="group-new-name" >$name</label>
<input name="groupname" id="group-new-name" />
</div>
<div id="group-new-input-end" ></div>
<div id="group-new-submit-wrapper" >
<input type="submit" name="submit" value="$submit" />
</form>
</div>
<div id="group-new-end"></div>

16
view/groupeditor.tpl Normal file
View File

@ -0,0 +1,16 @@
<div id="group">
<h3>$groupeditor.label_members</h3>
<div id="group-members" class="contact_list">
{{ for $groupeditor.members as $c}} $c {{ endfor }}
</div>
<div id="group-members-end"></div>
<hr id="group-separator" />
</div>
<div id="contacts">
<h3>$groupeditor.label_contacts</h3>
<div id="group-all-contacts" class="contact_list">
{{ for $groupeditor.contacts as $m}} $m {{ endfor }}
</div>
<div id="group-all-contacts-end"></div>
</div>

View File

@ -1,9 +1,9 @@
<form id="profile-jot-form" action="$action" method="post">
<div id="jot">
<div id="profile-jot-desc" class="jothidden" >&nbsp;</div>
<input name="title" id="jot-title" type="text" placeholder="$placeholdertitle" value="$title" class="jothidden" style="display:none">
<div id="profile-jot-desc" class="jothidden">&nbsp;</div>
<input name="title" id="jot-title" type="text" placeholder="$placeholdertitle" value="$title" class="jothidden" style="display:none" />
<div id="character-counter" class="grey jothidden"></div>
<input type="hidden" name="type" value="$ptyp" />
<input type="hidden" name="profile_uid" value="$profile_uid" />
<input type="hidden" name="return" value="$return_path" />
@ -11,9 +11,9 @@
<input type="hidden" name="coord" id="jot-coord" value="" />
<input type="hidden" name="post_id" value="$post_id" />
<input type="hidden" name="preview" id="jot-preview" value="0" />
<textarea rows="5" cols="64" class="profile-jot-text" id="profile-jot-text" name="body" >{{ if $content }}$content{{ else }}$share{{ endif }}</textarea>
<textarea rows="5" cols="64" class="profile-jot-text" id="profile-jot-text" name="body" >{{ if $content }}$content{{ else }}$share{{ endif }}</textarea>
<ul id="jot-tools" class="jothidden" style="display:none">
<li><a href="#" onclick="return false;" id="wall-image-upload" title="$upload">$shortupload</a></a></li>
<li><a href="#" onclick="return false;" id="wall-file-upload" title="$attach">$shortattach</a></li>
@ -41,13 +41,8 @@
<div id="profile-jot-email-end"></div>
$jotnets
</div>
</div>
</div>
</form>
{{ if $content }}<script>initEditor();</script>{{ endif }}

Some files were not shown because too many files have changed in this diff Show More