Merge remote-tracking branch 'refs/remotes/friendica/develop' into develop

This commit is contained in:
Hypolite Petovan 2017-03-22 07:28:22 -04:00
commit d799662992
12 changed files with 6961 additions and 6864 deletions

View file

@ -1,28 +1,24 @@
<?php
use \Friendica\Core\Config;
require_once('include/photos.php');
require_once('include/user.php');
function cron_run(&$argv, &$argc){
global $a;
require_once('include/session.php');
require_once('include/datetime.php');
require_once('include/items.php');
require_once('include/Contact.php');
require_once('include/email.php');
require_once('include/socgraph.php');
require_once('mod/nodeinfo.php');
require_once('include/post_update.php');
// Poll contacts with specific parameters
if ($argc > 1) {
cron_poll_contacts($argc, $argv);
return;
}
$last = get_config('system','last_cron');
$poll_interval = intval(get_config('system','cron_interval'));
if(! $poll_interval)
if (! $poll_interval) {
$poll_interval = 10;
if($last) {
}
if ($last) {
$next = $last + ($poll_interval * 60);
if($next > time()) {
logger('cron intervall not reached');
@ -33,19 +29,16 @@ function cron_run(&$argv, &$argc){
logger('cron: start');
// run queue delivery process in the background
proc_run(PRIORITY_NEGLIGIBLE, "include/queue.php");
// run the process to discover global contacts in the background
proc_run(PRIORITY_LOW, "include/discover_poco.php");
// run the process to update locally stored global contacts in the background
proc_run(PRIORITY_LOW, "include/discover_poco.php", "checkcontact");
// Expire and remove user entries
cron_expire_and_remove_users();
proc_run(PRIORITY_MEDIUM, "include/cronjobs.php", "expire_and_remove_users");
// Check OStatus conversations
proc_run(PRIORITY_MEDIUM, "include/cronjobs.php", "ostatus_mentions");
@ -59,14 +52,22 @@ function cron_run(&$argv, &$argc){
// update nodeinfo data
proc_run(PRIORITY_LOW, "include/cronjobs.php", "nodeinfo");
// once daily run birthday_updates and then expire in background
// Clear cache entries
proc_run(PRIORITY_LOW, "include/cronjobs.php", "clear_cache");
// Repair missing Diaspora values in contacts
proc_run(PRIORITY_LOW, "include/cronjobs.php", "repair_diaspora");
// Repair entries in the database
proc_run(PRIORITY_LOW, "include/cronjobs.php", "repair_database");
// once daily run birthday_updates and then expire in background
$d1 = get_config('system','last_expire_day');
$d2 = intval(datetime_convert('UTC','UTC','now','d'));
if($d2 != intval($d1)) {
update_contact_birthdays();
proc_run(PRIORITY_LOW, "include/cronjobs.php", "update_contact_birthdays");
proc_run(PRIORITY_LOW, "include/discover_poco.php", "update_server");
@ -78,18 +79,9 @@ function cron_run(&$argv, &$argc){
proc_run(PRIORITY_MEDIUM, 'include/dbclean.php');
cron_update_photo_albums();
proc_run(PRIORITY_LOW, "include/cronjobs.php", "update_photo_albums");
}
// Clear cache entries
cron_clear_cache($a);
// Repair missing Diaspora values in contacts
cron_repair_diaspora($a);
// Repair entries in the database
cron_repair_database();
// Poll contacts
cron_poll_contacts($argc, $argv);
@ -100,39 +92,6 @@ function cron_run(&$argv, &$argc){
return;
}
/**
* @brief Update the cached values for the number of photo albums per user
*/
function cron_update_photo_albums() {
$r = q("SELECT `uid` FROM `user` WHERE NOT `account_expired` AND NOT `account_removed`");
if (!dbm::is_result($r)) {
return;
}
foreach ($r AS $user) {
photo_albums($user['uid'], true);
}
}
/**
* @brief Expire and remove user entries
*/
function cron_expire_and_remove_users() {
// expire any expired accounts
q("UPDATE user SET `account_expired` = 1 where `account_expired` = 0
AND `account_expires_on` > '%s'
AND `account_expires_on` < UTC_TIMESTAMP()", dbesc(NULL_DATE));
// delete user and contact records for recently removed accounts
$r = q("SELECT * FROM `user` WHERE `account_removed` AND `account_expires_on` < UTC_TIMESTAMP() - INTERVAL 3 DAY");
if ($r) {
foreach($r as $user) {
q("DELETE FROM `contact` WHERE `uid` = %d", intval($user['uid']));
q("DELETE FROM `user` WHERE `uid` = %d", intval($user['uid']));
}
}
}
/**
* @brief Poll contacts for unreceived messages
*
@ -145,14 +104,15 @@ function cron_poll_contacts($argc, $argv) {
$force = false;
$restart = false;
if (($argc > 1) && ($argv[1] == 'force'))
if (($argc > 1) && ($argv[1] == 'force')) {
$force = true;
}
if (($argc > 1) && ($argv[1] == 'restart')) {
$restart = true;
$generation = intval($argv[2]);
if (!$generation)
if (!$generation) {
killme();
}
}
if (($argc > 1) && intval($argv[1])) {
@ -171,9 +131,9 @@ function cron_poll_contacts($argc, $argv) {
// we are unable to match those posts with a Diaspora GUID and prevent duplicates.
$abandon_days = intval(get_config('system','account_abandon_days'));
if($abandon_days < 1)
if ($abandon_days < 1) {
$abandon_days = 0;
}
$abandon_sql = (($abandon_days)
? sprintf(" AND `user`.`login_date` > UTC_TIMESTAMP() - INTERVAL %d DAY ", intval($abandon_days))
: ''
@ -244,185 +204,44 @@ function cron_poll_contacts($argc, $argv) {
switch ($contact['priority']) {
case 5:
if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 month"))
if (datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 month")) {
$update = true;
}
break;
case 4:
if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 week"))
if (datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 week")) {
$update = true;
}
break;
case 3:
if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 day"))
if (datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 day")) {
$update = true;
}
break;
case 2:
if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 12 hour"))
if (datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 12 hour")) {
$update = true;
}
break;
case 1:
default:
if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 hour"))
if (datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 hour")) {
$update = true;
}
break;
}
if (!$update)
if (!$update) {
continue;
}
}
logger("Polling ".$contact["network"]." ".$contact["id"]." ".$contact["nick"]." ".$contact["name"]);
if (($contact['network'] == NETWORK_FEED) AND ($contact['priority'] <= 3)) {
proc_run(PRIORITY_MEDIUM, 'include/onepoll.php', $contact['id']);
proc_run(PRIORITY_MEDIUM, 'include/onepoll.php', intval($contact['id']));
} else {
proc_run(PRIORITY_LOW, 'include/onepoll.php', $contact['id']);
proc_run(PRIORITY_LOW, 'include/onepoll.php', intval($contact['id']));
}
}
}
}
/**
* @brief Clear cache entries
*
* @param App $a
*/
function cron_clear_cache(App $a) {
$last = get_config('system','cache_last_cleared');
if($last) {
$next = $last + (3600); // Once per hour
$clear_cache = ($next <= time());
} else
$clear_cache = true;
if (!$clear_cache)
return;
// clear old cache
Cache::clear();
// clear old item cache files
clear_cache();
// clear cache for photos
clear_cache($a->get_basepath(), $a->get_basepath()."/photo");
// clear smarty cache
clear_cache($a->get_basepath()."/view/smarty3/compiled", $a->get_basepath()."/view/smarty3/compiled");
// clear cache for image proxy
if (!get_config("system", "proxy_disabled")) {
clear_cache($a->get_basepath(), $a->get_basepath()."/proxy");
$cachetime = get_config('system','proxy_cache_time');
if (!$cachetime) $cachetime = PROXY_DEFAULT_TIME;
q('DELETE FROM `photo` WHERE `uid` = 0 AND `resource-id` LIKE "pic:%%" AND `created` < NOW() - INTERVAL %d SECOND', $cachetime);
}
// Delete the cached OEmbed entries that are older than one year
q("DELETE FROM `oembed` WHERE `created` < NOW() - INTERVAL 3 MONTH");
// Delete the cached "parse_url" entries that are older than one year
q("DELETE FROM `parsed_url` WHERE `created` < NOW() - INTERVAL 3 MONTH");
// Maximum table size in megabyte
$max_tablesize = intval(get_config('system','optimize_max_tablesize')) * 1000000;
if ($max_tablesize == 0)
$max_tablesize = 100 * 1000000; // Default are 100 MB
if ($max_tablesize > 0) {
// Minimum fragmentation level in percent
$fragmentation_level = intval(get_config('system','optimize_fragmentation')) / 100;
if ($fragmentation_level == 0)
$fragmentation_level = 0.3; // Default value is 30%
// Optimize some tables that need to be optimized
$r = q("SHOW TABLE STATUS");
foreach($r as $table) {
// Don't optimize tables that are too large
if ($table["Data_length"] > $max_tablesize)
continue;
// Don't optimize empty tables
if ($table["Data_length"] == 0)
continue;
// Calculate fragmentation
$fragmentation = $table["Data_free"] / ($table["Data_length"] + $table["Index_length"]);
logger("Table ".$table["Name"]." - Fragmentation level: ".round($fragmentation * 100, 2), LOGGER_DEBUG);
// Don't optimize tables that needn't to be optimized
if ($fragmentation < $fragmentation_level)
continue;
// So optimize it
logger("Optimize Table ".$table["Name"], LOGGER_DEBUG);
q("OPTIMIZE TABLE `%s`", dbesc($table["Name"]));
}
}
set_config('system','cache_last_cleared', time());
}
/**
* @brief Repair missing values in Diaspora contacts
*
* @param App $a
*/
function cron_repair_diaspora(App $a) {
$r = q("SELECT `id`, `url` FROM `contact`
WHERE `network` = '%s' AND (`batch` = '' OR `notify` = '' OR `poll` = '' OR pubkey = '')
ORDER BY RAND() LIMIT 50", dbesc(NETWORK_DIASPORA));
if (dbm::is_result($r)) {
foreach ($r AS $contact) {
if (poco_reachable($contact["url"])) {
$data = probe_url($contact["url"]);
if ($data["network"] == NETWORK_DIASPORA) {
logger("Repair contact ".$contact["id"]." ".$contact["url"], LOGGER_DEBUG);
q("UPDATE `contact` SET `batch` = '%s', `notify` = '%s', `poll` = '%s', pubkey = '%s' WHERE `id` = %d",
dbesc($data["batch"]), dbesc($data["notify"]), dbesc($data["poll"]), dbesc($data["pubkey"]),
intval($contact["id"]));
}
}
}
}
}
/**
* @brief Do some repairs in database entries
*
*/
function cron_repair_database() {
// Sometimes there seem to be issues where the "self" contact vanishes.
// We haven't found the origin of the problem by now.
$r = q("SELECT `uid` FROM `user` WHERE NOT EXISTS (SELECT `uid` FROM `contact` WHERE `contact`.`uid` = `user`.`uid` AND `contact`.`self`)");
if (dbm::is_result($r)) {
foreach ($r AS $user) {
logger('Create missing self contact for user '.$user['uid']);
user_create_self_contact($user['uid']);
}
}
// Set the parent if it wasn't set. (Shouldn't happen - but does sometimes)
// This call is very "cheap" so we can do it at any time without a problem
q("UPDATE `item` INNER JOIN `item` AS `parent` ON `parent`.`uri` = `item`.`parent-uri` AND `parent`.`uid` = `item`.`uid` SET `item`.`parent` = `parent`.`id` WHERE `item`.`parent` = 0");
// There was an issue where the nick vanishes from the contact table
q("UPDATE `contact` INNER JOIN `user` ON `contact`.`uid` = `user`.`uid` SET `nick` = `nickname` WHERE `self` AND `nick`=''");
// Update the global contacts for local users
$r = q("SELECT `uid` FROM `user` WHERE `verified` AND NOT `blocked` AND NOT `account_removed` AND NOT `account_expired`");
if (dbm::is_result($r))
foreach ($r AS $user)
update_gcontact_for_user($user["uid"]);
/// @todo
/// - remove thread entries without item
/// - remove sign entries without item
/// - remove children when parent got lost
/// - set contact-id in item when not present
}

View file

@ -8,10 +8,17 @@ function cronjobs_run(&$argv, &$argc){
require_once('include/ostatus.php');
require_once('include/post_update.php');
require_once('mod/nodeinfo.php');
require_once('include/photos.php');
require_once('include/user.php');
require_once('include/socgraph.php');
require_once('include/Probe.php');
// No parameter set? So return
if ($argc <= 1)
if ($argc <= 1) {
return;
}
logger("Starting cronjob ".$argv[1], LOGGER_DEBUG);
// Check OStatus conversations
// Check only conversations with mentions (for a longer time)
@ -39,5 +46,244 @@ function cronjobs_run(&$argv, &$argc){
return;
}
// Expire and remove user entries
if ($argv[1] == 'expire_and_remove_users') {
cron_expire_and_remove_users();
return;
}
if ($argv[1] == 'update_contact_birthdays') {
update_contact_birthdays();
return;
}
if ($argv[1] == 'update_photo_albums') {
cron_update_photo_albums();
return;
}
// Clear cache entries
if ($argv[1] == 'clear_cache') {
cron_clear_cache($a);
return;
}
// Repair missing Diaspora values in contacts
if ($argv[1] == 'repair_diaspora') {
cron_repair_diaspora($a);
return;
}
// Repair entries in the database
if ($argv[1] == 'repair_database') {
cron_repair_database();
return;
}
logger("Xronjob ".$argv[1]." is unknown.", LOGGER_DEBUG);
return;
}
/**
* @brief Update the cached values for the number of photo albums per user
*/
function cron_update_photo_albums() {
$r = q("SELECT `uid` FROM `user` WHERE NOT `account_expired` AND NOT `account_removed`");
if (!dbm::is_result($r)) {
return;
}
foreach ($r AS $user) {
photo_albums($user['uid'], true);
}
}
/**
* @brief Expire and remove user entries
*/
function cron_expire_and_remove_users() {
// expire any expired accounts
q("UPDATE user SET `account_expired` = 1 where `account_expired` = 0
AND `account_expires_on` > '%s'
AND `account_expires_on` < UTC_TIMESTAMP()", dbesc(NULL_DATE));
// delete user and contact records for recently removed accounts
$r = q("SELECT * FROM `user` WHERE `account_removed` AND `account_expires_on` < UTC_TIMESTAMP() - INTERVAL 3 DAY");
if (dbm::is_result($r)) {
foreach ($r as $user) {
q("DELETE FROM `contact` WHERE `uid` = %d", intval($user['uid']));
q("DELETE FROM `user` WHERE `uid` = %d", intval($user['uid']));
}
}
}
/**
* @brief Clear cache entries
*
* @param App $a
*/
function cron_clear_cache(App $a) {
$last = get_config('system','cache_last_cleared');
if ($last) {
$next = $last + (3600); // Once per hour
$clear_cache = ($next <= time());
} else {
$clear_cache = true;
}
if (!$clear_cache) {
return;
}
// clear old cache
Cache::clear();
// clear old item cache files
clear_cache();
// clear cache for photos
clear_cache($a->get_basepath(), $a->get_basepath()."/photo");
// clear smarty cache
clear_cache($a->get_basepath()."/view/smarty3/compiled", $a->get_basepath()."/view/smarty3/compiled");
// clear cache for image proxy
if (!get_config("system", "proxy_disabled")) {
clear_cache($a->get_basepath(), $a->get_basepath()."/proxy");
$cachetime = get_config('system','proxy_cache_time');
if (!$cachetime) {
$cachetime = PROXY_DEFAULT_TIME;
}
q('DELETE FROM `photo` WHERE `uid` = 0 AND `resource-id` LIKE "pic:%%" AND `created` < NOW() - INTERVAL %d SECOND', $cachetime);
}
// Delete the cached OEmbed entries that are older than one year
q("DELETE FROM `oembed` WHERE `created` < NOW() - INTERVAL 3 MONTH");
// Delete the cached "parse_url" entries that are older than one year
q("DELETE FROM `parsed_url` WHERE `created` < NOW() - INTERVAL 3 MONTH");
// Maximum table size in megabyte
$max_tablesize = intval(get_config('system','optimize_max_tablesize')) * 1000000;
if ($max_tablesize == 0) {
$max_tablesize = 100 * 1000000; // Default are 100 MB
}
if ($max_tablesize > 0) {
// Minimum fragmentation level in percent
$fragmentation_level = intval(get_config('system','optimize_fragmentation')) / 100;
if ($fragmentation_level == 0) {
$fragmentation_level = 0.3; // Default value is 30%
}
// Optimize some tables that need to be optimized
$r = q("SHOW TABLE STATUS");
foreach ($r as $table) {
// Don't optimize tables that are too large
if ($table["Data_length"] > $max_tablesize) {
continue;
}
// Don't optimize empty tables
if ($table["Data_length"] == 0) {
continue;
}
// Calculate fragmentation
$fragmentation = $table["Data_free"] / ($table["Data_length"] + $table["Index_length"]);
logger("Table ".$table["Name"]." - Fragmentation level: ".round($fragmentation * 100, 2), LOGGER_DEBUG);
// Don't optimize tables that needn't to be optimized
if ($fragmentation < $fragmentation_level) {
continue;
}
// So optimize it
logger("Optimize Table ".$table["Name"], LOGGER_DEBUG);
q("OPTIMIZE TABLE `%s`", dbesc($table["Name"]));
}
}
set_config('system','cache_last_cleared', time());
}
/**
* @brief Repair missing values in Diaspora contacts
*
* @param App $a
*/
function cron_repair_diaspora(App $a) {
$starttime = time();
$r = q("SELECT `id`, `url` FROM `contact`
WHERE `network` = '%s' AND (`batch` = '' OR `notify` = '' OR `poll` = '' OR pubkey = '')
ORDER BY RAND() LIMIT 50", dbesc(NETWORK_DIASPORA));
if (!dbm::is_result($r)) {
return;
}
foreach ($r AS $contact) {
// Quit the loop after 3 minutes
if (time() > ($starttime + 180)) {
return;
}
if (!poco_reachable($contact["url"])) {
continue;
}
$data = Probe::uri($contact["url"]);
if ($data["network"] != NETWORK_DIASPORA) {
continue;
}
logger("Repair contact ".$contact["id"]." ".$contact["url"], LOGGER_DEBUG);
q("UPDATE `contact` SET `batch` = '%s', `notify` = '%s', `poll` = '%s', pubkey = '%s' WHERE `id` = %d",
dbesc($data["batch"]), dbesc($data["notify"]), dbesc($data["poll"]), dbesc($data["pubkey"]),
intval($contact["id"]));
}
}
/**
* @brief Do some repairs in database entries
*
*/
function cron_repair_database() {
// Sometimes there seem to be issues where the "self" contact vanishes.
// We haven't found the origin of the problem by now.
$r = q("SELECT `uid` FROM `user` WHERE NOT EXISTS (SELECT `uid` FROM `contact` WHERE `contact`.`uid` = `user`.`uid` AND `contact`.`self`)");
if (dbm::is_result($r)) {
foreach ($r AS $user) {
logger('Create missing self contact for user '.$user['uid']);
user_create_self_contact($user['uid']);
}
}
// Set the parent if it wasn't set. (Shouldn't happen - but does sometimes)
// This call is very "cheap" so we can do it at any time without a problem
q("UPDATE `item` INNER JOIN `item` AS `parent` ON `parent`.`uri` = `item`.`parent-uri` AND `parent`.`uid` = `item`.`uid` SET `item`.`parent` = `parent`.`id` WHERE `item`.`parent` = 0");
// There was an issue where the nick vanishes from the contact table
q("UPDATE `contact` INNER JOIN `user` ON `contact`.`uid` = `user`.`uid` SET `nick` = `nickname` WHERE `self` AND `nick`=''");
// Update the global contacts for local users
$r = q("SELECT `uid` FROM `user` WHERE `verified` AND NOT `blocked` AND NOT `account_removed` AND NOT `account_expired`");
if (dbm::is_result($r)) {
foreach ($r AS $user) {
update_gcontact_for_user($user["uid"]);
}
}
/// @todo
/// - remove thread entries without item
/// - remove sign entries without item
/// - remove children when parent got lost
/// - set contact-id in item when not present
}

View file

@ -14,6 +14,9 @@ function discover_poco_run(&$argv, &$argc) {
- suggestions: Discover other servers for their contacts.
- server <poco url>: Searches for the poco server list. "poco url" is base64 encoded.
- update_server: Frequently check the first 250 servers for vitality.
- update_server_directory: Discover the given server id for their contacts
- poco_load: Load POCO data from a given POCO address
- check_profile: Update remote profile data
*/
if (($argc > 2) && ($argv[1] == "dirsearch")) {
@ -27,6 +30,12 @@ function discover_poco_run(&$argv, &$argc) {
$mode = 4;
} elseif (($argc == 2) && ($argv[1] == "update_server")) {
$mode = 5;
} elseif (($argc == 3) && ($argv[1] == "update_server_directory")) {
$mode = 6;
} elseif (($argc > 5) && ($argv[1] == "poco_load")) {
$mode = 7;
} elseif (($argc == 3) && ($argv[1] == "check_profile")) {
$mode = 8;
} elseif ($argc == 1) {
$search = "";
$mode = 0;
@ -36,7 +45,21 @@ function discover_poco_run(&$argv, &$argc) {
logger('start '.$search);
if ($mode == 5) {
if ($mode == 8) {
$profile_url = base64_decode($argv[2]);
if ($profile_url != "") {
poco_last_updated($profile_url, true);
}
} elseif ($mode == 7) {
if ($argc == 6) {
$url = base64_decode($argv[5]);
} else {
$url = '';
}
poco_load_worker(intval($argv[2]), intval($argv[3]), intval($argv[4]), $url);
} elseif ($mode == 6) {
poco_discover_single_server(intval($argv[2]));
} elseif ($mode == 5) {
update_server();
} elseif ($mode == 4) {
$server_url = base64_decode($argv[2]);
@ -106,7 +129,9 @@ function update_server() {
function discover_users() {
logger("Discover users", LOGGER_DEBUG);
$users = q("SELECT `url`, `created`, `updated`, `last_failure`, `last_contact`, `server_url` FROM `gcontact`
$starttime = time();
$users = q("SELECT `url`, `created`, `updated`, `last_failure`, `last_contact`, `server_url`, `network` FROM `gcontact`
WHERE `last_contact` < UTC_TIMESTAMP - INTERVAL 1 MONTH AND
`last_failure` < UTC_TIMESTAMP - INTERVAL 1 MONTH AND
`network` IN ('%s', '%s', '%s', '%s', '') ORDER BY rand()",
@ -145,9 +170,9 @@ function discover_users() {
} else {
$server_url = poco_detect_server($user["url"]);
}
if (($server_url == "") OR poco_check_server($server_url, $gcontacts[0]["network"])) {
logger('Check user '.$user["url"]);
poco_last_updated($user["url"], true);
if ((($server_url == "") AND ($user["network"] == NETWORK_FEED)) OR poco_check_server($server_url, $user["network"])) {
logger('Check profile '.$user["url"]);
proc_run(PRIORITY_LOW, "include/discover_poco.php", "check_profile", base64_encode($user["url"]));
if (++$checked > 100) {
return;
@ -156,6 +181,11 @@ function discover_users() {
q("UPDATE `gcontact` SET `last_failure` = '%s' WHERE `nurl` = '%s'",
dbesc(datetime_convert()), dbesc(normalise_link($user["url"])));
}
// Quit the loop after 3 minutes
if (time() > ($starttime + 180)) {
return;
}
}
}

View file

@ -4,39 +4,42 @@
* @brief functions specific to event handling
*/
require_once('include/bbcode.php');
require_once('include/map.php');
require_once('include/datetime.php');
require_once 'include/bbcode.php';
require_once 'include/map.php';
require_once 'include/datetime.php';
function format_event_html($ev, $simple = false) {
if(! ((is_array($ev)) && count($ev)))
if(! ((is_array($ev)) && count($ev))) {
return '';
}
$bd_format = t('l F d, Y \@ g:i A') ; // Friday January 18, 2011 @ 8 AM
$event_start = (($ev['adjust']) ? day_translate(datetime_convert('UTC', date_default_timezone_get(),
$ev['start'] , $bd_format ))
: day_translate(datetime_convert('UTC', 'UTC',
: day_translate(datetime_convert('UTC', 'UTC',
$ev['start'] , $bd_format)));
$event_end = (($ev['adjust']) ? day_translate(datetime_convert('UTC', date_default_timezone_get(),
$ev['finish'] , $bd_format ))
: day_translate(datetime_convert('UTC', 'UTC',
: day_translate(datetime_convert('UTC', 'UTC',
$ev['finish'] , $bd_format )));
if ($simple) {
$o = "<h3>".bbcode($ev['summary'])."</h3>";
$o = "<h3>" . bbcode($ev['summary']) . "</h3>";
$o .= "<p>".bbcode($ev['desc'])."</p>";
$o .= "<p>" . bbcode($ev['desc']) . "</p>";
$o .= "<h4>".t('Starts:')."</h4><p>".$event_start."</p>";
$o .= "<h4>" . t('Starts:') . "</h4><p>" . $event_start . "</p>";
if(! $ev['nofinish'])
$o .= "<h4>".t('Finishes:')."</h4><p>".$event_end."</p>";
if (! $ev['nofinish']) {
$o .= "<h4>" . t('Finishes:') . "</h4><p>" . $event_end ."</p>";
}
if(strlen($ev['location']))
$o .= "<h4>".t('Location:')."</h4><p>".$ev['location']."</p>";
if (strlen($ev['location'])) {
$o .= "<h4>" . t('Location:') . "</h4><p>" . $ev['location'] . "</p>";
}
return $o;
}
@ -44,31 +47,34 @@ function format_event_html($ev, $simple = false) {
$o = '<div class="vevent">' . "\r\n";
$o .= '<p class="summary event-summary">' . bbcode($ev['summary']) . '</p>' . "\r\n";
$o .= '<p class="summary event-summary">' . bbcode($ev['summary']) . '</p>' . "\r\n";
$o .= '<p class="description event-description">' . bbcode($ev['desc']) . '</p>' . "\r\n";
$o .= '<p class="description event-description">' . bbcode($ev['desc']) . '</p>' . "\r\n";
$o .= '<p class="event-start">' . t('Starts:') . ' <abbr class="dtstart" title="'
. datetime_convert('UTC','UTC',$ev['start'], (($ev['adjust']) ? ATOM_TIME : 'Y-m-d\TH:i:s' ))
. datetime_convert('UTC', 'UTC', $ev['start'], (($ev['adjust']) ? ATOM_TIME : 'Y-m-d\TH:i:s' ))
. '" >'.$event_start
. '</abbr></p>' . "\r\n";
if(! $ev['nofinish'])
if (! $ev['nofinish']) {
$o .= '<p class="event-end" >' . t('Finishes:') . ' <abbr class="dtend" title="'
. datetime_convert('UTC','UTC',$ev['finish'], (($ev['adjust']) ? ATOM_TIME : 'Y-m-d\TH:i:s' ))
. datetime_convert('UTC', 'UTC', $ev['finish'], (($ev['adjust']) ? ATOM_TIME : 'Y-m-d\TH:i:s' ))
. '" >'.$event_end
. '</abbr></p>' . "\r\n";
. '</abbr></p>' . "\r\n";
}
if(strlen($ev['location'])){
if (strlen($ev['location'])) {
$o .= '<p class="event-location"> ' . t('Location:') . ' <span class="location">'
. bbcode($ev['location'])
. '</span></p>' . "\r\n";
if (strpos($ev['location'], "[map") !== False) {
// Include a map of the location if the [map] BBCode is used
if (strpos($ev['location'], "[map") !== false) {
$map = generate_named_map($ev['location']);
if ($map!==$ev['location']) $o.=$map;
if ($map !== $ev['location']) {
$o.= $map;
}
}
}
$o .= '</div>' . "\r\n";
@ -146,63 +152,81 @@ function format_event_bbcode($ev) {
$o = '';
if($ev['summary'])
if ($ev['summary']) {
$o .= '[event-summary]' . $ev['summary'] . '[/event-summary]';
}
if($ev['desc'])
if ($ev['desc']) {
$o .= '[event-description]' . $ev['desc'] . '[/event-description]';
}
if($ev['start'])
if ($ev['start']) {
$o .= '[event-start]' . $ev['start'] . '[/event-start]';
}
if(($ev['finish']) && (! $ev['nofinish']))
if (($ev['finish']) && (! $ev['nofinish'])) {
$o .= '[event-finish]' . $ev['finish'] . '[/event-finish]';
}
if($ev['location'])
if ($ev['location']) {
$o .= '[event-location]' . $ev['location'] . '[/event-location]';
}
if($ev['adjust'])
if ($ev['adjust']) {
$o .= '[event-adjust]' . $ev['adjust'] . '[/event-adjust]';
}
return $o;
}
function bbtovcal($s) {
$o = '';
$ev = bbtoevent($s);
if($ev['desc'])
if ($ev['desc']) {
$o = format_event_html($ev);
}
return $o;
}
function bbtoevent($s) {
$ev = array();
$match = '';
if(preg_match("/\[event\-summary\](.*?)\[\/event\-summary\]/is",$s,$match))
if (preg_match("/\[event\-summary\](.*?)\[\/event\-summary\]/is", $s, $match)) {
$ev['summary'] = $match[1];
$match = '';
if(preg_match("/\[event\-description\](.*?)\[\/event\-description\]/is",$s,$match))
$ev['desc'] = $match[1];
$match = '';
if(preg_match("/\[event\-start\](.*?)\[\/event\-start\]/is",$s,$match))
$ev['start'] = $match[1];
$match = '';
if(preg_match("/\[event\-finish\](.*?)\[\/event\-finish\]/is",$s,$match))
$ev['finish'] = $match[1];
$match = '';
if(preg_match("/\[event\-location\](.*?)\[\/event\-location\]/is",$s,$match))
$ev['location'] = $match[1];
$match = '';
if(preg_match("/\[event\-adjust\](.*?)\[\/event\-adjust\]/is",$s,$match))
$ev['adjust'] = $match[1];
$ev['nofinish'] = (((x($ev, 'start') && $ev['start']) && (!x($ev, 'finish') || !$ev['finish'])) ? 1 : 0);
return $ev;
}
$match = '';
if (preg_match("/\[event\-description\](.*?)\[\/event\-description\]/is", $s, $match)) {
$ev['desc'] = $match[1];
}
$match = '';
if (preg_match("/\[event\-start\](.*?)\[\/event\-start\]/is", $s, $match)) {
$ev['start'] = $match[1];
}
$match = '';
if (preg_match("/\[event\-finish\](.*?)\[\/event\-finish\]/is", $s, $match)) {
$ev['finish'] = $match[1];
}
$match = '';
if (preg_match("/\[event\-location\](.*?)\[\/event\-location\]/is", $s, $match)) {
$ev['location'] = $match[1];
}
$match = '';
if (preg_match("/\[event\-adjust\](.*?)\[\/event\-adjust\]/is", $s, $match)) {
$ev['adjust'] = $match[1];
}
$ev['nofinish'] = (((x($ev, 'start') && $ev['start']) && (!x($ev, 'finish') || !$ev['finish'])) ? 1 : 0);
return $ev;
}
@ -212,21 +236,22 @@ function sort_by_date($a) {
return $a;
}
function ev_compare($a,$b) {
$date_a = (($a['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$a['start']) : $a['start']);
$date_b = (($b['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$b['start']) : $b['start']);
$date_a = (($a['adjust']) ? datetime_convert('UTC', date_default_timezone_get(), $a['start']) : $a['start']);
$date_b = (($b['adjust']) ? datetime_convert('UTC', date_default_timezone_get(), $b['start']) : $b['start']);
if($date_a === $date_b)
return strcasecmp($a['desc'],$b['desc']);
if ($date_a === $date_b) {
return strcasecmp($a['desc'], $b['desc']);
}
return strcmp($date_a,$date_b);
return strcmp($date_a, $date_b);
}
function event_delete($event_id) {
if ($event_id == 0)
if ($event_id == 0) {
return;
}
q("DELETE FROM `event` WHERE `id` = %d", intval($event_id));
logger("Deleted event ".$event_id, LOGGER_DEBUG);
@ -234,37 +259,39 @@ function event_delete($event_id) {
function event_store($arr) {
require_once('include/datetime.php');
require_once('include/items.php');
require_once('include/bbcode.php');
require_once 'include/datetime.php';
require_once 'include/items.php';
require_once 'include/bbcode.php';
$a = get_app();
$arr['created'] = (($arr['created']) ? $arr['created'] : datetime_convert());
$arr['edited'] = (($arr['edited']) ? $arr['edited'] : datetime_convert());
$arr['type'] = (($arr['type']) ? $arr['type'] : 'event' );
$arr['cid'] = ((intval($arr['cid'])) ? intval($arr['cid']) : 0);
$arr['uri'] = (x($arr,'uri') ? $arr['uri'] : item_new_uri($a->get_hostname(),$arr['uid']));
$arr['private'] = ((x($arr,'private')) ? intval($arr['private']) : 0);
$arr['created'] = (($arr['created']) ? $arr['created'] : datetime_convert());
$arr['edited'] = (($arr['edited']) ? $arr['edited'] : datetime_convert());
$arr['type'] = (($arr['type']) ? $arr['type'] : 'event' );
$arr['cid'] = ((intval($arr['cid'])) ? intval($arr['cid']) : 0);
$arr['uri'] = (x($arr, 'uri') ? $arr['uri'] : item_new_uri($a->get_hostname(), $arr['uid']));
$arr['private'] = ((x($arr, 'private')) ? intval($arr['private']) : 0);
$arr['guid'] = get_guid(32);
if($arr['cid'])
if ($arr['cid']) {
$c = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($arr['cid']),
intval($arr['uid'])
);
else
} else {
$c = q("SELECT * FROM `contact` WHERE `self` = 1 AND `uid` = %d LIMIT 1",
intval($arr['uid'])
);
}
if(count($c))
if (dbm::is_result($c)) {
$contact = $c[0];
}
// Existing event being modified
if($arr['id']) {
if ($arr['id']) {
// has the event actually changed?
@ -272,7 +299,7 @@ function event_store($arr) {
intval($arr['id']),
intval($arr['uid'])
);
if((! dbm::is_result($r)) || ($r[0]['edited'] === $arr['edited'])) {
if ((! dbm::is_result($r)) || ($r[0]['edited'] === $arr['edited'])) {
// Nothing has changed. Grab the item id to return.
@ -280,7 +307,7 @@ function event_store($arr) {
intval($arr['id']),
intval($arr['uid'])
);
return((dbm::is_result($r)) ? $r[0]['id'] : 0);
return ((dbm::is_result($r)) ? $r[0]['id'] : 0);
}
// The event changed. Update it.
@ -318,7 +345,6 @@ function event_store($arr) {
$object .= '<content>' . xmlify(format_event_bbcode($arr)) . '</content>';
$object .= '</object>' . "\n";
q("UPDATE `item` SET `body` = '%s', `object` = '%s', `edited` = '%s' WHERE `id` = %d AND `uid` = %d",
dbesc(format_event_bbcode($arr)),
dbesc($object),
@ -328,8 +354,9 @@ function event_store($arr) {
);
$item_id = $r[0]['id'];
} else
} else {
$item_id = 0;
}
call_hooks("event_updated", $arr['id']);
@ -366,8 +393,9 @@ function event_store($arr) {
dbesc($arr['uri']),
intval($arr['uid'])
);
if (dbm::is_result($r))
if (dbm::is_result($r)) {
$event = $r[0];
}
$item_arr = array();
@ -399,7 +427,7 @@ function event_store($arr) {
$item_arr['body'] = format_event_bbcode($event);
$item_arr['object'] = '<object><type>' . xmlify(ACTIVITY_OBJ_EVENT) . '</type><title></title><id>' . xmlify($arr['uri']) . '</id>';
$item_arr['object'] = '<object><type>' . xmlify(ACTIVITY_OBJ_EVENT) . '</type><title></title><id>' . xmlify($arr['uri']) . '</id>';
$item_arr['object'] .= '<content>' . xmlify(format_event_bbcode($event)) . '</content>';
$item_arr['object'] .= '</object>' . "\n";
@ -412,7 +440,7 @@ function event_store($arr) {
// $plink = App::get_baseurl() . '/display/' . $r[0]['nickname'] . '/' . $item_id;
if($item_id) {
if ($item_id) {
//q("UPDATE `item` SET `plink` = '%s', `event-id` = %d WHERE `uid` = %d AND `id` = %d",
// dbesc($plink),
// intval($event['id']),
@ -433,12 +461,17 @@ function event_store($arr) {
}
function get_event_strings() {
// First day of the week (0 = Sunday)
$firstDay = get_pconfig(local_user(),'system','first_day_of_week');
if ($firstDay === false) $firstDay=0;
$firstDay = get_pconfig(local_user(), 'system', 'first_day_of_week');
if ($firstDay === false) {
$firstDay = 0;
}
$i18n = array(
"firstDay" => $firstDay,
"allday" => t("all-day"),
"Sun" => t("Sun"),
"Mon" => t("Mon"),
"Tue" => t("Tue"),
@ -446,13 +479,15 @@ function get_event_strings() {
"Thu" => t("Thu"),
"Fri" => t("Fri"),
"Sat" => t("Sat"),
"Sunday" => t("Sunday"),
"Monday" => t("Monday"),
"Tuesday" => t("Tuesday"),
"Sunday" => t("Sunday"),
"Monday" => t("Monday"),
"Tuesday" => t("Tuesday"),
"Wednesday" => t("Wednesday"),
"Thursday" => t("Thursday"),
"Friday" => t("Friday"),
"Saturday" => t("Saturday"),
"Thursday" => t("Thursday"),
"Friday" => t("Friday"),
"Saturday" => t("Saturday"),
"Jan" => t("Jan"),
"Feb" => t("Feb"),
"Mar" => t("Mar"),
@ -465,47 +500,49 @@ function get_event_strings() {
"Oct" => t("Oct"),
"Nov" => t("Nov"),
"Dec" => t("Dec"),
"January" => t("January"),
"February" => t("February"),
"March" => t("March"),
"April" => t("April"),
"May" => t("May"),
"June" => t("June"),
"July" => t("July"),
"August" => t("August"),
"January" => t("January"),
"February" => t("February"),
"March" => t("March"),
"April" => t("April"),
"May" => t("May"),
"June" => t("June"),
"July" => t("July"),
"August" => t("August"),
"September" => t("September"),
"October" => t("October"),
"November" => t("November"),
"December" => t("December"),
"October" => t("October"),
"November" => t("November"),
"December" => t("December"),
"today" => t("today"),
"month" => t("month"),
"week" => t("week"),
"day" => t("day"),
"allday" => t("all-day"),
"week" => t("week"),
"day" => t("day"),
"noevent" => t("No events to display"),
"dtstart_label" => t("Starts:"),
"dtend_label" => t("Finishes:"),
"dtstart_label" => t("Starts:"),
"dtend_label" => t("Finishes:"),
"location_label" => t("Location:")
);
return $i18n;
}
/// @todo We should replace this with a separate update function if there is some time left
/**
* @brief Removes duplicated birthday events
*
* @param array $dates Array of possibly duplicated events
* @return array Cleaned events
*
* @todo We should replace this with a separate update function if there is some time left
*/
function event_remove_duplicates($dates) {
$dates2 = array();
foreach ($dates AS $date) {
if ($date['type'] == 'birthday') {
$dates2[$date['uid']."-".$date['cid']."-".$date['start']] = $date;
$dates2[$date['uid'] . "-" . $date['cid'] . "-" . $date['start']] = $date;
} else {
$dates2[] = $date;
}
@ -524,10 +561,11 @@ function event_remove_duplicates($dates) {
*/
function event_by_id($owner_uid = 0, $event_params, $sql_extra = '') {
// ownly allow events if there is a valid owner_id
if($owner_uid == 0)
if ($owner_uid == 0) {
return;
}
// query for the event by event id
// Query for the event by event id
$r = q("SELECT `event`.*, `item`.`id` AS `itemid`,`item`.`plink`,
`item`.`author-name`, `item`.`author-avatar`, `item`.`author-link` FROM `event`
LEFT JOIN `item` ON `item`.`event-id` = `event`.`id` AND `item`.`uid` = `event`.`uid`
@ -556,11 +594,12 @@ function event_by_id($owner_uid = 0, $event_params, $sql_extra = '') {
* @return array Query results
*/
function events_by_date($owner_uid = 0, $event_params, $sql_extra = '') {
// ownly allow events if there is a valid owner_id
if($owner_uid == 0)
// Only allow events if there is a valid owner_id
if($owner_uid == 0) {
return;
}
// query for the event by date
// Query for the event by date
$r = q("SELECT `event`.*, `item`.`id` AS `itemid`,`item`.`plink`,
`item`.`author-name`, `item`.`author-avatar`, `item`.`author-link` FROM `event`
LEFT JOIN `item` ON `item`.`event-id` = `event`.`id` AND `item`.`uid` = `event`.`uid`
@ -595,46 +634,54 @@ function process_events($arr) {
$last_date = '';
$fmt = t('l, F j');
if (count($arr)) {
foreach($arr as $rr) {
foreach ($arr as $rr) {
$j = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['start'], 'j') : datetime_convert('UTC','UTC',$rr['start'],'j'));
$d = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['start'], $fmt) : datetime_convert('UTC','UTC',$rr['start'],$fmt));
$j = (($rr['adjust']) ? datetime_convert('UTC', date_default_timezone_get(), $rr['start'], 'j') : datetime_convert('UTC', 'UTC', $rr['start'], 'j'));
$d = (($rr['adjust']) ? datetime_convert('UTC', date_default_timezone_get(), $rr['start'], $fmt) : datetime_convert('UTC', 'UTC', $rr['start'], $fmt));
$d = day_translate($d);
$start = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['start'], 'c') : datetime_convert('UTC','UTC',$rr['start'],'c'));
if ($rr['nofinish']){
$start = (($rr['adjust']) ? datetime_convert('UTC', date_default_timezone_get(), $rr['start'], 'c') : datetime_convert('UTC', 'UTC', $rr['start'], 'c'));
if ($rr['nofinish']) {
$end = null;
} else {
$end = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['finish'], 'c') : datetime_convert('UTC','UTC',$rr['finish'],'c'));
$end = (($rr['adjust']) ? datetime_convert('UTC', date_default_timezone_get(), $rr['finish'], 'c') : datetime_convert('UTC', 'UTC', $rr['finish'], 'c'));
}
$is_first = ($d !== $last_date);
$last_date = $d;
$edit = ((! $rr['cid']) ? array(App::get_baseurl().'/events/event/'.$rr['id'],t('Edit event'),'','') : null);
$title = strip_tags(html_entity_decode(bbcode($rr['summary']),ENT_QUOTES,'UTF-8'));
if(! $title) {
list($title, $_trash) = explode("<br",bbcode($rr['desc']),2);
$title = strip_tags(html_entity_decode($title,ENT_QUOTES,'UTF-8'));
// Show edit and drop actions only if the user is the owner of the event and the event
// is a real event (no bithdays)
if (local_user() && local_user() == $rr['uid'] && $rr['type'] == 'event') {
$edit = ((! $rr['cid']) ? array(App::get_baseurl() . '/events/event/' . $rr['id'], t('Edit event'), '', '') : null);
$drop = array(App::get_baseurl() . '/events/drop/' . $rr['id'], t('Delete event'), '', '');
}
$title = strip_tags(html_entity_decode(bbcode($rr['summary']), ENT_QUOTES, 'UTF-8'));
if (! $title) {
list($title, $_trash) = explode("<br", bbcode($rr['desc']), 2);
$title = strip_tags(html_entity_decode($title, ENT_QUOTES, 'UTF-8'));
}
$html = format_event_html($rr);
$rr['desc'] = bbcode($rr['desc']);
$rr['location'] = bbcode($rr['location']);
$events[] = array(
'id'=>$rr['id'],
'start'=> $start,
'end' => $end,
'id' => $rr['id'],
'start' => $start,
'end' => $end,
'allDay' => false,
'title' => $title,
'title' => $title,
'j' => $j,
'd' => $d,
'is_first'=>$is_first,
'item'=>$rr,
'html'=>$html,
'plink' => array($rr['plink'],t('link to source'),'',''),
'j' => $j,
'd' => $d,
'edit' => $edit,
'drop' => $drop,
'is_first' => $is_first,
'item' => $rr,
'html' => $html,
'plink' => array($rr['plink'], t('link to source'), '', ''),
);
}
}
@ -652,34 +699,36 @@ function process_events($arr) {
* @return string Content according to selected export format
*/
function event_format_export ($events, $format = 'ical', $timezone) {
if(! ((is_array($events)) && count($events)))
if (! ((is_array($events)) && count($events))) {
return;
}
switch ($format) {
// format the exported data as a CSV file
// Format the exported data as a CSV file
case "csv":
header("Content-type: text/csv");
$o = '"Subject", "Start Date", "Start Time", "Description", "End Date", "End Time", "Location"' . PHP_EOL;
foreach ($events as $event) {
/// @todo the time / date entries don't include any information about the
// timezone the event is scheduled in :-/
/// @todo The time / date entries don't include any information about the
/// timezone the event is scheduled in :-/
$tmp1 = strtotime($event['start']);
$tmp2 = strtotime($event['finish']);
$time_format = "%H:%M:%S";
$date_format = "%Y-%m-%d";
$o .= '"'.$event['summary'].'", "'.strftime($date_format, $tmp1) .
'", "'.strftime($time_format, $tmp1).'", "'.$event['desc'] .
'", "'.strftime($date_format, $tmp2) .
'", "'.strftime($time_format, $tmp2) .
'", "'.$event['location'].'"' . PHP_EOL;
$o .= '"' . $event['summary'] . '", "' . strftime($date_format, $tmp1) .
'", "' . strftime($time_format, $tmp1) . '", "' . $event['desc'] .
'", "' . strftime($date_format, $tmp2) .
'", "' . strftime($time_format, $tmp2) .
'", "' . $event['location'] . '"' . PHP_EOL;
}
break;
// format the exported data as a ics file
// Format the exported data as a ics file
case "ical":
header("Content-type: text/ics");
$o = 'BEGIN:VCALENDAR'. PHP_EOL
$o = 'BEGIN:VCALENDAR' . PHP_EOL
. 'VERSION:2.0' . PHP_EOL
. 'PRODID:-//friendica calendar export//0.1//EN' . PHP_EOL;
/// @todo include timezone informations in cases were the time is not in UTC
@ -691,35 +740,43 @@ function event_format_export ($events, $format = 'ical', $timezone) {
// but test your solution against http://icalvalid.cloudapp.net/
// also long lines SHOULD be split at 75 characters length
foreach ($events as $event) {
if ($event['adjust'] == 1) {
$UTC = 'Z';
} else {
$UTC = '';
}
$o .= 'BEGIN:VEVENT' . PHP_EOL;
if ($event[start]) {
if ($event['start']) {
$tmp = strtotime($event['start']);
$dtformat = "%Y%m%dT%H%M%S".$UTC;
$o .= 'DTSTART:'.strftime($dtformat, $tmp).PHP_EOL;
$dtformat = "%Y%m%dT%H%M%S" . $UTC;
$o .= 'DTSTART:' . strftime($dtformat, $tmp) . PHP_EOL;
}
if (!$event['nofinish']) {
$tmp = strtotime($event['finish']);
$dtformat = "%Y%m%dT%H%M%S".$UTC;
$o .= 'DTEND:'.strftime($dtformat, $tmp).PHP_EOL;
$dtformat = "%Y%m%dT%H%M%S" . $UTC;
$o .= 'DTEND:' . strftime($dtformat, $tmp) . PHP_EOL;
}
if ($event['summary'])
if ($event['summary']) {
$tmp = $event['summary'];
$tmp = str_replace(PHP_EOL, PHP_EOL.' ',$tmp);
$tmp = str_replace(PHP_EOL, PHP_EOL . ' ', $tmp);
$tmp = addcslashes($tmp, ',;');
$o .= 'SUMMARY:' . $tmp . PHP_EOL;
if ($event['desc'])
}
if ($event['desc']) {
$tmp = $event['desc'];
$tmp = str_replace(PHP_EOL, PHP_EOL.' ',$tmp);
$tmp = str_replace(PHP_EOL, PHP_EOL . ' ', $tmp);
$tmp = addcslashes($tmp, ',;');
$o .= 'DESCRIPTION:' . $tmp . PHP_EOL;
}
if ($event['location']) {
$tmp = $event['location'];
$tmp = str_replace(PHP_EOL, PHP_EOL.' ',$tmp);
$tmp = str_replace(PHP_EOL, PHP_EOL . ' ', $tmp);
$tmp = addcslashes($tmp, ',;');
$o .= 'LOCATION:' . $tmp . PHP_EOL;
}
@ -750,16 +807,18 @@ function event_format_export ($events, $format = 'ical', $timezone) {
* @return array Query results
*/
function events_by_uid($uid = 0, $sql_extra = '') {
if($uid == 0)
if ($uid == 0) {
return;
}
// The permission condition if no condition was transmitted
if($sql_extra == '')
if ($sql_extra == '') {
$sql_extra = " AND `allow_cid` = '' AND `allow_gid` = '' ";
}
// does the user who requests happen to be the owner of the events
// requested? then show all of your events, otherwise only those that
// don't have limitations set in allow_cid and allow_gid
// Does the user who requests happen to be the owner of the events
// requested? then show all of your events, otherwise only those that
// don't have limitations set in allow_cid and allow_gid
if (local_user() == $uid) {
$r = q("SELECT `start`, `finish`, `adjust`, `summary`, `desc`, `location`, `nofinish`
FROM `event` WHERE `uid`= %d AND `cid` = 0 ",
@ -772,8 +831,9 @@ function events_by_uid($uid = 0, $sql_extra = '') {
);
}
if (dbm::is_result($r))
if (dbm::is_result($r)) {
return $r;
}
}
/**
@ -792,25 +852,28 @@ function event_export($uid, $format = 'ical') {
$process = false;
// we are allowed to show events
// We are allowed to show events
// get the timezone the user is in
$r = q("SELECT `timezone` FROM `user` WHERE `uid` = %d LIMIT 1", intval($uid));
if (dbm::is_result($r))
if (dbm::is_result($r)) {
$timezone = $r[0]['timezone'];
}
// get all events which are owned by a uid (respects permissions);
// Get all events which are owned by a uid (respects permissions);
$events = events_by_uid($uid);
// we have the events that are available for the requestor
// now format the output according to the requested format
if(count($events))
// We have the events that are available for the requestor
// now format the output according to the requested format
if (count($events)) {
$res = event_format_export($events, $format, $timezone);
}
// If there are results the precess was successfull
if(x($res))
if (x($res)) {
$process = true;
}
// get the file extension for the format
// Get the file extension for the format
switch ($format) {
case "ical":
$file_ext = "ics";
@ -825,10 +888,10 @@ function event_export($uid, $format = 'ical') {
}
$arr = array(
'success' => $process,
'format' => $format,
'success' => $process,
'format' => $format,
'extension' => $file_ext,
'content' => $res,
'content' => $res,
);
return $arr;
@ -851,8 +914,9 @@ function widget_events() {
// The permission testing is a little bit tricky because we have to respect many cases
// It's not the private events page (we don't get the $owner_uid for /events)
if(! local_user() && ! $owner_uid)
if (! local_user() && ! $owner_uid) {
return;
}
// Cal logged in user (test permission at foreign profile page)
// If the $owner uid is available we know it is part of one of the profile pages (like /cal)
@ -860,13 +924,15 @@ function widget_events() {
// or a foreign one. For foreign profile pages we need to check if the feature
// for exporting the cal is enabled (otherwise the widget would appear for logged in users
// on foreigen profile pages even if the widget is disabled)
if(intval($owner_uid) && local_user() !== $owner_uid && ! feature_enabled($owner_uid, "export_calendar"))
if (intval($owner_uid) && local_user() !== $owner_uid && ! feature_enabled($owner_uid, "export_calendar")) {
return;
}
// If it's a kind of profile page (intval($owner_uid)) return if the user not logged in and
// export feature isn't enabled
if(intval($owner_uid) && ! local_user() && ! feature_enabled($owner_uid, "export_calendar"))
if (intval($owner_uid) && ! local_user() && ! feature_enabled($owner_uid, "export_calendar")) {
return;
}
return replace_macros(get_markup_template("events_aside.tpl"), array(
'$etitle' => t("Export"),
@ -874,5 +940,4 @@ function widget_events() {
'$export_csv' => t("Export calendar as csv"),
'$user' => $user
));
}

View file

@ -14,8 +14,13 @@ require_once("include/html2bbcode.php");
require_once("include/Contact.php");
require_once("include/Photo.php");
/*
* poco_load
/**
* @brief Fetch POCO data
*
* @param integer $cid Contact ID
* @param integer $uid User ID
* @param integer $zcid Global Contact ID
* @param integer $url POCO address that should be polled
*
* Given a contact-id (minimum), load the PortableContacts friend list for that contact,
* and add the entries to the gcontact (Global Contact) table, or update existing entries
@ -27,12 +32,21 @@ require_once("include/Photo.php");
* pointing to the same global contact id.
*
*/
function poco_load($cid, $uid = 0, $zcid = 0, $url = null) {
// Call the function "poco_load_worker" via the worker
proc_run(PRIORITY_LOW, "include/discover_poco.php", "poco_load", intval($cid), intval($uid), intval($zcid), base64_encode($url));
}
function poco_load($cid,$uid = 0,$zcid = 0,$url = null) {
/**
* @brief Fetch POCO data from the worker
*
* @param integer $cid Contact ID
* @param integer $uid User ID
* @param integer $zcid Global Contact ID
* @param integer $url POCO address that should be polled
*
*/
function poco_load_worker($cid, $uid, $zcid, $url) {
$a = get_app();
if($cid) {
@ -1668,6 +1682,68 @@ function poco_discover_federation() {
set_config('poco','last_federation_discovery', time());
}
function poco_discover_single_server($id) {
$r = q("SELECT `poco`, `nurl`, `url`, `network` FROM `gserver` WHERE `id` = %d", intval($id));
if (!dbm::is_result($r)) {
return false;
}
$server = $r[0];
// Discover new servers out there (Works from Friendica version 3.5.2)
poco_fetch_serverlist($server["poco"]);
// Fetch all users from the other server
$url = $server["poco"]."/?fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,contactType,generation";
logger("Fetch all users from the server ".$server["url"], LOGGER_DEBUG);
$retdata = z_fetch_url($url);
if ($retdata["success"]) {
$data = json_decode($retdata["body"]);
poco_discover_server($data, 2);
if (get_config('system','poco_discovery') > 1) {
$timeframe = get_config('system','poco_discovery_since');
if ($timeframe == 0) {
$timeframe = 30;
}
$updatedSince = date("Y-m-d H:i:s", time() - $timeframe * 86400);
// Fetch all global contacts from the other server (Not working with Redmatrix and Friendica versions before 3.3)
$url = $server["poco"]."/@global?updatedSince=".$updatedSince."&fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,contactType,generation";
$success = false;
$retdata = z_fetch_url($url);
if ($retdata["success"]) {
logger("Fetch all global contacts from the server ".$server["nurl"], LOGGER_DEBUG);
$success = poco_discover_server(json_decode($retdata["body"]));
}
if (!$success AND (get_config('system','poco_discovery') > 2)) {
logger("Fetch contacts from users of the server ".$server["nurl"], LOGGER_DEBUG);
poco_discover_server_users($data, $server);
}
}
q("UPDATE `gserver` SET `last_poco_query` = '%s' WHERE `nurl` = '%s'", dbesc(datetime_convert()), dbesc($server["nurl"]));
return true;
} else {
// If the server hadn't replied correctly, then force a sanity check
poco_check_server($server["url"], $server["network"], true);
// If we couldn't reach the server, we will try it some time later
q("UPDATE `gserver` SET `last_poco_query` = '%s' WHERE `nurl` = '%s'", dbesc(datetime_convert()), dbesc($server["nurl"]));
return false;
}
}
function poco_discover($complete = false) {
// Update the server list
@ -1677,13 +1753,13 @@ function poco_discover($complete = false) {
$requery_days = intval(get_config("system", "poco_requery_days"));
if ($requery_days == 0)
if ($requery_days == 0) {
$requery_days = 7;
}
$last_update = date("c", time() - (60 * 60 * 24 * $requery_days));
$r = q("SELECT `poco`, `nurl`, `url`, `network` FROM `gserver` WHERE `last_contact` >= `last_failure` AND `poco` != '' AND `last_poco_query` < '%s' ORDER BY RAND()", dbesc($last_update));
if ($r)
$r = q("SELECT `id`, `url`, `network` FROM `gserver` WHERE `last_contact` >= `last_failure` AND `poco` != '' AND `last_poco_query` < '%s' ORDER BY RAND()", dbesc($last_update));
if (dbm::is_result($r)) {
foreach ($r AS $server) {
if (!poco_check_server($server["url"], $server["network"])) {
@ -1692,56 +1768,14 @@ function poco_discover($complete = false) {
continue;
}
// Discover new servers out there
poco_fetch_serverlist($server["poco"]);
logger('Update directory from server '.$server['url'].' with ID '.$server['id'], LOGGER_DEBUG);
proc_run(PRIORITY_LOW, "include/discover_poco.php", "update_server_directory", intval($server['id']));
// Fetch all users from the other server
$url = $server["poco"]."/?fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,contactType,generation";
logger("Fetch all users from the server ".$server["nurl"], LOGGER_DEBUG);
$retdata = z_fetch_url($url);
if ($retdata["success"]) {
$data = json_decode($retdata["body"]);
poco_discover_server($data, 2);
if (get_config('system','poco_discovery') > 1) {
$timeframe = get_config('system','poco_discovery_since');
if ($timeframe == 0)
$timeframe = 30;
$updatedSince = date("Y-m-d H:i:s", time() - $timeframe * 86400);
// Fetch all global contacts from the other server (Not working with Redmatrix and Friendica versions before 3.3)
$url = $server["poco"]."/@global?updatedSince=".$updatedSince."&fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,contactType,generation";
$success = false;
$retdata = z_fetch_url($url);
if ($retdata["success"]) {
logger("Fetch all global contacts from the server ".$server["nurl"], LOGGER_DEBUG);
$success = poco_discover_server(json_decode($retdata["body"]));
}
if (!$success AND (get_config('system','poco_discovery') > 2)) {
logger("Fetch contacts from users of the server ".$server["nurl"], LOGGER_DEBUG);
poco_discover_server_users($data, $server);
}
}
q("UPDATE `gserver` SET `last_poco_query` = '%s' WHERE `nurl` = '%s'", dbesc(datetime_convert()), dbesc($server["nurl"]));
if (!$complete AND (--$no_of_queries == 0))
break;
} else {
// If the server hadn't replied correctly, then force a sanity check
poco_check_server($server["url"], $server["network"], true);
// If we couldn't reach the server, we will try it some time later
q("UPDATE `gserver` SET `last_poco_query` = '%s' WHERE `nurl` = '%s'", dbesc(datetime_convert()), dbesc($server["nurl"]));
if (!$complete AND (--$no_of_queries == 0)) {
break;
}
}
}
}
function poco_discover_server_users($data, $server) {

View file

@ -1,12 +1,12 @@
<?php
/**
* @fiel mod/events.php
* @file mod/events.php
* @brief The events module
*/
require_once('include/bbcode.php');
require_once('include/datetime.php');
require_once('include/event.php');
require_once('include/items.php');
require_once 'include/bbcode.php';
require_once 'include/datetime.php';
require_once 'include/event.php';
require_once 'include/items.php';
function events_init(App $a) {
if (! local_user()) {
@ -14,10 +14,11 @@ function events_init(App $a) {
}
if ($a->argc == 1) {
// if it's a json request abort here becaus we don't
// If it's a json request abort here because we don't
// need the widget data
if ($a->argv[1] === 'json')
if ($a->argv[1] === 'json') {
return;
}
$cal_widget = widget_events();
@ -33,17 +34,17 @@ function events_init(App $a) {
function events_post(App $a) {
logger('post: ' . print_r($_REQUEST,true));
logger('post: ' . print_r($_REQUEST, true), LOGGER_DATA);
if (! local_user()) {
return;
}
$event_id = ((x($_POST,'event_id')) ? intval($_POST['event_id']) : 0);
$cid = ((x($_POST,'cid')) ? intval($_POST['cid']) : 0);
$uid = local_user();
$event_id = ((x($_POST, 'event_id')) ? intval($_POST['event_id']) : 0);
$cid = ((x($_POST, 'cid')) ? intval($_POST['cid']) : 0);
$uid = local_user();
$start_text = escape_tags($_REQUEST['start_text']);
$start_text = escape_tags($_REQUEST['start_text']);
$finish_text = escape_tags($_REQUEST['finish_text']);
$adjust = intval($_POST['adjust']);
@ -52,34 +53,26 @@ function events_post(App $a) {
// The default setting for the `private` field in event_store() is false, so mirror that
$private_event = false;
$start = NULL_DATE;
$finish = NULL_DATE;
if ($start_text) {
$start = $start_text;
}
else {
$start = sprintf('%d-%d-%d %d:%d:0',$startyear,$startmonth,$startday,$starthour,$startminute);
}
if ($nofinish) {
$finish = NULL_DATE;
}
if ($finish_text) {
$finish = $finish_text;
}
else {
$finish = sprintf('%d-%d-%d %d:%d:0',$finishyear,$finishmonth,$finishday,$finishhour,$finishminute);
}
if ($adjust) {
$start = datetime_convert(date_default_timezone_get(),'UTC',$start);
$start = datetime_convert(date_default_timezone_get(), 'UTC', $start);
if (! $nofinish) {
$finish = datetime_convert(date_default_timezone_get(),'UTC',$finish);
$finish = datetime_convert(date_default_timezone_get(), 'UTC', $finish);
}
}
else {
$start = datetime_convert('UTC','UTC',$start);
} else {
$start = datetime_convert('UTC', 'UTC', $start);
if (! $nofinish) {
$finish = datetime_convert('UTC','UTC',$finish);
$finish = datetime_convert('UTC', 'UTC', $finish);
}
}
@ -96,19 +89,19 @@ function events_post(App $a) {
$action = ($event_id == '') ? 'new' : "event/" . $event_id;
$onerror_url = App::get_baseurl() . "/events/" . $action . "?summary=$summary&description=$desc&location=$location&start=$start_text&finish=$finish_text&adjust=$adjust&nofinish=$nofinish";
if (strcmp($finish,$start) < 0 && !$nofinish) {
notice( t('Event can not end before it has started.') . EOL);
if (strcmp($finish, $start) < 0 && !$nofinish) {
notice(t('Event can not end before it has started.') . EOL);
if (intval($_REQUEST['preview'])) {
echo( t('Event can not end before it has started.'));
echo t('Event can not end before it has started.');
killme();
}
goaway($onerror_url);
}
if((! $summary) || (! $start)) {
notice( t('Event title and start time are required.') . EOL);
if(intval($_REQUEST['preview'])) {
echo( t('Event title and start time are required.'));
if ((! $summary) || ($start === NULL_DATE)) {
notice(t('Event title and start time are required.') . EOL);
if (intval($_REQUEST['preview'])) {
echo t('Event title and start time are required.');
killme();
}
goaway($onerror_url);
@ -116,35 +109,33 @@ function events_post(App $a) {
$share = ((intval($_POST['share'])) ? intval($_POST['share']) : 0);
$c = q("select id from contact where uid = %d and self = 1 limit 1",
$c = q("SELECT `id` FROM `contact` WHERE `uid` = %d AND `self` LIMIT 1",
intval(local_user())
);
if(count($c))
if (count($c)) {
$self = $c[0]['id'];
else
} else {
$self = 0;
}
if($share) {
if ($share) {
$str_group_allow = perms2str($_POST['group_allow']);
$str_contact_allow = perms2str($_POST['contact_allow']);
$str_group_deny = perms2str($_POST['group_deny']);
$str_contact_deny = perms2str($_POST['contact_deny']);
// Undo the pseudo-contact of self, since there are real contacts now
if( strpos($str_contact_allow, '<' . $self . '>') !== false )
{
if (strpos($str_contact_allow, '<' . $self . '>') !== false ) {
$str_contact_allow = str_replace('<' . $self . '>', '', $str_contact_allow);
}
// Make sure to set the `private` field as true. This is necessary to
// have the posts show up correctly in Diaspora if an event is created
// as visible only to self at first, but then edited to display to others.
if( strlen($str_group_allow) or strlen($str_contact_allow) or strlen($str_group_deny) or strlen($str_contact_deny) )
{
if (strlen($str_group_allow) || strlen($str_contact_allow) || strlen($str_group_deny) || strlen($str_contact_deny)) {
$private_event = true;
}
}
else {
} else {
// Note: do not set `private` field for self-only events. It will
// keep even you from seeing them!
$str_contact_allow = '<' . $self . '>';
@ -153,46 +144,45 @@ function events_post(App $a) {
$datarray = array();
$datarray['guid'] = get_guid(32);
$datarray['start'] = $start;
$datarray['finish'] = $finish;
$datarray['summary'] = $summary;
$datarray['desc'] = $desc;
$datarray['location'] = $location;
$datarray['type'] = $type;
$datarray['adjust'] = $adjust;
$datarray['nofinish'] = $nofinish;
$datarray['uid'] = $uid;
$datarray['cid'] = $cid;
$datarray['guid'] = get_guid(32);
$datarray['start'] = $start;
$datarray['finish'] = $finish;
$datarray['summary'] = $summary;
$datarray['desc'] = $desc;
$datarray['location'] = $location;
$datarray['type'] = $type;
$datarray['adjust'] = $adjust;
$datarray['nofinish'] = $nofinish;
$datarray['uid'] = $uid;
$datarray['cid'] = $cid;
$datarray['allow_cid'] = $str_contact_allow;
$datarray['allow_gid'] = $str_group_allow;
$datarray['deny_cid'] = $str_contact_deny;
$datarray['deny_gid'] = $str_group_deny;
$datarray['private'] = (($private_event) ? 1 : 0);
$datarray['id'] = $event_id;
$datarray['created'] = $created;
$datarray['edited'] = $edited;
$datarray['deny_cid'] = $str_contact_deny;
$datarray['deny_gid'] = $str_group_deny;
$datarray['private'] = (($private_event) ? 1 : 0);
$datarray['id'] = $event_id;
$datarray['created'] = $created;
$datarray['edited'] = $edited;
if(intval($_REQUEST['preview'])) {
if (intval($_REQUEST['preview'])) {
$html = format_event_html($datarray);
echo $html;
killme();
killme();
}
$item_id = event_store($datarray);
if(! $cid)
if (! $cid) {
proc_run(PRIORITY_HIGH, "include/notifier.php", "event", $item_id);
}
goaway($_SESSION['return_url']);
}
function events_content(App $a) {
if (! local_user()) {
notice( t('Permission denied.') . EOL);
notice(t('Permission denied.') . EOL);
return;
}
@ -201,14 +191,14 @@ function events_content(App $a) {
}
if (($a->argc > 2) && ($a->argv[1] === 'ignore') && intval($a->argv[2])) {
$r = q("update event set ignore = 1 where id = %d and uid = %d",
$r = q("UPDATE `event` SET `ignore` = 1 WHERE `id` = %d AND `uid` = %d",
intval($a->argv[2]),
intval(local_user())
);
}
if (($a->argc > 2) && ($a->argv[1] === 'unignore') && intval($a->argv[2])) {
$r = q("update event set ignore = 0 where id = %d and uid = %d",
$r = q("UPDATE `event` SET `ignore` = 0 WHERE `id` = %d AND `uid` = %d",
intval($a->argv[2]),
intval(local_user())
);
@ -224,7 +214,7 @@ function events_content(App $a) {
$i18n = get_event_strings();
$htpl = get_markup_template('event_head.tpl');
$a->page['htmlhead'] .= replace_macros($htpl,array(
$a->page['htmlhead'] .= replace_macros($htpl, array(
'$baseurl' => App::get_baseurl(),
'$module_url' => '/events',
'$modparams' => 1,
@ -232,27 +222,30 @@ function events_content(App $a) {
));
$etpl = get_markup_template('event_end.tpl');
$a->page['end'] .= replace_macros($etpl,array(
$a->page['end'] .= replace_macros($etpl, array(
'$baseurl' => App::get_baseurl(),
));
$o ="";
$o = '';
// tabs
if ($a->theme_events_in_profile)
$tabs = profile_tabs($a, True);
if ($a->theme_events_in_profile) {
$tabs = profile_tabs($a, true);
}
$mode = 'view';
$y = 0;
$m = 0;
$ignored = ((x($_REQUEST,'ignored')) ? intval($_REQUEST['ignored']) : 0);
$ignored = ((x($_REQUEST, 'ignored')) ? intval($_REQUEST['ignored']) : 0);
if($a->argc > 1) {
if ($a->argc > 1) {
if ($a->argc > 2 && $a->argv[1] == 'event') {
$mode = 'edit';
$event_id = intval($a->argv[2]);
}
if ($a->argc > 2 && $a->argv[1] == 'drop') {
$mode = 'drop';
$event_id = intval($a->argv[2]);
}
if ($a->argv[1] === 'new') {
$mode = 'new';
$event_id = 0;
@ -267,9 +260,8 @@ function events_content(App $a) {
// The view mode part is similiar to /mod/cal.php
if ($mode == 'view') {
$thisyear = datetime_convert('UTC',date_default_timezone_get(),'now','Y');
$thismonth = datetime_convert('UTC',date_default_timezone_get(),'now','m');
$thisyear = datetime_convert('UTC', date_default_timezone_get(), 'now', 'Y');
$thismonth = datetime_convert('UTC', date_default_timezone_get(), 'now', 'm');
if (! $y) {
$y = intval($thisyear);
}
@ -289,47 +281,47 @@ function events_content(App $a) {
$nextyear = $y;
$nextmonth = $m + 1;
if($nextmonth > 12) {
$nextmonth = 1;
if ($nextmonth > 12) {
$nextmonth = 1;
$nextyear ++;
}
$prevyear = $y;
if($m > 1)
if ($m > 1) {
$prevmonth = $m - 1;
else {
} else {
$prevmonth = 12;
$prevyear --;
}
$dim = get_dim($y,$m);
$start = sprintf('%d-%d-%d %d:%d:%d',$y,$m,1,0,0,0);
$finish = sprintf('%d-%d-%d %d:%d:%d',$y,$m,$dim,23,59,59);
$dim = get_dim($y, $m);
$start = sprintf('%d-%d-%d %d:%d:%d', $y, $m, 1, 0, 0, 0);
$finish = sprintf('%d-%d-%d %d:%d:%d', $y, $m, $dim, 23, 59, 59);
if ($a->argv[1] === 'json'){
if (x($_GET,'start')) $start = $_GET['start'];
if (x($_GET,'end')) $finish = $_GET['end'];
if ($a->argv[1] === 'json') {
if (x($_GET, 'start')) {$start = $_GET['start'];}
if (x($_GET, 'end')) {$finish = $_GET['end'];}
}
$start = datetime_convert('UTC','UTC',$start);
$finish = datetime_convert('UTC','UTC',$finish);
$start = datetime_convert('UTC', 'UTC', $start);
$finish = datetime_convert('UTC', 'UTC', $finish);
$adjust_start = datetime_convert('UTC', date_default_timezone_get(), $start);
$adjust_start = datetime_convert('UTC', date_default_timezone_get(), $start);
$adjust_finish = datetime_convert('UTC', date_default_timezone_get(), $finish);
// put the event parametes in an array so we can better transmit them
$event_params = array(
'event_id' => (x($_GET,'id') ? $_GET["id"] : 0),
'start' => $start,
'finish' => $finish,
'adjust_start' => $adjust_start,
'event_id' => (x($_GET, 'id') ? $_GET['id'] : 0),
'start' => $start,
'finish' => $finish,
'adjust_start' => $adjust_start,
'adjust_finish' => $adjust_finish,
'ignored' => $ignored,
'ignored' => $ignored,
);
// get events by id or by date
if (x($_GET,'id')){
if (x($_GET, 'id')) {
$r = event_by_id(local_user(), $event_params);
} else {
$r = events_by_date(local_user(), $event_params);
@ -340,7 +332,7 @@ function events_content(App $a) {
if (dbm::is_result($r)) {
$r = sort_by_date($r);
foreach ($r as $rr) {
$j = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['start'], 'j') : datetime_convert('UTC','UTC',$rr['start'],'j'));
$j = (($rr['adjust']) ? datetime_convert('UTC', date_default_timezone_get(), $rr['start'], 'j') : datetime_convert('UTC', 'UTC', $rr['start'], 'j'));
if (! x($links,$j)) {
$links[$j] = App::get_baseurl() . '/' . $a->cmd . '#link-' . $j;
}
@ -356,127 +348,127 @@ function events_content(App $a) {
}
if ($a->argv[1] === 'json'){
echo json_encode($events); killme();
echo json_encode($events);
killme();
}
// links: array('href', 'text', 'extra css classes', 'title')
if (x($_GET,'id')){
if (x($_GET, 'id')) {
$tpl = get_markup_template("event.tpl");
} else {
// if (get_config('experimentals','new_calendar')==1){
$tpl = get_markup_template("events_js.tpl");
// } else {
// $tpl = get_markup_template("events.tpl");
// }
$tpl = get_markup_template("events_js.tpl");
}
// Get rid of dashes in key names, Smarty3 can't handle them
foreach($events as $key => $event) {
foreach ($events as $key => $event) {
$event_item = array();
foreach($event['item'] as $k => $v) {
$k = str_replace('-','_',$k);
foreach ($event['item'] as $k => $v) {
$k = str_replace('-' ,'_', $k);
$event_item[$k] = $v;
}
$events[$key]['item'] = $event_item;
}
$o = replace_macros($tpl, array(
'$baseurl' => App::get_baseurl(),
'$tabs' => $tabs,
'$title' => t('Events'),
'$view' => t('View'),
'$new_event' => array(App::get_baseurl().'/events/new',t('Create New Event'),'',''),
'$previous' => array(App::get_baseurl()."/events/$prevyear/$prevmonth",t('Previous'),'',''),
'$next' => array(App::get_baseurl()."/events/$nextyear/$nextmonth",t('Next'),'',''),
'$calendar' => cal($y,$m,$links, ' eventcal'),
'$baseurl' => App::get_baseurl(),
'$tabs' => $tabs,
'$title' => t('Events'),
'$view' => t('View'),
'$new_event' => array(App::get_baseurl() . '/events/new', t('Create New Event'), '', ''),
'$previous' => array(App::get_baseurl() . '/events/$prevyear/$prevmonth', t('Previous'), '', ''),
'$next' => array(App::get_baseurl() . '/events/$nextyear/$nextmonth', t('Next'), '', ''),
'$calendar' => cal($y, $m, $links, ' eventcal'),
'$events' => $events,
'$events' => $events,
"today" => t("today"),
"month" => t("month"),
"week" => t("week"),
"day" => t("day"),
"list" => t("list"),
'$today' => t('today'),
'$month' => t('month'),
'$week' => t('week'),
'$day' => t('day'),
'$list' => t('list'),
));
if (x($_GET,'id')){ echo $o; killme(); }
if (x($_GET, 'id')) {
echo $o;
killme();
}
return $o;
}
if($mode === 'edit' && $event_id) {
if ($mode === 'edit' && $event_id) {
$r = q("SELECT * FROM `event` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($event_id),
intval(local_user())
);
if (dbm::is_result($r))
if (dbm::is_result($r)) {
$orig_event = $r[0];
}
}
// Passed parameters overrides anything found in the DB
if($mode === 'edit' || $mode === 'new') {
if(!x($orig_event)) $orig_event = array();
if ($mode === 'edit' || $mode === 'new') {
if (!x($orig_event)) {$orig_event = array();}
// In case of an error the browser is redirected back here, with these parameters filled in with the previous values
if(x($_REQUEST,'nofinish')) $orig_event['nofinish'] = $_REQUEST['nofinish'];
if(x($_REQUEST,'adjust')) $orig_event['adjust'] = $_REQUEST['adjust'];
if(x($_REQUEST,'summary')) $orig_event['summary'] = $_REQUEST['summary'];
if(x($_REQUEST,'description')) $orig_event['description'] = $_REQUEST['description'];
if(x($_REQUEST,'location')) $orig_event['location'] = $_REQUEST['location'];
if(x($_REQUEST,'start')) $orig_event['start'] = $_REQUEST['start'];
if(x($_REQUEST,'finish')) $orig_event['finish'] = $_REQUEST['finish'];
}
if($mode === 'edit' || $mode === 'new') {
if (x($_REQUEST, 'nofinish')) {$orig_event['nofinish'] = $_REQUEST['nofinish'];}
if (x($_REQUEST, 'adjust')) {$orig_event['adjust'] = $_REQUEST['adjust'];}
if (x($_REQUEST, 'summary')) {$orig_event['summary'] = $_REQUEST['summary'];}
if (x($_REQUEST, 'description')) {$orig_event['description'] = $_REQUEST['description'];}
if (x($_REQUEST, 'location')) {$orig_event['location'] = $_REQUEST['location'];}
if (x($_REQUEST, 'start')) {$orig_event['start'] = $_REQUEST['start'];}
if (x($_REQUEST, 'finish')) {$orig_event['finish'] = $_REQUEST['finish'];}
$n_checked = ((x($orig_event) && $orig_event['nofinish']) ? ' checked="checked" ' : '');
$a_checked = ((x($orig_event) && $orig_event['adjust']) ? ' checked="checked" ' : '');
$t_orig = ((x($orig_event)) ? $orig_event['summary'] : '');
$d_orig = ((x($orig_event)) ? $orig_event['desc'] : '');
$a_checked = ((x($orig_event) && $orig_event['adjust']) ? ' checked="checked" ' : '');
$t_orig = ((x($orig_event)) ? $orig_event['summary'] : '');
$d_orig = ((x($orig_event)) ? $orig_event['desc'] : '');
$l_orig = ((x($orig_event)) ? $orig_event['location'] : '');
$eid = ((x($orig_event)) ? $orig_event['id'] : 0);
$cid = ((x($orig_event)) ? $orig_event['cid'] : 0);
$uri = ((x($orig_event)) ? $orig_event['uri'] : '');
$eid = ((x($orig_event)) ? $orig_event['id'] : 0);
$cid = ((x($orig_event)) ? $orig_event['cid'] : 0);
$uri = ((x($orig_event)) ? $orig_event['uri'] : '');
if(! x($orig_event))
if (! x($orig_event)) {
$sh_checked = '';
else
$sh_checked = (($orig_event['allow_cid'] === '<' . local_user() . '>' && (! $orig_event['allow_gid']) && (! $orig_event['deny_cid']) && (! $orig_event['deny_gid'])) ? '' : ' checked="checked" ' );
} else {
$sh_checked = (($orig_event['allow_cid'] === '<' . local_user() . '>' && (! $orig_event['allow_gid']) && (! $orig_event['deny_cid']) && (! $orig_event['deny_gid'])) ? '' : ' checked="checked" ');
}
if($cid OR ($mode !== 'new'))
if ($cid OR ($mode !== 'new')) {
$sh_checked .= ' disabled="disabled" ';
}
$sdt = ((x($orig_event)) ? $orig_event['start'] : 'now');
$fdt = ((x($orig_event)) ? $orig_event['finish'] : 'now');
$tz = date_default_timezone_get();
if(x($orig_event))
if (x($orig_event)) {
$tz = (($orig_event['adjust']) ? date_default_timezone_get() : 'UTC');
}
$syear = datetime_convert('UTC', $tz, $sdt, 'Y');
$syear = datetime_convert('UTC', $tz, $sdt, 'Y');
$smonth = datetime_convert('UTC', $tz, $sdt, 'm');
$sday = datetime_convert('UTC', $tz, $sdt, 'd');
$sday = datetime_convert('UTC', $tz, $sdt, 'd');
$shour = ((x($orig_event)) ? datetime_convert('UTC', $tz, $sdt, 'H') : 0);
$shour = ((x($orig_event)) ? datetime_convert('UTC', $tz, $sdt, 'H') : 0);
$sminute = ((x($orig_event)) ? datetime_convert('UTC', $tz, $sdt, 'i') : 0);
$fyear = datetime_convert('UTC', $tz, $fdt, 'Y');
$fyear = datetime_convert('UTC', $tz, $fdt, 'Y');
$fmonth = datetime_convert('UTC', $tz, $fdt, 'm');
$fday = datetime_convert('UTC', $tz, $fdt, 'd');
$fday = datetime_convert('UTC', $tz, $fdt, 'd');
$fhour = ((x($orig_event)) ? datetime_convert('UTC', $tz, $fdt, 'H') : 0);
$fhour = ((x($orig_event)) ? datetime_convert('UTC', $tz, $fdt, 'H') : 0);
$fminute = ((x($orig_event)) ? datetime_convert('UTC', $tz, $fdt, 'i') : 0);
$f = get_config('system','event_input_format');
if(! $f)
if (! $f) {
$f = 'ymd';
}
require_once('include/acl_selectors.php');
require_once 'include/acl_selectors.php' ;
if ($mode === 'new')
if ($mode === 'new') {
$acl = (($cid) ? '' : populate_acl(((x($orig_event)) ? $orig_event : $a->user)));
}
$tpl = get_markup_template('event_form.tpl');
@ -489,11 +481,11 @@ function events_content(App $a) {
'$title' => t('Event details'),
'$desc' => t('Starting date and Title are required.'),
'$s_text' => t('Event Starts:') . ' <span class="required" title="' . t('Required') . '">*</span>',
'$s_dsel' => datetimesel($f,new DateTime(),DateTime::createFromFormat('Y',$syear+5),DateTime::createFromFormat('Y-m-d H:i',"$syear-$smonth-$sday $shour:$sminute"),t('Event Starts:'),'start_text',true,true,'','',true),
'$s_dsel' => datetimesel($f, new DateTime(), DateTime::createFromFormat('Y', $syear+5), DateTime::createFromFormat('Y-m-d H:i', "$syear-$smonth-$sday $shour:$sminute"), t('Event Starts:'), 'start_text', true, true, '', '', true),
'$n_text' => t('Finish date/time is not known or not relevant'),
'$n_checked' => $n_checked,
'$f_text' => t('Event Finishes:'),
'$f_dsel' => datetimesel($f,new DateTime(),DateTime::createFromFormat('Y',$fyear+5),DateTime::createFromFormat('Y-m-d H:i',"$fyear-$fmonth-$fday $fhour:$fminute"),t('Event Finishes:'),'finish_text',true,true,'start_text'),
'$f_dsel' => datetimesel($f, new DateTime(), DateTime::createFromFormat('Y', $fyear+5), DateTime::createFromFormat('Y-m-d H:i', "$fyear-$fmonth-$fday $fhour:$fminute"), t('Event Finishes:'), 'finish_text', true, true, 'start_text'),
'$a_text' => t('Adjust for viewer timezone'),
'$a_checked' => $a_checked,
'$d_text' => t('Description:'),
@ -511,12 +503,33 @@ function events_content(App $a) {
'$preview' => t('Preview'),
'$acl' => $acl,
'$submit' => t('Submit'),
'$basic' => t("Basic"),
'$advanced' => t("Advanced"),
'$basic' => t('Basic'),
'$advanced' => t('Advanced'),
'$permissions' => t('Permissions'),
));
return $o;
}
// Remove an event from the calendar and its related items
if ($mode === 'drop' && $event_id) {
$del = 0;
$params = array('event_id' => ($event_id));
$ev = event_by_id(local_user(), $params);
// Delete only real events (no birthdays)
if (dbm::is_result($ev) && $ev[0]['type'] == 'event') {
$del = drop_item($ev[0]['itemid'], false);
}
if ($del == 0) {
notice(t('Failed to remove event' ) . EOL);
} else {
info(t('Event removed') . EOL);
}
goaway(App::get_baseurl() . '/events');
}
}

View file

@ -3,12 +3,21 @@
use \Friendica\Core\Config;
function maintenance_content(App $a) {
$reason = Config::get('system', 'maintenance_reason');
if (substr(normalise_link($reason), 0, 7) == 'http://') {
header("HTTP/1.1 307 Temporary Redirect");
header("Location:".$reason);
return;
}
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: 600');
return replace_macros(get_markup_template('maintenance.tpl'), array(
'$sysdown' => t('System down for maintenance'),
'$reason' => Config::get('system', 'maintenance_reason')
'$reason' => $reason
));
}

View file

@ -49,5 +49,14 @@ if ($reason != '') {
}
echo "Usage:\n\n";
echo "\tphp {$argv[0]} [1] [Maintenance reason]\tSet the system in maintenance mode\n";
echo "\tphp {$argv[0]} 0 \tSet the system in normal mode\n\n";
echo "\tphp {$argv[0]} [1] [Maintenance reason|redirection url]\n";
echo "\t\tSet the system in maintenance mode\n\n";
echo "\t\tIf the optionally entered maintenance reason is an url\n";
echo "\t\tthe visitor is redirected to that page.\n";
echo "\n";
echo "\t\tExamples:\n";
echo "\t\t\tphp {$argv[0]} 1 System upgrade\n";
echo "\t\t\tphp {$argv[0]} 1 http://domain.tld/downtime\n";
echo "\n";
echo "\tphp {$argv[0]} 0\n";
echo "\t\tSet the system in normal mode\n\n";

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-03-03 10:29+0100\n"
"POT-Creation-Date: 2017-03-20 08:24+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,238 +18,132 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
#: include/profile_selectors.php:6
msgid "Male"
#: boot.php:976
msgid "Delete this item?"
msgstr ""
#: include/profile_selectors.php:6
msgid "Female"
#: boot.php:977 include/ForumManager.php:119 include/contact_widgets.php:253
#: include/items.php:2254 mod/content.php:624 object/Item.php:420
#: view/theme/vier/theme.php:255
msgid "show more"
msgstr ""
#: include/profile_selectors.php:6
msgid "Currently Male"
#: boot.php:978
msgid "show fewer"
msgstr ""
#: include/profile_selectors.php:6
msgid "Currently Female"
#: boot.php:1667
#, php-format
msgid "Update %s failed. See error logs."
msgstr ""
#: include/profile_selectors.php:6
msgid "Mostly Male"
#: boot.php:1779
msgid "Create a New Account"
msgstr ""
#: include/profile_selectors.php:6
msgid "Mostly Female"
#: boot.php:1780 include/nav.php:109 mod/register.php:289
msgid "Register"
msgstr ""
#: include/profile_selectors.php:6
msgid "Transgender"
#: boot.php:1804 include/nav.php:78 view/theme/frio/theme.php:243
msgid "Logout"
msgstr ""
#: include/profile_selectors.php:6
msgid "Intersex"
#: boot.php:1805 include/nav.php:95 mod/bookmarklet.php:12
msgid "Login"
msgstr ""
#: include/profile_selectors.php:6
msgid "Transsexual"
#: boot.php:1807 mod/lostpass.php:161
msgid "Nickname or Email: "
msgstr ""
#: include/profile_selectors.php:6
msgid "Hermaphrodite"
#: boot.php:1808
msgid "Password: "
msgstr ""
#: include/profile_selectors.php:6
msgid "Neuter"
#: boot.php:1809
msgid "Remember me"
msgstr ""
#: include/profile_selectors.php:6
msgid "Non-specific"
#: boot.php:1812
msgid "Or login using OpenID: "
msgstr ""
#: include/profile_selectors.php:6
msgid "Other"
#: boot.php:1818
msgid "Forgot your password?"
msgstr ""
#: include/profile_selectors.php:6 include/conversation.php:1478
msgid "Undecided"
msgid_plural "Undecided"
msgstr[0] ""
msgstr[1] ""
#: include/profile_selectors.php:23
msgid "Males"
#: boot.php:1819 mod/lostpass.php:110
msgid "Password Reset"
msgstr ""
#: include/profile_selectors.php:23
msgid "Females"
#: boot.php:1821
msgid "Website Terms of Service"
msgstr ""
#: include/profile_selectors.php:23
msgid "Gay"
#: boot.php:1822
msgid "terms of service"
msgstr ""
#: include/profile_selectors.php:23
msgid "Lesbian"
#: boot.php:1824
msgid "Website Privacy Policy"
msgstr ""
#: include/profile_selectors.php:23
msgid "No Preference"
#: boot.php:1825
msgid "privacy policy"
msgstr ""
#: include/profile_selectors.php:23
msgid "Bisexual"
#: include/Contact.php:387 include/Contact.php:400 include/Contact.php:445
#: include/conversation.php:970 include/conversation.php:986
#: mod/allfriends.php:68 mod/directory.php:157 mod/dirfind.php:209
#: mod/match.php:73 mod/suggest.php:82
msgid "View Profile"
msgstr ""
#: include/profile_selectors.php:23
msgid "Autosexual"
#: include/Contact.php:401 include/contact_widgets.php:32
#: include/conversation.php:983 mod/allfriends.php:69 mod/contacts.php:610
#: mod/dirfind.php:210 mod/follow.php:106 mod/match.php:74 mod/suggest.php:83
msgid "Connect/Follow"
msgstr ""
#: include/profile_selectors.php:23
msgid "Abstinent"
#: include/Contact.php:444 include/conversation.php:969
msgid "View Status"
msgstr ""
#: include/profile_selectors.php:23
msgid "Virgin"
#: include/Contact.php:446 include/conversation.php:971
msgid "View Photos"
msgstr ""
#: include/profile_selectors.php:23
msgid "Deviant"
#: include/Contact.php:447 include/conversation.php:972
msgid "Network Posts"
msgstr ""
#: include/profile_selectors.php:23
msgid "Fetish"
#: include/Contact.php:448 include/conversation.php:973
msgid "View Contact"
msgstr ""
#: include/profile_selectors.php:23
msgid "Oodles"
#: include/Contact.php:449
msgid "Drop Contact"
msgstr ""
#: include/profile_selectors.php:23
msgid "Nonsexual"
#: include/Contact.php:450 include/conversation.php:974
msgid "Send PM"
msgstr ""
#: include/profile_selectors.php:42
msgid "Single"
#: include/Contact.php:451 include/conversation.php:978
msgid "Poke"
msgstr ""
#: include/profile_selectors.php:42
msgid "Lonely"
#: include/Contact.php:828
msgid "Organisation"
msgstr ""
#: include/profile_selectors.php:42
msgid "Available"
#: include/Contact.php:831
msgid "News"
msgstr ""
#: include/profile_selectors.php:42
msgid "Unavailable"
msgstr ""
#: include/profile_selectors.php:42
msgid "Has crush"
msgstr ""
#: include/profile_selectors.php:42
msgid "Infatuated"
msgstr ""
#: include/profile_selectors.php:42
msgid "Dating"
msgstr ""
#: include/profile_selectors.php:42
msgid "Unfaithful"
msgstr ""
#: include/profile_selectors.php:42
msgid "Sex Addict"
msgstr ""
#: include/profile_selectors.php:42 include/user.php:280 include/user.php:284
msgid "Friends"
msgstr ""
#: include/profile_selectors.php:42
msgid "Friends/Benefits"
msgstr ""
#: include/profile_selectors.php:42
msgid "Casual"
msgstr ""
#: include/profile_selectors.php:42
msgid "Engaged"
msgstr ""
#: include/profile_selectors.php:42
msgid "Married"
msgstr ""
#: include/profile_selectors.php:42
msgid "Imaginarily married"
msgstr ""
#: include/profile_selectors.php:42
msgid "Partners"
msgstr ""
#: include/profile_selectors.php:42
msgid "Cohabiting"
msgstr ""
#: include/profile_selectors.php:42
msgid "Common law"
msgstr ""
#: include/profile_selectors.php:42
msgid "Happy"
msgstr ""
#: include/profile_selectors.php:42
msgid "Not looking"
msgstr ""
#: include/profile_selectors.php:42
msgid "Swinger"
msgstr ""
#: include/profile_selectors.php:42
msgid "Betrayed"
msgstr ""
#: include/profile_selectors.php:42
msgid "Separated"
msgstr ""
#: include/profile_selectors.php:42
msgid "Unstable"
msgstr ""
#: include/profile_selectors.php:42
msgid "Divorced"
msgstr ""
#: include/profile_selectors.php:42
msgid "Imaginarily divorced"
msgstr ""
#: include/profile_selectors.php:42
msgid "Widowed"
msgstr ""
#: include/profile_selectors.php:42
msgid "Uncertain"
msgstr ""
#: include/profile_selectors.php:42
msgid "It's complicated"
msgstr ""
#: include/profile_selectors.php:42
msgid "Don't care"
msgstr ""
#: include/profile_selectors.php:42
msgid "Ask me"
#: include/Contact.php:834
msgid "Forum"
msgstr ""
#: include/ForumManager.php:114 include/nav.php:131 include/text.php:1027
@ -261,23 +155,17 @@ msgstr ""
msgid "External link to forum"
msgstr ""
#: include/ForumManager.php:119 include/contact_widgets.php:253
#: include/items.php:2254 mod/content.php:624 object/Item.php:447
#: view/theme/vier/theme.php:255 boot.php:971
msgid "show more"
msgstr ""
#: include/NotificationsManager.php:153
msgid "System"
msgstr ""
#: include/NotificationsManager.php:160 include/nav.php:158 mod/admin.php:412
#: include/NotificationsManager.php:160 include/nav.php:158 mod/admin.php:421
#: view/theme/frio/theme.php:253
msgid "Network"
msgstr ""
#: include/NotificationsManager.php:167 mod/profiles.php:695
#: mod/network.php:846
#: include/NotificationsManager.php:167 mod/network.php:829
#: mod/profiles.php:695
msgid "Personal"
msgstr ""
@ -348,24 +236,101 @@ msgstr ""
msgid "Wall Photos"
msgstr ""
#: include/acl_selectors.php:341
msgid "Post to Email"
msgstr ""
#: include/acl_selectors.php:346
#, php-format
msgid "Connectors disabled, since \"%s\" is enabled."
msgstr ""
#: include/acl_selectors.php:347 mod/settings.php:1188
msgid "Hide your profile details from unknown viewers?"
msgstr ""
#: include/acl_selectors.php:352
msgid "Visible to everybody"
msgstr ""
#: include/acl_selectors.php:353 view/theme/vier/config.php:108
msgid "show"
msgstr ""
#: include/acl_selectors.php:354 view/theme/vier/config.php:108
msgid "don't show"
msgstr ""
#: include/acl_selectors.php:360 mod/editpost.php:123
msgid "CC: email addresses"
msgstr ""
#: include/acl_selectors.php:361 mod/editpost.php:130
msgid "Example: bob@example.com, mary@example.com"
msgstr ""
#: include/acl_selectors.php:363 mod/events.php:516 mod/photos.php:1176
#: mod/photos.php:1558
msgid "Permissions"
msgstr ""
#: include/acl_selectors.php:364
msgid "Close"
msgstr ""
#: include/api.php:1021
#, php-format
msgid "Daily posting limit of %d posts reached. The post was rejected."
msgstr ""
#: include/api.php:1041
#, php-format
msgid "Weekly posting limit of %d posts reached. The post was rejected."
msgstr ""
#: include/api.php:1062
#, php-format
msgid "Monthly posting limit of %d posts reached. The post was rejected."
msgstr ""
#: include/auth.php:45
msgid "Logged out."
msgstr ""
#: include/auth.php:116 include/auth.php:177 mod/openid.php:110
#: include/auth.php:116 include/auth.php:178 mod/openid.php:110
msgid "Login failed."
msgstr ""
#: include/auth.php:131 include/user.php:75
#: include/auth.php:132 include/user.php:75
msgid ""
"We encountered a problem while logging in with the OpenID you provided. "
"Please check the correct spelling of the ID."
msgstr ""
#: include/auth.php:131 include/user.php:75
#: include/auth.php:132 include/user.php:75
msgid "The error message was:"
msgstr ""
#: include/bb2diaspora.php:199 include/event.php:16 mod/localtime.php:12
msgid "l F d, Y \\@ g:i A"
msgstr ""
#: include/bb2diaspora.php:205 include/event.php:33 include/event.php:51
#: include/event.php:488
msgid "Starts:"
msgstr ""
#: include/bb2diaspora.php:213 include/event.php:36 include/event.php:57
#: include/event.php:489
msgid "Finishes:"
msgstr ""
#: include/bb2diaspora.php:221 include/event.php:39 include/event.php:63
#: include/event.php:490 include/identity.php:331 mod/contacts.php:636
#: mod/directory.php:139 mod/events.php:501 mod/notifications.php:238
msgid "Location:"
msgstr ""
#: include/bbcode.php:350 include/bbcode.php:1055 include/bbcode.php:1056
msgid "Image/photo"
msgstr ""
@ -383,19 +348,789 @@ msgstr ""
msgid "Encrypted content"
msgstr ""
#: include/bbcode.php:1167
#: include/bbcode.php:1169
msgid "Invalid source protocol"
msgstr ""
#: include/bbcode.php:1177
#: include/bbcode.php:1179
msgid "Invalid link protocol"
msgstr ""
#: include/dba_pdo.php:72 include/dba.php:56
#: include/contact_selectors.php:32
msgid "Unknown | Not categorised"
msgstr ""
#: include/contact_selectors.php:33
msgid "Block immediately"
msgstr ""
#: include/contact_selectors.php:34
msgid "Shady, spammer, self-marketer"
msgstr ""
#: include/contact_selectors.php:35
msgid "Known to me, but no opinion"
msgstr ""
#: include/contact_selectors.php:36
msgid "OK, probably harmless"
msgstr ""
#: include/contact_selectors.php:37
msgid "Reputable, has my trust"
msgstr ""
#: include/contact_selectors.php:56 mod/admin.php:893
msgid "Frequently"
msgstr ""
#: include/contact_selectors.php:57 mod/admin.php:894
msgid "Hourly"
msgstr ""
#: include/contact_selectors.php:58 mod/admin.php:895
msgid "Twice daily"
msgstr ""
#: include/contact_selectors.php:59 mod/admin.php:896
msgid "Daily"
msgstr ""
#: include/contact_selectors.php:60
msgid "Weekly"
msgstr ""
#: include/contact_selectors.php:61
msgid "Monthly"
msgstr ""
#: include/contact_selectors.php:76 mod/dfrn_request.php:881
msgid "Friendica"
msgstr ""
#: include/contact_selectors.php:77
msgid "OStatus"
msgstr ""
#: include/contact_selectors.php:78
msgid "RSS/Atom"
msgstr ""
#: include/contact_selectors.php:79 include/contact_selectors.php:86
#: mod/admin.php:1405 mod/admin.php:1418 mod/admin.php:1431 mod/admin.php:1449
msgid "Email"
msgstr ""
#: include/contact_selectors.php:80 mod/dfrn_request.php:883
#: mod/settings.php:848
msgid "Diaspora"
msgstr ""
#: include/contact_selectors.php:81
msgid "Facebook"
msgstr ""
#: include/contact_selectors.php:82
msgid "Zot!"
msgstr ""
#: include/contact_selectors.php:83
msgid "LinkedIn"
msgstr ""
#: include/contact_selectors.php:84
msgid "XMPP/IM"
msgstr ""
#: include/contact_selectors.php:85
msgid "MySpace"
msgstr ""
#: include/contact_selectors.php:87
msgid "Google+"
msgstr ""
#: include/contact_selectors.php:88
msgid "pump.io"
msgstr ""
#: include/contact_selectors.php:89
msgid "Twitter"
msgstr ""
#: include/contact_selectors.php:90
msgid "Diaspora Connector"
msgstr ""
#: include/contact_selectors.php:91
msgid "GNU Social"
msgstr ""
#: include/contact_selectors.php:92
msgid "pnut"
msgstr ""
#: include/contact_selectors.php:93
msgid "App.net"
msgstr ""
#: include/contact_selectors.php:104
msgid "Hubzilla/Redmatrix"
msgstr ""
#: include/contact_widgets.php:6
msgid "Add New Contact"
msgstr ""
#: include/contact_widgets.php:7
msgid "Enter address or web location"
msgstr ""
#: include/contact_widgets.php:8
msgid "Example: bob@example.com, http://example.com/barbara"
msgstr ""
#: include/contact_widgets.php:10 include/identity.php:219
#: mod/allfriends.php:85 mod/dirfind.php:207 mod/match.php:89
#: mod/suggest.php:101
msgid "Connect"
msgstr ""
#: include/contact_widgets.php:24
#, php-format
msgid "%d invitation available"
msgid_plural "%d invitations available"
msgstr[0] ""
msgstr[1] ""
#: include/contact_widgets.php:30
msgid "Find People"
msgstr ""
#: include/contact_widgets.php:31
msgid "Enter name or interest"
msgstr ""
#: include/contact_widgets.php:33
msgid "Examples: Robert Morgenstein, Fishing"
msgstr ""
#: include/contact_widgets.php:34 mod/contacts.php:806 mod/directory.php:206
msgid "Find"
msgstr ""
#: include/contact_widgets.php:35 mod/suggest.php:114
#: view/theme/vier/theme.php:198
msgid "Friend Suggestions"
msgstr ""
#: include/contact_widgets.php:36 view/theme/vier/theme.php:197
msgid "Similar Interests"
msgstr ""
#: include/contact_widgets.php:37
msgid "Random Profile"
msgstr ""
#: include/contact_widgets.php:38 view/theme/vier/theme.php:199
msgid "Invite Friends"
msgstr ""
#: include/contact_widgets.php:115
msgid "Networks"
msgstr ""
#: include/contact_widgets.php:118
msgid "All Networks"
msgstr ""
#: include/contact_widgets.php:150 include/features.php:104
msgid "Saved Folders"
msgstr ""
#: include/contact_widgets.php:153 include/contact_widgets.php:187
msgid "Everything"
msgstr ""
#: include/contact_widgets.php:184
msgid "Categories"
msgstr ""
#: include/contact_widgets.php:248
#, php-format
msgid "%d contact in common"
msgid_plural "%d contacts in common"
msgstr[0] ""
msgstr[1] ""
#: include/conversation.php:122 include/conversation.php:258
#: include/like.php:180 include/text.php:1804
msgid "event"
msgstr ""
#: include/conversation.php:125 include/conversation.php:134
#: include/conversation.php:261 include/conversation.php:270
#: include/diaspora.php:1530 include/like.php:178 mod/subthread.php:88
#: mod/tagger.php:62
msgid "status"
msgstr ""
#: include/conversation.php:130 include/conversation.php:266
#: include/like.php:178 include/text.php:1806 mod/subthread.php:88
#: mod/tagger.php:62
msgid "photo"
msgstr ""
#: include/conversation.php:141 include/diaspora.php:1526 include/like.php:27
#, php-format
msgid "%1$s likes %2$s's %3$s"
msgstr ""
#: include/conversation.php:144 include/like.php:31 include/like.php:36
#, php-format
msgid "%1$s doesn't like %2$s's %3$s"
msgstr ""
#: include/conversation.php:147
#, php-format
msgid "%1$s attends %2$s's %3$s"
msgstr ""
#: include/conversation.php:150
#, php-format
msgid "%1$s doesn't attend %2$s's %3$s"
msgstr ""
#: include/conversation.php:153
#, php-format
msgid "%1$s attends maybe %2$s's %3$s"
msgstr ""
#: include/conversation.php:185 mod/dfrn_confirm.php:478
#, php-format
msgid "%1$s is now friends with %2$s"
msgstr ""
#: include/conversation.php:219
#, php-format
msgid "%1$s poked %2$s"
msgstr ""
#: include/conversation.php:239 mod/mood.php:63
#, php-format
msgid "%1$s is currently %2$s"
msgstr ""
#: include/conversation.php:278 mod/tagger.php:95
#, php-format
msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr ""
#: include/conversation.php:303
msgid "post/item"
msgstr ""
#: include/conversation.php:304
#, php-format
msgid "%1$s marked %2$s's %3$s as favorite"
msgstr ""
#: include/conversation.php:587 mod/content.php:372 mod/photos.php:1629
#: mod/profiles.php:346
msgid "Likes"
msgstr ""
#: include/conversation.php:587 mod/content.php:372 mod/photos.php:1629
#: mod/profiles.php:350
msgid "Dislikes"
msgstr ""
#: include/conversation.php:588 include/conversation.php:1473
#: mod/content.php:373 mod/photos.php:1630
msgid "Attending"
msgid_plural "Attending"
msgstr[0] ""
msgstr[1] ""
#: include/conversation.php:588 mod/content.php:373 mod/photos.php:1630
msgid "Not attending"
msgstr ""
#: include/conversation.php:588 mod/content.php:373 mod/photos.php:1630
msgid "Might attend"
msgstr ""
#: include/conversation.php:710 mod/content.php:453 mod/content.php:759
#: mod/photos.php:1703 object/Item.php:137
msgid "Select"
msgstr ""
#: include/conversation.php:711 mod/admin.php:1423 mod/contacts.php:816
#: mod/contacts.php:1015 mod/content.php:454 mod/content.php:760
#: mod/group.php:181 mod/photos.php:1704 mod/settings.php:744
#: object/Item.php:138
msgid "Delete"
msgstr ""
#: include/conversation.php:755 mod/content.php:487 mod/content.php:915
#: mod/content.php:916 object/Item.php:356 object/Item.php:357
#, php-format
msgid "View %s's profile @ %s"
msgstr ""
#: include/conversation.php:767 object/Item.php:344
msgid "Categories:"
msgstr ""
#: include/conversation.php:768 object/Item.php:345
msgid "Filed under:"
msgstr ""
#: include/conversation.php:775 mod/content.php:497 mod/content.php:928
#: object/Item.php:370
#, php-format
msgid "%s from %s"
msgstr ""
#: include/conversation.php:791 mod/content.php:513
msgid "View in context"
msgstr ""
#: include/conversation.php:793 include/conversation.php:1256
#: mod/content.php:515 mod/content.php:953 mod/editpost.php:114
#: mod/message.php:337 mod/message.php:522 mod/photos.php:1592
#: mod/wallmessage.php:140 object/Item.php:395
msgid "Please wait"
msgstr ""
#: include/conversation.php:872
msgid "remove"
msgstr ""
#: include/conversation.php:876
msgid "Delete Selected Items"
msgstr ""
#: include/conversation.php:968
msgid "Follow Thread"
msgstr ""
#: include/conversation.php:1100
#, php-format
msgid "%s likes this."
msgstr ""
#: include/conversation.php:1103
#, php-format
msgid "%s doesn't like this."
msgstr ""
#: include/conversation.php:1106
#, php-format
msgid "%s attends."
msgstr ""
#: include/conversation.php:1109
#, php-format
msgid "%s doesn't attend."
msgstr ""
#: include/conversation.php:1112
#, php-format
msgid "%s attends maybe."
msgstr ""
#: include/conversation.php:1122
msgid "and"
msgstr ""
#: include/conversation.php:1128
#, php-format
msgid ", and %d other people"
msgstr ""
#: include/conversation.php:1137
#, php-format
msgid "<span %1$s>%2$d people</span> like this"
msgstr ""
#: include/conversation.php:1138
#, php-format
msgid "%s like this."
msgstr ""
#: include/conversation.php:1141
#, php-format
msgid "<span %1$s>%2$d people</span> don't like this"
msgstr ""
#: include/conversation.php:1142
#, php-format
msgid "%s don't like this."
msgstr ""
#: include/conversation.php:1145
#, php-format
msgid "<span %1$s>%2$d people</span> attend"
msgstr ""
#: include/conversation.php:1146
#, php-format
msgid "%s attend."
msgstr ""
#: include/conversation.php:1149
#, php-format
msgid "<span %1$s>%2$d people</span> don't attend"
msgstr ""
#: include/conversation.php:1150
#, php-format
msgid "%s don't attend."
msgstr ""
#: include/conversation.php:1153
#, php-format
msgid "<span %1$s>%2$d people</span> attend maybe"
msgstr ""
#: include/conversation.php:1154
#, php-format
msgid "%s anttend maybe."
msgstr ""
#: include/conversation.php:1184 include/conversation.php:1200
msgid "Visible to <strong>everybody</strong>"
msgstr ""
#: include/conversation.php:1185 include/conversation.php:1201
#: mod/message.php:271 mod/message.php:278 mod/message.php:418
#: mod/message.php:425 mod/wallmessage.php:114 mod/wallmessage.php:121
msgid "Please enter a link URL:"
msgstr ""
#: include/conversation.php:1186 include/conversation.php:1202
msgid "Please enter a video link/URL:"
msgstr ""
#: include/conversation.php:1187 include/conversation.php:1203
msgid "Please enter an audio link/URL:"
msgstr ""
#: include/conversation.php:1188 include/conversation.php:1204
msgid "Tag term:"
msgstr ""
#: include/conversation.php:1189 include/conversation.php:1205
#: mod/filer.php:30
msgid "Save to Folder:"
msgstr ""
#: include/conversation.php:1190 include/conversation.php:1206
msgid "Where are you right now?"
msgstr ""
#: include/conversation.php:1191
msgid "Delete item(s)?"
msgstr ""
#: include/conversation.php:1237
msgid "Share"
msgstr ""
#: include/conversation.php:1238 mod/editpost.php:100 mod/message.php:335
#: mod/message.php:519 mod/wallmessage.php:138
msgid "Upload photo"
msgstr ""
#: include/conversation.php:1239 mod/editpost.php:101
msgid "upload photo"
msgstr ""
#: include/conversation.php:1240 mod/editpost.php:102
msgid "Attach file"
msgstr ""
#: include/conversation.php:1241 mod/editpost.php:103
msgid "attach file"
msgstr ""
#: include/conversation.php:1242 mod/editpost.php:104 mod/message.php:336
#: mod/message.php:520 mod/wallmessage.php:139
msgid "Insert web link"
msgstr ""
#: include/conversation.php:1243 mod/editpost.php:105
msgid "web link"
msgstr ""
#: include/conversation.php:1244 mod/editpost.php:106
msgid "Insert video link"
msgstr ""
#: include/conversation.php:1245 mod/editpost.php:107
msgid "video link"
msgstr ""
#: include/conversation.php:1246 mod/editpost.php:108
msgid "Insert audio link"
msgstr ""
#: include/conversation.php:1247 mod/editpost.php:109
msgid "audio link"
msgstr ""
#: include/conversation.php:1248 mod/editpost.php:110
msgid "Set your location"
msgstr ""
#: include/conversation.php:1249 mod/editpost.php:111
msgid "set location"
msgstr ""
#: include/conversation.php:1250 mod/editpost.php:112
msgid "Clear browser location"
msgstr ""
#: include/conversation.php:1251 mod/editpost.php:113
msgid "clear location"
msgstr ""
#: include/conversation.php:1253 mod/editpost.php:127
msgid "Set title"
msgstr ""
#: include/conversation.php:1255 mod/editpost.php:129
msgid "Categories (comma-separated list)"
msgstr ""
#: include/conversation.php:1257 mod/editpost.php:115
msgid "Permission settings"
msgstr ""
#: include/conversation.php:1258 mod/editpost.php:144
msgid "permissions"
msgstr ""
#: include/conversation.php:1266 mod/editpost.php:124
msgid "Public post"
msgstr ""
#: include/conversation.php:1271 mod/content.php:737 mod/editpost.php:135
#: mod/events.php:511 mod/photos.php:1613 mod/photos.php:1661
#: mod/photos.php:1747 object/Item.php:714
msgid "Preview"
msgstr ""
#: include/conversation.php:1275 include/items.php:1983 mod/contacts.php:455
#: mod/dfrn_request.php:889 mod/editpost.php:138 mod/fbrowser.php:100
#: mod/fbrowser.php:135 mod/follow.php:124 mod/message.php:209
#: mod/photos.php:240 mod/photos.php:331 mod/settings.php:682
#: mod/settings.php:708 mod/suggest.php:32 mod/tagrm.php:11 mod/tagrm.php:96
#: mod/videos.php:132
msgid "Cancel"
msgstr ""
#: include/conversation.php:1281
msgid "Post to Groups"
msgstr ""
#: include/conversation.php:1282
msgid "Post to Contacts"
msgstr ""
#: include/conversation.php:1283
msgid "Private post"
msgstr ""
#: include/conversation.php:1288 include/identity.php:259 mod/editpost.php:142
msgid "Message"
msgstr ""
#: include/conversation.php:1289 mod/editpost.php:143
msgid "Browser"
msgstr ""
#: include/conversation.php:1445
msgid "View all"
msgstr ""
#: include/conversation.php:1467
msgid "Like"
msgid_plural "Likes"
msgstr[0] ""
msgstr[1] ""
#: include/conversation.php:1470
msgid "Dislike"
msgid_plural "Dislikes"
msgstr[0] ""
msgstr[1] ""
#: include/conversation.php:1476
msgid "Not Attending"
msgid_plural "Not Attending"
msgstr[0] ""
msgstr[1] ""
#: include/conversation.php:1479 include/profile_selectors.php:6
msgid "Undecided"
msgid_plural "Undecided"
msgstr[0] ""
msgstr[1] ""
#: include/datetime.php:58 include/datetime.php:60 mod/profiles.php:697
msgid "Miscellaneous"
msgstr ""
#: include/datetime.php:184 include/identity.php:641
msgid "Birthday:"
msgstr ""
#: include/datetime.php:186 mod/profiles.php:720
msgid "Age: "
msgstr ""
#: include/datetime.php:188
msgid "YYYY-MM-DD or MM-DD"
msgstr ""
#: include/datetime.php:343
msgid "never"
msgstr ""
#: include/datetime.php:349
msgid "less than a second ago"
msgstr ""
#: include/datetime.php:352
msgid "year"
msgstr ""
#: include/datetime.php:352
msgid "years"
msgstr ""
#: include/datetime.php:353 include/event.php:481 mod/cal.php:279
#: mod/events.php:396
msgid "month"
msgstr ""
#: include/datetime.php:353
msgid "months"
msgstr ""
#: include/datetime.php:354 include/event.php:482 mod/cal.php:280
#: mod/events.php:397
msgid "week"
msgstr ""
#: include/datetime.php:354
msgid "weeks"
msgstr ""
#: include/datetime.php:355 include/event.php:483 mod/cal.php:281
#: mod/events.php:398
msgid "day"
msgstr ""
#: include/datetime.php:355
msgid "days"
msgstr ""
#: include/datetime.php:356
msgid "hour"
msgstr ""
#: include/datetime.php:356
msgid "hours"
msgstr ""
#: include/datetime.php:357
msgid "minute"
msgstr ""
#: include/datetime.php:357
msgid "minutes"
msgstr ""
#: include/datetime.php:358
msgid "second"
msgstr ""
#: include/datetime.php:358
msgid "seconds"
msgstr ""
#: include/datetime.php:367
#, php-format
msgid "%1$d %2$s ago"
msgstr ""
#: include/datetime.php:585
#, php-format
msgid "%s's birthday"
msgstr ""
#: include/datetime.php:586 include/dfrn.php:1131
#, php-format
msgid "Happy Birthday %s"
msgstr ""
#: include/dba.php:43 include/dba_pdo.php:72
#, php-format
msgid "Cannot locate DNS info for database server '%s'"
msgstr ""
#: include/dbstructure.php:36
#, php-format
msgid ""
"\n"
"\t\t\tThe friendica developers released update %s recently,\n"
"\t\t\tbut when I tried to install it, something went terribly wrong.\n"
"\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n"
"\t\t\tfriendica developer if you can not help me on your own. My database "
"might be invalid."
msgstr ""
#: include/dbstructure.php:41
#, php-format
msgid ""
"The error message is\n"
"[pre]%s[/pre]"
msgstr ""
#: include/dbstructure.php:199
msgid "Errors encountered creating database tables."
msgstr ""
#: include/dbstructure.php:333 include/dbstructure.php:341
#: include/dbstructure.php:349 include/dbstructure.php:354
#: include/dbstructure.php:359
msgid "Errors encountered performing database changes."
msgstr ""
#: include/delivery.php:427
msgid "(no subject)"
msgstr ""
#: include/delivery.php:439 include/enotify.php:43
msgid "noreply"
msgstr ""
#: include/dfrn.php:1130
#, php-format
msgid "%s\\'s birthday"
msgstr ""
#: include/diaspora.php:2087
msgid "Sharing notification from Diaspora network"
msgstr ""
#: include/diaspora.php:3096
msgid "Attachments:"
msgstr ""
#: include/enotify.php:24
msgid "Friendica Notification"
msgstr ""
@ -414,10 +1149,6 @@ msgstr ""
msgid "%1$s, %2$s Administrator"
msgstr ""
#: include/enotify.php:43 include/delivery.php:482
msgid "noreply"
msgstr ""
#: include/enotify.php:70
#, php-format
msgid "%s <!item_type!>"
@ -692,1455 +1423,6 @@ msgstr ""
msgid "Please visit %s to approve or reject the request."
msgstr ""
#: include/follow.php:81 mod/dfrn_request.php:512
msgid "Disallowed profile URL."
msgstr ""
#: include/follow.php:86
msgid "Connect URL missing."
msgstr ""
#: include/follow.php:114
msgid ""
"This site is not configured to allow communications with other networks."
msgstr ""
#: include/follow.php:115 include/follow.php:129
msgid "No compatible communication protocols or feeds were discovered."
msgstr ""
#: include/follow.php:127
msgid "The profile address specified does not provide adequate information."
msgstr ""
#: include/follow.php:132
msgid "An author or name was not found."
msgstr ""
#: include/follow.php:135
msgid "No browser URL could be matched to this address."
msgstr ""
#: include/follow.php:138
msgid ""
"Unable to match @-style Identity Address with a known protocol or email "
"contact."
msgstr ""
#: include/follow.php:139
msgid "Use mailto: in front of address to force email check."
msgstr ""
#: include/follow.php:145
msgid ""
"The profile address specified belongs to a network which has been disabled "
"on this site."
msgstr ""
#: include/follow.php:150
msgid ""
"Limited profile. This person will be unable to receive direct/personal "
"notifications from you."
msgstr ""
#: include/follow.php:251
msgid "Unable to retrieve contact information."
msgstr ""
#: include/group.php:25
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 ""
#: include/group.php:210
msgid "Default privacy group for new contacts"
msgstr ""
#: include/group.php:243
msgid "Everybody"
msgstr ""
#: include/group.php:266
msgid "edit"
msgstr ""
#: include/group.php:287 mod/newmember.php:61
msgid "Groups"
msgstr ""
#: include/group.php:289
msgid "Edit groups"
msgstr ""
#: include/group.php:291
msgid "Edit group"
msgstr ""
#: include/group.php:292
msgid "Create a new group"
msgstr ""
#: include/group.php:293 mod/group.php:98 mod/group.php:188
msgid "Group Name: "
msgstr ""
#: include/group.php:295
msgid "Contacts not in any group"
msgstr ""
#: include/group.php:297 mod/network.php:200
msgid "add"
msgstr ""
#: include/like.php:164 include/conversation.php:130
#: include/conversation.php:266 include/text.php:1806 mod/subthread.php:88
#: mod/tagger.php:62
msgid "photo"
msgstr ""
#: include/like.php:164 include/conversation.php:125
#: include/conversation.php:134 include/conversation.php:261
#: include/conversation.php:270 include/diaspora.php:1530 mod/subthread.php:88
#: mod/tagger.php:62
msgid "status"
msgstr ""
#: include/like.php:166 include/conversation.php:122
#: include/conversation.php:258 include/text.php:1804
msgid "event"
msgstr ""
#: include/like.php:184 include/conversation.php:141 include/diaspora.php:1526
#, php-format
msgid "%1$s likes %2$s's %3$s"
msgstr ""
#: include/like.php:187 include/conversation.php:144
#, php-format
msgid "%1$s doesn't like %2$s's %3$s"
msgstr ""
#: include/like.php:190
#, php-format
msgid "%1$s is attending %2$s's %3$s"
msgstr ""
#: include/like.php:193
#, php-format
msgid "%1$s is not attending %2$s's %3$s"
msgstr ""
#: include/like.php:196
#, php-format
msgid "%1$s may attend %2$s's %3$s"
msgstr ""
#: include/message.php:15 include/message.php:169
msgid "[no subject]"
msgstr ""
#: include/nav.php:35 mod/navigation.php:19
msgid "Nothing new here"
msgstr ""
#: include/nav.php:39 mod/navigation.php:23
msgid "Clear notifications"
msgstr ""
#: include/nav.php:40 include/text.php:1017
msgid "@name, !forum, #tags, content"
msgstr ""
#: include/nav.php:78 view/theme/frio/theme.php:243 boot.php:1833
msgid "Logout"
msgstr ""
#: include/nav.php:78 view/theme/frio/theme.php:243
msgid "End this session"
msgstr ""
#: include/nav.php:81 include/identity.php:766 mod/contacts.php:645
#: mod/contacts.php:841 view/theme/frio/theme.php:246
msgid "Status"
msgstr ""
#: include/nav.php:81 include/nav.php:161 view/theme/frio/theme.php:246
msgid "Your posts and conversations"
msgstr ""
#: include/nav.php:82 include/identity.php:617 include/identity.php:741
#: include/identity.php:774 mod/newmember.php:32 mod/profperm.php:105
#: mod/contacts.php:647 mod/contacts.php:849 view/theme/frio/theme.php:247
msgid "Profile"
msgstr ""
#: include/nav.php:82 view/theme/frio/theme.php:247
msgid "Your profile page"
msgstr ""
#: include/nav.php:83 include/identity.php:782 mod/fbrowser.php:31
#: view/theme/frio/theme.php:248
msgid "Photos"
msgstr ""
#: include/nav.php:83 view/theme/frio/theme.php:248
msgid "Your photos"
msgstr ""
#: include/nav.php:84 include/identity.php:790 include/identity.php:793
#: view/theme/frio/theme.php:249
msgid "Videos"
msgstr ""
#: include/nav.php:84 view/theme/frio/theme.php:249
msgid "Your videos"
msgstr ""
#: include/nav.php:85 include/nav.php:149 include/identity.php:802
#: include/identity.php:813 mod/cal.php:270 mod/events.php:386
#: view/theme/frio/theme.php:250 view/theme/frio/theme.php:254
msgid "Events"
msgstr ""
#: include/nav.php:85 view/theme/frio/theme.php:250
msgid "Your events"
msgstr ""
#: include/nav.php:86
msgid "Personal notes"
msgstr ""
#: include/nav.php:86
msgid "Your personal notes"
msgstr ""
#: include/nav.php:95 mod/bookmarklet.php:12 boot.php:1834
msgid "Login"
msgstr ""
#: include/nav.php:95
msgid "Sign in"
msgstr ""
#: include/nav.php:105
msgid "Home Page"
msgstr ""
#: include/nav.php:109 mod/register.php:289 boot.php:1809
msgid "Register"
msgstr ""
#: include/nav.php:109
msgid "Create an account"
msgstr ""
#: include/nav.php:115 mod/help.php:47 view/theme/vier/theme.php:293
msgid "Help"
msgstr ""
#: include/nav.php:115
msgid "Help and documentation"
msgstr ""
#: include/nav.php:119
msgid "Apps"
msgstr ""
#: include/nav.php:119
msgid "Addon applications, utilities, games"
msgstr ""
#: include/nav.php:123 include/text.php:1014 mod/search.php:149
msgid "Search"
msgstr ""
#: include/nav.php:123
msgid "Search site content"
msgstr ""
#: include/nav.php:126 include/text.php:1022
msgid "Full Text"
msgstr ""
#: include/nav.php:127 include/text.php:1023
msgid "Tags"
msgstr ""
#: include/nav.php:128 include/nav.php:192 include/identity.php:835
#: include/identity.php:838 include/text.php:1024 mod/contacts.php:800
#: mod/contacts.php:861 mod/viewcontacts.php:121 view/theme/frio/theme.php:257
msgid "Contacts"
msgstr ""
#: include/nav.php:143 include/nav.php:145 mod/community.php:36
msgid "Community"
msgstr ""
#: include/nav.php:143
msgid "Conversations on this site"
msgstr ""
#: include/nav.php:145
msgid "Conversations on the network"
msgstr ""
#: include/nav.php:149 include/identity.php:805 include/identity.php:816
#: view/theme/frio/theme.php:254
msgid "Events and Calendar"
msgstr ""
#: include/nav.php:152
msgid "Directory"
msgstr ""
#: include/nav.php:152
msgid "People directory"
msgstr ""
#: include/nav.php:154
msgid "Information"
msgstr ""
#: include/nav.php:154
msgid "Information about this friendica instance"
msgstr ""
#: include/nav.php:158 view/theme/frio/theme.php:253
msgid "Conversations from your friends"
msgstr ""
#: include/nav.php:159
msgid "Network Reset"
msgstr ""
#: include/nav.php:159
msgid "Load Network page with no filters"
msgstr ""
#: include/nav.php:166
msgid "Friend Requests"
msgstr ""
#: include/nav.php:169 mod/notifications.php:96
msgid "Notifications"
msgstr ""
#: include/nav.php:170
msgid "See all notifications"
msgstr ""
#: include/nav.php:171 mod/settings.php:906
msgid "Mark as seen"
msgstr ""
#: include/nav.php:171
msgid "Mark all system notifications seen"
msgstr ""
#: include/nav.php:175 mod/message.php:179 view/theme/frio/theme.php:255
msgid "Messages"
msgstr ""
#: include/nav.php:175 view/theme/frio/theme.php:255
msgid "Private mail"
msgstr ""
#: include/nav.php:176
msgid "Inbox"
msgstr ""
#: include/nav.php:177
msgid "Outbox"
msgstr ""
#: include/nav.php:178 mod/message.php:16
msgid "New Message"
msgstr ""
#: include/nav.php:181
msgid "Manage"
msgstr ""
#: include/nav.php:181
msgid "Manage other pages"
msgstr ""
#: include/nav.php:184 mod/settings.php:81
msgid "Delegations"
msgstr ""
#: include/nav.php:184 mod/delegate.php:130
msgid "Delegate Page Management"
msgstr ""
#: include/nav.php:186 mod/newmember.php:22 mod/settings.php:111
#: mod/admin.php:1545 mod/admin.php:1815 view/theme/frio/theme.php:256
msgid "Settings"
msgstr ""
#: include/nav.php:186 view/theme/frio/theme.php:256
msgid "Account settings"
msgstr ""
#: include/nav.php:189 include/identity.php:285
msgid "Profiles"
msgstr ""
#: include/nav.php:189
msgid "Manage/Edit Profiles"
msgstr ""
#: include/nav.php:192 view/theme/frio/theme.php:257
msgid "Manage/edit friends and contacts"
msgstr ""
#: include/nav.php:197 mod/admin.php:187
msgid "Admin"
msgstr ""
#: include/nav.php:197
msgid "Site setup and configuration"
msgstr ""
#: include/nav.php:200
msgid "Navigation"
msgstr ""
#: include/nav.php:200
msgid "Site map"
msgstr ""
#: include/oembed.php:266
msgid "Embedded content"
msgstr ""
#: include/oembed.php:274
msgid "Embedding disabled"
msgstr ""
#: include/ostatus.php:1832
#, php-format
msgid "%s is now following %s."
msgstr ""
#: include/ostatus.php:1833
msgid "following"
msgstr ""
#: include/ostatus.php:1836
#, php-format
msgid "%s stopped following %s."
msgstr ""
#: include/ostatus.php:1837
msgid "stopped following"
msgstr ""
#: include/plugin.php:530 include/plugin.php:532
msgid "Click here to upgrade."
msgstr ""
#: include/plugin.php:538
msgid "This action exceeds the limits set by your subscription plan."
msgstr ""
#: include/plugin.php:543
msgid "This action is not available under your subscription plan."
msgstr ""
#: include/security.php:22
msgid "Welcome "
msgstr ""
#: include/security.php:23
msgid "Please upload a profile photo."
msgstr ""
#: include/security.php:26
msgid "Welcome back "
msgstr ""
#: include/security.php:375
msgid ""
"The form security token was not correct. This probably happened because the "
"form has been opened for too long (>3 hours) before submitting it."
msgstr ""
#: include/uimport.php:94
msgid "Error decoding account file"
msgstr ""
#: include/uimport.php:100
msgid "Error! No version data in file! This is not a Friendica account file?"
msgstr ""
#: include/uimport.php:116 include/uimport.php:127
msgid "Error! Cannot check nickname"
msgstr ""
#: include/uimport.php:120 include/uimport.php:131
#, php-format
msgid "User '%s' already exists on this server!"
msgstr ""
#: include/uimport.php:153
msgid "User creation error"
msgstr ""
#: include/uimport.php:173
msgid "User profile creation error"
msgstr ""
#: include/uimport.php:222
#, php-format
msgid "%d contact not imported"
msgid_plural "%d contacts not imported"
msgstr[0] ""
msgstr[1] ""
#: include/uimport.php:292
msgid "Done. You can now login with your username and password"
msgstr ""
#: include/user.php:39 mod/settings.php:375
msgid "Passwords do not match. Password unchanged."
msgstr ""
#: include/user.php:48
msgid "An invitation is required."
msgstr ""
#: include/user.php:53
msgid "Invitation could not be verified."
msgstr ""
#: include/user.php:61
msgid "Invalid OpenID url"
msgstr ""
#: include/user.php:82
msgid "Please enter the required information."
msgstr ""
#: include/user.php:96
msgid "Please use a shorter name."
msgstr ""
#: include/user.php:98
msgid "Name too short."
msgstr ""
#: include/user.php:113
msgid "That doesn't appear to be your full (First Last) name."
msgstr ""
#: include/user.php:118
msgid "Your email domain is not among those allowed on this site."
msgstr ""
#: include/user.php:121
msgid "Not a valid email address."
msgstr ""
#: include/user.php:134
msgid "Cannot use that email."
msgstr ""
#: include/user.php:140
msgid "Your \"nickname\" can only contain \"a-z\", \"0-9\" and \"_\"."
msgstr ""
#: include/user.php:147 include/user.php:245
msgid "Nickname is already registered. Please choose another."
msgstr ""
#: include/user.php:157
msgid ""
"Nickname was once registered here and may not be re-used. Please choose "
"another."
msgstr ""
#: include/user.php:173
msgid "SERIOUS ERROR: Generation of security keys failed."
msgstr ""
#: include/user.php:231
msgid "An error occurred during registration. Please try again."
msgstr ""
#: include/user.php:256 view/theme/duepuntozero/config.php:43
#: view/theme/clean/config.php:60
msgid "default"
msgstr ""
#: include/user.php:266
msgid "An error occurred creating your default profile. Please try again."
msgstr ""
#: include/user.php:326 include/user.php:334 include/user.php:342
#: mod/profile_photo.php:74 mod/profile_photo.php:82 mod/profile_photo.php:90
#: mod/profile_photo.php:215 mod/profile_photo.php:310
#: mod/profile_photo.php:320 mod/photos.php:68 mod/photos.php:182
#: mod/photos.php:768 mod/photos.php:1231 mod/photos.php:1252
#: mod/photos.php:1839
msgid "Profile Photos"
msgstr ""
#: include/user.php:417
#, php-format
msgid ""
"\n"
"\t\tDear %1$s,\n"
"\t\t\tThank you for registering at %2$s. Your account is pending for "
"approval by the administrator.\n"
"\t"
msgstr ""
#: include/user.php:427
#, php-format
msgid "Registration at %s"
msgstr ""
#: include/user.php:437
#, php-format
msgid ""
"\n"
"\t\tDear %1$s,\n"
"\t\t\tThank you for registering at %2$s. Your account has been created.\n"
"\t"
msgstr ""
#: include/user.php:441
#, php-format
msgid ""
"\n"
"\t\tThe login details are as follows:\n"
"\t\t\tSite Location:\t%3$s\n"
"\t\t\tLogin Name:\t%1$s\n"
"\t\t\tPassword:\t%5$s\n"
"\n"
"\t\tYou may change your password from your account \"Settings\" page after "
"logging\n"
"\t\tin.\n"
"\n"
"\t\tPlease take a few moments to review the other account settings on that "
"page.\n"
"\n"
"\t\tYou may also wish to add some basic information to your default profile\n"
"\t\t(on the \"Profiles\" page) so that other people can easily find you.\n"
"\n"
"\t\tWe recommend setting your full name, adding a profile photo,\n"
"\t\tadding some profile \"keywords\" (very useful in making new friends) - "
"and\n"
"\t\tperhaps what country you live in; if you do not wish to be more "
"specific\n"
"\t\tthan that.\n"
"\n"
"\t\tWe fully respect your right to privacy, and none of these items are "
"necessary.\n"
"\t\tIf you are new and do not know anybody here, they may help\n"
"\t\tyou to make some new and interesting friends.\n"
"\n"
"\n"
"\t\tThank you and welcome to %2$s."
msgstr ""
#: include/user.php:473 mod/admin.php:1234
#, php-format
msgid "Registration details for %s"
msgstr ""
#: include/acl_selectors.php:341
msgid "Post to Email"
msgstr ""
#: include/acl_selectors.php:346
#, php-format
msgid "Connectors disabled, since \"%s\" is enabled."
msgstr ""
#: include/acl_selectors.php:347 mod/settings.php:1188
msgid "Hide your profile details from unknown viewers?"
msgstr ""
#: include/acl_selectors.php:352
msgid "Visible to everybody"
msgstr ""
#: include/acl_selectors.php:353 view/theme/vier/config.php:108
msgid "show"
msgstr ""
#: include/acl_selectors.php:354 view/theme/vier/config.php:108
msgid "don't show"
msgstr ""
#: include/acl_selectors.php:360 mod/editpost.php:123
msgid "CC: email addresses"
msgstr ""
#: include/acl_selectors.php:361 mod/editpost.php:130
msgid "Example: bob@example.com, mary@example.com"
msgstr ""
#: include/acl_selectors.php:363 mod/events.php:516 mod/photos.php:1176
#: mod/photos.php:1558
msgid "Permissions"
msgstr ""
#: include/acl_selectors.php:364
msgid "Close"
msgstr ""
#: include/conversation.php:147
#, php-format
msgid "%1$s attends %2$s's %3$s"
msgstr ""
#: include/conversation.php:150
#, php-format
msgid "%1$s doesn't attend %2$s's %3$s"
msgstr ""
#: include/conversation.php:153
#, php-format
msgid "%1$s attends maybe %2$s's %3$s"
msgstr ""
#: include/conversation.php:185 mod/dfrn_confirm.php:478
#, php-format
msgid "%1$s is now friends with %2$s"
msgstr ""
#: include/conversation.php:219
#, php-format
msgid "%1$s poked %2$s"
msgstr ""
#: include/conversation.php:239 mod/mood.php:63
#, php-format
msgid "%1$s is currently %2$s"
msgstr ""
#: include/conversation.php:278 mod/tagger.php:95
#, php-format
msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr ""
#: include/conversation.php:303
msgid "post/item"
msgstr ""
#: include/conversation.php:304
#, php-format
msgid "%1$s marked %2$s's %3$s as favorite"
msgstr ""
#: include/conversation.php:587 mod/content.php:372 mod/photos.php:1629
#: mod/profiles.php:346
msgid "Likes"
msgstr ""
#: include/conversation.php:587 mod/content.php:372 mod/photos.php:1629
#: mod/profiles.php:350
msgid "Dislikes"
msgstr ""
#: include/conversation.php:588 include/conversation.php:1472
#: mod/content.php:373 mod/photos.php:1630
msgid "Attending"
msgid_plural "Attending"
msgstr[0] ""
msgstr[1] ""
#: include/conversation.php:588 mod/content.php:373 mod/photos.php:1630
msgid "Not attending"
msgstr ""
#: include/conversation.php:588 mod/content.php:373 mod/photos.php:1630
msgid "Might attend"
msgstr ""
#: include/conversation.php:710 mod/content.php:453 mod/content.php:759
#: mod/photos.php:1703 object/Item.php:137
msgid "Select"
msgstr ""
#: include/conversation.php:711 mod/content.php:454 mod/content.php:760
#: mod/group.php:181 mod/settings.php:744 mod/contacts.php:816
#: mod/contacts.php:1015 mod/photos.php:1704 mod/admin.php:1435
#: object/Item.php:138
msgid "Delete"
msgstr ""
#: include/conversation.php:755 mod/content.php:487 mod/content.php:915
#: mod/content.php:916 object/Item.php:382 object/Item.php:383
#, php-format
msgid "View %s's profile @ %s"
msgstr ""
#: include/conversation.php:767 object/Item.php:370
msgid "Categories:"
msgstr ""
#: include/conversation.php:768 object/Item.php:371
msgid "Filed under:"
msgstr ""
#: include/conversation.php:775 mod/content.php:497 mod/content.php:928
#: object/Item.php:396
#, php-format
msgid "%s from %s"
msgstr ""
#: include/conversation.php:791 mod/content.php:513
msgid "View in context"
msgstr ""
#: include/conversation.php:793 include/conversation.php:1255
#: mod/content.php:515 mod/content.php:953 mod/editpost.php:114
#: mod/message.php:337 mod/message.php:522 mod/wallmessage.php:140
#: mod/photos.php:1592 object/Item.php:421
msgid "Please wait"
msgstr ""
#: include/conversation.php:872
msgid "remove"
msgstr ""
#: include/conversation.php:876
msgid "Delete Selected Items"
msgstr ""
#: include/conversation.php:968
msgid "Follow Thread"
msgstr ""
#: include/conversation.php:969 include/Contact.php:445
msgid "View Status"
msgstr ""
#: include/conversation.php:970 include/conversation.php:986
#: include/Contact.php:388 include/Contact.php:401 include/Contact.php:446
#: mod/allfriends.php:68 mod/directory.php:157 mod/dirfind.php:209
#: mod/match.php:73 mod/suggest.php:82
msgid "View Profile"
msgstr ""
#: include/conversation.php:971 include/Contact.php:447
msgid "View Photos"
msgstr ""
#: include/conversation.php:972 include/Contact.php:448
msgid "Network Posts"
msgstr ""
#: include/conversation.php:973 include/Contact.php:449
msgid "View Contact"
msgstr ""
#: include/conversation.php:974 include/Contact.php:451
msgid "Send PM"
msgstr ""
#: include/conversation.php:978 include/Contact.php:452
msgid "Poke"
msgstr ""
#: include/conversation.php:983 include/contact_widgets.php:32
#: include/Contact.php:402 mod/allfriends.php:69 mod/dirfind.php:210
#: mod/follow.php:106 mod/match.php:74 mod/suggest.php:83 mod/contacts.php:610
msgid "Connect/Follow"
msgstr ""
#: include/conversation.php:1099
#, php-format
msgid "%s likes this."
msgstr ""
#: include/conversation.php:1102
#, php-format
msgid "%s doesn't like this."
msgstr ""
#: include/conversation.php:1105
#, php-format
msgid "%s attends."
msgstr ""
#: include/conversation.php:1108
#, php-format
msgid "%s doesn't attend."
msgstr ""
#: include/conversation.php:1111
#, php-format
msgid "%s attends maybe."
msgstr ""
#: include/conversation.php:1121
msgid "and"
msgstr ""
#: include/conversation.php:1127
#, php-format
msgid ", and %d other people"
msgstr ""
#: include/conversation.php:1136
#, php-format
msgid "<span %1$s>%2$d people</span> like this"
msgstr ""
#: include/conversation.php:1137
#, php-format
msgid "%s like this."
msgstr ""
#: include/conversation.php:1140
#, php-format
msgid "<span %1$s>%2$d people</span> don't like this"
msgstr ""
#: include/conversation.php:1141
#, php-format
msgid "%s don't like this."
msgstr ""
#: include/conversation.php:1144
#, php-format
msgid "<span %1$s>%2$d people</span> attend"
msgstr ""
#: include/conversation.php:1145
#, php-format
msgid "%s attend."
msgstr ""
#: include/conversation.php:1148
#, php-format
msgid "<span %1$s>%2$d people</span> don't attend"
msgstr ""
#: include/conversation.php:1149
#, php-format
msgid "%s don't attend."
msgstr ""
#: include/conversation.php:1152
#, php-format
msgid "<span %1$s>%2$d people</span> attend maybe"
msgstr ""
#: include/conversation.php:1153
#, php-format
msgid "%s anttend maybe."
msgstr ""
#: include/conversation.php:1183 include/conversation.php:1199
msgid "Visible to <strong>everybody</strong>"
msgstr ""
#: include/conversation.php:1184 include/conversation.php:1200
#: mod/message.php:271 mod/message.php:278 mod/message.php:418
#: mod/message.php:425 mod/wallmessage.php:114 mod/wallmessage.php:121
msgid "Please enter a link URL:"
msgstr ""
#: include/conversation.php:1185 include/conversation.php:1201
msgid "Please enter a video link/URL:"
msgstr ""
#: include/conversation.php:1186 include/conversation.php:1202
msgid "Please enter an audio link/URL:"
msgstr ""
#: include/conversation.php:1187 include/conversation.php:1203
msgid "Tag term:"
msgstr ""
#: include/conversation.php:1188 include/conversation.php:1204
#: mod/filer.php:30
msgid "Save to Folder:"
msgstr ""
#: include/conversation.php:1189 include/conversation.php:1205
msgid "Where are you right now?"
msgstr ""
#: include/conversation.php:1190
msgid "Delete item(s)?"
msgstr ""
#: include/conversation.php:1236
msgid "Share"
msgstr ""
#: include/conversation.php:1237 mod/editpost.php:100 mod/message.php:335
#: mod/message.php:519 mod/wallmessage.php:138
msgid "Upload photo"
msgstr ""
#: include/conversation.php:1238 mod/editpost.php:101
msgid "upload photo"
msgstr ""
#: include/conversation.php:1239 mod/editpost.php:102
msgid "Attach file"
msgstr ""
#: include/conversation.php:1240 mod/editpost.php:103
msgid "attach file"
msgstr ""
#: include/conversation.php:1241 mod/editpost.php:104 mod/message.php:336
#: mod/message.php:520 mod/wallmessage.php:139
msgid "Insert web link"
msgstr ""
#: include/conversation.php:1242 mod/editpost.php:105
msgid "web link"
msgstr ""
#: include/conversation.php:1243 mod/editpost.php:106
msgid "Insert video link"
msgstr ""
#: include/conversation.php:1244 mod/editpost.php:107
msgid "video link"
msgstr ""
#: include/conversation.php:1245 mod/editpost.php:108
msgid "Insert audio link"
msgstr ""
#: include/conversation.php:1246 mod/editpost.php:109
msgid "audio link"
msgstr ""
#: include/conversation.php:1247 mod/editpost.php:110
msgid "Set your location"
msgstr ""
#: include/conversation.php:1248 mod/editpost.php:111
msgid "set location"
msgstr ""
#: include/conversation.php:1249 mod/editpost.php:112
msgid "Clear browser location"
msgstr ""
#: include/conversation.php:1250 mod/editpost.php:113
msgid "clear location"
msgstr ""
#: include/conversation.php:1252 mod/editpost.php:127
msgid "Set title"
msgstr ""
#: include/conversation.php:1254 mod/editpost.php:129
msgid "Categories (comma-separated list)"
msgstr ""
#: include/conversation.php:1256 mod/editpost.php:115
msgid "Permission settings"
msgstr ""
#: include/conversation.php:1257 mod/editpost.php:144
msgid "permissions"
msgstr ""
#: include/conversation.php:1265 mod/editpost.php:124
msgid "Public post"
msgstr ""
#: include/conversation.php:1270 mod/content.php:737 mod/editpost.php:135
#: mod/events.php:511 mod/photos.php:1613 mod/photos.php:1661
#: mod/photos.php:1747 object/Item.php:741
msgid "Preview"
msgstr ""
#: include/conversation.php:1274 include/items.php:1983 mod/follow.php:124
#: mod/settings.php:682 mod/settings.php:708 mod/suggest.php:32
#: mod/tagrm.php:11 mod/tagrm.php:96 mod/videos.php:132 mod/contacts.php:455
#: mod/editpost.php:138 mod/fbrowser.php:100 mod/fbrowser.php:135
#: mod/message.php:209 mod/photos.php:240 mod/photos.php:331
#: mod/dfrn_request.php:889
msgid "Cancel"
msgstr ""
#: include/conversation.php:1280
msgid "Post to Groups"
msgstr ""
#: include/conversation.php:1281
msgid "Post to Contacts"
msgstr ""
#: include/conversation.php:1282
msgid "Private post"
msgstr ""
#: include/conversation.php:1287 include/identity.php:259 mod/editpost.php:142
msgid "Message"
msgstr ""
#: include/conversation.php:1288 mod/editpost.php:143
msgid "Browser"
msgstr ""
#: include/conversation.php:1444
msgid "View all"
msgstr ""
#: include/conversation.php:1466
msgid "Like"
msgid_plural "Likes"
msgstr[0] ""
msgstr[1] ""
#: include/conversation.php:1469
msgid "Dislike"
msgid_plural "Dislikes"
msgstr[0] ""
msgstr[1] ""
#: include/conversation.php:1475
msgid "Not Attending"
msgid_plural "Not Attending"
msgstr[0] ""
msgstr[1] ""
#: include/delivery.php:470
msgid "(no subject)"
msgstr ""
#: include/features.php:65
msgid "General Features"
msgstr ""
#: include/features.php:67
msgid "Multiple Profiles"
msgstr ""
#: include/features.php:67
msgid "Ability to create multiple profiles"
msgstr ""
#: include/features.php:68
msgid "Photo Location"
msgstr ""
#: include/features.php:68
msgid ""
"Photo metadata is normally stripped. This extracts the location (if present) "
"prior to stripping metadata and links it to a map."
msgstr ""
#: include/features.php:69
msgid "Export Public Calendar"
msgstr ""
#: include/features.php:69
msgid "Ability for visitors to download the public calendar"
msgstr ""
#: include/features.php:74
msgid "Post Composition Features"
msgstr ""
#: include/features.php:75
msgid "Post Preview"
msgstr ""
#: include/features.php:75
msgid "Allow previewing posts and comments before publishing them"
msgstr ""
#: include/features.php:76
msgid "Auto-mention Forums"
msgstr ""
#: include/features.php:76
msgid ""
"Add/remove mention when a forum page is selected/deselected in ACL window."
msgstr ""
#: include/features.php:81
msgid "Network Sidebar Widgets"
msgstr ""
#: include/features.php:82
msgid "Search by Date"
msgstr ""
#: include/features.php:82
msgid "Ability to select posts by date ranges"
msgstr ""
#: include/features.php:83 include/features.php:113
msgid "List Forums"
msgstr ""
#: include/features.php:83
msgid "Enable widget to display the forums your are connected with"
msgstr ""
#: include/features.php:84
msgid "Group Filter"
msgstr ""
#: include/features.php:84
msgid "Enable widget to display Network posts only from selected group"
msgstr ""
#: include/features.php:85
msgid "Network Filter"
msgstr ""
#: include/features.php:85
msgid "Enable widget to display Network posts only from selected network"
msgstr ""
#: include/features.php:86 mod/network.php:199 mod/search.php:34
msgid "Saved Searches"
msgstr ""
#: include/features.php:86
msgid "Save search terms for re-use"
msgstr ""
#: include/features.php:91
msgid "Network Tabs"
msgstr ""
#: include/features.php:92
msgid "Network Personal Tab"
msgstr ""
#: include/features.php:92
msgid "Enable tab to display only Network posts that you've interacted on"
msgstr ""
#: include/features.php:93
msgid "Network New Tab"
msgstr ""
#: include/features.php:93
msgid "Enable tab to display only new Network posts (from the last 12 hours)"
msgstr ""
#: include/features.php:94
msgid "Network Shared Links Tab"
msgstr ""
#: include/features.php:94
msgid "Enable tab to display only Network posts with links in them"
msgstr ""
#: include/features.php:99
msgid "Post/Comment Tools"
msgstr ""
#: include/features.php:100
msgid "Multiple Deletion"
msgstr ""
#: include/features.php:100
msgid "Select and delete multiple posts/comments at once"
msgstr ""
#: include/features.php:101
msgid "Edit Sent Posts"
msgstr ""
#: include/features.php:101
msgid "Edit and correct posts and comments after sending"
msgstr ""
#: include/features.php:102
msgid "Tagging"
msgstr ""
#: include/features.php:102
msgid "Ability to tag existing posts"
msgstr ""
#: include/features.php:103
msgid "Post Categories"
msgstr ""
#: include/features.php:103
msgid "Add categories to your posts"
msgstr ""
#: include/features.php:104 include/contact_widgets.php:150
msgid "Saved Folders"
msgstr ""
#: include/features.php:104
msgid "Ability to file posts under folders"
msgstr ""
#: include/features.php:105
msgid "Dislike Posts"
msgstr ""
#: include/features.php:105
msgid "Ability to dislike posts/comments"
msgstr ""
#: include/features.php:106
msgid "Star Posts"
msgstr ""
#: include/features.php:106
msgid "Ability to mark special posts with a star indicator"
msgstr ""
#: include/features.php:107
msgid "Mute Post Notifications"
msgstr ""
#: include/features.php:107
msgid "Ability to mute notifications for a thread"
msgstr ""
#: include/features.php:112
msgid "Advanced Profile Settings"
msgstr ""
#: include/features.php:113
msgid "Show visitors public community forums at the Advanced Profile Page"
msgstr ""
#: include/photos.php:57 include/photos.php:67 mod/fbrowser.php:40
#: mod/fbrowser.php:61 mod/photos.php:182 mod/photos.php:1106
#: mod/photos.php:1231 mod/photos.php:1252 mod/photos.php:1817
#: mod/photos.php:1829
msgid "Contact Photos"
msgstr ""
#: include/datetime.php:58 include/datetime.php:60 mod/profiles.php:697
msgid "Miscellaneous"
msgstr ""
#: include/datetime.php:184 include/identity.php:641
msgid "Birthday:"
msgstr ""
#: include/datetime.php:186 mod/profiles.php:720
msgid "Age: "
msgstr ""
#: include/datetime.php:188
msgid "YYYY-MM-DD or MM-DD"
msgstr ""
#: include/datetime.php:343
msgid "never"
msgstr ""
#: include/datetime.php:349
msgid "less than a second ago"
msgstr ""
#: include/datetime.php:352
msgid "year"
msgstr ""
#: include/datetime.php:352
msgid "years"
msgstr ""
#: include/datetime.php:353 include/event.php:481 mod/cal.php:279
#: mod/events.php:396
msgid "month"
msgstr ""
#: include/datetime.php:353
msgid "months"
msgstr ""
#: include/datetime.php:354 include/event.php:482 mod/cal.php:280
#: mod/events.php:397
msgid "week"
msgstr ""
#: include/datetime.php:354
msgid "weeks"
msgstr ""
#: include/datetime.php:355 include/event.php:483 mod/cal.php:281
#: mod/events.php:398
msgid "day"
msgstr ""
#: include/datetime.php:355
msgid "days"
msgstr ""
#: include/datetime.php:356
msgid "hour"
msgstr ""
#: include/datetime.php:356
msgid "hours"
msgstr ""
#: include/datetime.php:357
msgid "minute"
msgstr ""
#: include/datetime.php:357
msgid "minutes"
msgstr ""
#: include/datetime.php:358
msgid "second"
msgstr ""
#: include/datetime.php:358
msgid "seconds"
msgstr ""
#: include/datetime.php:367
#, php-format
msgid "%1$d %2$s ago"
msgstr ""
#: include/datetime.php:585
#, php-format
msgid "%s's birthday"
msgstr ""
#: include/datetime.php:586 include/dfrn.php:1122
#, php-format
msgid "Happy Birthday %s"
msgstr ""
#: include/event.php:16 include/bb2diaspora.php:199 mod/localtime.php:12
msgid "l F d, Y \\@ g:i A"
msgstr ""
#: include/event.php:33 include/event.php:51 include/event.php:488
#: include/bb2diaspora.php:205
msgid "Starts:"
msgstr ""
#: include/event.php:36 include/event.php:57 include/event.php:489
#: include/bb2diaspora.php:213
msgid "Finishes:"
msgstr ""
#: include/event.php:39 include/event.php:63 include/event.php:490
#: include/bb2diaspora.php:221 include/identity.php:331 mod/directory.php:139
#: mod/contacts.php:636 mod/events.php:501 mod/notifications.php:238
msgid "Location:"
msgstr ""
#: include/event.php:442
msgid "Sun"
msgstr ""
@ -2325,235 +1607,301 @@ msgstr ""
msgid "Export calendar as csv"
msgstr ""
#: include/dfrn.php:1121
#, php-format
msgid "%s\\'s birthday"
#: include/features.php:65
msgid "General Features"
msgstr ""
#: include/contact_selectors.php:32
msgid "Unknown | Not categorised"
#: include/features.php:67
msgid "Multiple Profiles"
msgstr ""
#: include/contact_selectors.php:33
msgid "Block immediately"
#: include/features.php:67
msgid "Ability to create multiple profiles"
msgstr ""
#: include/contact_selectors.php:34
msgid "Shady, spammer, self-marketer"
#: include/features.php:68
msgid "Photo Location"
msgstr ""
#: include/contact_selectors.php:35
msgid "Known to me, but no opinion"
#: include/features.php:68
msgid ""
"Photo metadata is normally stripped. This extracts the location (if present) "
"prior to stripping metadata and links it to a map."
msgstr ""
#: include/contact_selectors.php:36
msgid "OK, probably harmless"
#: include/features.php:69
msgid "Export Public Calendar"
msgstr ""
#: include/contact_selectors.php:37
msgid "Reputable, has my trust"
#: include/features.php:69
msgid "Ability for visitors to download the public calendar"
msgstr ""
#: include/contact_selectors.php:56 mod/admin.php:901
msgid "Frequently"
#: include/features.php:74
msgid "Post Composition Features"
msgstr ""
#: include/contact_selectors.php:57 mod/admin.php:902
msgid "Hourly"
#: include/features.php:75
msgid "Post Preview"
msgstr ""
#: include/contact_selectors.php:58 mod/admin.php:903
msgid "Twice daily"
#: include/features.php:75
msgid "Allow previewing posts and comments before publishing them"
msgstr ""
#: include/contact_selectors.php:59 mod/admin.php:904
msgid "Daily"
#: include/features.php:76
msgid "Auto-mention Forums"
msgstr ""
#: include/contact_selectors.php:60
msgid "Weekly"
#: include/features.php:76
msgid ""
"Add/remove mention when a forum page is selected/deselected in ACL window."
msgstr ""
#: include/contact_selectors.php:61
msgid "Monthly"
#: include/features.php:81
msgid "Network Sidebar Widgets"
msgstr ""
#: include/contact_selectors.php:76 mod/dfrn_request.php:881
msgid "Friendica"
#: include/features.php:82
msgid "Search by Date"
msgstr ""
#: include/contact_selectors.php:77
msgid "OStatus"
#: include/features.php:82
msgid "Ability to select posts by date ranges"
msgstr ""
#: include/contact_selectors.php:78
msgid "RSS/Atom"
#: include/features.php:83 include/features.php:113
msgid "List Forums"
msgstr ""
#: include/contact_selectors.php:79 include/contact_selectors.php:86
#: mod/admin.php:1417 mod/admin.php:1430 mod/admin.php:1443 mod/admin.php:1461
msgid "Email"
#: include/features.php:83
msgid "Enable widget to display the forums your are connected with"
msgstr ""
#: include/contact_selectors.php:80 mod/settings.php:848
#: mod/dfrn_request.php:883
msgid "Diaspora"
#: include/features.php:84
msgid "Group Filter"
msgstr ""
#: include/contact_selectors.php:81
msgid "Facebook"
#: include/features.php:84
msgid "Enable widget to display Network posts only from selected group"
msgstr ""
#: include/contact_selectors.php:82
msgid "Zot!"
#: include/features.php:85
msgid "Network Filter"
msgstr ""
#: include/contact_selectors.php:83
msgid "LinkedIn"
#: include/features.php:85
msgid "Enable widget to display Network posts only from selected network"
msgstr ""
#: include/contact_selectors.php:84
msgid "XMPP/IM"
#: include/features.php:86 mod/network.php:199 mod/search.php:34
msgid "Saved Searches"
msgstr ""
#: include/contact_selectors.php:85
msgid "MySpace"
#: include/features.php:86
msgid "Save search terms for re-use"
msgstr ""
#: include/contact_selectors.php:87
msgid "Google+"
#: include/features.php:91
msgid "Network Tabs"
msgstr ""
#: include/contact_selectors.php:88
msgid "pump.io"
#: include/features.php:92
msgid "Network Personal Tab"
msgstr ""
#: include/contact_selectors.php:89
msgid "Twitter"
#: include/features.php:92
msgid "Enable tab to display only Network posts that you've interacted on"
msgstr ""
#: include/contact_selectors.php:90
msgid "Diaspora Connector"
#: include/features.php:93
msgid "Network New Tab"
msgstr ""
#: include/contact_selectors.php:91
msgid "GNU Social"
#: include/features.php:93
msgid "Enable tab to display only new Network posts (from the last 12 hours)"
msgstr ""
#: include/contact_selectors.php:92
msgid "pnut"
#: include/features.php:94
msgid "Network Shared Links Tab"
msgstr ""
#: include/contact_selectors.php:93
msgid "App.net"
#: include/features.php:94
msgid "Enable tab to display only Network posts with links in them"
msgstr ""
#: include/contact_selectors.php:104
msgid "Hubzilla/Redmatrix"
#: include/features.php:99
msgid "Post/Comment Tools"
msgstr ""
#: include/contact_widgets.php:6
msgid "Add New Contact"
#: include/features.php:100
msgid "Multiple Deletion"
msgstr ""
#: include/contact_widgets.php:7
msgid "Enter address or web location"
#: include/features.php:100
msgid "Select and delete multiple posts/comments at once"
msgstr ""
#: include/contact_widgets.php:8
msgid "Example: bob@example.com, http://example.com/barbara"
#: include/features.php:101
msgid "Edit Sent Posts"
msgstr ""
#: include/contact_widgets.php:10 include/identity.php:219
#: mod/allfriends.php:85 mod/dirfind.php:207 mod/match.php:89
#: mod/suggest.php:101
msgid "Connect"
#: include/features.php:101
msgid "Edit and correct posts and comments after sending"
msgstr ""
#: include/contact_widgets.php:24
#, php-format
msgid "%d invitation available"
msgid_plural "%d invitations available"
msgstr[0] ""
msgstr[1] ""
#: include/contact_widgets.php:30
msgid "Find People"
#: include/features.php:102
msgid "Tagging"
msgstr ""
#: include/contact_widgets.php:31
msgid "Enter name or interest"
#: include/features.php:102
msgid "Ability to tag existing posts"
msgstr ""
#: include/contact_widgets.php:33
msgid "Examples: Robert Morgenstein, Fishing"
#: include/features.php:103
msgid "Post Categories"
msgstr ""
#: include/contact_widgets.php:34 mod/directory.php:206 mod/contacts.php:806
msgid "Find"
#: include/features.php:103
msgid "Add categories to your posts"
msgstr ""
#: include/contact_widgets.php:35 mod/suggest.php:114
#: view/theme/vier/theme.php:198
msgid "Friend Suggestions"
#: include/features.php:104
msgid "Ability to file posts under folders"
msgstr ""
#: include/contact_widgets.php:36 view/theme/vier/theme.php:197
msgid "Similar Interests"
#: include/features.php:105
msgid "Dislike Posts"
msgstr ""
#: include/contact_widgets.php:37
msgid "Random Profile"
#: include/features.php:105
msgid "Ability to dislike posts/comments"
msgstr ""
#: include/contact_widgets.php:38 view/theme/vier/theme.php:199
msgid "Invite Friends"
#: include/features.php:106
msgid "Star Posts"
msgstr ""
#: include/contact_widgets.php:115
msgid "Networks"
#: include/features.php:106
msgid "Ability to mark special posts with a star indicator"
msgstr ""
#: include/contact_widgets.php:118
msgid "All Networks"
#: include/features.php:107
msgid "Mute Post Notifications"
msgstr ""
#: include/contact_widgets.php:153 include/contact_widgets.php:187
msgid "Everything"
#: include/features.php:107
msgid "Ability to mute notifications for a thread"
msgstr ""
#: include/contact_widgets.php:184
msgid "Categories"
#: include/features.php:112
msgid "Advanced Profile Settings"
msgstr ""
#: include/contact_widgets.php:248
#, php-format
msgid "%d contact in common"
msgid_plural "%d contacts in common"
msgstr[0] ""
msgstr[1] ""
#: include/api.php:1021
#, php-format
msgid "Daily posting limit of %d posts reached. The post was rejected."
#: include/features.php:113
msgid "Show visitors public community forums at the Advanced Profile Page"
msgstr ""
#: include/api.php:1041
#, php-format
msgid "Weekly posting limit of %d posts reached. The post was rejected."
#: include/follow.php:81 mod/dfrn_request.php:512
msgid "Disallowed profile URL."
msgstr ""
#: include/api.php:1062
#, php-format
msgid "Monthly posting limit of %d posts reached. The post was rejected."
#: include/follow.php:86
msgid "Connect URL missing."
msgstr ""
#: include/diaspora.php:2087
msgid "Sharing notification from Diaspora network"
#: include/follow.php:114
msgid ""
"This site is not configured to allow communications with other networks."
msgstr ""
#: include/diaspora.php:3096
msgid "Attachments:"
#: include/follow.php:115 include/follow.php:129
msgid "No compatible communication protocols or feeds were discovered."
msgstr ""
#: include/follow.php:127
msgid "The profile address specified does not provide adequate information."
msgstr ""
#: include/follow.php:132
msgid "An author or name was not found."
msgstr ""
#: include/follow.php:135
msgid "No browser URL could be matched to this address."
msgstr ""
#: include/follow.php:138
msgid ""
"Unable to match @-style Identity Address with a known protocol or email "
"contact."
msgstr ""
#: include/follow.php:139
msgid "Use mailto: in front of address to force email check."
msgstr ""
#: include/follow.php:145
msgid ""
"The profile address specified belongs to a network which has been disabled "
"on this site."
msgstr ""
#: include/follow.php:150
msgid ""
"Limited profile. This person will be unable to receive direct/personal "
"notifications from you."
msgstr ""
#: include/follow.php:251
msgid "Unable to retrieve contact information."
msgstr ""
#: include/group.php:25
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 ""
#: include/group.php:210
msgid "Default privacy group for new contacts"
msgstr ""
#: include/group.php:243
msgid "Everybody"
msgstr ""
#: include/group.php:266
msgid "edit"
msgstr ""
#: include/group.php:287 mod/newmember.php:61
msgid "Groups"
msgstr ""
#: include/group.php:289
msgid "Edit groups"
msgstr ""
#: include/group.php:291
msgid "Edit group"
msgstr ""
#: include/group.php:292
msgid "Create a new group"
msgstr ""
#: include/group.php:293 mod/group.php:98 mod/group.php:188
msgid "Group Name: "
msgstr ""
#: include/group.php:295
msgid "Contacts not in any group"
msgstr ""
#: include/group.php:297 mod/network.php:200
msgid "add"
msgstr ""
#: include/identity.php:43
@ -2572,6 +1920,10 @@ msgstr ""
msgid "Atom feed"
msgstr ""
#: include/identity.php:285 include/nav.php:189
msgid "Profiles"
msgstr ""
#: include/identity.php:285
msgid "Manage/edit profiles"
msgstr ""
@ -2609,8 +1961,8 @@ msgstr ""
msgid "Homepage:"
msgstr ""
#: include/identity.php:340 include/identity.php:684 mod/directory.php:147
#: mod/contacts.php:640 mod/notifications.php:240
#: include/identity.php:340 include/identity.php:684 mod/contacts.php:640
#: mod/directory.php:147 mod/notifications.php:240
msgid "About:"
msgstr ""
@ -2654,6 +2006,12 @@ msgstr ""
msgid "Events this week:"
msgstr ""
#: include/identity.php:617 include/identity.php:741 include/identity.php:774
#: include/nav.php:82 mod/contacts.php:647 mod/contacts.php:849
#: mod/newmember.php:32 mod/profperm.php:105 view/theme/frio/theme.php:247
msgid "Profile"
msgstr ""
#: include/identity.php:626 mod/settings.php:1286
msgid "Full Name:"
msgstr ""
@ -2683,7 +2041,7 @@ msgstr ""
msgid "Hometown:"
msgstr ""
#: include/identity.php:672 mod/follow.php:137 mod/contacts.php:642
#: include/identity.php:672 mod/contacts.php:642 mod/follow.php:137
#: mod/notifications.php:242
msgid "Tags:"
msgstr ""
@ -2748,12 +2106,17 @@ msgstr ""
msgid "Basic"
msgstr ""
#: include/identity.php:743 mod/contacts.php:878 mod/events.php:515
#: mod/admin.php:980
#: include/identity.php:743 mod/admin.php:972 mod/contacts.php:878
#: mod/events.php:515
msgid "Advanced"
msgstr ""
#: include/identity.php:769 mod/follow.php:145 mod/contacts.php:844
#: include/identity.php:766 include/nav.php:81 mod/contacts.php:645
#: mod/contacts.php:841 view/theme/frio/theme.php:246
msgid "Status"
msgstr ""
#: include/identity.php:769 mod/contacts.php:844 mod/follow.php:145
msgid "Status Messages and Posts"
msgstr ""
@ -2761,10 +2124,31 @@ msgstr ""
msgid "Profile Details"
msgstr ""
#: include/identity.php:782 include/nav.php:83 mod/fbrowser.php:31
#: view/theme/frio/theme.php:248
msgid "Photos"
msgstr ""
#: include/identity.php:785 mod/photos.php:89
msgid "Photo Albums"
msgstr ""
#: include/identity.php:790 include/identity.php:793 include/nav.php:84
#: view/theme/frio/theme.php:249
msgid "Videos"
msgstr ""
#: include/identity.php:802 include/identity.php:813 include/nav.php:85
#: include/nav.php:149 mod/cal.php:270 mod/events.php:386
#: view/theme/frio/theme.php:250 view/theme/frio/theme.php:254
msgid "Events"
msgstr ""
#: include/identity.php:805 include/identity.php:816 include/nav.php:149
#: view/theme/frio/theme.php:254
msgid "Events and Calendar"
msgstr ""
#: include/identity.php:824 mod/notes.php:47
msgid "Personal Notes"
msgstr ""
@ -2773,30 +2157,617 @@ msgstr ""
msgid "Only You Can See This"
msgstr ""
#: include/text.php:304
#: include/identity.php:835 include/identity.php:838 include/nav.php:128
#: include/nav.php:192 include/text.php:1024 mod/contacts.php:800
#: mod/contacts.php:861 mod/viewcontacts.php:121 view/theme/frio/theme.php:257
msgid "Contacts"
msgstr ""
#: include/items.php:1584 mod/dfrn_confirm.php:735 mod/dfrn_request.php:754
msgid "[Name Withheld]"
msgstr ""
#: include/items.php:1939 mod/admin.php:240 mod/admin.php:1480
#: mod/admin.php:1731 mod/display.php:103 mod/display.php:279
#: mod/display.php:484 mod/notice.php:15 mod/viewsrc.php:15
msgid "Item not found."
msgstr ""
#: include/items.php:1978
msgid "Do you really want to delete this item?"
msgstr ""
#: include/items.php:1980 mod/api.php:105 mod/contacts.php:452
#: mod/dfrn_request.php:875 mod/follow.php:113 mod/message.php:206
#: mod/profiles.php:640 mod/profiles.php:643 mod/profiles.php:669
#: mod/register.php:245 mod/settings.php:1171 mod/settings.php:1177
#: mod/settings.php:1184 mod/settings.php:1188 mod/settings.php:1193
#: mod/settings.php:1198 mod/settings.php:1203 mod/settings.php:1208
#: mod/settings.php:1234 mod/settings.php:1235 mod/settings.php:1236
#: mod/settings.php:1237 mod/settings.php:1238 mod/suggest.php:29
msgid "Yes"
msgstr ""
#: include/items.php:2143 index.php:407 mod/allfriends.php:12 mod/api.php:26
#: mod/api.php:31 mod/attach.php:33 mod/cal.php:299 mod/common.php:18
#: mod/contacts.php:360 mod/crepair.php:102 mod/delegate.php:12
#: mod/dfrn_confirm.php:61 mod/dirfind.php:11 mod/display.php:481
#: mod/editpost.php:10 mod/events.php:195 mod/follow.php:11 mod/follow.php:74
#: mod/follow.php:158 mod/fsuggest.php:79 mod/group.php:19 mod/invite.php:15
#: mod/invite.php:103 mod/item.php:193 mod/item.php:205 mod/manage.php:98
#: mod/message.php:46 mod/message.php:171 mod/mood.php:115 mod/network.php:4
#: mod/nogroup.php:27 mod/notes.php:23 mod/notifications.php:71
#: mod/ostatus_subscribe.php:9 mod/photos.php:161 mod/photos.php:1092
#: mod/poke.php:154 mod/profile_photo.php:19 mod/profile_photo.php:180
#: mod/profile_photo.php:191 mod/profile_photo.php:204 mod/profiles.php:166
#: mod/profiles.php:607 mod/register.php:42 mod/regmod.php:113
#: mod/repair_ostatus.php:9 mod/settings.php:22 mod/settings.php:130
#: mod/settings.php:668 mod/suggest.php:58 mod/uimport.php:24
#: mod/viewcontacts.php:46 mod/wall_attach.php:67 mod/wall_attach.php:70
#: mod/wall_upload.php:77 mod/wall_upload.php:80 mod/wallmessage.php:9
#: mod/wallmessage.php:33 mod/wallmessage.php:73 mod/wallmessage.php:97
msgid "Permission denied."
msgstr ""
#: include/items.php:2248
msgid "Archives"
msgstr ""
#: include/like.php:41
#, php-format
msgid "%1$s is attending %2$s's %3$s"
msgstr ""
#: include/like.php:46
#, php-format
msgid "%1$s is not attending %2$s's %3$s"
msgstr ""
#: include/like.php:51
#, php-format
msgid "%1$s may attend %2$s's %3$s"
msgstr ""
#: include/message.php:15 include/message.php:169
msgid "[no subject]"
msgstr ""
#: include/nav.php:35 mod/navigation.php:19
msgid "Nothing new here"
msgstr ""
#: include/nav.php:39 mod/navigation.php:23
msgid "Clear notifications"
msgstr ""
#: include/nav.php:40 include/text.php:1017
msgid "@name, !forum, #tags, content"
msgstr ""
#: include/nav.php:78 view/theme/frio/theme.php:243
msgid "End this session"
msgstr ""
#: include/nav.php:81 include/nav.php:161 view/theme/frio/theme.php:246
msgid "Your posts and conversations"
msgstr ""
#: include/nav.php:82 view/theme/frio/theme.php:247
msgid "Your profile page"
msgstr ""
#: include/nav.php:83 view/theme/frio/theme.php:248
msgid "Your photos"
msgstr ""
#: include/nav.php:84 view/theme/frio/theme.php:249
msgid "Your videos"
msgstr ""
#: include/nav.php:85 view/theme/frio/theme.php:250
msgid "Your events"
msgstr ""
#: include/nav.php:86
msgid "Personal notes"
msgstr ""
#: include/nav.php:86
msgid "Your personal notes"
msgstr ""
#: include/nav.php:95
msgid "Sign in"
msgstr ""
#: include/nav.php:105
msgid "Home Page"
msgstr ""
#: include/nav.php:109
msgid "Create an account"
msgstr ""
#: include/nav.php:115 mod/help.php:47 view/theme/vier/theme.php:293
msgid "Help"
msgstr ""
#: include/nav.php:115
msgid "Help and documentation"
msgstr ""
#: include/nav.php:119
msgid "Apps"
msgstr ""
#: include/nav.php:119
msgid "Addon applications, utilities, games"
msgstr ""
#: include/nav.php:123 include/text.php:1014 mod/search.php:149
msgid "Search"
msgstr ""
#: include/nav.php:123
msgid "Search site content"
msgstr ""
#: include/nav.php:126 include/text.php:1022
msgid "Full Text"
msgstr ""
#: include/nav.php:127 include/text.php:1023
msgid "Tags"
msgstr ""
#: include/nav.php:143 include/nav.php:145 mod/community.php:36
msgid "Community"
msgstr ""
#: include/nav.php:143
msgid "Conversations on this site"
msgstr ""
#: include/nav.php:145
msgid "Conversations on the network"
msgstr ""
#: include/nav.php:152
msgid "Directory"
msgstr ""
#: include/nav.php:152
msgid "People directory"
msgstr ""
#: include/nav.php:154
msgid "Information"
msgstr ""
#: include/nav.php:154
msgid "Information about this friendica instance"
msgstr ""
#: include/nav.php:158 view/theme/frio/theme.php:253
msgid "Conversations from your friends"
msgstr ""
#: include/nav.php:159
msgid "Network Reset"
msgstr ""
#: include/nav.php:159
msgid "Load Network page with no filters"
msgstr ""
#: include/nav.php:166
msgid "Friend Requests"
msgstr ""
#: include/nav.php:169 mod/notifications.php:96
msgid "Notifications"
msgstr ""
#: include/nav.php:170
msgid "See all notifications"
msgstr ""
#: include/nav.php:171 mod/settings.php:906
msgid "Mark as seen"
msgstr ""
#: include/nav.php:171
msgid "Mark all system notifications seen"
msgstr ""
#: include/nav.php:175 mod/message.php:179 view/theme/frio/theme.php:255
msgid "Messages"
msgstr ""
#: include/nav.php:175 view/theme/frio/theme.php:255
msgid "Private mail"
msgstr ""
#: include/nav.php:176
msgid "Inbox"
msgstr ""
#: include/nav.php:177
msgid "Outbox"
msgstr ""
#: include/nav.php:178 mod/message.php:16
msgid "New Message"
msgstr ""
#: include/nav.php:181
msgid "Manage"
msgstr ""
#: include/nav.php:181
msgid "Manage other pages"
msgstr ""
#: include/nav.php:184 mod/settings.php:81
msgid "Delegations"
msgstr ""
#: include/nav.php:184 mod/delegate.php:130
msgid "Delegate Page Management"
msgstr ""
#: include/nav.php:186 mod/admin.php:1533 mod/admin.php:1809
#: mod/newmember.php:22 mod/settings.php:111 view/theme/frio/theme.php:256
msgid "Settings"
msgstr ""
#: include/nav.php:186 view/theme/frio/theme.php:256
msgid "Account settings"
msgstr ""
#: include/nav.php:189
msgid "Manage/Edit Profiles"
msgstr ""
#: include/nav.php:192 view/theme/frio/theme.php:257
msgid "Manage/edit friends and contacts"
msgstr ""
#: include/nav.php:197 mod/admin.php:192
msgid "Admin"
msgstr ""
#: include/nav.php:197
msgid "Site setup and configuration"
msgstr ""
#: include/nav.php:200
msgid "Navigation"
msgstr ""
#: include/nav.php:200
msgid "Site map"
msgstr ""
#: include/network.php:622
msgid "view full size"
msgstr ""
#: include/oembed.php:266
msgid "Embedded content"
msgstr ""
#: include/oembed.php:274
msgid "Embedding disabled"
msgstr ""
#: include/ostatus.php:1832
#, php-format
msgid "%s is now following %s."
msgstr ""
#: include/ostatus.php:1833
msgid "following"
msgstr ""
#: include/ostatus.php:1836
#, php-format
msgid "%s stopped following %s."
msgstr ""
#: include/ostatus.php:1837
msgid "stopped following"
msgstr ""
#: include/photos.php:57 include/photos.php:67 mod/fbrowser.php:40
#: mod/fbrowser.php:61 mod/photos.php:182 mod/photos.php:1106
#: mod/photos.php:1231 mod/photos.php:1252 mod/photos.php:1817
#: mod/photos.php:1829
msgid "Contact Photos"
msgstr ""
#: include/plugin.php:530 include/plugin.php:532
msgid "Click here to upgrade."
msgstr ""
#: include/plugin.php:538
msgid "This action exceeds the limits set by your subscription plan."
msgstr ""
#: include/plugin.php:543
msgid "This action is not available under your subscription plan."
msgstr ""
#: include/profile_selectors.php:6
msgid "Male"
msgstr ""
#: include/profile_selectors.php:6
msgid "Female"
msgstr ""
#: include/profile_selectors.php:6
msgid "Currently Male"
msgstr ""
#: include/profile_selectors.php:6
msgid "Currently Female"
msgstr ""
#: include/profile_selectors.php:6
msgid "Mostly Male"
msgstr ""
#: include/profile_selectors.php:6
msgid "Mostly Female"
msgstr ""
#: include/profile_selectors.php:6
msgid "Transgender"
msgstr ""
#: include/profile_selectors.php:6
msgid "Intersex"
msgstr ""
#: include/profile_selectors.php:6
msgid "Transsexual"
msgstr ""
#: include/profile_selectors.php:6
msgid "Hermaphrodite"
msgstr ""
#: include/profile_selectors.php:6
msgid "Neuter"
msgstr ""
#: include/profile_selectors.php:6
msgid "Non-specific"
msgstr ""
#: include/profile_selectors.php:6
msgid "Other"
msgstr ""
#: include/profile_selectors.php:23
msgid "Males"
msgstr ""
#: include/profile_selectors.php:23
msgid "Females"
msgstr ""
#: include/profile_selectors.php:23
msgid "Gay"
msgstr ""
#: include/profile_selectors.php:23
msgid "Lesbian"
msgstr ""
#: include/profile_selectors.php:23
msgid "No Preference"
msgstr ""
#: include/profile_selectors.php:23
msgid "Bisexual"
msgstr ""
#: include/profile_selectors.php:23
msgid "Autosexual"
msgstr ""
#: include/profile_selectors.php:23
msgid "Abstinent"
msgstr ""
#: include/profile_selectors.php:23
msgid "Virgin"
msgstr ""
#: include/profile_selectors.php:23
msgid "Deviant"
msgstr ""
#: include/profile_selectors.php:23
msgid "Fetish"
msgstr ""
#: include/profile_selectors.php:23
msgid "Oodles"
msgstr ""
#: include/profile_selectors.php:23
msgid "Nonsexual"
msgstr ""
#: include/profile_selectors.php:42
msgid "Single"
msgstr ""
#: include/profile_selectors.php:42
msgid "Lonely"
msgstr ""
#: include/profile_selectors.php:42
msgid "Available"
msgstr ""
#: include/profile_selectors.php:42
msgid "Unavailable"
msgstr ""
#: include/profile_selectors.php:42
msgid "Has crush"
msgstr ""
#: include/profile_selectors.php:42
msgid "Infatuated"
msgstr ""
#: include/profile_selectors.php:42
msgid "Dating"
msgstr ""
#: include/profile_selectors.php:42
msgid "Unfaithful"
msgstr ""
#: include/profile_selectors.php:42
msgid "Sex Addict"
msgstr ""
#: include/profile_selectors.php:42 include/user.php:280 include/user.php:284
msgid "Friends"
msgstr ""
#: include/profile_selectors.php:42
msgid "Friends/Benefits"
msgstr ""
#: include/profile_selectors.php:42
msgid "Casual"
msgstr ""
#: include/profile_selectors.php:42
msgid "Engaged"
msgstr ""
#: include/profile_selectors.php:42
msgid "Married"
msgstr ""
#: include/profile_selectors.php:42
msgid "Imaginarily married"
msgstr ""
#: include/profile_selectors.php:42
msgid "Partners"
msgstr ""
#: include/profile_selectors.php:42
msgid "Cohabiting"
msgstr ""
#: include/profile_selectors.php:42
msgid "Common law"
msgstr ""
#: include/profile_selectors.php:42
msgid "Happy"
msgstr ""
#: include/profile_selectors.php:42
msgid "Not looking"
msgstr ""
#: include/profile_selectors.php:42
msgid "Swinger"
msgstr ""
#: include/profile_selectors.php:42
msgid "Betrayed"
msgstr ""
#: include/profile_selectors.php:42
msgid "Separated"
msgstr ""
#: include/profile_selectors.php:42
msgid "Unstable"
msgstr ""
#: include/profile_selectors.php:42
msgid "Divorced"
msgstr ""
#: include/profile_selectors.php:42
msgid "Imaginarily divorced"
msgstr ""
#: include/profile_selectors.php:42
msgid "Widowed"
msgstr ""
#: include/profile_selectors.php:42
msgid "Uncertain"
msgstr ""
#: include/profile_selectors.php:42
msgid "It's complicated"
msgstr ""
#: include/profile_selectors.php:42
msgid "Don't care"
msgstr ""
#: include/profile_selectors.php:42
msgid "Ask me"
msgstr ""
#: include/security.php:61
msgid "Welcome "
msgstr ""
#: include/security.php:62
msgid "Please upload a profile photo."
msgstr ""
#: include/security.php:65
msgid "Welcome back "
msgstr ""
#: include/security.php:429
msgid ""
"The form security token was not correct. This probably happened because the "
"form has been opened for too long (>3 hours) before submitting it."
msgstr ""
#: include/text.php:307
msgid "newer"
msgstr ""
#: include/text.php:306
#: include/text.php:308
msgid "older"
msgstr ""
#: include/text.php:311
msgid "prev"
msgstr ""
#: include/text.php:313
msgid "first"
msgstr ""
#: include/text.php:345
msgid "last"
#: include/text.php:314
msgid "prev"
msgstr ""
#: include/text.php:348
msgid "next"
msgstr ""
#: include/text.php:349
msgid "last"
msgstr ""
#: include/text.php:403
msgid "Loading more entries..."
msgstr ""
@ -2820,7 +2791,7 @@ msgstr[1] ""
msgid "View Contacts"
msgstr ""
#: include/text.php:1015 mod/filer.php:31 mod/notes.php:62 mod/editpost.php:99
#: include/text.php:1015 mod/editpost.php:99 mod/filer.php:31 mod/notes.php:62
msgid "Save"
msgstr ""
@ -2976,8 +2947,8 @@ msgstr ""
msgid "activity"
msgstr ""
#: include/text.php:1810 mod/content.php:623 object/Item.php:446
#: object/Item.php:458
#: include/text.php:1810 mod/content.php:623 object/Item.php:419
#: object/Item.php:431
msgid "comment"
msgid_plural "comments"
msgstr[0] ""
@ -2991,103 +2962,1569 @@ msgstr ""
msgid "Item filed"
msgstr ""
#: include/Contact.php:450
msgid "Drop Contact"
#: include/uimport.php:91
msgid "Error decoding account file"
msgstr ""
#: include/Contact.php:827
msgid "Organisation"
#: include/uimport.php:97
msgid "Error! No version data in file! This is not a Friendica account file?"
msgstr ""
#: include/Contact.php:830
msgid "News"
#: include/uimport.php:113 include/uimport.php:124
msgid "Error! Cannot check nickname"
msgstr ""
#: include/Contact.php:833
msgid "Forum"
#: include/uimport.php:117 include/uimport.php:128
#, php-format
msgid "User '%s' already exists on this server!"
msgstr ""
#: include/items.php:1584 mod/dfrn_confirm.php:735 mod/dfrn_request.php:754
msgid "[Name Withheld]"
#: include/uimport.php:150
msgid "User creation error"
msgstr ""
#: include/items.php:1939 mod/notice.php:15 mod/viewsrc.php:15
#: mod/display.php:103 mod/display.php:279 mod/display.php:484
#: mod/admin.php:235 mod/admin.php:1492 mod/admin.php:1738
msgid "Item not found."
#: include/uimport.php:170
msgid "User profile creation error"
msgstr ""
#: include/items.php:1978
msgid "Do you really want to delete this item?"
#: include/uimport.php:219
#, php-format
msgid "%d contact not imported"
msgid_plural "%d contacts not imported"
msgstr[0] ""
msgstr[1] ""
#: include/uimport.php:289
msgid "Done. You can now login with your username and password"
msgstr ""
#: include/items.php:1980 mod/api.php:105 mod/follow.php:113
#: mod/register.php:245 mod/settings.php:1171 mod/settings.php:1177
#: mod/settings.php:1184 mod/settings.php:1188 mod/settings.php:1193
#: mod/settings.php:1198 mod/settings.php:1203 mod/settings.php:1208
#: mod/settings.php:1234 mod/settings.php:1235 mod/settings.php:1236
#: mod/settings.php:1237 mod/settings.php:1238 mod/suggest.php:29
#: mod/contacts.php:452 mod/message.php:206 mod/dfrn_request.php:875
#: mod/profiles.php:640 mod/profiles.php:643 mod/profiles.php:669
msgid "Yes"
#: include/user.php:39 mod/settings.php:375
msgid "Passwords do not match. Password unchanged."
msgstr ""
#: include/items.php:2143 mod/allfriends.php:12 mod/api.php:26 mod/api.php:31
#: mod/attach.php:33 mod/common.php:18 mod/crepair.php:102 mod/delegate.php:12
#: mod/dirfind.php:11 mod/follow.php:11 mod/follow.php:74 mod/follow.php:158
#: mod/fsuggest.php:79 mod/group.php:19 mod/invite.php:15 mod/invite.php:103
#: mod/manage.php:98 mod/mood.php:115 mod/nogroup.php:27 mod/notes.php:23
#: mod/ostatus_subscribe.php:9 mod/poke.php:154 mod/profile_photo.php:19
#: mod/profile_photo.php:180 mod/profile_photo.php:191
#: mod/profile_photo.php:204 mod/register.php:42 mod/regmod.php:113
#: mod/repair_ostatus.php:9 mod/settings.php:22 mod/settings.php:130
#: mod/settings.php:668 mod/suggest.php:58 mod/uimport.php:24
#: mod/wall_attach.php:67 mod/wall_attach.php:70 mod/cal.php:299
#: mod/contacts.php:360 mod/dfrn_confirm.php:61 mod/editpost.php:10
#: mod/events.php:195 mod/item.php:193 mod/item.php:205 mod/message.php:46
#: mod/message.php:171 mod/wall_upload.php:77 mod/wall_upload.php:80
#: mod/wallmessage.php:9 mod/wallmessage.php:33 mod/wallmessage.php:73
#: mod/wallmessage.php:97 mod/photos.php:161 mod/photos.php:1092
#: mod/profiles.php:166 mod/profiles.php:607 mod/display.php:481
#: mod/viewcontacts.php:46 mod/network.php:4 mod/notifications.php:71
#: index.php:407
msgid "Permission denied."
#: include/user.php:48
msgid "An invitation is required."
msgstr ""
#: include/items.php:2248
msgid "Archives"
#: include/user.php:53
msgid "Invitation could not be verified."
msgstr ""
#: include/dbstructure.php:33
#: include/user.php:61
msgid "Invalid OpenID url"
msgstr ""
#: include/user.php:82
msgid "Please enter the required information."
msgstr ""
#: include/user.php:96
msgid "Please use a shorter name."
msgstr ""
#: include/user.php:98
msgid "Name too short."
msgstr ""
#: include/user.php:113
msgid "That doesn't appear to be your full (First Last) name."
msgstr ""
#: include/user.php:118
msgid "Your email domain is not among those allowed on this site."
msgstr ""
#: include/user.php:121
msgid "Not a valid email address."
msgstr ""
#: include/user.php:134
msgid "Cannot use that email."
msgstr ""
#: include/user.php:140
msgid "Your \"nickname\" can only contain \"a-z\", \"0-9\" and \"_\"."
msgstr ""
#: include/user.php:147 include/user.php:245
msgid "Nickname is already registered. Please choose another."
msgstr ""
#: include/user.php:157
msgid ""
"Nickname was once registered here and may not be re-used. Please choose "
"another."
msgstr ""
#: include/user.php:173
msgid "SERIOUS ERROR: Generation of security keys failed."
msgstr ""
#: include/user.php:231
msgid "An error occurred during registration. Please try again."
msgstr ""
#: include/user.php:256 view/theme/duepuntozero/config.php:43
msgid "default"
msgstr ""
#: include/user.php:266
msgid "An error occurred creating your default profile. Please try again."
msgstr ""
#: include/user.php:326 include/user.php:334 include/user.php:342
#: mod/photos.php:68 mod/photos.php:182 mod/photos.php:768 mod/photos.php:1231
#: mod/photos.php:1252 mod/photos.php:1839 mod/profile_photo.php:74
#: mod/profile_photo.php:82 mod/profile_photo.php:90 mod/profile_photo.php:215
#: mod/profile_photo.php:310 mod/profile_photo.php:320
msgid "Profile Photos"
msgstr ""
#: include/user.php:417
#, php-format
msgid ""
"\n"
"\t\t\tThe friendica developers released update %s recently,\n"
"\t\t\tbut when I tried to install it, something went terribly wrong.\n"
"\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n"
"\t\t\tfriendica developer if you can not help me on your own. My database "
"might be invalid."
"\t\tDear %1$s,\n"
"\t\t\tThank you for registering at %2$s. Your account is pending for "
"approval by the administrator.\n"
"\t"
msgstr ""
#: include/dbstructure.php:38
#: include/user.php:427
#, php-format
msgid "Registration at %s"
msgstr ""
#: include/user.php:437
#, php-format
msgid ""
"The error message is\n"
"[pre]%s[/pre]"
"\n"
"\t\tDear %1$s,\n"
"\t\t\tThank you for registering at %2$s. Your account has been created.\n"
"\t"
msgstr ""
#: include/dbstructure.php:195
msgid "Errors encountered creating database tables."
#: include/user.php:441
#, php-format
msgid ""
"\n"
"\t\tThe login details are as follows:\n"
"\t\t\tSite Location:\t%3$s\n"
"\t\t\tLogin Name:\t%1$s\n"
"\t\t\tPassword:\t%5$s\n"
"\n"
"\t\tYou may change your password from your account \"Settings\" page after "
"logging\n"
"\t\tin.\n"
"\n"
"\t\tPlease take a few moments to review the other account settings on that "
"page.\n"
"\n"
"\t\tYou may also wish to add some basic information to your default profile\n"
"\t\t(on the \"Profiles\" page) so that other people can easily find you.\n"
"\n"
"\t\tWe recommend setting your full name, adding a profile photo,\n"
"\t\tadding some profile \"keywords\" (very useful in making new friends) - "
"and\n"
"\t\tperhaps what country you live in; if you do not wish to be more "
"specific\n"
"\t\tthan that.\n"
"\n"
"\t\tWe fully respect your right to privacy, and none of these items are "
"necessary.\n"
"\t\tIf you are new and do not know anybody here, they may help\n"
"\t\tyou to make some new and interesting friends.\n"
"\n"
"\n"
"\t\tThank you and welcome to %2$s."
msgstr ""
#: include/dbstructure.php:329 include/dbstructure.php:337
#: include/dbstructure.php:345 include/dbstructure.php:350
#: include/dbstructure.php:355
msgid "Errors encountered performing database changes."
#: include/user.php:473 mod/admin.php:1223
#, php-format
msgid "Registration details for %s"
msgstr ""
#: include/network.php:619
msgid "view full size"
#: index.php:248 mod/apps.php:7
msgid "You must be logged in to use addons. "
msgstr ""
#: index.php:292 mod/fetch.php:12 mod/fetch.php:39 mod/fetch.php:48
#: mod/help.php:53 mod/p.php:16 mod/p.php:43 mod/p.php:52
msgid "Not Found"
msgstr ""
#: index.php:295 mod/help.php:56
msgid "Page not found."
msgstr ""
#: index.php:406 mod/group.php:76 mod/profperm.php:20
msgid "Permission denied"
msgstr ""
#: index.php:457
msgid "toggle mobile"
msgstr ""
#: mod/admin.php:96
msgid "Theme settings updated."
msgstr ""
#: mod/admin.php:162 mod/admin.php:967
msgid "Site"
msgstr ""
#: mod/admin.php:163 mod/admin.php:901 mod/admin.php:1413 mod/admin.php:1429
msgid "Users"
msgstr ""
#: mod/admin.php:164 mod/admin.php:1531 mod/admin.php:1594 mod/settings.php:74
msgid "Plugins"
msgstr ""
#: mod/admin.php:165 mod/admin.php:1807 mod/admin.php:1857
msgid "Themes"
msgstr ""
#: mod/admin.php:166 mod/settings.php:52
msgid "Additional features"
msgstr ""
#: mod/admin.php:167
msgid "DB updates"
msgstr ""
#: mod/admin.php:168 mod/admin.php:416
msgid "Inspect Queue"
msgstr ""
#: mod/admin.php:169 mod/admin.php:382
msgid "Federation Statistics"
msgstr ""
#: mod/admin.php:183 mod/admin.php:194 mod/admin.php:1931
msgid "Logs"
msgstr ""
#: mod/admin.php:184 mod/admin.php:1999
msgid "View Logs"
msgstr ""
#: mod/admin.php:185
msgid "probe address"
msgstr ""
#: mod/admin.php:186
msgid "check webfinger"
msgstr ""
#: mod/admin.php:193
msgid "Plugin Features"
msgstr ""
#: mod/admin.php:195
msgid "diagnostics"
msgstr ""
#: mod/admin.php:196
msgid "User registrations waiting for confirmation"
msgstr ""
#: mod/admin.php:312
msgid "unknown"
msgstr ""
#: mod/admin.php:375
msgid ""
"This page offers you some numbers to the known part of the federated social "
"network your Friendica node is part of. These numbers are not complete but "
"only reflect the part of the network your node is aware of."
msgstr ""
#: mod/admin.php:376
msgid ""
"The <em>Auto Discovered Contact Directory</em> feature is not enabled, it "
"will improve the data displayed here."
msgstr ""
#: mod/admin.php:381 mod/admin.php:415 mod/admin.php:493 mod/admin.php:966
#: mod/admin.php:1412 mod/admin.php:1530 mod/admin.php:1593 mod/admin.php:1806
#: mod/admin.php:1856 mod/admin.php:1930 mod/admin.php:1998
msgid "Administration"
msgstr ""
#: mod/admin.php:388
#, php-format
msgid "Currently this node is aware of %d nodes from the following platforms:"
msgstr ""
#: mod/admin.php:418
msgid "ID"
msgstr ""
#: mod/admin.php:419
msgid "Recipient Name"
msgstr ""
#: mod/admin.php:420
msgid "Recipient Profile"
msgstr ""
#: mod/admin.php:422
msgid "Created"
msgstr ""
#: mod/admin.php:423
msgid "Last Tried"
msgstr ""
#: mod/admin.php:424
msgid ""
"This page lists the content of the queue for outgoing postings. These are "
"postings the initial delivery failed for. They will be resend later and "
"eventually deleted if the delivery fails permanently."
msgstr ""
#: mod/admin.php:449
#, php-format
msgid ""
"Your DB still runs with MyISAM tables. You should change the engine type to "
"InnoDB. As Friendica will use InnoDB only features in the future, you should "
"change this! See <a href=\"%s\">here</a> for a guide that may be helpful "
"converting the table engines. You may also use the <tt>convert_innodb.sql</"
"tt> in the <tt>/util</tt> directory of your Friendica installation.<br />"
msgstr ""
#: mod/admin.php:454
msgid ""
"You are using a MySQL version which does not support all features that "
"Friendica uses. You should consider switching to MariaDB."
msgstr ""
#: mod/admin.php:458 mod/admin.php:1362
msgid "Normal Account"
msgstr ""
#: mod/admin.php:459 mod/admin.php:1363
msgid "Soapbox Account"
msgstr ""
#: mod/admin.php:460 mod/admin.php:1364
msgid "Community/Celebrity Account"
msgstr ""
#: mod/admin.php:461 mod/admin.php:1365
msgid "Automatic Friend Account"
msgstr ""
#: mod/admin.php:462
msgid "Blog Account"
msgstr ""
#: mod/admin.php:463
msgid "Private Forum"
msgstr ""
#: mod/admin.php:488
msgid "Message queues"
msgstr ""
#: mod/admin.php:494
msgid "Summary"
msgstr ""
#: mod/admin.php:496
msgid "Registered users"
msgstr ""
#: mod/admin.php:498
msgid "Pending registrations"
msgstr ""
#: mod/admin.php:499
msgid "Version"
msgstr ""
#: mod/admin.php:504
msgid "Active plugins"
msgstr ""
#: mod/admin.php:529
msgid "Can not parse base url. Must have at least <scheme>://<domain>"
msgstr ""
#: mod/admin.php:819
msgid "RINO2 needs mcrypt php extension to work."
msgstr ""
#: mod/admin.php:827
msgid "Site settings updated."
msgstr ""
#: mod/admin.php:855 mod/settings.php:943
msgid "No special theme for mobile devices"
msgstr ""
#: mod/admin.php:884
msgid "No community page"
msgstr ""
#: mod/admin.php:885
msgid "Public postings from users of this site"
msgstr ""
#: mod/admin.php:886
msgid "Global community page"
msgstr ""
#: mod/admin.php:891 mod/contacts.php:538
msgid "Never"
msgstr ""
#: mod/admin.php:892
msgid "At post arrival"
msgstr ""
#: mod/admin.php:900 mod/contacts.php:565
msgid "Disabled"
msgstr ""
#: mod/admin.php:902
msgid "Users, Global Contacts"
msgstr ""
#: mod/admin.php:903
msgid "Users, Global Contacts/fallback"
msgstr ""
#: mod/admin.php:907
msgid "One month"
msgstr ""
#: mod/admin.php:908
msgid "Three months"
msgstr ""
#: mod/admin.php:909
msgid "Half a year"
msgstr ""
#: mod/admin.php:910
msgid "One year"
msgstr ""
#: mod/admin.php:915
msgid "Multi user instance"
msgstr ""
#: mod/admin.php:938
msgid "Closed"
msgstr ""
#: mod/admin.php:939
msgid "Requires approval"
msgstr ""
#: mod/admin.php:940
msgid "Open"
msgstr ""
#: mod/admin.php:944
msgid "No SSL policy, links will track page SSL state"
msgstr ""
#: mod/admin.php:945
msgid "Force all links to use SSL"
msgstr ""
#: mod/admin.php:946
msgid "Self-signed certificate, use SSL for local links only (discouraged)"
msgstr ""
#: mod/admin.php:968 mod/admin.php:1595 mod/admin.php:1858 mod/admin.php:1932
#: mod/admin.php:2085 mod/settings.php:681 mod/settings.php:792
#: mod/settings.php:841 mod/settings.php:908 mod/settings.php:1005
#: mod/settings.php:1271
msgid "Save Settings"
msgstr ""
#: mod/admin.php:969 mod/register.php:272
msgid "Registration"
msgstr ""
#: mod/admin.php:970
msgid "File upload"
msgstr ""
#: mod/admin.php:971
msgid "Policies"
msgstr ""
#: mod/admin.php:973
msgid "Auto Discovered Contact Directory"
msgstr ""
#: mod/admin.php:974
msgid "Performance"
msgstr ""
#: mod/admin.php:975
msgid "Worker"
msgstr ""
#: mod/admin.php:976
msgid ""
"Relocate - WARNING: advanced function. Could make this server unreachable."
msgstr ""
#: mod/admin.php:979
msgid "Site name"
msgstr ""
#: mod/admin.php:980
msgid "Host name"
msgstr ""
#: mod/admin.php:981
msgid "Sender Email"
msgstr ""
#: mod/admin.php:981
msgid ""
"The email address your server shall use to send notification emails from."
msgstr ""
#: mod/admin.php:982
msgid "Banner/Logo"
msgstr ""
#: mod/admin.php:983
msgid "Shortcut icon"
msgstr ""
#: mod/admin.php:983
msgid "Link to an icon that will be used for browsers."
msgstr ""
#: mod/admin.php:984
msgid "Touch icon"
msgstr ""
#: mod/admin.php:984
msgid "Link to an icon that will be used for tablets and mobiles."
msgstr ""
#: mod/admin.php:985
msgid "Additional Info"
msgstr ""
#: mod/admin.php:985
#, php-format
msgid ""
"For public servers: you can add additional information here that will be "
"listed at %s/siteinfo."
msgstr ""
#: mod/admin.php:986
msgid "System language"
msgstr ""
#: mod/admin.php:987
msgid "System theme"
msgstr ""
#: mod/admin.php:987
msgid ""
"Default system theme - may be over-ridden by user profiles - <a href='#' "
"id='cnftheme'>change theme settings</a>"
msgstr ""
#: mod/admin.php:988
msgid "Mobile system theme"
msgstr ""
#: mod/admin.php:988
msgid "Theme for mobile devices"
msgstr ""
#: mod/admin.php:989
msgid "SSL link policy"
msgstr ""
#: mod/admin.php:989
msgid "Determines whether generated links should be forced to use SSL"
msgstr ""
#: mod/admin.php:990
msgid "Force SSL"
msgstr ""
#: mod/admin.php:990
msgid ""
"Force all Non-SSL requests to SSL - Attention: on some systems it could lead "
"to endless loops."
msgstr ""
#: mod/admin.php:991
msgid "Hide help entry from navigation menu"
msgstr ""
#: mod/admin.php:991
msgid ""
"Hides the menu entry for the Help pages from the navigation menu. You can "
"still access it calling /help directly."
msgstr ""
#: mod/admin.php:992
msgid "Single user instance"
msgstr ""
#: mod/admin.php:992
msgid "Make this instance multi-user or single-user for the named user"
msgstr ""
#: mod/admin.php:993
msgid "Maximum image size"
msgstr ""
#: mod/admin.php:993
msgid ""
"Maximum size in bytes of uploaded images. Default is 0, which means no "
"limits."
msgstr ""
#: mod/admin.php:994
msgid "Maximum image length"
msgstr ""
#: mod/admin.php:994
msgid ""
"Maximum length in pixels of the longest side of uploaded images. Default is "
"-1, which means no limits."
msgstr ""
#: mod/admin.php:995
msgid "JPEG image quality"
msgstr ""
#: mod/admin.php:995
msgid ""
"Uploaded JPEGS will be saved at this quality setting [0-100]. Default is "
"100, which is full quality."
msgstr ""
#: mod/admin.php:997
msgid "Register policy"
msgstr ""
#: mod/admin.php:998
msgid "Maximum Daily Registrations"
msgstr ""
#: mod/admin.php:998
msgid ""
"If registration is permitted above, this sets the maximum number of new user "
"registrations to accept per day. If register is set to closed, this setting "
"has no effect."
msgstr ""
#: mod/admin.php:999
msgid "Register text"
msgstr ""
#: mod/admin.php:999
msgid "Will be displayed prominently on the registration page."
msgstr ""
#: mod/admin.php:1000
msgid "Accounts abandoned after x days"
msgstr ""
#: mod/admin.php:1000
msgid ""
"Will not waste system resources polling external sites for abandonded "
"accounts. Enter 0 for no time limit."
msgstr ""
#: mod/admin.php:1001
msgid "Allowed friend domains"
msgstr ""
#: mod/admin.php:1001
msgid ""
"Comma separated list of domains which are allowed to establish friendships "
"with this site. Wildcards are accepted. Empty to allow any domains"
msgstr ""
#: mod/admin.php:1002
msgid "Allowed email domains"
msgstr ""
#: mod/admin.php:1002
msgid ""
"Comma separated list of domains which are allowed in email addresses for "
"registrations to this site. Wildcards are accepted. Empty to allow any "
"domains"
msgstr ""
#: mod/admin.php:1003
msgid "Block public"
msgstr ""
#: mod/admin.php:1003
msgid ""
"Check to block public access to all otherwise public personal pages on this "
"site unless you are currently logged in."
msgstr ""
#: mod/admin.php:1004
msgid "Force publish"
msgstr ""
#: mod/admin.php:1004
msgid ""
"Check to force all profiles on this site to be listed in the site directory."
msgstr ""
#: mod/admin.php:1005
msgid "Global directory URL"
msgstr ""
#: mod/admin.php:1005
msgid ""
"URL to the global directory. If this is not set, the global directory is "
"completely unavailable to the application."
msgstr ""
#: mod/admin.php:1006
msgid "Allow threaded items"
msgstr ""
#: mod/admin.php:1006
msgid "Allow infinite level threading for items on this site."
msgstr ""
#: mod/admin.php:1007
msgid "Private posts by default for new users"
msgstr ""
#: mod/admin.php:1007
msgid ""
"Set default post permissions for all new members to the default privacy "
"group rather than public."
msgstr ""
#: mod/admin.php:1008
msgid "Don't include post content in email notifications"
msgstr ""
#: mod/admin.php:1008
msgid ""
"Don't include the content of a post/comment/private message/etc. in the "
"email notifications that are sent out from this site, as a privacy measure."
msgstr ""
#: mod/admin.php:1009
msgid "Disallow public access to addons listed in the apps menu."
msgstr ""
#: mod/admin.php:1009
msgid ""
"Checking this box will restrict addons listed in the apps menu to members "
"only."
msgstr ""
#: mod/admin.php:1010
msgid "Don't embed private images in posts"
msgstr ""
#: mod/admin.php:1010
msgid ""
"Don't replace locally-hosted private photos in posts with an embedded copy "
"of the image. This means that contacts who receive posts containing private "
"photos will have to authenticate and load each image, which may take a while."
msgstr ""
#: mod/admin.php:1011
msgid "Allow Users to set remote_self"
msgstr ""
#: mod/admin.php:1011
msgid ""
"With checking this, every user is allowed to mark every contact as a "
"remote_self in the repair contact dialog. Setting this flag on a contact "
"causes mirroring every posting of that contact in the users stream."
msgstr ""
#: mod/admin.php:1012
msgid "Block multiple registrations"
msgstr ""
#: mod/admin.php:1012
msgid "Disallow users to register additional accounts for use as pages."
msgstr ""
#: mod/admin.php:1013
msgid "OpenID support"
msgstr ""
#: mod/admin.php:1013
msgid "OpenID support for registration and logins."
msgstr ""
#: mod/admin.php:1014
msgid "Fullname check"
msgstr ""
#: mod/admin.php:1014
msgid ""
"Force users to register with a space between firstname and lastname in Full "
"name, as an antispam measure"
msgstr ""
#: mod/admin.php:1015
msgid "UTF-8 Regular expressions"
msgstr ""
#: mod/admin.php:1015
msgid "Use PHP UTF8 regular expressions"
msgstr ""
#: mod/admin.php:1016
msgid "Community Page Style"
msgstr ""
#: mod/admin.php:1016
msgid ""
"Type of community page to show. 'Global community' shows every public "
"posting from an open distributed network that arrived on this server."
msgstr ""
#: mod/admin.php:1017
msgid "Posts per user on community page"
msgstr ""
#: mod/admin.php:1017
msgid ""
"The maximum number of posts per user on the community page. (Not valid for "
"'Global Community')"
msgstr ""
#: mod/admin.php:1018
msgid "Enable OStatus support"
msgstr ""
#: mod/admin.php:1018
msgid ""
"Provide built-in OStatus (StatusNet, GNU Social etc.) compatibility. All "
"communications in OStatus are public, so privacy warnings will be "
"occasionally displayed."
msgstr ""
#: mod/admin.php:1019
msgid "OStatus conversation completion interval"
msgstr ""
#: mod/admin.php:1019
msgid ""
"How often shall the poller check for new entries in OStatus conversations? "
"This can be a very ressource task."
msgstr ""
#: mod/admin.php:1020
msgid "Only import OStatus threads from our contacts"
msgstr ""
#: mod/admin.php:1020
msgid ""
"Normally we import every content from our OStatus contacts. With this option "
"we only store threads that are started by a contact that is known on our "
"system."
msgstr ""
#: mod/admin.php:1021
msgid "OStatus support can only be enabled if threading is enabled."
msgstr ""
#: mod/admin.php:1023
msgid ""
"Diaspora support can't be enabled because Friendica was installed into a sub "
"directory."
msgstr ""
#: mod/admin.php:1024
msgid "Enable Diaspora support"
msgstr ""
#: mod/admin.php:1024
msgid "Provide built-in Diaspora network compatibility."
msgstr ""
#: mod/admin.php:1025
msgid "Only allow Friendica contacts"
msgstr ""
#: mod/admin.php:1025
msgid ""
"All contacts must use Friendica protocols. All other built-in communication "
"protocols disabled."
msgstr ""
#: mod/admin.php:1026
msgid "Verify SSL"
msgstr ""
#: mod/admin.php:1026
msgid ""
"If you wish, you can turn on strict certificate checking. This will mean you "
"cannot connect (at all) to self-signed SSL sites."
msgstr ""
#: mod/admin.php:1027
msgid "Proxy user"
msgstr ""
#: mod/admin.php:1028
msgid "Proxy URL"
msgstr ""
#: mod/admin.php:1029
msgid "Network timeout"
msgstr ""
#: mod/admin.php:1029
msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
msgstr ""
#: mod/admin.php:1030
msgid "Maximum Load Average"
msgstr ""
#: mod/admin.php:1030
msgid ""
"Maximum system load before delivery and poll processes are deferred - "
"default 50."
msgstr ""
#: mod/admin.php:1031
msgid "Maximum Load Average (Frontend)"
msgstr ""
#: mod/admin.php:1031
msgid "Maximum system load before the frontend quits service - default 50."
msgstr ""
#: mod/admin.php:1032
msgid "Maximum table size for optimization"
msgstr ""
#: mod/admin.php:1032
msgid ""
"Maximum table size (in MB) for the automatic optimization - default 100 MB. "
"Enter -1 to disable it."
msgstr ""
#: mod/admin.php:1033
msgid "Minimum level of fragmentation"
msgstr ""
#: mod/admin.php:1033
msgid ""
"Minimum fragmenation level to start the automatic optimization - default "
"value is 30%."
msgstr ""
#: mod/admin.php:1035
msgid "Periodical check of global contacts"
msgstr ""
#: mod/admin.php:1035
msgid ""
"If enabled, the global contacts are checked periodically for missing or "
"outdated data and the vitality of the contacts and servers."
msgstr ""
#: mod/admin.php:1036
msgid "Days between requery"
msgstr ""
#: mod/admin.php:1036
msgid "Number of days after which a server is requeried for his contacts."
msgstr ""
#: mod/admin.php:1037
msgid "Discover contacts from other servers"
msgstr ""
#: mod/admin.php:1037
msgid ""
"Periodically query other servers for contacts. You can choose between "
"'users': the users on the remote system, 'Global Contacts': active contacts "
"that are known on the system. The fallback is meant for Redmatrix servers "
"and older friendica servers, where global contacts weren't available. The "
"fallback increases the server load, so the recommened setting is 'Users, "
"Global Contacts'."
msgstr ""
#: mod/admin.php:1038
msgid "Timeframe for fetching global contacts"
msgstr ""
#: mod/admin.php:1038
msgid ""
"When the discovery is activated, this value defines the timeframe for the "
"activity of the global contacts that are fetched from other servers."
msgstr ""
#: mod/admin.php:1039
msgid "Search the local directory"
msgstr ""
#: mod/admin.php:1039
msgid ""
"Search the local directory instead of the global directory. When searching "
"locally, every search will be executed on the global directory in the "
"background. This improves the search results when the search is repeated."
msgstr ""
#: mod/admin.php:1041
msgid "Publish server information"
msgstr ""
#: mod/admin.php:1041
msgid ""
"If enabled, general server and usage data will be published. The data "
"contains the name and version of the server, number of users with public "
"profiles, number of posts and the activated protocols and connectors. See <a "
"href='http://the-federation.info/'>the-federation.info</a> for details."
msgstr ""
#: mod/admin.php:1043
msgid "Use MySQL full text engine"
msgstr ""
#: mod/admin.php:1043
msgid ""
"Activates the full text engine. Speeds up search - but can only search for "
"four and more characters."
msgstr ""
#: mod/admin.php:1044
msgid "Suppress Tags"
msgstr ""
#: mod/admin.php:1044
msgid "Suppress showing a list of hashtags at the end of the posting."
msgstr ""
#: mod/admin.php:1045
msgid "Path to item cache"
msgstr ""
#: mod/admin.php:1045
msgid "The item caches buffers generated bbcode and external images."
msgstr ""
#: mod/admin.php:1046
msgid "Cache duration in seconds"
msgstr ""
#: mod/admin.php:1046
msgid ""
"How long should the cache files be hold? Default value is 86400 seconds (One "
"day). To disable the item cache, set the value to -1."
msgstr ""
#: mod/admin.php:1047
msgid "Maximum numbers of comments per post"
msgstr ""
#: mod/admin.php:1047
msgid "How much comments should be shown for each post? Default value is 100."
msgstr ""
#: mod/admin.php:1048
msgid "Temp path"
msgstr ""
#: mod/admin.php:1048
msgid ""
"If you have a restricted system where the webserver can't access the system "
"temp path, enter another path here."
msgstr ""
#: mod/admin.php:1049
msgid "Base path to installation"
msgstr ""
#: mod/admin.php:1049
msgid ""
"If the system cannot detect the correct path to your installation, enter the "
"correct path here. This setting should only be set if you are using a "
"restricted system and symbolic links to your webroot."
msgstr ""
#: mod/admin.php:1050
msgid "Disable picture proxy"
msgstr ""
#: mod/admin.php:1050
msgid ""
"The picture proxy increases performance and privacy. It shouldn't be used on "
"systems with very low bandwith."
msgstr ""
#: mod/admin.php:1051
msgid "Only search in tags"
msgstr ""
#: mod/admin.php:1051
msgid "On large systems the text search can slow down the system extremely."
msgstr ""
#: mod/admin.php:1053
msgid "New base url"
msgstr ""
#: mod/admin.php:1053
msgid ""
"Change base url for this server. Sends relocate message to all DFRN contacts "
"of all users."
msgstr ""
#: mod/admin.php:1055
msgid "RINO Encryption"
msgstr ""
#: mod/admin.php:1055
msgid "Encryption layer between nodes."
msgstr ""
#: mod/admin.php:1056
msgid "Embedly API key"
msgstr ""
#: mod/admin.php:1056
msgid ""
"<a href='http://embed.ly'>Embedly</a> is used to fetch additional data for "
"web pages. This is an optional parameter."
msgstr ""
#: mod/admin.php:1058
msgid "Maximum number of parallel workers"
msgstr ""
#: mod/admin.php:1058
msgid ""
"On shared hosters set this to 2. On larger systems, values of 10 are great. "
"Default value is 4."
msgstr ""
#: mod/admin.php:1059
msgid "Don't use 'proc_open' with the worker"
msgstr ""
#: mod/admin.php:1059
msgid ""
"Enable this if your system doesn't allow the use of 'proc_open'. This can "
"happen on shared hosters. If this is enabled you should increase the "
"frequency of poller calls in your crontab."
msgstr ""
#: mod/admin.php:1060
msgid "Enable fastlane"
msgstr ""
#: mod/admin.php:1060
msgid ""
"When enabed, the fastlane mechanism starts an additional worker if processes "
"with higher priority are blocked by processes of lower priority."
msgstr ""
#: mod/admin.php:1061
msgid "Enable frontend worker"
msgstr ""
#: mod/admin.php:1061
msgid ""
"When enabled the Worker process is triggered when backend access is "
"performed (e.g. messages being delivered). On smaller sites you might want "
"to call yourdomain.tld/worker on a regular basis via an external cron job. "
"You should only enable this option if you cannot utilize cron/scheduled jobs "
"on your server. The worker background process needs to be activated for this."
msgstr ""
#: mod/admin.php:1091
msgid "Update has been marked successful"
msgstr ""
#: mod/admin.php:1099
#, php-format
msgid "Database structure update %s was successfully applied."
msgstr ""
#: mod/admin.php:1102
#, php-format
msgid "Executing of database structure update %s failed with error: %s"
msgstr ""
#: mod/admin.php:1116
#, php-format
msgid "Executing %s failed with error: %s"
msgstr ""
#: mod/admin.php:1119
#, php-format
msgid "Update %s was successfully applied."
msgstr ""
#: mod/admin.php:1122
#, php-format
msgid "Update %s did not return a status. Unknown if it succeeded."
msgstr ""
#: mod/admin.php:1125
#, php-format
msgid "There was no additional update function %s that needed to be called."
msgstr ""
#: mod/admin.php:1145
msgid "No failed updates."
msgstr ""
#: mod/admin.php:1146
msgid "Check database structure"
msgstr ""
#: mod/admin.php:1151
msgid "Failed Updates"
msgstr ""
#: mod/admin.php:1152
msgid ""
"This does not include updates prior to 1139, which did not return a status."
msgstr ""
#: mod/admin.php:1153
msgid "Mark success (if update was manually applied)"
msgstr ""
#: mod/admin.php:1154
msgid "Attempt to execute this update step automatically"
msgstr ""
#: mod/admin.php:1188
#, php-format
msgid ""
"\n"
"\t\t\tDear %1$s,\n"
"\t\t\t\tthe administrator of %2$s has set up an account for you."
msgstr ""
#: mod/admin.php:1191
#, php-format
msgid ""
"\n"
"\t\t\tThe login details are as follows:\n"
"\n"
"\t\t\tSite Location:\t%1$s\n"
"\t\t\tLogin Name:\t\t%2$s\n"
"\t\t\tPassword:\t\t%3$s\n"
"\n"
"\t\t\tYou may change your password from your account \"Settings\" page after "
"logging\n"
"\t\t\tin.\n"
"\n"
"\t\t\tPlease take a few moments to review the other account settings on that "
"page.\n"
"\n"
"\t\t\tYou may also wish to add some basic information to your default "
"profile\n"
"\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n"
"\n"
"\t\t\tWe recommend setting your full name, adding a profile photo,\n"
"\t\t\tadding some profile \"keywords\" (very useful in making new friends) - "
"and\n"
"\t\t\tperhaps what country you live in; if you do not wish to be more "
"specific\n"
"\t\t\tthan that.\n"
"\n"
"\t\t\tWe fully respect your right to privacy, and none of these items are "
"necessary.\n"
"\t\t\tIf you are new and do not know anybody here, they may help\n"
"\t\t\tyou to make some new and interesting friends.\n"
"\n"
"\t\t\tThank you and welcome to %4$s."
msgstr ""
#: mod/admin.php:1235
#, php-format
msgid "%s user blocked/unblocked"
msgid_plural "%s users blocked/unblocked"
msgstr[0] ""
msgstr[1] ""
#: mod/admin.php:1242
#, php-format
msgid "%s user deleted"
msgid_plural "%s users deleted"
msgstr[0] ""
msgstr[1] ""
#: mod/admin.php:1289
#, php-format
msgid "User '%s' deleted"
msgstr ""
#: mod/admin.php:1297
#, php-format
msgid "User '%s' unblocked"
msgstr ""
#: mod/admin.php:1297
#, php-format
msgid "User '%s' blocked"
msgstr ""
#: mod/admin.php:1405 mod/admin.php:1418 mod/admin.php:1431 mod/admin.php:1447
#: mod/crepair.php:167 mod/settings.php:683 mod/settings.php:709
msgid "Name"
msgstr ""
#: mod/admin.php:1405 mod/admin.php:1431
msgid "Register date"
msgstr ""
#: mod/admin.php:1405 mod/admin.php:1431
msgid "Last login"
msgstr ""
#: mod/admin.php:1405 mod/admin.php:1431
msgid "Last item"
msgstr ""
#: mod/admin.php:1405 mod/settings.php:43
msgid "Account"
msgstr ""
#: mod/admin.php:1414
msgid "Add User"
msgstr ""
#: mod/admin.php:1415
msgid "select all"
msgstr ""
#: mod/admin.php:1416
msgid "User registrations waiting for confirm"
msgstr ""
#: mod/admin.php:1417
msgid "User waiting for permanent deletion"
msgstr ""
#: mod/admin.php:1418
msgid "Request date"
msgstr ""
#: mod/admin.php:1419
msgid "No registrations."
msgstr ""
#: mod/admin.php:1420
msgid "Note from the user"
msgstr ""
#: mod/admin.php:1421 mod/notifications.php:176 mod/notifications.php:255
msgid "Approve"
msgstr ""
#: mod/admin.php:1422
msgid "Deny"
msgstr ""
#: mod/admin.php:1424 mod/contacts.php:613 mod/contacts.php:813
#: mod/contacts.php:991
msgid "Block"
msgstr ""
#: mod/admin.php:1425 mod/contacts.php:613 mod/contacts.php:813
#: mod/contacts.php:991
msgid "Unblock"
msgstr ""
#: mod/admin.php:1426
msgid "Site admin"
msgstr ""
#: mod/admin.php:1427
msgid "Account expired"
msgstr ""
#: mod/admin.php:1430
msgid "New User"
msgstr ""
#: mod/admin.php:1431
msgid "Deleted since"
msgstr ""
#: mod/admin.php:1436
msgid ""
"Selected users will be deleted!\\n\\nEverything these users had posted on "
"this site will be permanently deleted!\\n\\nAre you sure?"
msgstr ""
#: mod/admin.php:1437
msgid ""
"The user {0} will be deleted!\\n\\nEverything this user has posted on this "
"site will be permanently deleted!\\n\\nAre you sure?"
msgstr ""
#: mod/admin.php:1447
msgid "Name of the new user."
msgstr ""
#: mod/admin.php:1448
msgid "Nickname"
msgstr ""
#: mod/admin.php:1448
msgid "Nickname of the new user."
msgstr ""
#: mod/admin.php:1449
msgid "Email address of the new user."
msgstr ""
#: mod/admin.php:1492
#, php-format
msgid "Plugin %s disabled."
msgstr ""
#: mod/admin.php:1496
#, php-format
msgid "Plugin %s enabled."
msgstr ""
#: mod/admin.php:1507 mod/admin.php:1759
msgid "Disable"
msgstr ""
#: mod/admin.php:1509 mod/admin.php:1761
msgid "Enable"
msgstr ""
#: mod/admin.php:1532 mod/admin.php:1808
msgid "Toggle"
msgstr ""
#: mod/admin.php:1540 mod/admin.php:1817
msgid "Author: "
msgstr ""
#: mod/admin.php:1541 mod/admin.php:1818
msgid "Maintainer: "
msgstr ""
#: mod/admin.php:1596
msgid "Reload active plugins"
msgstr ""
#: mod/admin.php:1601
#, php-format
msgid ""
"There are currently no plugins available on your node. You can find the "
"official plugin repository at %1$s and might find other interesting plugins "
"in the open plugin registry at %2$s"
msgstr ""
#: mod/admin.php:1720
msgid "No themes found."
msgstr ""
#: mod/admin.php:1799
msgid "Screenshot"
msgstr ""
#: mod/admin.php:1859
msgid "Reload active themes"
msgstr ""
#: mod/admin.php:1864
#, php-format
msgid "No themes found on the system. They should be paced in %1$s"
msgstr ""
#: mod/admin.php:1865
msgid "[Experimental]"
msgstr ""
#: mod/admin.php:1866
msgid "[Unsupported]"
msgstr ""
#: mod/admin.php:1890
msgid "Log settings updated."
msgstr ""
#: mod/admin.php:1922
msgid "PHP log currently enabled."
msgstr ""
#: mod/admin.php:1924
msgid "PHP log currently disabled."
msgstr ""
#: mod/admin.php:1933
msgid "Clear"
msgstr ""
#: mod/admin.php:1938
msgid "Enable Debugging"
msgstr ""
#: mod/admin.php:1939
msgid "Log file"
msgstr ""
#: mod/admin.php:1939
msgid ""
"Must be writable by web server. Relative to your Friendica top-level "
"directory."
msgstr ""
#: mod/admin.php:1940
msgid "Log level"
msgstr ""
#: mod/admin.php:1943
msgid "PHP logging"
msgstr ""
#: mod/admin.php:1944
msgid ""
"To enable logging of PHP errors and warnings you can add the following to "
"the .htconfig.php file of your installation. The filename set in the "
"'error_log' line is relative to the friendica top-level directory and must "
"be writeable by the web server. The option '1' for 'log_errors' and "
"'display_errors' is to enable these options, set to '0' to disable them."
msgstr ""
#: mod/admin.php:2074 mod/admin.php:2075 mod/settings.php:782
msgid "Off"
msgstr ""
#: mod/admin.php:2074 mod/admin.php:2075 mod/settings.php:782
msgid "On"
msgstr ""
#: mod/admin.php:2075
#, php-format
msgid "Lock feature %s"
msgstr ""
#: mod/admin.php:2083
msgid "Manage Additional Features"
msgstr ""
#: mod/allfriends.php:46
@ -3112,20 +4549,16 @@ msgid ""
"and/or create new posts for you?"
msgstr ""
#: mod/api.php:106 mod/follow.php:113 mod/register.php:246
#: mod/settings.php:1171 mod/settings.php:1177 mod/settings.php:1184
#: mod/settings.php:1188 mod/settings.php:1193 mod/settings.php:1198
#: mod/settings.php:1203 mod/settings.php:1208 mod/settings.php:1234
#: mod/settings.php:1235 mod/settings.php:1236 mod/settings.php:1237
#: mod/settings.php:1238 mod/dfrn_request.php:875 mod/profiles.php:640
#: mod/profiles.php:644 mod/profiles.php:669
#: mod/api.php:106 mod/dfrn_request.php:875 mod/follow.php:113
#: mod/profiles.php:640 mod/profiles.php:644 mod/profiles.php:669
#: mod/register.php:246 mod/settings.php:1171 mod/settings.php:1177
#: mod/settings.php:1184 mod/settings.php:1188 mod/settings.php:1193
#: mod/settings.php:1198 mod/settings.php:1203 mod/settings.php:1208
#: mod/settings.php:1234 mod/settings.php:1235 mod/settings.php:1236
#: mod/settings.php:1237 mod/settings.php:1238
msgid "No"
msgstr ""
#: mod/apps.php:7 index.php:248
msgid "You must be logged in to use addons. "
msgstr ""
#: mod/apps.php:11
msgid "Applications"
msgstr ""
@ -3194,2229 +4627,10 @@ msgstr ""
msgid "The post was created"
msgstr ""
#: mod/common.php:91
msgid "No contacts in common."
msgstr ""
#: mod/common.php:141 mod/contacts.php:871
msgid "Common Friends"
msgstr ""
#: mod/community.php:22 mod/directory.php:37 mod/videos.php:198
#: mod/photos.php:964 mod/dfrn_request.php:799 mod/display.php:200
#: mod/viewcontacts.php:36 mod/search.php:93 mod/search.php:99
msgid "Public access denied."
msgstr ""
#: mod/community.php:27
msgid "Not available."
msgstr ""
#: mod/community.php:66 mod/community.php:75 mod/search.php:224
msgid "No results."
msgstr ""
#: mod/content.php:119 mod/network.php:468
msgid "No such group"
msgstr ""
#: mod/content.php:130 mod/group.php:203 mod/network.php:495
msgid "Group is empty"
msgstr ""
#: mod/content.php:135 mod/network.php:499
#, php-format
msgid "Group: %s"
msgstr ""
#: mod/content.php:325 object/Item.php:96
msgid "This entry was edited"
msgstr ""
#: mod/content.php:621 object/Item.php:444
#, php-format
msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
#: mod/content.php:638 mod/photos.php:1402 object/Item.php:117
msgid "Private Message"
msgstr ""
#: mod/content.php:702 mod/photos.php:1590 object/Item.php:274
msgid "I like this (toggle)"
msgstr ""
#: mod/content.php:702 object/Item.php:274
msgid "like"
msgstr ""
#: mod/content.php:703 mod/photos.php:1591 object/Item.php:275
msgid "I don't like this (toggle)"
msgstr ""
#: mod/content.php:703 object/Item.php:275
msgid "dislike"
msgstr ""
#: mod/content.php:705 object/Item.php:278
msgid "Share this"
msgstr ""
#: mod/content.php:705 object/Item.php:278
msgid "share"
msgstr ""
#: mod/content.php:725 mod/photos.php:1609 mod/photos.php:1657
#: mod/photos.php:1743 object/Item.php:729
msgid "This is you"
msgstr ""
#: mod/content.php:727 mod/content.php:950 mod/photos.php:1611
#: mod/photos.php:1659 mod/photos.php:1745 object/Item.php:418
#: object/Item.php:731
msgid "Comment"
msgstr ""
#: mod/content.php:728 mod/crepair.php:156 mod/fsuggest.php:108
#: mod/invite.php:142 mod/localtime.php:45 mod/manage.php:145 mod/mood.php:138
#: mod/poke.php:203 mod/contacts.php:585 mod/events.php:513
#: mod/message.php:338 mod/message.php:521 mod/photos.php:1124
#: mod/photos.php:1246 mod/photos.php:1562 mod/photos.php:1612
#: mod/photos.php:1660 mod/photos.php:1746 mod/install.php:276
#: mod/install.php:316 mod/profiles.php:680 object/Item.php:732
#: view/theme/quattro/config.php:67 view/theme/vier/config.php:112
#: view/theme/duepuntozero/config.php:61 view/theme/clean/config.php:87
#: view/theme/frio/config.php:64
msgid "Submit"
msgstr ""
#: mod/content.php:729 object/Item.php:733
msgid "Bold"
msgstr ""
#: mod/content.php:730 object/Item.php:734
msgid "Italic"
msgstr ""
#: mod/content.php:731 object/Item.php:735
msgid "Underline"
msgstr ""
#: mod/content.php:732 object/Item.php:736
msgid "Quote"
msgstr ""
#: mod/content.php:733 object/Item.php:737
msgid "Code"
msgstr ""
#: mod/content.php:734 object/Item.php:738
msgid "Image"
msgstr ""
#: mod/content.php:735 object/Item.php:739
msgid "Link"
msgstr ""
#: mod/content.php:736 object/Item.php:740
msgid "Video"
msgstr ""
#: mod/content.php:746 mod/settings.php:743 object/Item.php:122
#: object/Item.php:124
msgid "Edit"
msgstr ""
#: mod/content.php:772 object/Item.php:238
msgid "add star"
msgstr ""
#: mod/content.php:773 object/Item.php:239
msgid "remove star"
msgstr ""
#: mod/content.php:774 object/Item.php:240
msgid "toggle star status"
msgstr ""
#: mod/content.php:777 object/Item.php:243
msgid "starred"
msgstr ""
#: mod/content.php:778 mod/content.php:800 object/Item.php:263
msgid "add tag"
msgstr ""
#: mod/content.php:789 object/Item.php:251
msgid "ignore thread"
msgstr ""
#: mod/content.php:790 object/Item.php:252
msgid "unignore thread"
msgstr ""
#: mod/content.php:791 object/Item.php:253
msgid "toggle ignore status"
msgstr ""
#: mod/content.php:794 mod/ostatus_subscribe.php:73 object/Item.php:256
msgid "ignored"
msgstr ""
#: mod/content.php:805 object/Item.php:141
msgid "save to folder"
msgstr ""
#: mod/content.php:853 object/Item.php:212
msgid "I will attend"
msgstr ""
#: mod/content.php:853 object/Item.php:212
msgid "I will not attend"
msgstr ""
#: mod/content.php:853 object/Item.php:212
msgid "I might attend"
msgstr ""
#: mod/content.php:917 object/Item.php:384
msgid "to"
msgstr ""
#: mod/content.php:918 object/Item.php:386
msgid "Wall-to-Wall"
msgstr ""
#: mod/content.php:919 object/Item.php:387
msgid "via Wall-To-Wall:"
msgstr ""
#: mod/credits.php:16
msgid "Credits"
msgstr ""
#: mod/credits.php:17
msgid ""
"Friendica is a community project, that would not be possible without the "
"help of many people. Here is a list of those who have contributed to the "
"code or the translation of Friendica. Thank you all!"
msgstr ""
#: mod/crepair.php:89
msgid "Contact settings applied."
msgstr ""
#: mod/crepair.php:91
msgid "Contact update failed."
msgstr ""
#: mod/crepair.php:116 mod/fsuggest.php:21 mod/fsuggest.php:93
#: mod/dfrn_confirm.php:126
msgid "Contact not found."
msgstr ""
#: mod/crepair.php:122
msgid ""
"<strong>WARNING: This is highly advanced</strong> and if you enter incorrect "
"information your communications with this contact may stop working."
msgstr ""
#: mod/crepair.php:123
msgid ""
"Please use your browser 'Back' button <strong>now</strong> if you are "
"uncertain what to do on this page."
msgstr ""
#: mod/crepair.php:136 mod/crepair.php:138
msgid "No mirroring"
msgstr ""
#: mod/crepair.php:136
msgid "Mirror as forwarded posting"
msgstr ""
#: mod/crepair.php:136 mod/crepair.php:138
msgid "Mirror as my own posting"
msgstr ""
#: mod/crepair.php:152
msgid "Return to contact editor"
msgstr ""
#: mod/crepair.php:154
msgid "Refetch contact data"
msgstr ""
#: mod/crepair.php:158
msgid "Remote Self"
msgstr ""
#: mod/crepair.php:161
msgid "Mirror postings from this contact"
msgstr ""
#: mod/crepair.php:163
msgid ""
"Mark this contact as remote_self, this will cause friendica to repost new "
"entries from this contact."
msgstr ""
#: mod/crepair.php:167 mod/settings.php:683 mod/settings.php:709
#: mod/admin.php:1417 mod/admin.php:1430 mod/admin.php:1443 mod/admin.php:1459
msgid "Name"
msgstr ""
#: mod/crepair.php:168
msgid "Account Nickname"
msgstr ""
#: mod/crepair.php:169
msgid "@Tagname - overrides Name/Nickname"
msgstr ""
#: mod/crepair.php:170
msgid "Account URL"
msgstr ""
#: mod/crepair.php:171
msgid "Friend Request URL"
msgstr ""
#: mod/crepair.php:172
msgid "Friend Confirm URL"
msgstr ""
#: mod/crepair.php:173
msgid "Notification Endpoint URL"
msgstr ""
#: mod/crepair.php:174
msgid "Poll/Feed URL"
msgstr ""
#: mod/crepair.php:175
msgid "New photo from this URL"
msgstr ""
#: mod/delegate.php:101
msgid "No potential page delegates located."
msgstr ""
#: mod/delegate.php:132
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 ""
#: mod/delegate.php:133
msgid "Existing Page Managers"
msgstr ""
#: mod/delegate.php:135
msgid "Existing Page Delegates"
msgstr ""
#: mod/delegate.php:137
msgid "Potential Delegates"
msgstr ""
#: mod/delegate.php:139 mod/tagrm.php:95
msgid "Remove"
msgstr ""
#: mod/delegate.php:140
msgid "Add"
msgstr ""
#: mod/delegate.php:141
msgid "No entries."
msgstr ""
#: mod/dfrn_poll.php:104 mod/dfrn_poll.php:539
#, php-format
msgid "%1$s welcomes %2$s"
msgstr ""
#: mod/directory.php:199 view/theme/vier/theme.php:196
msgid "Global Directory"
msgstr ""
#: mod/directory.php:201
msgid "Find on this site"
msgstr ""
#: mod/directory.php:203
msgid "Results for:"
msgstr ""
#: mod/directory.php:205
msgid "Site Directory"
msgstr ""
#: mod/directory.php:212
msgid "No entries (some entries may be hidden)."
msgstr ""
#: mod/dirfind.php:37
#, php-format
msgid "People Search - %s"
msgstr ""
#: mod/dirfind.php:48
#, php-format
msgid "Forum Search - %s"
msgstr ""
#: mod/dirfind.php:245 mod/match.php:109
msgid "No matches"
msgstr ""
#: mod/filer.php:30
msgid "- select -"
msgstr ""
#: mod/follow.php:19 mod/dfrn_request.php:888
msgid "Submit Request"
msgstr ""
#: mod/follow.php:30
msgid "You already added this contact."
msgstr ""
#: mod/follow.php:39
msgid "Diaspora support isn't enabled. Contact can't be added."
msgstr ""
#: mod/follow.php:46
msgid "OStatus support is disabled. Contact can't be added."
msgstr ""
#: mod/follow.php:53
msgid "The network type couldn't be detected. Contact can't be added."
msgstr ""
#: mod/follow.php:112 mod/dfrn_request.php:874
msgid "Please answer the following:"
msgstr ""
#: mod/follow.php:113 mod/dfrn_request.php:875
#, php-format
msgid "Does %s know you?"
msgstr ""
#: mod/follow.php:114 mod/dfrn_request.php:879
msgid "Add a personal note:"
msgstr ""
#: mod/follow.php:120 mod/dfrn_request.php:885
msgid "Your Identity Address:"
msgstr ""
#: mod/follow.php:129 mod/contacts.php:632 mod/notifications.php:249
msgid "Profile URL"
msgstr ""
#: mod/follow.php:186
msgid "Contact added"
msgstr ""
#: mod/fsuggest.php:64
msgid "Friend suggestion sent."
msgstr ""
#: mod/fsuggest.php:98
msgid "Suggest Friends"
msgstr ""
#: mod/fsuggest.php:100
#, php-format
msgid "Suggest a friend for %s"
msgstr ""
#: mod/group.php:29
msgid "Group created."
msgstr ""
#: mod/group.php:35
msgid "Could not create group."
msgstr ""
#: mod/group.php:49 mod/group.php:150
msgid "Group not found."
msgstr ""
#: mod/group.php:63
msgid "Group name changed."
msgstr ""
#: mod/group.php:76 mod/profperm.php:20 index.php:406
msgid "Permission denied"
msgstr ""
#: mod/group.php:91
msgid "Save Group"
msgstr ""
#: mod/group.php:97
msgid "Create a group of contacts/friends."
msgstr ""
#: mod/group.php:122
msgid "Group removed."
msgstr ""
#: mod/group.php:124
msgid "Unable to remove group."
msgstr ""
#: mod/group.php:187
msgid "Group Editor"
msgstr ""
#: mod/group.php:200
msgid "Members"
msgstr ""
#: mod/group.php:202 mod/contacts.php:700
msgid "All Contacts"
msgstr ""
#: mod/group.php:233 mod/profperm.php:107
msgid "Click on a contact to add or remove."
msgstr ""
#: mod/hcard.php:11
msgid "No profile"
msgstr ""
#: mod/help.php:41
msgid "Help:"
msgstr ""
#: mod/help.php:53 mod/fetch.php:12 mod/fetch.php:39 mod/fetch.php:48
#: mod/p.php:16 mod/p.php:43 mod/p.php:52 index.php:292
msgid "Not Found"
msgstr ""
#: mod/help.php:56 index.php:295
msgid "Page not found."
msgstr ""
#: mod/home.php:39
#, php-format
msgid "Welcome to %s"
msgstr ""
#: mod/invite.php:28
msgid "Total invitation limit exceeded."
msgstr ""
#: mod/invite.php:51
#, php-format
msgid "%s : Not a valid email address."
msgstr ""
#: mod/invite.php:76
msgid "Please join us on Friendica"
msgstr ""
#: mod/invite.php:87
msgid "Invitation limit exceeded. Please contact your site administrator."
msgstr ""
#: mod/invite.php:91
#, php-format
msgid "%s : Message delivery failed."
msgstr ""
#: mod/invite.php:95
#, php-format
msgid "%d message sent."
msgid_plural "%d messages sent."
msgstr[0] ""
msgstr[1] ""
#: mod/invite.php:114
msgid "You have no more invitations available"
msgstr ""
#: mod/invite.php:122
#, php-format
msgid ""
"Visit %s for a list of public sites that you can join. Friendica members on "
"other sites can all connect with each other, as well as with members of many "
"other social networks."
msgstr ""
#: mod/invite.php:124
#, php-format
msgid ""
"To accept this invitation, please visit and register at %s or any other "
"public Friendica website."
msgstr ""
#: mod/invite.php:125
#, php-format
msgid ""
"Friendica sites all inter-connect to create a huge privacy-enhanced social "
"web that is owned and controlled by its members. They can also connect with "
"many traditional social networks. See %s for a list of alternate Friendica "
"sites you can join."
msgstr ""
#: mod/invite.php:128
msgid ""
"Our apologies. This system is not currently configured to connect with other "
"public sites or invite members."
msgstr ""
#: mod/invite.php:134
msgid "Send invitations"
msgstr ""
#: mod/invite.php:135
msgid "Enter email addresses, one per line:"
msgstr ""
#: mod/invite.php:136 mod/message.php:332 mod/message.php:515
#: mod/wallmessage.php:135
msgid "Your message:"
msgstr ""
#: mod/invite.php:137
msgid ""
"You are cordially invited to join me and other close friends on Friendica - "
"and help us to create a better social web."
msgstr ""
#: mod/invite.php:139
msgid "You will need to supply this invitation code: $invite_code"
msgstr ""
#: mod/invite.php:139
msgid ""
"Once you have registered, please connect with me via my profile page at:"
msgstr ""
#: mod/invite.php:141
msgid ""
"For more information about the Friendica project and why we feel it is "
"important, please visit http://friendica.com"
msgstr ""
#: mod/localtime.php:24
msgid "Time Conversion"
msgstr ""
#: mod/localtime.php:26
msgid ""
"Friendica provides this service for sharing events with other networks and "
"friends in unknown timezones."
msgstr ""
#: mod/localtime.php:30
#, php-format
msgid "UTC time: %s"
msgstr ""
</