1
0
Fork 0
This commit is contained in:
friendica 2012-11-06 01:10:36 -08:00
commit 776552226b
25 changed files with 869 additions and 293 deletions

53
.gitignore vendored
View file

@ -1,26 +1,27 @@
favicon.*
.htconfig.php
\#*
include/jquery-1.4.2.min.js
*.log
*.out
*.version*
favicon.*
home.html
addon
*~
#ignore documentation, it should be newly built
doc/api
#ignore reports, should be generted with every build
report/
#ignore config files from eclipse, we don't want IDE files in our repository
.project
.buildpath
.externalToolBuilders
.settings
#ignore OSX .DS_Store files
.DS_Store
favicon.*
.htconfig.php
\#*
include/jquery-1.4.2.min.js
*.log
*.out
*.version*
favicon.*
home.html
addon
*~
#ignore documentation, it should be newly built
doc/api
#ignore reports, should be generted with every build
report/
#ignore config files from eclipse, we don't want IDE files in our repository
.project
.buildpath
.externalToolBuilders
.settings
#ignore OSX .DS_Store files
.DS_Store
/nbproject/private/

View file

@ -385,7 +385,7 @@ if(! class_exists('App')) {
function __construct() {
global $default_timezone;
global $default_timezone, $argv, $argc;
$this->timezone = ((x($default_timezone)) ? $default_timezone : 'UTC');
@ -428,6 +428,9 @@ if(! class_exists('App')) {
if(isset($path) && strlen($path) && ($path != $this->path))
$this->path = $path;
}
if (is_array($argv) && $argc>1 && !x($_SERVER,'SERVER_NAME') && substr(end($argv), 0, 4)=="http" ) {
$this->set_baseurl(array_pop($argv) );
}
set_include_path(
"include/$this->hostname" . PATH_SEPARATOR
@ -436,6 +439,7 @@ if(! class_exists('App')) {
. 'library/phpsec' . PATH_SEPARATOR
. 'library/langdet' . PATH_SEPARATOR
. '.' );
if((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,2) === "q=") {
$this->query_string = substr($_SERVER['QUERY_STRING'],2);
@ -1501,9 +1505,15 @@ if(! function_exists('proc_run')) {
if(count($args) && $args[0] === 'php')
$args[0] = ((x($a->config,'php_path')) && (strlen($a->config['php_path'])) ? $a->config['php_path'] : 'php');
for($x = 0; $x < count($args); $x ++)
// add baseurl to args. cli scripts can't construct it
$args[] = $a->get_baseurl();
for($x = 0; $x < count($args); $x ++)
$args[$x] = escapeshellarg($args[$x]);
$cmdline = implode($args," ");
if(get_config('system','proc_windows'))
proc_close(proc_open('cmd /c start /b ' . $cmdline,array(),$foo,dirname(__FILE__)));

View file

@ -3,7 +3,7 @@
require_once("boot.php");
function cronhooks_run($argv, $argc){
function cronhooks_run(&$argv, &$argc){
global $a, $db;
if(is_null($a)) {

View file

@ -232,8 +232,9 @@ function q($sql) {
if($db && $db->connected) {
$stmt = vsprintf($sql,$args);
//logger("dba: q: $stmt", LOGGER_ALL);
if($stmt === false)
logger('dba: vsprintf error: ' . print_r(debug_backtrace(),true));
logger('dba: vsprintf error: ' . print_r(debug_backtrace(),true), LOGGER_DEBUG);
return $db->q($stmt);
}

View file

@ -3,7 +3,7 @@ require_once("boot.php");
require_once('include/queue_fn.php');
require_once('include/html2plain.php');
function delivery_run($argv, $argc){
function delivery_run(&$argv, &$argc){
global $a, $db;
if(is_null($a)){

View file

@ -1,7 +1,7 @@
<?php
require_once("boot.php");
function directory_run($argv, $argc){
function directory_run(&$argv, &$argc){
global $a, $db;
if(is_null($a)) {

View file

@ -2,7 +2,7 @@
require_once("boot.php");
function expire_run($argv, $argc){
function expire_run(&$argv, &$argc){
global $a, $db;
if(is_null($a)) {

View file

@ -4,7 +4,7 @@ require_once("boot.php");
require_once('include/Scrape.php');
require_once('include/socgraph.php');
function gprobe_run($argv, $argc){
function gprobe_run(&$argv, &$argc){
global $a, $db;
if(is_null($a)) {

View file

@ -2168,9 +2168,10 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
}
function local_delivery($importer,$data) {
$a = get_app();
logger(__function__, LOGGER_TRACE);
if($importer['readonly']) {
// We aren't receiving stuff from this person. But we will quietly ignore them
// rather than a blatant "go away" message.
@ -2305,7 +2306,7 @@ function local_delivery($importer,$data) {
}
/*
// Currently unsupported - needs a lot of work
$reloc = $feed->get_feed_tags( NAMESPACE_DFRN, 'relocate' );
if(isset($reloc[0]['child'][NAMESPACE_DFRN])) {
@ -2315,23 +2316,79 @@ function local_delivery($importer,$data) {
$newloc['cid'] = $importer['id'];
$newloc['name'] = notags(unxmlify($base['name'][0]['data']));
$newloc['photo'] = notags(unxmlify($base['photo'][0]['data']));
$newloc['thumb'] = notags(unxmlify($base['thumb'][0]['data']));
$newloc['micro'] = notags(unxmlify($base['micro'][0]['data']));
$newloc['url'] = notags(unxmlify($base['url'][0]['data']));
$newloc['request'] = notags(unxmlify($base['request'][0]['data']));
$newloc['confirm'] = notags(unxmlify($base['confirm'][0]['data']));
$newloc['notify'] = notags(unxmlify($base['notify'][0]['data']));
$newloc['poll'] = notags(unxmlify($base['poll'][0]['data']));
$newloc['site-pubkey'] = notags(unxmlify($base['site-pubkey'][0]['data']));
$newloc['pubkey'] = notags(unxmlify($base['pubkey'][0]['data']));
$newloc['prvkey'] = notags(unxmlify($base['prvkey'][0]['data']));
$newloc['sitepubkey'] = notags(unxmlify($base['sitepubkey'][0]['data']));
/** relocated user must have original key pair */
/*$newloc['pubkey'] = notags(unxmlify($base['pubkey'][0]['data']));
$newloc['prvkey'] = notags(unxmlify($base['prvkey'][0]['data']));*/
logger("items:relocate contact ".print_r($newloc, true).print_r($importer, true), LOGGER_DEBUG);
// update contact
$r = q("SELECT photo, url FROM contact WHERE id=%d AND uid=%d;",
intval($importer['id']),
intval($importer['importer_uid']));
if ($r === false)
return 1;
$old = $r[0];
$x = q("UPDATE contact SET
name = '%s',
photo = '%s',
thumb = '%s',
micro = '%s',
url = '%s',
request = '%s',
confirm = '%s',
notify = '%s',
poll = '%s',
`site-pubkey` = '%s'
WHERE id=%d AND uid=%d;",
dbesc($newloc['name']),
dbesc($newloc['photo']),
dbesc($newloc['thumb']),
dbesc($newloc['micro']),
dbesc($newloc['url']),
dbesc($newloc['request']),
dbesc($newloc['confirm']),
dbesc($newloc['notify']),
dbesc($newloc['poll']),
dbesc($newloc['sitepubkey']),
intval($importer['id']),
intval($importer['importer_uid']));
if ($x === false)
return 1;
// update items
$fields = array(
'owner-link' => array($old['url'], $newloc['url']),
'author-link' => array($old['url'], $newloc['url']),
'owner-avatar' => array($old['photo'], $newloc['photo']),
'author-avatar' => array($old['photo'], $newloc['photo']),
);
foreach ($fields as $n=>$f){
$x = q("UPDATE item SET `%s`='%s' WHERE `%s`='%s' AND uid=%d",
$n, dbesc($f[1]),
$n, dbesc($f[0]),
intval($importer['importer_uid']));
if ($x === false)
return 1;
}
// TODO
// merge with current record, current contents have priority
// update record, set url-updated
// update profile photos
// schedule a scan?
return 0;
}
*/
// handle friend suggestion notification

View file

@ -1,5 +1,4 @@
<?php
require_once("boot.php");
require_once('include/queue_fn.php');
require_once('include/html2plain.php');
@ -43,7 +42,7 @@ require_once('include/html2plain.php');
*/
function notifier_run($argv, $argc){
function notifier_run(&$argv, &$argc){
global $a, $db;
if(is_null($a)){
@ -89,6 +88,7 @@ function notifier_run($argv, $argc){
$expire = false;
$mail = false;
$fsuggest = false;
$relocate = false;
$top_level = false;
$recipients = array();
$url_recipients = array();
@ -136,11 +136,15 @@ function notifier_run($argv, $argc){
}
elseif($cmd === 'removeme') {
$r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1", intval($item_id));
if (! $r)
return;
$user = $r[0];
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 1 LIMIT 1", intval($item_id));
if (! $r)
return;
$self = $r[0];
$r = q("SELECT * FROM `contact` WHERE `self` = 0 AND `uid` = %d", intval($item_id));
if(! count($r))
if(! $r)
return;
require_once('include/Contact.php');
foreach($r as $contact) {
@ -148,8 +152,12 @@ function notifier_run($argv, $argc){
}
return;
}
elseif($cmd === 'relocate') {
$normal_mode = false;
$relocate = true;
$uid = $item_id;
}
else {
// find ancestors
$r = q("SELECT * FROM `item` WHERE `id` = %d and visible = 1 and moderated = 0 LIMIT 1",
intval($item_id)
@ -214,7 +222,7 @@ function notifier_run($argv, $argc){
// fill this in with a single salmon slap if applicable
$slap = '';
if(! ($mail || $fsuggest)) {
if(! ($mail || $fsuggest || $relocate)) {
require_once('include/group.php');
@ -418,6 +426,45 @@ function notifier_run($argv, $argc){
);
}
elseif($relocate) {
$public_message = false; // suggestions are not public
$sugg_template = get_markup_template('atom_relocate.tpl');
/* get site pubkey. this could be a new installation with no site keys*/
$pubkey = get_config('system','site_pubkey');
if(! $pubkey) {
$res = new_keypair(1024);
set_config('system','site_prvkey', $res['prvkey']);
set_config('system','site_pubkey', $res['pubkey']);
}
$rp = q("SELECT `resource-id` , `scale`, type FROM `photo`
WHERE `profile` = 1 AND `uid` = %d ORDER BY scale;", $uid);
$photos = array();
$ext = Photo::supportedTypes();
foreach($rp as $p){
$photos[$p['scale']] = $a->get_baseurl().'/photo/'.$p['resource-id'].'-'.$p['scale'].'.'.$ext[$p['type']];
}
unset($rp, $ext);
$atom .= replace_macros($sugg_template, array(
'$name' => xmlify($owner['name']),
'$photo' => xmlify($photos[4]),
'$thumb' => xmlify($photos[5]),
'$micro' => xmlify($photos[6]),
'$url' => xmlify($owner['url']),
'$request' => xmlify($owner['request']),
'$confirm' => xmlify($owner['confirm']),
'$notify' => xmlify($owner['notify']),
'$poll' => xmlify($owner['poll']),
'$sitepubkey' => xmlify(get_config('system','site_pubkey')),
//'$pubkey' => xmlify($owner['pubkey']),
//'$prvkey' => xmlify($owner['prvkey']),
));
$recipients_relocate = q("SELECT * FROM contact WHERE uid = %d AND self = 0 AND network = '%s'" , intval($uid), NETWORK_DFRN);
unset($photos);
}
else {
if($followup) {
foreach($items as $item) { // there is only one item
@ -493,9 +540,12 @@ function notifier_run($argv, $argc){
else
$recip_str = implode(', ', $recipients);
$r = q("SELECT * FROM `contact` WHERE `id` IN ( %s ) AND `blocked` = 0 AND `pending` = 0 ",
dbesc($recip_str)
);
if ($relocate)
$r = $recipients_relocate;
else
$r = q("SELECT * FROM `contact` WHERE `id` IN ( %s ) AND `blocked` = 0 AND `pending` = 0 ",
dbesc($recip_str)
);
require_once('include/salmon.php');
@ -507,7 +557,7 @@ function notifier_run($argv, $argc){
if(count($r)) {
foreach($r as $contact) {
if((! $mail) && (! $fsuggest) && (! $followup) && (! $contact['self'])) {
if((! $mail) && (! $fsuggest) && (! $followup) && (!$relocate) && (! $contact['self'])) {
if(($contact['network'] === NETWORK_DIASPORA) && ($public_message))
continue;
q("insert into deliverq ( `cmd`,`item`,`contact` ) values ('%s', %d, %d )",
@ -544,7 +594,7 @@ function notifier_run($argv, $argc){
// potentially more than one recipient. Start a new process and space them out a bit.
// we will deliver single recipient types of message and email recipients here.
if((! $mail) && (! $fsuggest) && (! $followup)) {
if((! $mail) && (! $fsuggest) && (!$relocate) && (! $followup)) {
$this_batch[] = $contact['id'];
@ -559,7 +609,7 @@ function notifier_run($argv, $argc){
$deliver_status = 0;
logger("main delivery by notifier: followup=$followup mail=$mail fsuggest=$fsuggest");
logger("main delivery by notifier: followup=$followup mail=$mail fsuggest=$fsuggest relocate=$relocate");
switch($contact['network']) {
case NETWORK_DFRN:
@ -916,6 +966,7 @@ function notifier_run($argv, $argc){
return;
}
if (array_search(__file__,get_included_files())===0){
notifier_run($argv,$argc);
killme();

View file

@ -2,7 +2,7 @@
require_once("boot.php");
function onepoll_run($argv, $argc){
function onepoll_run(&$argv, &$argc){
global $a, $db;
if(is_null($a)) {

View file

@ -3,7 +3,7 @@
require_once("boot.php");
function poller_run($argv, $argc){
function poller_run(&$argv, &$argc){
global $a, $db;
if(is_null($a)) {

View file

@ -2,7 +2,7 @@
require_once("boot.php");
require_once('include/queue_fn.php');
function queue_run($argv, $argc){
function queue_run(&$argv, &$argc){
global $a, $db;
if(is_null($a)){

237
include/uimport.php Normal file
View file

@ -0,0 +1,237 @@
<?php
/**
* import account file exported from mod/uexport
* args:
* $a App Friendica App Class
* $file Array array from $_FILES
*/
require_once("include/Photo.php");
define("IMPORT_DEBUG", False);
function last_insert_id(){
global $db;
if (IMPORT_DEBUG) return 1;
if($db->mysqli){
$thedb = $db->getdb();
return $thedb->insert_id;
} else {
return mysql_insert_id();
}
}
function last_error(){
global $db;
return $db->error;
}
function db_import_assoc($table, $arr){
if (IMPORT_DEBUG) return true;
if (isset($arr['id'])) unset($arr['id']);
$cols = implode("`,`", array_map('dbesc', array_keys($arr)));
$vals = implode("','", array_map('dbesc', array_values($arr)));
$query = "INSERT INTO `$table` (`$cols`) VALUES ('$vals')";
logger("uimport: $query",LOGGER_TRACE);
return q($query);
}
function import_cleanup($newuid) {
q("DELETE FROM `user` WHERE uid = %d", $newuid);
q("DELETE FROM `contact` WHERE uid = %d", $newuid);
q("DELETE FROM `profile` WHERE uid = %d", $newuid);
q("DELETE FROM `photo` WHERE uid = %d", $newuid);
q("DELETE FROM `group` WHERE uid = %d", $newuid);
q("DELETE FROM `group_member` WHERE uid = %d", $newuid);
q("DELETE FROM `pconfig` WHERE uid = %d", $newuid);
}
function import_account(&$a, $file) {
logger("Start user import from ".$file['tmp_name']);
/*
STEPS
1. checks
2. replace old baseurl with new baseurl
3. import data (look at user id and contacts id)
4. archive non-dfrn contacts
5. send message to dfrn contacts
*/
$account = json_decode(file_get_contents($file['tmp_name']), true);
if ($account===null) {
notice(t("Error decoding account file"));
return;
}
if (!x($account, 'version')) {
notice(t("Error! No version data in file! This is not a Friendica account file?"));
return;
}
if ($account['schema'] != DB_UPDATE_VERSION) {
notice(t("Error! I can't import this file: DB schema version is not compatible."));
return;
}
$oldbaseurl = $account['baseurl'];
$newbaseurl = $a->get_baseurl();
$olduid = $account['user']['uid'];
unset($account['user']['uid']);
foreach($account['user'] as $k => &$v) {
$v = str_replace($oldbaseurl, $newbaseurl, $v);
}
// import user
$r = db_import_assoc('user', $account['user']);
if ($r===false) {
//echo "<pre>"; var_dump($r, $query, mysql_error()); killme();
logger("uimport:insert user : ERROR : ".last_error(), LOGGER_NORMAL);
notice(t("User creation error"));
return;
}
$newuid = last_insert_id();
//~ $newuid = 1;
foreach($account['profile'] as &$profile) {
foreach($profile as $k=>&$v) {
$v = str_replace($oldbaseurl, $newbaseurl, $v);
foreach(array("profile","avatar") as $k)
$v = str_replace($newbaseurl."/photo/".$k."/".$olduid.".jpg", $newbaseurl."/photo/".$k."/".$newuid.".jpg", $v);
}
$profile['uid'] = $newuid;
$r = db_import_assoc('profile', $profile);
if ($r===false) {
logger("uimport:insert profile ".$profile['profile-name']." : ERROR : ".last_error(), LOGGER_NORMAL);
info(t("User profile creation error"));
import_cleanup($newuid);
return;
}
}
$errorcount=0;
foreach($account['contact'] as &$contact) {
if ($contact['uid'] == $olduid && $contact['self'] == '1'){
foreach($contact as $k=>&$v) {
$v = str_replace($oldbaseurl, $newbaseurl, $v);
foreach(array("profile","avatar","micro") as $k)
$v = str_replace($newbaseurl."/photo/".$k."/".$olduid.".jpg", $newbaseurl."/photo/".$k."/".$newuid.".jpg", $v);
}
}
if ($contact['uid'] == $olduid && $contact['self'] == '0') {
switch ($contact['network']){
case NETWORK_DFRN:
// send relocate message (below)
break;
case NETWORK_ZOT:
// TODO handle zot network
break;
case NETWORK_MAIL2:
// TODO ?
break;
case NETWORK_FEED:
case NETWORK_MAIL:
// Nothing to do
break;
default:
// archive other contacts
$contact['archive'] = "1";
}
}
$contact['uid'] = $newuid;
$r = db_import_assoc('contact', $contact);
if ($r===false) {
logger("uimport:insert contact ".$contact['nick'].",".$contact['network']." : ERROR : ".last_error(), LOGGER_NORMAL);
$errorcount++;
} else {
$contact['newid'] = last_insert_id();
}
}
if ($errorcount>0) {
notice( sprintf(tt("%d contact not imported", "%d contacts not imported", $errorcount), $errorcount) );
}
foreach($account['group'] as &$group) {
$group['uid'] = $newuid;
$r = db_import_assoc('group', $group);
if ($r===false) {
logger("uimport:insert group ".$group['name']." : ERROR : ".last_error(), LOGGER_NORMAL);
} else {
$group['newid'] = last_insert_id();
}
}
foreach($account['group_member'] as &$group_member) {
$group_member['uid'] = $newuid;
$import = 0;
foreach($account['group'] as $group) {
if ($group['id'] == $group_member['gid'] && isset($group['newid'])) {
$group_member['gid'] = $group['newid'];
$import++;
break;
}
}
foreach($account['contact'] as $contact) {
if ($contact['id'] == $group_member['contact-id'] && isset($contact['newid'])) {
$group_member['contact-id'] = $contact['newid'];
$import++;
break;
}
}
if ($import==2) {
$r = db_import_assoc('group_member', $group_member);
if ($r===false) {
logger("uimport:insert group member ".$group_member['id']." : ERROR : ".last_error(), LOGGER_NORMAL);
}
}
}
foreach($account['photo'] as &$photo) {
$photo['uid'] = $newuid;
$photo['data'] = hex2bin($photo['data']);
$p = new Photo($photo['data'], $photo['type']);
$r = $p->store(
$photo['uid'],
$photo['contact-id'], //0
$photo['resource-id'],
$photo['filename'],
$photo['album'],
$photo['scale'],
$photo['profile'], //1
$photo['allow_cid'],
$photo['allow_gid'],
$photo['deny_cid'],
$photo['deny_gid']
);
if ($r===false) {
logger("uimport:insert photo ".$photo['resource-id'].",". $photo['scale']. " : ERROR : ".last_error(), LOGGER_NORMAL);
}
}
foreach($account['pconfig'] as &$pconfig) {
$pconfig['uid'] = $newuid;
$r = db_import_assoc('pconfig', $pconfig);
if ($r===false) {
logger("uimport:insert pconfig ".$pconfig['id']. " : ERROR : ".last_error(), LOGGER_NORMAL);
}
}
// send relocate messages
proc_run('php', 'include/notifier.php', 'relocate' , $newuid);
info(t("Done. You can now login with your username and password"));
goaway( $a->get_baseurl() ."/login");
}

View file

@ -6,7 +6,7 @@ require_once('include/event.php');
function dfrn_notify_post(&$a) {
logger(__function__, LOGGER_TRACE);
$dfrn_id = ((x($_POST,'dfrn_id')) ? notags(trim($_POST['dfrn_id'])) : '');
$dfrn_version = ((x($_POST,'dfrn_version')) ? (float) $_POST['dfrn_version'] : 2.0);
$challenge = ((x($_POST,'challenge')) ? notags(trim($_POST['challenge'])) : '');

View file

@ -42,6 +42,7 @@ function register_post(&$a) {
$verified = 0;
break;
}
require_once('include/user.php');
@ -234,7 +235,7 @@ function register_content(&$a) {
'$yes_selected' => ' checked="checked" ',
'$no_selected' => '',
'$str_yes' => t('Yes'),
'$str_no' => t('No')
'$str_no' => t('No'),
));
}
@ -275,7 +276,8 @@ function register_content(&$a) {
'$email' => $email,
'$nickname' => $nickname,
'$license' => $license,
'$sitename' => $a->get_hostname()
'$sitename' => $a->get_hostname(),
));
return $o;

View file

@ -1,46 +1,174 @@
<?php
function uexport_init(&$a) {
function uexport_init(&$a){
if(! local_user())
killme();
$user = array();
$r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
local_user()
$tabs = array(
array(
'label' => t('Account settings'),
'url' => $a->get_baseurl(true).'/settings',
'selected' => '',
),
array(
'label' => t('Display settings'),
'url' => $a->get_baseurl(true).'/settings/display',
'selected' =>'',
),
array(
'label' => t('Connector settings'),
'url' => $a->get_baseurl(true).'/settings/connectors',
'selected' => '',
),
array(
'label' => t('Plugin settings'),
'url' => $a->get_baseurl(true).'/settings/addon',
'selected' => '',
),
array(
'label' => t('Connected apps'),
'url' => $a->get_baseurl(true) . '/settings/oauth',
'selected' => '',
),
array(
'label' => t('Export personal data'),
'url' => $a->get_baseurl(true) . '/uexport',
'selected' => 'active'
),
array(
'label' => t('Remove account'),
'url' => $a->get_baseurl(true) . '/removeme',
'selected' => ''
)
);
$tabtpl = get_markup_template("generic_links_widget.tpl");
$a->page['aside'] = replace_macros($tabtpl, array(
'$title' => t('Settings'),
'$class' => 'settings-widget',
'$items' => $tabs,
));
}
function uexport_content(&$a){
if ($a->argc > 1) {
header("Content-type: application/json");
header('Content-Disposition: attachment; filename="'.$a->user['nickname'].'.'.$a->argv[1].'"');
switch($a->argv[1]) {
case "backup": uexport_all($a); killme(); break;
case "account": uexport_account($a); killme(); break;
default:
killme();
}
}
/**
* options shown on "Export personal data" page
* list of array( 'link url', 'link text', 'help text' )
*/
$options = array(
array('/uexport/account',t('Export account'),t('Export your account info and contacts. Use this to make a backup of your account and/or to move it to another server.')),
array('/uexport/backup',t('Export all'),t('Export your accout info, contacts and all your items as json. Could be a very big file, and could take a lot of time. Use this to make a full backup of your account (photos are not exported)')),
);
call_hooks('uexport_options', $options);
$tpl = get_markup_template("uexport.tpl");
return replace_macros($tpl, array(
'$baseurl' => $a->get_baseurl(),
'$title' => t('Export personal data'),
'$options' => $options
));
}
function _uexport_multirow($query) {
$result = array();
$r = q($query);
if(count($r)) {
foreach($r as $rr){
$p = array();
foreach($rr as $k => $v)
$p[$k] = $v;
$result[] = $p;
}
}
return $result;
}
function _uexport_row($query) {
$result = array();
$r = q($query);
if(count($r)) {
foreach($r as $rr)
foreach($rr as $k => $v)
$user[$k] = $v;
$result[$k] = $v;
}
$contact = array();
$r = q("SELECT * FROM `contact` WHERE `uid` = %d ",
intval(local_user())
return $result;
}
function uexport_account($a){
$user = _uexport_row(
sprintf( "SELECT * FROM `user` WHERE `uid` = %d LIMIT 1", intval(local_user()) )
);
if(count($r)) {
foreach($r as $rr)
foreach($rr as $k => $v)
$contact[][$k] = $v;
}
$profile = array();
$r = q("SELECT * FROM `profile` WHERE `uid` = %d ",
intval(local_user())
$contact = _uexport_multirow(
sprintf( "SELECT * FROM `contact` WHERE `uid` = %d ",intval(local_user()) )
);
if(count($r)) {
foreach($r as $rr)
foreach($rr as $k => $v)
$profile[][$k] = $v;
}
$output = array('user' => $user, 'contact' => $contact, 'profile' => $profile );
header("Content-type: application/json");
$profile =_uexport_multirow(
sprintf( "SELECT * FROM `profile` WHERE `uid` = %d ", intval(local_user()) )
);
$photo = _uexport_multirow(
sprintf( "SELECT * FROM photo WHERE uid = %d AND profile = 1", intval(local_user()) )
);
foreach ($photo as &$p) $p['data'] = bin2hex($p['data']);
$pconfig = _uexport_multirow(
sprintf( "SELECT * FROM pconfig WHERE uid = %d",intval(local_user()) )
);
$group = _uexport_multirow(
sprintf( "SELECT * FROM group WHERE uid = %d",intval(local_user()) )
);
$group_member = _uexport_multirow(
sprintf( "SELECT * FROM group_member WHERE uid = %d",intval(local_user()) )
);
$output = array(
'version' => FRIENDICA_VERSION,
'schema' => DB_UPDATE_VERSION,
'baseurl' => $a->get_baseurl(),
'user' => $user,
'contact' => $contact,
'profile' => $profile,
'photo' => $photo,
'pconfig' => $pconfig,
'group' => $group,
'group_member' => $group_member,
);
//echo "<pre>"; var_dump(json_encode($output)); killme();
echo json_encode($output);
}
/**
* echoes account data and items as separated json, one per line
*/
function uexport_all(&$a) {
uexport_account($a);
$r = q("SELECT count(*) as `total` FROM `item` WHERE `uid` = %d ",
intval(local_user())
);
@ -66,7 +194,4 @@ function uexport_init(&$a) {
echo json_encode($output);
}
killme();
}

50
mod/uimport.php Normal file
View file

@ -0,0 +1,50 @@
<?php
/**
* View for user import
*/
require_once("include/uimport.php");
function uimport_post(&$a) {
switch($a->config['register_policy']) {
case REGISTER_OPEN:
$blocked = 0;
$verified = 1;
break;
case REGISTER_APPROVE:
$blocked = 1;
$verified = 0;
break;
default:
case REGISTER_CLOSED:
if((! x($_SESSION,'authenticated') && (! x($_SESSION,'administrator')))) {
notice( t('Permission denied.') . EOL );
return;
}
$blocked = 1;
$verified = 0;
break;
}
if (x($_FILES,'accountfile')){
// TODO: pass $blocked / $verified, send email to admin on REGISTER_APPROVE
import_account($a, $_FILES['accountfile']);
return;
}
}
function uimport_content(&$a) {
$tpl = get_markup_template("uimport.tpl");
return replace_macros($tpl, array(
'$regbutt' => t('Import'),
'$import' => array(
'title' => t("Move account"),
'text' => t("You can move here an account from another Friendica server. <br>
You need to export your account form the old server and upload it here. We will create here your old account with all your contacts. We will try also to inform you friends that you moved here.<br>
<b>This feature is experimental. We can't move here contacts from ostatus network (statusnet/identi.ca) or from diaspora"),
'field' => array('accountfile', t('Account file'),'<input id="id_accountfile" name="accountfile" type="file">', t('To export your accont, go to "Settings->Export your porsonal data" and select "Export account"')),
),
));
}

View file

@ -1,7 +1,7 @@
<?php
function po2php_run($argv, $argc) {
function po2php_run(&$argv, &$argc) {
if ($argc!=2) {
print "Usage: ".$argv[0]." <file.po>\n\n";

17
view/atom_relocate.tpl Normal file
View file

@ -0,0 +1,17 @@
<dfrn:relocate>
<dfrn:url>$url</dfrn:url>
<dfrn:name>$name</dfrn:name>
<dfrn:photo>$photo</dfrn:photo>
<dfrn:thumb>$thumb</dfrn:thumb>
<dfrn:micro>$micro</dfrn:micro>
<dfrn:request>$request</dfrn:request>
<dfrn:confirm>$confirm</dfrn:confirm>
<dfrn:notify>$notify</dfrn:notify>
<dfrn:poll>$poll</dfrn:poll>
<dfrn:sitepubkey>$sitepubkey</dfrn:sitepubkey>
</dfrn:relocate>

View file

@ -22,8 +22,8 @@ msgid ""
msgstr ""
"Project-Id-Version: friendica\n"
"Report-Msgid-Bugs-To: http://bugs.friendica.com/\n"
"POT-Creation-Date: 2012-10-21 10:00-0700\n"
"PO-Revision-Date: 2012-10-22 12:31+0000\n"
"POT-Creation-Date: 2012-11-03 15:31-0700\n"
"PO-Revision-Date: 2012-11-05 06:28+0000\n"
"Last-Translator: bavatar <tobias.diekershoff@gmx.net>\n"
"Language-Team: German (http://www.transifex.com/projects/p/friendica/language/de/)\n"
"MIME-Version: 1.0\n"
@ -38,6 +38,7 @@ msgstr "Beitrag erfolgreich veröffentlicht."
#: ../../mod/update_notes.php:41 ../../mod/update_community.php:18
#: ../../mod/update_network.php:22 ../../mod/update_profile.php:41
#: ../../mod/update_display.php:22
msgid "[Embedded content - reload page to view]"
msgstr "[Eingebetteter Inhalt - Seite neu laden zum Betrachten]"
@ -60,20 +61,20 @@ msgstr "Konnte den Kontakt nicht aktualisieren."
#: ../../mod/wallmessage.php:33 ../../mod/wallmessage.php:79
#: ../../mod/wallmessage.php:103 ../../mod/attach.php:33
#: ../../mod/group.php:19 ../../mod/viewcontacts.php:22
#: ../../mod/register.php:38 ../../mod/regmod.php:116 ../../mod/item.php:126
#: ../../mod/item.php:142 ../../mod/mood.php:114
#: ../../mod/register.php:38 ../../mod/regmod.php:116 ../../mod/item.php:139
#: ../../mod/item.php:155 ../../mod/mood.php:114
#: ../../mod/profile_photo.php:19 ../../mod/profile_photo.php:169
#: ../../mod/profile_photo.php:180 ../../mod/profile_photo.php:193
#: ../../mod/message.php:38 ../../mod/message.php:168
#: ../../mod/allfriends.php:9 ../../mod/nogroup.php:25
#: ../../mod/wall_upload.php:64 ../../mod/follow.php:9
#: ../../mod/display.php:141 ../../mod/profiles.php:7
#: ../../mod/display.php:165 ../../mod/profiles.php:7
#: ../../mod/profiles.php:424 ../../mod/delegate.php:6
#: ../../mod/suggest.php:28 ../../mod/invite.php:13 ../../mod/invite.php:81
#: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:510
#: ../../addon/facebook/facebook.php:516 ../../addon/fbpost/fbpost.php:159
#: ../../addon/fbpost/fbpost.php:165
#: ../../addon/dav/friendica/layout.fnk.php:354 ../../include/items.php:3913
#: ../../addon/dav/friendica/layout.fnk.php:354 ../../include/items.php:3914
#: ../../index.php:319 ../../addon.old/facebook/facebook.php:510
#: ../../addon.old/facebook/facebook.php:516
#: ../../addon.old/fbpost/fbpost.php:159 ../../addon.old/fbpost/fbpost.php:165
@ -146,8 +147,8 @@ msgstr "Neues Foto von dieser URL"
#: ../../mod/crepair.php:166 ../../mod/fsuggest.php:107
#: ../../mod/events.php:455 ../../mod/photos.php:1027
#: ../../mod/photos.php:1103 ../../mod/photos.php:1366
#: ../../mod/photos.php:1406 ../../mod/photos.php:1449
#: ../../mod/photos.php:1520 ../../mod/install.php:246
#: ../../mod/photos.php:1406 ../../mod/photos.php:1450
#: ../../mod/photos.php:1522 ../../mod/install.php:246
#: ../../mod/install.php:284 ../../mod/localtime.php:45 ../../mod/poke.php:199
#: ../../mod/content.php:693 ../../mod/contacts.php:348
#: ../../mod/settings.php:543 ../../mod/settings.php:697
@ -193,10 +194,10 @@ msgstr "Neues Foto von dieser URL"
#: ../../addon/irc/irc.php:55 ../../addon/fromapp/fromapp.php:77
#: ../../addon/blogger/blogger.php:102 ../../addon/posterous/posterous.php:103
#: ../../view/theme/cleanzero/config.php:80
#: ../../view/theme/diabook/theme.php:642
#: ../../view/theme/diabook/theme.php:599
#: ../../view/theme/diabook/config.php:152
#: ../../view/theme/quattro/config.php:64 ../../view/theme/dispy/config.php:70
#: ../../object/Item.php:558 ../../addon.old/fromgplus/fromgplus.php:40
#: ../../object/Item.php:559 ../../addon.old/fromgplus/fromgplus.php:40
#: ../../addon.old/facebook/facebook.php:619
#: ../../addon.old/snautofollow/snautofollow.php:64
#: ../../addon.old/bg/bg.php:90 ../../addon.old/fbpost/fbpost.php:226
@ -300,7 +301,7 @@ msgstr "Veranstaltung bearbeiten"
msgid "link to source"
msgstr "Link zum Originalbeitrag"
#: ../../mod/events.php:347 ../../view/theme/diabook/theme.php:91
#: ../../mod/events.php:347 ../../view/theme/diabook/theme.php:90
#: ../../include/nav.php:52 ../../boot.php:1701
msgid "Events"
msgstr "Veranstaltungen"
@ -374,7 +375,7 @@ msgstr "Veranstaltung teilen"
#: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94 ../../mod/editpost.php:142
#: ../../mod/dfrn_request.php:847 ../../mod/settings.php:544
#: ../../mod/settings.php:570 ../../addon/js_upload/js_upload.php:45
#: ../../include/conversation.php:995
#: ../../include/conversation.php:1001
#: ../../addon.old/js_upload/js_upload.php:45
msgid "Cancel"
msgstr "Abbrechen"
@ -399,8 +400,8 @@ msgstr "Entfernen"
#: ../../mod/dfrn_poll.php:99 ../../mod/dfrn_poll.php:530
#, php-format
msgid "%s welcomes %s"
msgstr "%s heißt %s herzlich willkommen"
msgid "%1$s welcomes %2$s"
msgstr "%1$s heißt %2$s herzlich willkommen"
#: ../../mod/api.php:76 ../../mod/api.php:102
msgid "Authorize application connection"
@ -450,14 +451,14 @@ msgstr "Fotoalben"
#: ../../mod/photos.php:58 ../../mod/photos.php:153 ../../mod/photos.php:1008
#: ../../mod/photos.php:1095 ../../mod/photos.php:1110
#: ../../mod/photos.php:1562 ../../mod/photos.php:1574
#: ../../mod/photos.php:1565 ../../mod/photos.php:1577
#: ../../addon/communityhome/communityhome.php:110
#: ../../view/theme/diabook/theme.php:492
#: ../../view/theme/diabook/theme.php:485
#: ../../addon.old/communityhome/communityhome.php:110
msgid "Contact Photos"
msgstr "Kontaktbilder"
#: ../../mod/photos.php:65 ../../mod/photos.php:1126 ../../mod/photos.php:1612
#: ../../mod/photos.php:65 ../../mod/photos.php:1126 ../../mod/photos.php:1615
msgid "Upload New Photos"
msgstr "Weitere Fotos hochladen"
@ -475,7 +476,7 @@ msgstr "Kontaktinformationen nicht verfügbar"
#: ../../mod/profile_photo.php:204 ../../mod/profile_photo.php:296
#: ../../mod/profile_photo.php:305
#: ../../addon/communityhome/communityhome.php:111
#: ../../view/theme/diabook/theme.php:493 ../../include/user.php:324
#: ../../view/theme/diabook/theme.php:486 ../../include/user.php:324
#: ../../include/user.php:331 ../../include/user.php:338
#: ../../addon.old/communityhome/communityhome.php:111
msgid "Profile Photos"
@ -494,21 +495,13 @@ msgid "Delete Photo"
msgstr "Foto löschen"
#: ../../mod/photos.php:606
msgid "was tagged in a"
msgstr "wurde getaggt in einem"
#: ../../mod/photos.php:606 ../../mod/like.php:145 ../../mod/subthread.php:87
#: ../../mod/tagger.php:62 ../../addon/communityhome/communityhome.php:163
#: ../../view/theme/diabook/theme.php:464 ../../include/text.php:1437
#: ../../include/diaspora.php:1835 ../../include/conversation.php:125
#: ../../include/conversation.php:253
#: ../../addon.old/communityhome/communityhome.php:163
msgid "photo"
msgstr "Foto"
#, php-format
msgid "%1$s was tagged in %2$s by %3$s"
msgstr "%1$s wurde von %3$s in %2$s getaggt"
#: ../../mod/photos.php:606
msgid "by"
msgstr "von"
msgid "a photo"
msgstr "einem Foto"
#: ../../mod/photos.php:711 ../../addon/js_upload/js_upload.php:315
#: ../../addon.old/js_upload/js_upload.php:315
@ -585,7 +578,7 @@ msgstr "Zeige neueste zuerst"
msgid "Show Oldest First"
msgstr "Zeige älteste zuerst"
#: ../../mod/photos.php:1146 ../../mod/photos.php:1595
#: ../../mod/photos.php:1146 ../../mod/photos.php:1598
msgid "View Photo"
msgstr "Fotos betrachten"
@ -661,49 +654,49 @@ msgstr "Ich mag das (toggle)"
msgid "I don't like this (toggle)"
msgstr "Ich mag das nicht (toggle)"
#: ../../mod/photos.php:1386 ../../include/conversation.php:956
#: ../../mod/photos.php:1386 ../../include/conversation.php:962
msgid "Share"
msgstr "Teilen"
#: ../../mod/photos.php:1387 ../../mod/editpost.php:118
#: ../../mod/content.php:482 ../../mod/content.php:845
#: ../../mod/content.php:482 ../../mod/content.php:846
#: ../../mod/wallmessage.php:152 ../../mod/message.php:293
#: ../../mod/message.php:481 ../../include/conversation.php:619
#: ../../include/conversation.php:975 ../../object/Item.php:258
#: ../../mod/message.php:481 ../../include/conversation.php:624
#: ../../include/conversation.php:981 ../../object/Item.php:258
msgid "Please wait"
msgstr "Bitte warten"
#: ../../mod/photos.php:1403 ../../mod/photos.php:1446
#: ../../mod/photos.php:1517 ../../mod/content.php:690
#: ../../object/Item.php:555
#: ../../mod/photos.php:1403 ../../mod/photos.php:1447
#: ../../mod/photos.php:1519 ../../mod/content.php:690
#: ../../object/Item.php:556
msgid "This is you"
msgstr "Das bist du"
#: ../../mod/photos.php:1405 ../../mod/photos.php:1448
#: ../../mod/photos.php:1519 ../../mod/content.php:692 ../../boot.php:585
#: ../../object/Item.php:557
#: ../../mod/photos.php:1405 ../../mod/photos.php:1449
#: ../../mod/photos.php:1521 ../../mod/content.php:692 ../../boot.php:585
#: ../../object/Item.php:558
msgid "Comment"
msgstr "Kommentar"
#: ../../mod/photos.php:1407 ../../mod/photos.php:1450
#: ../../mod/photos.php:1521 ../../mod/editpost.php:139
#: ../../mod/content.php:702 ../../include/conversation.php:993
#: ../../object/Item.php:567
#: ../../mod/photos.php:1407 ../../mod/photos.php:1451
#: ../../mod/photos.php:1523 ../../mod/editpost.php:139
#: ../../mod/content.php:702 ../../include/conversation.php:999
#: ../../object/Item.php:568
msgid "Preview"
msgstr "Vorschau"
#: ../../mod/photos.php:1489 ../../mod/content.php:439
#: ../../mod/content.php:723 ../../mod/settings.php:606
#: ../../mod/photos.php:1491 ../../mod/content.php:439
#: ../../mod/content.php:724 ../../mod/settings.php:606
#: ../../mod/group.php:168 ../../mod/admin.php:696
#: ../../include/conversation.php:564 ../../object/Item.php:117
#: ../../include/conversation.php:569 ../../object/Item.php:117
msgid "Delete"
msgstr "Löschen"
#: ../../mod/photos.php:1601
#: ../../mod/photos.php:1604
msgid "View Album"
msgstr "Album betrachten"
#: ../../mod/photos.php:1610
#: ../../mod/photos.php:1613
msgid "Recent Photos"
msgstr "Neueste Fotos"
@ -711,7 +704,7 @@ msgstr "Neueste Fotos"
msgid "Not available."
msgstr "Nicht verfügbar."
#: ../../mod/community.php:32 ../../view/theme/diabook/theme.php:93
#: ../../mod/community.php:32 ../../view/theme/diabook/theme.php:92
#: ../../include/nav.php:101
msgid "Community"
msgstr "Gemeinschaft"
@ -761,96 +754,96 @@ msgstr "Beitrag nicht gefunden"
msgid "Edit post"
msgstr "Beitrag bearbeiten"
#: ../../mod/editpost.php:88 ../../include/conversation.php:942
#: ../../mod/editpost.php:88 ../../include/conversation.php:948
msgid "Post to Email"
msgstr "An E-Mail senden"
#: ../../mod/editpost.php:103 ../../mod/content.php:710
#: ../../mod/editpost.php:103 ../../mod/content.php:711
#: ../../mod/settings.php:605 ../../object/Item.php:107
msgid "Edit"
msgstr "Bearbeiten"
#: ../../mod/editpost.php:104 ../../mod/wallmessage.php:150
#: ../../mod/message.php:291 ../../mod/message.php:478
#: ../../include/conversation.php:957
#: ../../include/conversation.php:963
msgid "Upload photo"
msgstr "Foto hochladen"
#: ../../mod/editpost.php:105 ../../include/conversation.php:958
#: ../../mod/editpost.php:105 ../../include/conversation.php:964
msgid "upload photo"
msgstr "Bild hochladen"
#: ../../mod/editpost.php:106 ../../include/conversation.php:959
#: ../../mod/editpost.php:106 ../../include/conversation.php:965
msgid "Attach file"
msgstr "Datei anhängen"
#: ../../mod/editpost.php:107 ../../include/conversation.php:960
#: ../../mod/editpost.php:107 ../../include/conversation.php:966
msgid "attach file"
msgstr "Datei anhängen"
#: ../../mod/editpost.php:108 ../../mod/wallmessage.php:151
#: ../../mod/message.php:292 ../../mod/message.php:479
#: ../../include/conversation.php:961
#: ../../include/conversation.php:967
msgid "Insert web link"
msgstr "einen Link einfügen"
#: ../../mod/editpost.php:109 ../../include/conversation.php:962
#: ../../mod/editpost.php:109 ../../include/conversation.php:968
msgid "web link"
msgstr "Weblink"
#: ../../mod/editpost.php:110 ../../include/conversation.php:963
#: ../../mod/editpost.php:110 ../../include/conversation.php:969
msgid "Insert video link"
msgstr "Video-Adresse einfügen"
#: ../../mod/editpost.php:111 ../../include/conversation.php:964
#: ../../mod/editpost.php:111 ../../include/conversation.php:970
msgid "video link"
msgstr "Video-Link"
#: ../../mod/editpost.php:112 ../../include/conversation.php:965
#: ../../mod/editpost.php:112 ../../include/conversation.php:971
msgid "Insert audio link"
msgstr "Audio-Adresse einfügen"
#: ../../mod/editpost.php:113 ../../include/conversation.php:966
#: ../../mod/editpost.php:113 ../../include/conversation.php:972
msgid "audio link"
msgstr "Audio-Link"
#: ../../mod/editpost.php:114 ../../include/conversation.php:967
#: ../../mod/editpost.php:114 ../../include/conversation.php:973
msgid "Set your location"
msgstr "Deinen Standort festlegen"
#: ../../mod/editpost.php:115 ../../include/conversation.php:968
#: ../../mod/editpost.php:115 ../../include/conversation.php:974
msgid "set location"
msgstr "Ort setzen"
#: ../../mod/editpost.php:116 ../../include/conversation.php:969
#: ../../mod/editpost.php:116 ../../include/conversation.php:975
msgid "Clear browser location"
msgstr "Browser-Standort leeren"
#: ../../mod/editpost.php:117 ../../include/conversation.php:970
#: ../../mod/editpost.php:117 ../../include/conversation.php:976
msgid "clear location"
msgstr "Ort löschen"
#: ../../mod/editpost.php:119 ../../include/conversation.php:976
#: ../../mod/editpost.php:119 ../../include/conversation.php:982
msgid "Permission settings"
msgstr "Berechtigungseinstellungen"
#: ../../mod/editpost.php:127 ../../include/conversation.php:985
#: ../../mod/editpost.php:127 ../../include/conversation.php:991
msgid "CC: email addresses"
msgstr "Cc:-E-Mail-Addressen"
#: ../../mod/editpost.php:128 ../../include/conversation.php:986
#: ../../mod/editpost.php:128 ../../include/conversation.php:992
msgid "Public post"
msgstr "Öffentlicher Beitrag"
#: ../../mod/editpost.php:131 ../../include/conversation.php:972
#: ../../mod/editpost.php:131 ../../include/conversation.php:978
msgid "Set title"
msgstr "Titel setzen"
#: ../../mod/editpost.php:133 ../../include/conversation.php:974
#: ../../mod/editpost.php:133 ../../include/conversation.php:980
msgid "Categories (comma-separated list)"
msgstr "Kategorien (kommasepariert)"
#: ../../mod/editpost.php:134 ../../include/conversation.php:988
#: ../../mod/editpost.php:134 ../../include/conversation.php:994
msgid "Example: bob@example.com, mary@example.com"
msgstr "Z.B.: bob@example.com, mary@example.com"
@ -971,7 +964,7 @@ msgstr "Bitte bestätige deine Kontaktanfrage bei %s."
msgid "Confirm"
msgstr "Bestätigen"
#: ../../mod/dfrn_request.php:715 ../../include/items.php:3292
#: ../../mod/dfrn_request.php:715 ../../include/items.php:3293
msgid "[Name Withheld]"
msgstr "[Name unterdrückt]"
@ -1300,7 +1293,7 @@ msgstr "WICHTIG: Du musst [manuell] einen Cronjob (o.ä.) für den Poller einric
#: ../../mod/localtime.php:12 ../../include/event.php:11
#: ../../include/bb2diaspora.php:390
msgid "l F d, Y \\@ g:i A"
msgstr "l F d, Y \\@ g:i A"
msgstr "l, d. F Y\\, H:i"
#: ../../mod/localtime.php:24
msgid "Time Conversion"
@ -1393,25 +1386,25 @@ msgstr "Gruppe ist leer"
msgid "Group: "
msgstr "Gruppe: "
#: ../../mod/content.php:438 ../../mod/content.php:722
#: ../../include/conversation.php:563 ../../object/Item.php:116
#: ../../mod/content.php:438 ../../mod/content.php:723
#: ../../include/conversation.php:568 ../../object/Item.php:116
msgid "Select"
msgstr "Auswählen"
#: ../../mod/content.php:455 ../../mod/content.php:815
#: ../../mod/content.php:816 ../../include/conversation.php:582
#: ../../mod/content.php:455 ../../mod/content.php:816
#: ../../mod/content.php:817 ../../include/conversation.php:587
#: ../../object/Item.php:227 ../../object/Item.php:228
#, php-format
msgid "View %s's profile @ %s"
msgstr "Das Profil von %s auf %s betrachten."
#: ../../mod/content.php:465 ../../mod/content.php:827
#: ../../include/conversation.php:602 ../../object/Item.php:240
#: ../../mod/content.php:465 ../../mod/content.php:828
#: ../../include/conversation.php:607 ../../object/Item.php:240
#, php-format
msgid "%s from %s"
msgstr "%s von %s"
#: ../../mod/content.php:480 ../../include/conversation.php:617
#: ../../mod/content.php:480 ../../include/conversation.php:622
msgid "View in context"
msgstr "Im Zusammenhang betrachten"
@ -1453,71 +1446,71 @@ msgstr "Weitersagen"
msgid "share"
msgstr "Teilen"
#: ../../mod/content.php:694 ../../object/Item.php:559
#: ../../mod/content.php:694 ../../object/Item.php:560
msgid "Bold"
msgstr "Fett"
#: ../../mod/content.php:695 ../../object/Item.php:560
#: ../../mod/content.php:695 ../../object/Item.php:561
msgid "Italic"
msgstr "Kursiv"
#: ../../mod/content.php:696 ../../object/Item.php:561
#: ../../mod/content.php:696 ../../object/Item.php:562
msgid "Underline"
msgstr "Unterstrichen"
#: ../../mod/content.php:697 ../../object/Item.php:562
#: ../../mod/content.php:697 ../../object/Item.php:563
msgid "Quote"
msgstr "Zitat"
#: ../../mod/content.php:698 ../../object/Item.php:563
#: ../../mod/content.php:698 ../../object/Item.php:564
msgid "Code"
msgstr "Code"
#: ../../mod/content.php:699 ../../object/Item.php:564
#: ../../mod/content.php:699 ../../object/Item.php:565
msgid "Image"
msgstr "Bild"
#: ../../mod/content.php:700 ../../object/Item.php:565
#: ../../mod/content.php:700 ../../object/Item.php:566
msgid "Link"
msgstr "Verweis"
#: ../../mod/content.php:701 ../../object/Item.php:566
#: ../../mod/content.php:701 ../../object/Item.php:567
msgid "Video"
msgstr "Video"
#: ../../mod/content.php:735 ../../object/Item.php:180
#: ../../mod/content.php:736 ../../object/Item.php:180
msgid "add star"
msgstr "markieren"
#: ../../mod/content.php:736 ../../object/Item.php:181
#: ../../mod/content.php:737 ../../object/Item.php:181
msgid "remove star"
msgstr "Markierung entfernen"
#: ../../mod/content.php:737 ../../object/Item.php:182
#: ../../mod/content.php:738 ../../object/Item.php:182
msgid "toggle star status"
msgstr "Markierung umschalten"
#: ../../mod/content.php:740 ../../object/Item.php:185
#: ../../mod/content.php:741 ../../object/Item.php:185
msgid "starred"
msgstr "markiert"
#: ../../mod/content.php:741 ../../object/Item.php:186
#: ../../mod/content.php:742 ../../object/Item.php:186
msgid "add tag"
msgstr "Tag hinzufügen"
#: ../../mod/content.php:745 ../../object/Item.php:120
#: ../../mod/content.php:746 ../../object/Item.php:120
msgid "save to folder"
msgstr "In Ordner speichern"
#: ../../mod/content.php:817 ../../object/Item.php:229
#: ../../mod/content.php:818 ../../object/Item.php:229
msgid "to"
msgstr "zu"
#: ../../mod/content.php:818 ../../object/Item.php:230
#: ../../mod/content.php:819 ../../object/Item.php:230
msgid "Wall-to-Wall"
msgstr "Wall-to-Wall"
#: ../../mod/content.php:819 ../../object/Item.php:231
#: ../../mod/content.php:820 ../../object/Item.php:231
msgid "via Wall-To-Wall:"
msgstr "via Wall-To-Wall:"
@ -1554,7 +1547,7 @@ msgstr "Netzwerk"
msgid "Personal"
msgstr "Persönlich"
#: ../../mod/notifications.php:93 ../../view/theme/diabook/theme.php:87
#: ../../mod/notifications.php:93 ../../view/theme/diabook/theme.php:86
#: ../../include/nav.php:77 ../../include/nav.php:115
msgid "Home"
msgstr "Pinnwand"
@ -1999,7 +1992,7 @@ msgstr "du bist Fan von"
msgid "Edit contact"
msgstr "Kontakt bearbeiten"
#: ../../mod/contacts.php:571 ../../view/theme/diabook/theme.php:89
#: ../../mod/contacts.php:571 ../../view/theme/diabook/theme.php:88
#: ../../include/nav.php:139
msgid "Contacts"
msgstr "Kontakte"
@ -2036,7 +2029,7 @@ msgstr "Anfrage zum Zurücksetzen des Passworts auf %s erhalten"
#: ../../addon/facebook/facebook.php:702
#: ../../addon/facebook/facebook.php:1200 ../../addon/fbpost/fbpost.php:661
#: ../../addon/public_server/public_server.php:62
#: ../../addon/testdrive/testdrive.php:67 ../../include/items.php:3301
#: ../../addon/testdrive/testdrive.php:67 ../../include/items.php:3302
#: ../../boot.php:799 ../../addon.old/facebook/facebook.php:702
#: ../../addon.old/facebook/facebook.php:1200
#: ../../addon.old/fbpost/fbpost.php:661
@ -2126,9 +2119,8 @@ msgstr "Konto löschen"
#: ../../mod/settings.php:69 ../../mod/newmember.php:22
#: ../../mod/admin.php:785 ../../mod/admin.php:990
#: ../../addon/dav/friendica/layout.fnk.php:225
#: ../../addon/mathjax/mathjax.php:36 ../../view/theme/diabook/theme.php:537
#: ../../view/theme/diabook/theme.php:658 ../../include/nav.php:137
#: ../../addon.old/dav/friendica/layout.fnk.php:225
#: ../../addon/mathjax/mathjax.php:36 ../../view/theme/diabook/theme.php:614
#: ../../include/nav.php:137 ../../addon.old/dav/friendica/layout.fnk.php:225
#: ../../addon.old/mathjax/mathjax.php:36
msgid "Settings"
msgstr "Einstellungen"
@ -2792,7 +2784,7 @@ msgstr "Kein Empfänger."
#: ../../mod/wallmessage.php:123 ../../mod/wallmessage.php:131
#: ../../mod/message.php:242 ../../mod/message.php:250
#: ../../include/conversation.php:893 ../../include/conversation.php:910
#: ../../include/conversation.php:898 ../../include/conversation.php:916
msgid "Please enter a link URL:"
msgstr "Bitte gib die URL des Links ein:"
@ -2873,7 +2865,7 @@ msgid ""
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:32 ../../mod/profperm.php:103
#: ../../view/theme/diabook/theme.php:88 ../../include/profile_advanced.php:7
#: ../../view/theme/diabook/theme.php:87 ../../include/profile_advanced.php:7
#: ../../include/profile_advanced.php:84 ../../include/nav.php:50
#: ../../boot.php:1684
msgid "Profile"
@ -3194,12 +3186,21 @@ msgstr "Registrieren"
msgid "People Search"
msgstr "Personensuche"
#: ../../mod/like.php:145 ../../mod/subthread.php:87 ../../mod/tagger.php:62
#: ../../addon/communityhome/communityhome.php:163
#: ../../view/theme/diabook/theme.php:457 ../../include/text.php:1437
#: ../../include/diaspora.php:1835 ../../include/conversation.php:125
#: ../../include/conversation.php:253
#: ../../addon.old/communityhome/communityhome.php:163
msgid "photo"
msgstr "Foto"
#: ../../mod/like.php:145 ../../mod/like.php:298 ../../mod/subthread.php:87
#: ../../mod/tagger.php:62 ../../addon/facebook/facebook.php:1598
#: ../../addon/communityhome/communityhome.php:158
#: ../../addon/communityhome/communityhome.php:167
#: ../../view/theme/diabook/theme.php:459
#: ../../view/theme/diabook/theme.php:468 ../../include/diaspora.php:1835
#: ../../view/theme/diabook/theme.php:452
#: ../../view/theme/diabook/theme.php:461 ../../include/diaspora.php:1835
#: ../../include/conversation.php:120 ../../include/conversation.php:129
#: ../../include/conversation.php:248 ../../include/conversation.php:257
#: ../../addon.old/facebook/facebook.php:1598
@ -3210,7 +3211,7 @@ msgstr "Status"
#: ../../mod/like.php:162 ../../addon/facebook/facebook.php:1602
#: ../../addon/communityhome/communityhome.php:172
#: ../../view/theme/diabook/theme.php:473 ../../include/diaspora.php:1851
#: ../../view/theme/diabook/theme.php:466 ../../include/diaspora.php:1851
#: ../../include/conversation.php:136
#: ../../addon.old/facebook/facebook.php:1602
#: ../../addon.old/communityhome/communityhome.php:172
@ -3224,8 +3225,8 @@ msgid "%1$s doesn't like %2$s's %3$s"
msgstr "%1$s mag %2$ss %3$s nicht"
#: ../../mod/notice.php:15 ../../mod/viewsrc.php:15 ../../mod/admin.php:159
#: ../../mod/admin.php:734 ../../mod/admin.php:933 ../../mod/display.php:29
#: ../../mod/display.php:145 ../../include/items.php:3779
#: ../../mod/admin.php:734 ../../mod/admin.php:933 ../../mod/display.php:39
#: ../../mod/display.php:169 ../../include/items.php:3780
msgid "Item not found."
msgstr "Beitrag nicht gefunden."
@ -3233,7 +3234,7 @@ msgstr "Beitrag nicht gefunden."
msgid "Access denied."
msgstr "Zugriff verweigert."
#: ../../mod/fbrowser.php:25 ../../view/theme/diabook/theme.php:90
#: ../../mod/fbrowser.php:25 ../../view/theme/diabook/theme.php:89
#: ../../include/nav.php:51 ../../boot.php:1691
msgid "Photos"
msgstr "Bilder"
@ -3255,43 +3256,43 @@ msgstr "Registrierung für %s wurde zurückgezogen"
msgid "Please login."
msgstr "Bitte melde dich an."
#: ../../mod/item.php:91
#: ../../mod/item.php:104
msgid "Unable to locate original post."
msgstr "Konnte den Originalbeitrag nicht finden."
#: ../../mod/item.php:275
#: ../../mod/item.php:288
msgid "Empty post discarded."
msgstr "Leerer Beitrag wurde verworfen."
#: ../../mod/item.php:407 ../../mod/wall_upload.php:133
#: ../../mod/item.php:420 ../../mod/wall_upload.php:133
#: ../../mod/wall_upload.php:142 ../../mod/wall_upload.php:149
#: ../../include/message.php:144
msgid "Wall Photos"
msgstr "Pinnwand-Bilder"
#: ../../mod/item.php:820
#: ../../mod/item.php:833
msgid "System error. Post not saved."
msgstr "Systemfehler. Beitrag konnte nicht gespeichert werden."
#: ../../mod/item.php:845
#: ../../mod/item.php:858
#, php-format
msgid ""
"This message was sent to you by %s, a member of the Friendica social "
"network."
msgstr "Diese Nachricht wurde dir von %s geschickt, einem Mitglied des Sozialen Netzwerks Friendica."
#: ../../mod/item.php:847
#: ../../mod/item.php:860
#, php-format
msgid "You may visit them online at %s"
msgstr "Du kannst sie online unter %s besuchen"
#: ../../mod/item.php:848
#: ../../mod/item.php:861
msgid ""
"Please contact the sender by replying to this post if you do not wish to "
"receive these messages."
msgstr "Falls du diese Beiträge nicht erhalten möchtest, kontaktiere bitte den Autor, indem du auf diese Nachricht antwortest."
#: ../../mod/item.php:850
#: ../../mod/item.php:863
#, php-format
msgid "%s posted an update."
msgstr "%s hat ein Update veröffentlicht."
@ -3812,7 +3813,7 @@ msgid ""
"Provide built-in OStatus (identi.ca, status.net, etc.) compatibility. All "
"communications in OStatus are public, so privacy warnings will be "
"occasionally displayed."
msgstr "Biete die eingebaute OStatus (identi.ca, status.net, etc.) Unterstützung an. Jede Kommunikation in OStatus ist öffentlich, so Privatsphäre Warnungen werden bei Bedarf angezeigt."
msgstr "Biete die eingebaute OStatus (identi.ca, status.net, etc.) Unterstützung an. Jede Kommunikation in OStatus ist öffentlich, Privatsphäre Warnungen werden nur bei Bedarf angezeigt."
#: ../../mod/admin.php:478
msgid "Enable Diaspora support"
@ -4116,7 +4117,7 @@ msgstr "FTP Passwort"
msgid "Requested profile is not available."
msgstr "Das angefragte Profil ist nicht vorhanden."
#: ../../mod/profile.php:155 ../../mod/display.php:77
#: ../../mod/profile.php:155 ../../mod/display.php:87
msgid "Access to this profile has been restricted."
msgstr "Der Zugriff zu diesem Profil wurde eingeschränkt."
@ -4208,7 +4209,7 @@ msgstr "%1$s folgt %2$s %3$s"
msgid "link"
msgstr "Link"
#: ../../mod/display.php:138
#: ../../mod/display.php:162
msgid "Item has been removed."
msgstr "Eintrag wurde entfernt."
@ -4533,8 +4534,8 @@ msgstr "sichtbar für jeden"
msgid "Edit visibility"
msgstr "Sichtbarkeit bearbeiten"
#: ../../mod/filer.php:29 ../../include/conversation.php:897
#: ../../include/conversation.php:914
#: ../../mod/filer.php:29 ../../include/conversation.php:902
#: ../../include/conversation.php:920
msgid "Save to Folder:"
msgstr "In diesen Ordner verschieben:"
@ -4626,7 +4627,7 @@ msgstr "Texteingabe (Diaspora Format): "
msgid "diaspora2bb: "
msgstr "diaspora2bb: "
#: ../../mod/suggest.php:38 ../../view/theme/diabook/theme.php:520
#: ../../mod/suggest.php:38 ../../view/theme/diabook/theme.php:513
#: ../../include/contact_widgets.php:34
msgid "Friend Suggestions"
msgstr "Kontaktvorschläge"
@ -4641,7 +4642,7 @@ msgstr "Keine Vorschläge. Falls der Server frisch aufgesetzt wurde, versuche es
msgid "Ignore/Hide"
msgstr "Ignorieren/Verbergen"
#: ../../mod/directory.php:49 ../../view/theme/diabook/theme.php:518
#: ../../mod/directory.php:49 ../../view/theme/diabook/theme.php:511
msgid "Global Directory"
msgstr "Weltweites Verzeichnis"
@ -5578,7 +5579,7 @@ msgid "Latest likes"
msgstr "Neueste Favoriten"
#: ../../addon/communityhome/communityhome.php:155
#: ../../view/theme/diabook/theme.php:456 ../../include/text.php:1435
#: ../../view/theme/diabook/theme.php:449 ../../include/text.php:1435
#: ../../include/conversation.php:117 ../../include/conversation.php:245
#: ../../addon.old/communityhome/communityhome.php:155
msgid "event"
@ -7592,137 +7593,135 @@ msgstr "Theme Breite festlegen"
msgid "Color scheme"
msgstr "Farbschema"
#: ../../view/theme/diabook/theme.php:87 ../../include/nav.php:49
#: ../../view/theme/diabook/theme.php:86 ../../include/nav.php:49
#: ../../include/nav.php:115
msgid "Your posts and conversations"
msgstr "Deine Beiträge und Unterhaltungen"
#: ../../view/theme/diabook/theme.php:88 ../../include/nav.php:50
#: ../../view/theme/diabook/theme.php:87 ../../include/nav.php:50
msgid "Your profile page"
msgstr "Deine Profilseite"
#: ../../view/theme/diabook/theme.php:89
#: ../../view/theme/diabook/theme.php:88
msgid "Your contacts"
msgstr "Deine Kontakte"
#: ../../view/theme/diabook/theme.php:90 ../../include/nav.php:51
#: ../../view/theme/diabook/theme.php:89 ../../include/nav.php:51
msgid "Your photos"
msgstr "Deine Fotos"
#: ../../view/theme/diabook/theme.php:91 ../../include/nav.php:52
#: ../../view/theme/diabook/theme.php:90 ../../include/nav.php:52
msgid "Your events"
msgstr "Deine Ereignisse"
#: ../../view/theme/diabook/theme.php:92 ../../include/nav.php:53
#: ../../view/theme/diabook/theme.php:91 ../../include/nav.php:53
msgid "Personal notes"
msgstr "Persönliche Notizen"
#: ../../view/theme/diabook/theme.php:92 ../../include/nav.php:53
#: ../../view/theme/diabook/theme.php:91 ../../include/nav.php:53
msgid "Your personal photos"
msgstr "Deine privaten Fotos"
#: ../../view/theme/diabook/theme.php:94
#: ../../view/theme/diabook/theme.php:537
#: ../../view/theme/diabook/theme.php:632
#: ../../view/theme/diabook/theme.php:93
#: ../../view/theme/diabook/config.php:163
msgid "Community Pages"
msgstr "Foren"
#: ../../view/theme/diabook/theme.php:384
#: ../../view/theme/diabook/theme.php:634
#: ../../view/theme/diabook/theme.php:377
#: ../../view/theme/diabook/theme.php:591
#: ../../view/theme/diabook/config.php:165
msgid "Community Profiles"
msgstr "Community-Profile"
#: ../../view/theme/diabook/theme.php:405
#: ../../view/theme/diabook/theme.php:639
#: ../../view/theme/diabook/theme.php:398
#: ../../view/theme/diabook/theme.php:596
#: ../../view/theme/diabook/config.php:170
msgid "Last users"
msgstr "Letzte Nutzer"
#: ../../view/theme/diabook/theme.php:434
#: ../../view/theme/diabook/theme.php:641
#: ../../view/theme/diabook/theme.php:427
#: ../../view/theme/diabook/theme.php:598
#: ../../view/theme/diabook/config.php:172
msgid "Last likes"
msgstr "Zuletzt gemocht"
#: ../../view/theme/diabook/theme.php:479
#: ../../view/theme/diabook/theme.php:640
#: ../../view/theme/diabook/theme.php:472
#: ../../view/theme/diabook/theme.php:597
#: ../../view/theme/diabook/config.php:171
msgid "Last photos"
msgstr "Letzte Fotos"
#: ../../view/theme/diabook/theme.php:516
#: ../../view/theme/diabook/theme.php:637
#: ../../view/theme/diabook/theme.php:509
#: ../../view/theme/diabook/theme.php:594
#: ../../view/theme/diabook/config.php:168
msgid "Find Friends"
msgstr "Freunde finden"
#: ../../view/theme/diabook/theme.php:517
#: ../../view/theme/diabook/theme.php:510
msgid "Local Directory"
msgstr "Lokales Verzeichnis"
#: ../../view/theme/diabook/theme.php:519 ../../include/contact_widgets.php:35
#: ../../view/theme/diabook/theme.php:512 ../../include/contact_widgets.php:35
msgid "Similar Interests"
msgstr "Ähnliche Interessen"
#: ../../view/theme/diabook/theme.php:521 ../../include/contact_widgets.php:37
#: ../../view/theme/diabook/theme.php:514 ../../include/contact_widgets.php:37
msgid "Invite Friends"
msgstr "Freunde einladen"
#: ../../view/theme/diabook/theme.php:572
#: ../../view/theme/diabook/theme.php:633
#: ../../view/theme/diabook/theme.php:531
#: ../../view/theme/diabook/theme.php:590
#: ../../view/theme/diabook/config.php:164
msgid "Earth Layers"
msgstr "Earth Layers"
#: ../../view/theme/diabook/theme.php:577
#: ../../view/theme/diabook/theme.php:536
msgid "Set zoomfactor for Earth Layers"
msgstr "Zoomfaktor der Earth Layer"
#: ../../view/theme/diabook/theme.php:578
#: ../../view/theme/diabook/theme.php:537
#: ../../view/theme/diabook/config.php:161
msgid "Set longitude (X) for Earth Layers"
msgstr "Longitude (X) der Earth Layer"
#: ../../view/theme/diabook/theme.php:579
#: ../../view/theme/diabook/theme.php:538
#: ../../view/theme/diabook/config.php:162
msgid "Set latitude (Y) for Earth Layers"
msgstr "Latitude (Y) der Earth Layer"
#: ../../view/theme/diabook/theme.php:551
#: ../../view/theme/diabook/theme.php:592
#: ../../view/theme/diabook/theme.php:635
#: ../../view/theme/diabook/config.php:166
msgid "Help or @NewHere ?"
msgstr "Hilfe oder @NewHere"
#: ../../view/theme/diabook/theme.php:599
#: ../../view/theme/diabook/theme.php:636
#: ../../view/theme/diabook/theme.php:558
#: ../../view/theme/diabook/theme.php:593
#: ../../view/theme/diabook/config.php:167
msgid "Connect Services"
msgstr "Verbinde Dienste"
#: ../../view/theme/diabook/theme.php:606
#: ../../view/theme/diabook/theme.php:638
#: ../../view/theme/diabook/theme.php:565
#: ../../view/theme/diabook/theme.php:595
msgid "Last Tweets"
msgstr "Neueste Tweets"
#: ../../view/theme/diabook/theme.php:609
#: ../../view/theme/diabook/theme.php:568
#: ../../view/theme/diabook/config.php:159
msgid "Set twitter search term"
msgstr "Twitter Suchbegriff"
#: ../../view/theme/diabook/theme.php:629
#: ../../view/theme/diabook/theme.php:587
#: ../../view/theme/diabook/config.php:146 ../../include/acl_selectors.php:288
msgid "don't show"
msgstr "nicht zeigen"
#: ../../view/theme/diabook/theme.php:629
#: ../../view/theme/diabook/theme.php:587
#: ../../view/theme/diabook/config.php:146 ../../include/acl_selectors.php:287
msgid "show"
msgstr "zeigen"
#: ../../view/theme/diabook/theme.php:630
#: ../../view/theme/diabook/theme.php:588
msgid "Show/hide boxes at right-hand column:"
msgstr "Rahmen auf der rechten Seite anzeigen/verbergen"
@ -8673,17 +8672,17 @@ msgstr "Sekunden"
msgid "%1$d %2$s ago"
msgstr "%1$d %2$s her"
#: ../../include/datetime.php:472 ../../include/items.php:1688
#: ../../include/datetime.php:472 ../../include/items.php:1689
#, php-format
msgid "%s's birthday"
msgstr "%ss Geburtstag"
#: ../../include/datetime.php:473 ../../include/items.php:1689
#: ../../include/datetime.php:473 ../../include/items.php:1690
#, php-format
msgid "Happy Birthday %s"
msgstr "Herzlichen Glückwunsch %s"
#: ../../include/onepoll.php:409
#: ../../include/onepoll.php:414
msgid "From: "
msgstr "Von: "
@ -8953,15 +8952,15 @@ msgstr "Konnte die Kontaktinformationen nicht empfangen."
msgid "following"
msgstr "folgen"
#: ../../include/items.php:3299
#: ../../include/items.php:3300
msgid "A new person is sharing with you at "
msgstr "Eine neue Person teilt mit dir auf "
#: ../../include/items.php:3299
#: ../../include/items.php:3300
msgid "You have a new follower at "
msgstr "Du hast einen neuen Kontakt auf "
#: ../../include/items.php:3980
#: ../../include/items.php:3981
msgid "Archives"
msgstr "Archiv"
@ -9055,34 +9054,34 @@ msgstr "Das Sicherheitsmerkmal war nicht korrekt. Das passiert meistens wenn das
msgid "stopped following"
msgstr "wird nicht mehr gefolgt"
#: ../../include/Contact.php:220 ../../include/conversation.php:790
#: ../../include/Contact.php:220 ../../include/conversation.php:795
msgid "Poke"
msgstr "Anstupsen"
#: ../../include/Contact.php:221 ../../include/conversation.php:784
#: ../../include/Contact.php:221 ../../include/conversation.php:789
msgid "View Status"
msgstr "Pinnwand anschauen"
#: ../../include/Contact.php:222 ../../include/conversation.php:785
#: ../../include/Contact.php:222 ../../include/conversation.php:790
msgid "View Profile"
msgstr "Profil anschauen"
#: ../../include/Contact.php:223 ../../include/conversation.php:786
#: ../../include/Contact.php:223 ../../include/conversation.php:791
msgid "View Photos"
msgstr "Bilder anschauen"
#: ../../include/Contact.php:224 ../../include/Contact.php:237
#: ../../include/conversation.php:787
#: ../../include/conversation.php:792
msgid "Network Posts"
msgstr "Netzwerkbeiträge"
#: ../../include/Contact.php:225 ../../include/Contact.php:237
#: ../../include/conversation.php:788
#: ../../include/conversation.php:793
msgid "Edit Contact"
msgstr "Kontakt bearbeiten"
#: ../../include/Contact.php:226 ../../include/Contact.php:237
#: ../../include/conversation.php:789
#: ../../include/conversation.php:794
msgid "Send PM"
msgstr "Private Nachricht senden"
@ -9100,86 +9099,90 @@ msgstr "Nachricht/Beitrag"
msgid "%1$s marked %2$s's %3$s as favorite"
msgstr "%1$s hat %2$s\\s %3$s als Favorit markiert"
#: ../../include/conversation.php:594 ../../object/Item.php:218
#: ../../include/conversation.php:599 ../../object/Item.php:218
msgid "Categories:"
msgstr "Kategorien"
#: ../../include/conversation.php:595 ../../object/Item.php:219
#: ../../include/conversation.php:600 ../../object/Item.php:219
msgid "Filed under:"
msgstr "Abgelegt unter:"
#: ../../include/conversation.php:680
#: ../../include/conversation.php:685
msgid "remove"
msgstr "löschen"
#: ../../include/conversation.php:684
#: ../../include/conversation.php:689
msgid "Delete Selected Items"
msgstr "Lösche die markierten Beiträge"
#: ../../include/conversation.php:783
#: ../../include/conversation.php:788
msgid "Follow Thread"
msgstr "Folge der Unterhaltung"
#: ../../include/conversation.php:852
#: ../../include/conversation.php:857
#, php-format
msgid "%s likes this."
msgstr "%s mag das."
#: ../../include/conversation.php:852
#: ../../include/conversation.php:857
#, php-format
msgid "%s doesn't like this."
msgstr "%s mag das nicht."
#: ../../include/conversation.php:856
#: ../../include/conversation.php:861
#, php-format
msgid "<span %1$s>%2$d people</span> like this."
msgstr "<span %1$s>%2$d Leute</span> mögen das."
#: ../../include/conversation.php:858
#: ../../include/conversation.php:863
#, php-format
msgid "<span %1$s>%2$d people</span> don't like this."
msgstr "<span %1$s>%2$d Leute</span> mögen das nicht."
#: ../../include/conversation.php:864
#: ../../include/conversation.php:869
msgid "and"
msgstr "und"
#: ../../include/conversation.php:867
#: ../../include/conversation.php:872
#, php-format
msgid ", and %d other people"
msgstr " und %d andere"
#: ../../include/conversation.php:868
#: ../../include/conversation.php:873
#, php-format
msgid "%s like this."
msgstr "%s mögen das."
#: ../../include/conversation.php:868
#: ../../include/conversation.php:873
#, php-format
msgid "%s don't like this."
msgstr "%s mögen das nicht."
#: ../../include/conversation.php:892 ../../include/conversation.php:909
#: ../../include/conversation.php:897 ../../include/conversation.php:915
msgid "Visible to <strong>everybody</strong>"
msgstr "Für <strong>jedermann</strong> sichtbar"
#: ../../include/conversation.php:894 ../../include/conversation.php:911
#: ../../include/conversation.php:899 ../../include/conversation.php:917
msgid "Please enter a video link/URL:"
msgstr "Bitte Link/URL zum Video einfügen:"
#: ../../include/conversation.php:895 ../../include/conversation.php:912
#: ../../include/conversation.php:900 ../../include/conversation.php:918
msgid "Please enter an audio link/URL:"
msgstr "Bitte Link/URL zum Audio einfügen:"
#: ../../include/conversation.php:896 ../../include/conversation.php:913
#: ../../include/conversation.php:901 ../../include/conversation.php:919
msgid "Tag term:"
msgstr "Tag:"
#: ../../include/conversation.php:898 ../../include/conversation.php:915
#: ../../include/conversation.php:903 ../../include/conversation.php:921
msgid "Where are you right now?"
msgstr "Wo hältst du dich jetzt gerade auf?"
#: ../../include/conversation.php:977
#: ../../include/conversation.php:904
msgid "Delete item(s)?"
msgstr "Einträge löschen?"
#: ../../include/conversation.php:983
msgid "permissions"
msgstr "Zugriffsrechte"

View file

@ -58,7 +58,7 @@ $a->strings["Tag removed"] = "Tag entfernt";
$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["%1\$s welcomes %2\$s"] = "%1\$s heißt %2\$s herzlich willkommen";
$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.";
@ -74,9 +74,8 @@ $a->strings["Profile Photos"] = "Profilbilder";
$a->strings["Album not found."] = "Album nicht gefunden.";
$a->strings["Delete Album"] = "Album löschen";
$a->strings["Delete Photo"] = "Foto löschen";
$a->strings["was tagged in a"] = "wurde getaggt in einem";
$a->strings["photo"] = "Foto";
$a->strings["by"] = "von";
$a->strings["%1\$s was tagged in %2\$s by %3\$s"] = "%1\$s wurde von %3\$s in %2\$s getaggt";
$a->strings["a photo"] = "einem Foto";
$a->strings["Image exceeds size limit of "] = "Die Bildgröße übersteigt das Limit von ";
$a->strings["Image file is empty."] = "Bilddatei ist leer.";
$a->strings["Unable to process image."] = "Konnte das Bild nicht bearbeiten.";
@ -253,7 +252,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["<h1>What next</h1>"] = "<h1>Wie geht es weiter?</h1>";
$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "WICHTIG: Du musst [manuell] einen Cronjob (o.ä.) für den Poller einrichten.";
$a->strings["l F d, Y \\@ g:i A"] = "l F d, Y \\@ g:i A";
$a->strings["l F d, Y \\@ g:i A"] = "l, d. F Y\\, H:i";
$a->strings["Time Conversion"] = "Zeitumrechnung";
$a->strings["Friendica 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["UTC time: %s"] = "UTC Zeit: %s";
@ -689,6 +688,7 @@ $a->strings["Choose a profile nickname. This must begin with a text character. Y
$a->strings["Choose a nickname: "] = "Spitznamen wählen: ";
$a->strings["Register"] = "Registrieren";
$a->strings["People Search"] = "Personensuche";
$a->strings["photo"] = "Foto";
$a->strings["status"] = "Status";
$a->strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s mag %2\$ss %3\$s";
$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s mag %2\$ss %3\$s nicht";
@ -826,7 +826,7 @@ $a->strings["Use PHP UTF8 regular expressions"] = "PHP UTF8 Ausdrücke verwenden
$a->strings["Show Community Page"] = "Gemeinschaftsseite anzeigen";
$a->strings["Display a Community page showing all recent public postings on this site."] = "Zeige die Gemeinschaftsseite mit allen öffentlichen Beiträgen auf diesem Server.";
$a->strings["Enable OStatus support"] = "OStatus Unterstützung aktivieren";
$a->strings["Provide built-in OStatus (identi.ca, status.net, etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed."] = "Biete die eingebaute OStatus (identi.ca, status.net, etc.) Unterstützung an. Jede Kommunikation in OStatus ist öffentlich, so Privatsphäre Warnungen werden bei Bedarf angezeigt.";
$a->strings["Provide built-in OStatus (identi.ca, status.net, etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed."] = "Biete die eingebaute OStatus (identi.ca, status.net, etc.) Unterstützung an. Jede Kommunikation in OStatus ist öffentlich, Privatsphäre Warnungen werden nur bei Bedarf angezeigt.";
$a->strings["Enable Diaspora support"] = "Diaspora-Support aktivieren";
$a->strings["Provide built-in Diaspora network compatibility."] = "Verwende die eingebaute Diaspora-Verknüpfung.";
$a->strings["Only allow Friendica contacts"] = "Nur Friendica-Kontakte erlauben";
@ -1973,6 +1973,7 @@ $a->strings["Please enter a video link/URL:"] = "Bitte Link/URL zum Video einfü
$a->strings["Please enter an audio link/URL:"] = "Bitte Link/URL zum Audio einfügen:";
$a->strings["Tag term:"] = "Tag:";
$a->strings["Where are you right now?"] = "Wo hältst du dich jetzt gerade auf?";
$a->strings["Delete item(s)?"] = "Einträge löschen?";
$a->strings["permissions"] = "Zugriffsrechte";
$a->strings["Click here to upgrade."] = "Zum Upgraden hier klicken.";
$a->strings["This action exceeds the limits set by your subscription plan."] = "Diese Aktion überschreitet die Obergrenze deines Abonnements.";

View file

@ -55,6 +55,7 @@
<input type="submit" name="submit" id="register-submit-button" value="$regbutt" />
</div>
<div id="register-submit-end" ></div>
</form>
$license

9
view/uexport.tpl Normal file
View file

@ -0,0 +1,9 @@
<h3>$title</h3>
{{ for $options as $o }}
<dl>
<dt><a href="$baseurl/$o.0">$o.1</a></dt>
<dd>$o.2</dd>
</dl>
{{ endfor }}

11
view/uimport.tpl Normal file
View file

@ -0,0 +1,11 @@
<form action="uimport" method="post" id="uimport-form" enctype="multipart/form-data">
<h1>$import.title</h1>
<p>$import.text</p>
{{inc field_custom.tpl with $field=$import.field }}{{ endinc }}
<div id="register-submit-wrapper">
<input type="submit" name="submit" id="register-submit-button" value="$regbutt" />
</div>
<div id="register-submit-end" ></div>
</form>