Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Thomas Willingham 2012-11-04 19:56:33 +00:00
commit 234598280d
720 changed files with 127742 additions and 34037 deletions

3
.gitignore vendored
View file

@ -21,3 +21,6 @@ report/
.buildpath
.externalToolBuilders
.settings
#ignore OSX .DS_Store files
.DS_Store

View file

@ -15,6 +15,16 @@ Deny from all
# Also place auth information into REMOTE_USER for sites running
# in CGI mode.
# If you have troubles or use VirtualDocumentRoot
# uncomment this and set it to the path where your friendica installation is
# i.e.:
# Friendica url: http://some.example.com
# RewriteBase /
# Friendica url: http://some.example.com/friendica
# RewriteBase /friendica/
#
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]

View file

@ -51,6 +51,10 @@ php.ini file [or see 'poormancron' in section 8]
directory/path component in the URL) is preferred. This is REQUIRED if
you wish to communicate with the Diaspora network.
- For alternative server configurations (such as Nginx server and MariaDB
database engine), refer to the wiki at https://github.com/friendica/friendica/wiki
2. Unpack the Friendica files into the root of your web server document area.
- If you copy the directory tree to your webserver, make sure

4
README
View file

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

199
boot.php
View file

@ -8,11 +8,12 @@ require_once('include/datetime.php');
require_once('include/pgettext.php');
require_once('include/nav.php');
require_once('include/cache.php');
require_once('library/Mobile_Detect/Mobile_Detect.php');
define ( 'FRIENDICA_PLATFORM', 'Friendica');
define ( 'FRIENDICA_VERSION', '3.0.1398' );
define ( 'FRIENDICA_VERSION', '3.0.1516' );
define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
define ( 'DB_UPDATE_VERSION', 1153 );
define ( 'DB_UPDATE_VERSION', 1156 );
define ( 'EOL', "<br />\r\n" );
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
@ -191,6 +192,7 @@ define ( 'NOTIFY_SUGGEST', 0x0020 );
define ( 'NOTIFY_PROFILE', 0x0040 );
define ( 'NOTIFY_TAGSELF', 0x0080 );
define ( 'NOTIFY_TAGSHARE', 0x0100 );
define ( 'NOTIFY_POKE', 0x0200 );
define ( 'NOTIFY_SYSTEM', 0x8000 );
@ -215,7 +217,7 @@ define ( 'TERM_OBJ_PHOTO', 2 );
* various namespaces we may need to parse
*/
define ( 'NAMESPACE_ZOT', 'http://purl.org/macgirvin/zot' );
define ( 'NAMESPACE_ZOT', 'http://purl.org/zot' );
define ( 'NAMESPACE_DFRN' , 'http://purl.org/macgirvin/dfrn/1.0' );
define ( 'NAMESPACE_THREAD' , 'http://purl.org/syndication/thread/1.0' );
define ( 'NAMESPACE_TOMB' , 'http://purl.org/atompub/tombstones/1.0' );
@ -250,6 +252,9 @@ define ( 'ACTIVITY_UPDATE', NAMESPACE_ACTIVITY_SCHEMA . 'update' );
define ( 'ACTIVITY_TAG', NAMESPACE_ACTIVITY_SCHEMA . 'tag' );
define ( 'ACTIVITY_FAVORITE', NAMESPACE_ACTIVITY_SCHEMA . 'favorite' );
define ( 'ACTIVITY_POKE', NAMESPACE_ZOT . '/activity/poke' );
define ( 'ACTIVITY_MOOD', NAMESPACE_ZOT . '/activity/mood' );
define ( 'ACTIVITY_OBJ_COMMENT', NAMESPACE_ACTIVITY_SCHEMA . 'comment' );
define ( 'ACTIVITY_OBJ_NOTE', NAMESPACE_ACTIVITY_SCHEMA . 'note' );
define ( 'ACTIVITY_OBJ_PERSON', NAMESPACE_ACTIVITY_SCHEMA . 'person' );
@ -278,7 +283,9 @@ define ( 'GRAVITY_COMMENT', 6);
*/
function startup() {
error_reporting(E_ERROR | E_WARNING | E_PARSE);
set_time_limit(0);
// This has to be quite large to deal with embedded private photos
@ -345,11 +352,26 @@ if(! class_exists('App')) {
public $plugins;
public $apps = array();
public $identities;
public $is_mobile;
public $is_tablet;
public $nav_sel;
public $category;
// Allow themes to control internal parameters
// by changing App values in theme.php
//
// Possibly should make these part of the plugin
// system, but it seems like overkill to invoke
// all the plugin machinery just to change a couple
// of values
public $sourcename = '';
public $videowidth = 425;
public $videoheight = 350;
public $force_max_items = 0;
public $theme_thread_allow = true;
private $scheme;
private $hostname;
private $baseurl;
@ -383,7 +405,6 @@ if(! class_exists('App')) {
elseif(x($_SERVER,'SERVER_PORT') && (intval($_SERVER['SERVER_PORT']) == 443))
$this->scheme = 'https';
if(x($_SERVER,'SERVER_NAME')) {
$this->hostname = $_SERVER['SERVER_NAME'];
@ -413,6 +434,7 @@ if(! class_exists('App')) {
. 'include' . PATH_SEPARATOR
. 'library' . PATH_SEPARATOR
. 'library/phpsec' . PATH_SEPARATOR
. 'library/langdet' . PATH_SEPARATOR
. '.' );
if((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,2) === "q=") {
@ -453,6 +475,7 @@ if(! class_exists('App')) {
$this->argc = count($this->argv);
if((array_key_exists('0',$this->argv)) && strlen($this->argv[0])) {
$this->module = str_replace(".", "_", $this->argv[0]);
$this->module = str_replace("-", "_", $this->module);
}
else {
$this->argc = 1;
@ -460,16 +483,6 @@ if(! class_exists('App')) {
$this->module = 'home';
}
/**
* Special handling for the webfinger/lrdd host XRD file
*/
if($this->cmd === '.well-known/host-meta') {
$this->argc = 1;
$this->argv = array('hostxrd');
$this->module = 'hostxrd';
}
/**
* See if there is any page number information, and initialise
* pagination
@ -481,6 +494,14 @@ if(! class_exists('App')) {
if($this->pager['start'] < 0)
$this->pager['start'] = 0;
$this->pager['total'] = 0;
/**
* Detect mobile devices
*/
$mobile_detect = new Mobile_Detect();
$this->is_mobile = $mobile_detect->isMobile();
$this->is_tablet = $mobile_detect->isTablet();
}
function get_baseurl($ssl = false) {
@ -555,7 +576,7 @@ if(! class_exists('App')) {
$interval = 40000;
$this->page['title'] = $this->config['sitename'];
$tpl = file_get_contents('view/head.tpl');
$tpl = get_markup_template('head.tpl');
$this->page['htmlhead'] = replace_macros($tpl,array(
'$baseurl' => $this->get_baseurl(), // FIXME for z_path!!!!
'$local_user' => local_user(),
@ -568,6 +589,13 @@ if(! class_exists('App')) {
));
}
function init_page_end() {
$tpl = get_markup_template('end.tpl');
$this->page['end'] = replace_macros($tpl,array(
'$baseurl' => $this->get_baseurl() // FIXME for z_path!!!!
));
}
function set_curl_code($code) {
$this->curl_code = $code;
}
@ -710,9 +738,13 @@ if(! function_exists('check_config')) {
// than the currently visited url, store the current value accordingly.
// "Radically different" ignores common variations such as http vs https
// and www.example.com vs example.com.
// We will only change the url to an ip address if there is no existing setting
if((! x($url)) || (! link_compare($url,$a->get_baseurl())))
if(! x($url))
$url = set_config('system','url',$a->get_baseurl());
if((! link_compare($url,$a->get_baseurl())) && (! preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/",$a->get_hostname)))
$url = set_config('system','url',$a->get_baseurl());
if($build != DB_UPDATE_VERSION) {
$stored = intval($build);
@ -743,9 +775,10 @@ if(! function_exists('check_config')) {
// If the update fails or times-out completely you may need to
// delete the config entry to try again.
if(get_config('database','update_' . $x))
$t = get_config('database','update_' . $x);
if($t !== false)
break;
set_config('database','update_' . $x, '1');
set_config('database','update_' . $x, time());
// call the specific update
@ -768,13 +801,14 @@ if(! function_exists('check_config')) {
. 'Content-transfer-encoding: 8bit' );
//try the logger
logger('CRITICAL: Update Failed: '. $x);
break;
}
else
else {
set_config('database','update_' . $x, 'success');
set_config('system','build', $x + 1);
}
}
}
set_config('system','build', DB_UPDATE_VERSION);
}
}
}
@ -873,6 +907,10 @@ if(! function_exists('login')) {
$tpl = get_markup_template("logout.tpl");
}
else {
$a->page['htmlhead'] .= replace_macros(get_markup_template("login_head.tpl"),array(
'$baseurl' => $a->get_baseurl(true)
));
$tpl = get_markup_template("login.tpl");
$_SESSION['return_url'] = $a->query_string;
}
@ -998,11 +1036,29 @@ if(! function_exists('get_max_import_size')) {
if(! function_exists('profile_load')) {
function profile_load(&$a, $nickname, $profile = 0) {
if(remote_user()) {
$r = q("SELECT `profile-id` FROM `contact` WHERE `id` = %d LIMIT 1",
intval($_SESSION['visitor_id']));
if(count($r))
$profile = $r[0]['profile-id'];
$user = q("select uid from user where nickname = '%s' limit 1",
dbesc($nickname)
);
if(! ($user && count($user))) {
logger('profile error: ' . $a->query_string, LOGGER_DEBUG);
notice( t('Requested account is not available.') . EOL );
$a->error = 404;
return;
}
if(remote_user() && count($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $visitor) {
if($visitor['uid'] == $user[0]['uid']) {
$r = q("SELECT `profile-id` FROM `contact` WHERE `id` = %d LIMIT 1",
intval($visitor['cid'])
);
if(count($r))
$profile = $r[0]['profile-id'];
break;
}
}
}
$r = null;
@ -1043,9 +1099,12 @@ if(! function_exists('profile_load')) {
$a->profile = $r[0];
$a->profile['mobile-theme'] = get_pconfig($profile_uid, 'system', 'mobile_theme');
$a->page['title'] = $a->profile['name'] . " @ " . $a->config['sitename'];
$_SESSION['theme'] = $a->profile['theme'];
$_SESSION['mobile-theme'] = $a->profile['mobile-theme'];
/**
* load/reload current theme info
@ -1117,8 +1176,14 @@ if(! function_exists('profile_sidebar')) {
// don't show connect link to authenticated visitors either
if((remote_user()) && ($_SESSION['visitor_visiting'] == $profile['uid']))
$connect = False;
if(remote_user() && count($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $visitor) {
if($visitor['uid'] == $profile['uid']) {
$connect = false;
break;
}
}
}
if(get_my_url() && $profile['unkmail'])
$wallmessage = t('Message');
@ -1234,9 +1299,15 @@ if(! function_exists('get_birthdays')) {
$a = get_app();
$o = '';
if(! local_user())
if(! local_user() || $a->is_mobile || $a->is_tablet)
return $o;
// $mobile_detect = new Mobile_Detect();
// $is_mobile = $mobile_detect->isMobile() || $mobile_detect->isTablet();
// if($is_mobile)
// return $o;
$bd_format = t('g A l F d') ; // 8 AM Friday January 18
$bd_short = t('F d');
@ -1313,9 +1384,16 @@ if(! function_exists('get_events')) {
$a = get_app();
if(! local_user())
if(! local_user() || $a->is_mobile || $a->is_tablet)
return $o;
// $mobile_detect = new Mobile_Detect();
// $is_mobile = $mobile_detect->isMobile() || $mobile_detect->isTablet();
// if($is_mobile)
// return $o;
$bd_format = t('g A l F d') ; // 8 AM Friday January 18
$bd_short = t('F d');
@ -1427,7 +1505,10 @@ if(! function_exists('proc_run')) {
$args[$x] = escapeshellarg($args[$x]);
$cmdline = implode($args," ");
proc_close(proc_open($cmdline." &",array(),$foo));
if(get_config('system','proc_windows'))
proc_close(proc_open('cmd /c start /b ' . $cmdline,array(),$foo,dirname(__FILE__)));
else
proc_close(proc_open($cmdline." &",array(),$foo,dirname(__FILE__)));
}
}
@ -1437,9 +1518,31 @@ if(! function_exists('current_theme')) {
$a = get_app();
$system_theme = ((isset($a->config['system']['theme'])) ? $a->config['system']['theme'] : '');
$theme_name = ((isset($_SESSION) && x($_SESSION,'theme')) ? $_SESSION['theme'] : $system_theme);
// $mobile_detect = new Mobile_Detect();
// $is_mobile = $mobile_detect->isMobile() || $mobile_detect->isTablet();
$is_mobile = $a->is_mobile || $a->is_tablet;
if($is_mobile) {
if(isset($_SESSION['show-mobile']) && !$_SESSION['show-mobile']) {
$system_theme = '';
$theme_name = '';
}
else {
$system_theme = ((isset($a->config['system']['mobile-theme'])) ? $a->config['system']['mobile-theme'] : '');
$theme_name = ((isset($_SESSION) && x($_SESSION,'mobile-theme')) ? $_SESSION['mobile-theme'] : $system_theme);
if($theme_name === '---') {
// user has selected to have the mobile theme be the same as the normal one
$system_theme = '';
$theme_name = '';
}
}
}
if(!$is_mobile || ($system_theme === '' && $theme_name === '')) {
$system_theme = ((isset($a->config['system']['theme'])) ? $a->config['system']['theme'] : '');
$theme_name = ((isset($_SESSION) && x($_SESSION,'theme')) ? $_SESSION['theme'] : $system_theme);
}
if($theme_name &&
(file_exists('view/theme/' . $theme_name . '/style.css') ||
file_exists('view/theme/' . $theme_name . '/style.php')))
@ -1575,18 +1678,21 @@ if(! function_exists('profile_tabs')){
'url' => $url,
'sel' => ((!isset($tab)&&$a->argv[0]=='profile')?'active':''),
'title' => t('Status Messages and Posts'),
'id' => 'status-tab',
),
array(
'label' => t('Profile'),
'url' => $url.'/?tab=profile',
'sel' => ((isset($tab) && $tab=='profile')?'active':''),
'title' => t('Profile Details'),
'id' => 'profile-tab',
),
array(
'label' => t('Photos'),
'url' => $a->get_baseurl() . '/photos/' . $nickname,
'sel' => ((!isset($tab)&&$a->argv[0]=='photos')?'active':''),
'title' => t('Photo Albums'),
'id' => 'photo-tab',
),
);
@ -1596,12 +1702,14 @@ if(! function_exists('profile_tabs')){
'url' => $a->get_baseurl() . '/events',
'sel' =>((!isset($tab)&&$a->argv[0]=='events')?'active':''),
'title' => t('Events and Calendar'),
'id' => 'events-tab',
);
$tabs[] = array(
'label' => t('Personal Notes'),
'url' => $a->get_baseurl() . '/notes',
'sel' =>((!isset($tab)&&$a->argv[0]=='notes')?'active':''),
'title' => t('Only You Can See This'),
'id' => 'notes-tab',
);
}
@ -1670,3 +1778,28 @@ function build_querystring($params, $name=null) {
}
return $ret;
}
/**
* Returns the complete URL of the current page, e.g.: http(s)://something.com/network
*
* Taken from http://webcheatsheet.com/php/get_current_page_url.php
*/
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80" && $_SERVER["SERVER_PORT"] != "443") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
function random_digits($digits) {
$rn = '';
for($i = 0; $i < $digits; $i++) {
$rn .= rand(0,9);
}
return $rn;
}

View file

@ -260,6 +260,7 @@ CREATE TABLE IF NOT EXISTS `event` (
`type` char(255) NOT NULL,
`nofinish` tinyint(1) NOT NULL DEFAULT '0',
`adjust` tinyint(1) NOT NULL DEFAULT '1',
`ignore` tinyint(1) NOT NULL DEFAULT '0',
`allow_cid` mediumtext NOT NULL,
`allow_gid` mediumtext NOT NULL,
`deny_cid` mediumtext NOT NULL,
@ -271,7 +272,8 @@ CREATE TABLE IF NOT EXISTS `event` (
KEY `type` ( `type` ),
KEY `start` ( `start` ),
KEY `finish` ( `finish` ),
KEY `adjust` ( `adjust` )
KEY `adjust` ( `adjust` ),
KEY `ignore` ( `ignore` )
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
@ -456,6 +458,7 @@ CREATE TABLE IF NOT EXISTS `hook` (
`hook` char(255) NOT NULL,
`file` char(255) NOT NULL,
`function` char(255) NOT NULL,
`priority` int(11) UNSIGNED NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
@ -569,6 +572,9 @@ CREATE TABLE IF NOT EXISTS `item` (
KEY `moderated` (`moderated`),
KEY `spam` (`spam`),
KEY `author-name` (`author-name`),
KEY `uid_commented` (`uid`, `commented`),
KEY `uid_created` (`uid`, `created`),
KEY `uid_unseen` (`uid`, `unseen`),
FULLTEXT KEY `title` (`title`),
FULLTEXT KEY `body` (`body`),
FULLTEXT KEY `allow_cid` (`allow_cid`),
@ -586,11 +592,13 @@ CREATE TABLE IF NOT EXISTS `item` (
--
CREATE TABLE IF NOT EXISTS `item_id` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`iid` int(11) NOT NULL,
`uid` int(11) NOT NULL,
`sid` char(255) NOT NULL,
`service` char(255) NOT NULL,
PRIMARY KEY (`iid`),
PRIMARY KEY (`id`),
KEY `iid` (`iid`),
KEY `uid` (`uid`),
KEY `sid` (`sid`),
KEY `service` (`service`)
@ -602,7 +610,7 @@ CREATE TABLE IF NOT EXISTS `item_id` (
-- Table structure for table `locks`
--
CREATE TABLE `locks` (
CREATE TABLE IF NOT EXISTS `locks` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` char(128) NOT NULL,
`locked` tinyint(1) NOT NULL DEFAULT '0',

View file

@ -4,7 +4,9 @@ Groups and Privacy
* [Home](help)
Groups are merely collections of friends. But Friendica uses these to unlock some very powerful features.
Groups are merely collections of friends. But Friendica uses these to unlock some very powerful features.
**Setting Up Groups**
To create a group, visit your Friendica "Contacts" page and select "Create a new group". Give the group a name.
@ -14,6 +16,8 @@ You will have two boxes on this page. The top box is the roster of current group
If you click on a photo of a person who isn't in the group, they will be put into the group. If you click on a photo of a person who is in the group, they will be removed from it.
**Access Control**
Once you have created a group, you may use it in any access control list. This is the little lock icon beneath the status update box on your home page. If you click this you can select who can see and who can *not* see the post you are about to make. These can be individual people or groups.
On your "Network" page you will find posts and conversation from everybody in your network. You may select an individual group on this page to show conversations pertaining only to members of that group.
@ -22,32 +26,44 @@ But wait, there's more...
If you look carefully when visiting a group from your Network page, the lock icon under the status update box has an exclamation mark next to it. This is meant to draw attention to that lock. Click the lock. You will see that since you are only viewing a certain group of people, your status updates while on that screen default to only being seen by that same group of people. This is how you keep your future employers from seeing what you write to your drinking buddies. You can over-ride this setting, but this makes it easy to separate your conversations into different friend circles.
**Default Post Privacy**
By default, Friendica assumes that you want all of your posts to be private. Therefore, when you sign up, Friendica creates a group for you that it will automatically add all of your contacts to. All of your posts are restricted to that group by default.
Note that this behavior can be overridden by your site admin, in which case your posts will be "public" (i.e. visible to the entire Internet) by default.
If you want your posts to be "public" by default, you can change your default post permissions on your Settings page. You also have the option there to change which groups you post to by default, or to change which group your new contacts get placed into by default.
**Privacy Concerns To Be Aware Of**
These private conversations work best when your friends are Friendica members. We know who else can see the conversations - nobody, *unless* your friends cut and paste the messages and send them to others.
This is a trust issue you need to be aware of. No software in the world can prevent your friends from leaking your confidential and trusted communications. Only a wise choice of friends.
But it isn't as clear cut when dealing with status.net, identi.ca and other network providers. You are encouraged to be **very** cautious when other network members are in a group because it's entirely possible for your private messages to end up in a public newsfeed. If you look at the Contact Edit page for any person, we will tell you whether or not they are members of an insecure network where you should exercise caution.
On your "Settings" page, you may create a set of default permissions which apply to every post that you create.
Once you have created a post, you can not change the permissions assigned. Within seconds it has been delivered to lots of people - and perhaps everybody it was addressed to. If you mistakenly created a message and wish you could take it back, the best you can do is to delete it. We will send out a delete notification to everybody who received the message - and this should wipe out the message with the same speed it was initially propagated. In most cases it will be completely wiped from the Internet - in under a minute. Again, this applies to Friendica networks. Once a message spreads to other networks, it may not be removed quickly and in some cases it may not be removed at all.
In case you haven't yet figured this out, we are encouraging you to encourage your friends to use Friendica - because all these privacy features work much better within a privacy-aware network. Many of the other social networks Friendica can connect to have no privacy controls.
In case you haven't yet figured this out, we are encouraging you to encourage your friends to use Friendica - because all these privacy features work much better within a privacy-aware network. Many of the other social networks Friendica can connect to have no privacy controls.
Profiles, Privacy, and Photos
Profiles, Photos, and Privacy
=============================
The decentralised nature of Friendica (many websites exchanging information rather than one website which controls everything) has some implications with privacy as it relates to people on other sites. There are things you should be aware of, so you can decide best how to interact privately.
**Photos**
Sharing photos privately is a problem. We can only share them __privately__ with Friendica members. In order to share with other people, we need to prove who they are. We can prove the identity of Friendica members, as we have a mechanism to do so. Your friends on other networks will be blocked from viewing these private photos because we cannot prove that they should be allowed to see them.
Our developers are working on solutions to allow access to your friends - no matter what network they are on. However we take privacy seriously and don't behave like some networks that __pretend__ your photos are private, but make them available to others without proof of identity.
**Profiles**
Your profile and "wall" may also be visited by your friends from other networks, and you can block access to these by web visitors that Friendica doesn't know. Be aware that this could include some of your friends on other networks.
This may produce undesired results when posting a long status message to (for instance) Twitter and even Facebook. When Friendica sends a post to these networks which exceeds the service length limit, we truncate it and provide a link to the original. The original is a link back to your Friendica profile. As Friendica cannot prove who they are, it may not be possible for these people to view your post in full.
For people in this situation we would recommend providing a "Twitter-length" summary, with more detail for friends that can see the post in full.
Blocking your profile or entire Friendica site from unknown web visitors also has serious implications for communicating with StatusNet/identi.ca members. These networks communicate with others via public protocols that are not authenticated. In order to view your posts, these networks have to access them as an "unknown web visitor". If we allowed this, it would mean anybody could in fact see your posts, and you've instructed Friendica not to allow this. So be aware that the act of blocking your profile to unknown visitors also has the effect of blocking outbound communication with public networks (such as identi.ca) and feed readers such as Google Reader.
Blocking your profile or entire Friendica site from unknown web visitors also has serious implications for communicating with StatusNet/identi.ca members. These networks communicate with others via public protocols that are not authenticated. In order to view your posts, these networks have to access them as an "unknown web visitor". If we allowed this, it would mean anybody could in fact see your posts, and you've instructed Friendica not to allow this. So be aware that the act of blocking your profile to unknown visitors also has the effect of blocking outbound communication with public networks (such as identi.ca) and feed readers such as Google Reader.

View file

@ -6,6 +6,8 @@ Friendica Documentation and Resources
* [Account Basics](help/Account-Basics)
* [New User Quick Start](help/guide)
* [Creating posts](help/Text_editor)
* [Comment, sort and delete posts](help/Text_comment)
* [Profiles](help/Profiles)
* [Connectors](help/Connectors)
* [Making Friends](help/Making-Friends)

View file

@ -100,20 +100,17 @@ b. The url should be your site URL with a trailing slash.
You **may** be required to provide a privacy and/or terms of service URL.
c. Set the following values in your .htconfig.php file
```
$a->config['facebook']['appid'] = 'xxxxxxxxxxx';
$a->config['facebook']['appsecret'] = 'xxxxxxxxxxxxxxx';
```
Replace with the settings Facebook gives you.
d. Navigate to Set Web->Site URL & Domain -> Website Settings. Set Site URL
c. Navigate to Set Web->Site URL & Domain -> Website Settings. Set Site URL
to yoursubdomain.yourdomain.com. Set Site Domain to your yourdomain.com.
d. Install the Facebook plugin on your Friendica site at 'admin/plugins'. You should then see a link for Facebook under 'Plugin Features' on the sidebar of the admin panel. Select that.
On Friendica, visit the Facebook Settings section of the "Settings->Connector Settings" page. And click 'Install Facebook Connector'.
e. Enter the App-ID and App Secret that Facebook gave you. Change any other settings as desired.
On Friendica, each member who wishes to use the Facebook connector should visit the Facebook Settings section of their "Settings->Connector Settings" page, and click 'Install Facebook Connector'.
Choose the appropriate settings for your usage and privacy requirements.
This will ask you to login to Facebook and grant permission to the
plugin to do its stuff. Allow it to do so.

44
doc/Text_comment.md Normal file
View file

@ -0,0 +1,44 @@
Comment, sort and delete posts
==============
* [Home](help)
Here you can find an overview of the different ways to comment and sort existing posts. <span style="color: red;">Attention: we've used the <b>"diabook"</b> theme. If you're using another theme, some of the icons may be different.</span>
<img src="doc/img/diabook.png" width="308" height="42" alt="diabook" >
<i>The different icons</i>
<img src="doc/img/post_thumbs_up.png" width="27" height="32" alt="post_thumbs_up.png" align="left" style="padding-bottom: 10px;"> This symbol is used to indicate that you like the post. Click it twice to undo your choice.<p style="clear:both;"></p>
<img src="doc/img/post_thumbs_down.png" width="27" height="32" alt="post_thumbs_down.png" align="left" style="padding-bottom: 10px;"> This symbol is used to indicate that you <b>dislike</b> the post. Click it twice to undo your choice.
<p style="clear:both;"></p>
<img src="doc/img/post_share.png" width="27" height="32" alt="post_share.png" align="left" style="padding-bottom: 10px;"> This symbol is used to share a post. A copy of this post will automatically appear in your status editor and add a link to the original post.
<p style="clear:both;"></p>
<img src="doc/img/post_mark.png" width="27" height="32" alt="post_mark.png" align="left" style="padding-bottom: 10px;"> This symbol is used to mark a post. Marked posts will appear on your network page at the "starred" tab (from "star"). Click it twice to undo your choice.
<p style="clear:both;"></p>
<img src="doc/img/post_tag.png" width="27" height="41" alt="post_tag.png" align="left" style="padding-bottom: 10px;"> This symbol is used to tag a post with a self-chosen keyword. When you click at the word, you'll get a list of all posts with this tag. Attention: you can't delete the tag once you've set one.
<p style="clear:both;"></p>
<img src="doc/img/post_categorize.png" width="27" height="32" alt="post_categorize.png" align="left" style="padding-bottom: 20px;"> This symbol is used to categorize posts. Choose an existing folder or create a new one. You'll find the created folder on your network page under the "saved folders" tab.
<p style="clear:both;"></p>
<img src="doc/img/post_delete.png" width="27" height="32" alt="post_delete.png" align="left"> This symbol is used to delete your own post or to remove a post of another person from your stream.
<P style="clear: both;"></p>
<img src="doc/img/post_choose.png" width="27" height="32" alt="post_choose.png" align="left"> This symbol is used to choose more than one post to delete in a single step. After selecting all posts, go to the end of the page and click "Delete Selected Items".<P style="clear: both;"></p>
**Symbols of other themes**
Darkbubble <img src="doc/img/darkbubble.png" alt="darkbubble.png" style="padding-left: 20px; vertical-align:middle;">
Darkzero <img src="doc/img/darkzero.png" alt="darkzero.png" style="padding-left: 35px; vertical-align:middle;">
<span style="padding-left: 10px; font-style:italic;">(incl. more "zero"-themes, slackr, comix, easterbunny, facepark)</span>
Dispy <img src="doc/img/dispy.png" alt="dispy.png" style="padding-left: 57px; vertical-align:middle;"> <i>(incl. smoothly, testbubble)</i>
Frost Mobile <img src="doc/img/frost.png" alt="frost.png" style="padding-left: 16px; vertical-align:middle;">

40
doc/Text_editor.md Normal file
View file

@ -0,0 +1,40 @@
Creating posts
=================
* [Home](help)
Here you can find an overview of the different ways to create and edit your post. <span style="color: red;">Attention: we've used the <b>"diabook"</b> theme. If you're using another theme, some of the icons may be different.</span>
<img src="doc/img/friendica_editor.png" width="538" height="218" alt="editor">
<i>The different iconss</i>
<img src="doc/img/camera.png" width="44" height="33" alt="editor" align="left" style="padding-bottom: 20px;"> This symbol is used to upload a picture from your computer. If you only want to add an adress (url), you can also use the "tree" icon at the upper part of the editor. After selecting an image, you'll see a thumbnail in the editor.
<p style="clear:both;"></p>
<img src="doc/img/paper_clip.png" width="44" height="33" alt="paper_clip" align="left"> This symbol is used to add files from your computer. There'll be no preview of the content.
<p style="clear:both;"></p>
<img src="doc/img/chain.png" width="44" height="33" alt="chain" align="left"> This symbol is used to add a web address (url). You'll see a short preview of the website.
<p style="clear:both;"></p>
<img src="doc/img/video.png" width="44" height="33" alt="video" align="left"> This symbol is used to add a web address (url) of a video file. You'll see a small preview of the video.
<p style="clear:both;"></p>
<img src="doc/img/mic.png" width="44" height="33" alt="mic" align="left"> This symbol is used to add a web address (url) of an audio file. You'll see a player in your completed post.
<p style="clear:both;"></p>
<img src="doc/img/globe.png" width="44" height="33" alt="globe" align="left"> This symbol is used to add your geographic location. This location will be added into a Google Maps search. That's why a note like "New York" or "10004" is already enough.
<p style="clear:both;"></p>
**Symbols of other themes**
Cleanzero <img src="doc/img/editor_zero.png" alt="cleanzero.png" style="padding-left: 20px; vertical-align:middle;">
<span style="padding-left: 10px; font-style:italic;">(incl. more "zero"-themes, comix, easterbunny, facepark, slackr </span>
Darkbubble <img src="doc/img/editor_darkbubble.png" alt="darkbubble.png" style="padding-left: 14px; vertical-align:middle;"> <i>(inkl. smoothly, testbubble)</i>
Frost <img src="doc/img/editor_frost.png" alt="frost.png" style="padding-left: 42px; vertical-align:middle;">
Vier <img src="doc/img/editor_vier.png" alt="vier.png" style="padding-left: 44px; vertical-align:middle;"> <i>(inkl. dispy)</i>

77
doc/de/Account-Basics.md Normal file
View file

@ -0,0 +1,77 @@
Account - Basics
==============
* [Zur Startseite der Hilfe](help)
**Registrierung**
Nicht alle Friendica-Seiten bieten eine freie Registrierung. Wenn die Registrierung erlaubt ist, zeigt sich sofort ein "Registrieren"-Link unter dem Login-Feld auf der Startseite. Ein Klick auf diesen Link führt zur Registrierungsseite. Die Stärke unseres Netzwerks ist, dass viele verschiedene Seiten komplett kompatible zueinander sind. Wenn die Seite, die du besuchst, eine Registrierung nicht erlaubt oder wenn du glaubst, dass dir eine andere Seite möglicherweise besser gefällt, dann kannst du hier eine <a href="http://dir.friendica.com/siteinfo">Liste von öffentlichen Servern</a> finden und die Seite suchen, die zu deinen Anforderungen passt.
Wenn du deinen eigenen Server aufsetzen willst, kannst du das ebenfalls machen. Besuche <a href="http://friendica.com/download">die Friendica-Webseite</a>, um den Code mit den Installationsanleitungen herunterzuladen. Es ist ein einfacher Installationsprozess, den jeder mit ein wenig Erfahrungen im Webseiten-Hosting oder mit grundlegenden Linux-Erfahrungen einfach handhaben kann.
*OpenID*
Das erste Feld auf der Registrierungsseite ist für eine OpenID-Adresse. Wenn du keine OpenID-Adresse hast oder nicht wünschst, diese zu nutzen, dann lasse das Feld frei. Wenn du einen OpenID-Account hast und diesen nutzen willst, gib die Adresse in das Feld ein und klicke auf "Registrieren". Friendica wird versuchen, so viele Informationen wie möglich von deinem OpenID-Provider zu übernehmen, um diese in dein Profil auf dieser Seite einzutragen.
*Dein vollständiger Name*
Bitte trage deinen vollständigen Namen **so ein, wie du ihn im System anzeigen lassen willst**. Viele Leute nutzen ihren richtigen Namen hierfür, allerdings besteht für dich keine Pflicht, das auch so zu machen.
*Email-Adresse*
Bitte trage eine richtige Email-Adresse ein. Deine Email-Adresse wird **niemals** veröffentlicht. Wir benötigen diese, um dir Account-Informationen und die Login-Daten zu schicken. Du erhältst zudem von Zeit zu Zeit Benachrichtigungen über eingegangene Nachrichten oder Punkte, die deine Aufmerksamkeit benötigen. Du hast aber auch die Möglichkeit, diese Nachrichten in deinen Account-Einstellungen komplett abzuschalten. Du musst nicht deine Haupt-Email-Adresse sein, jedoch wird eine funktionierende Adresse benötigt. Ohne dieses kannst du weder dein Initialpasswort erhalten, noch dein Passwort zurücksetzen. Dies ist die einzige persönliche Information, die korrekt sein muss.
*Spitzname/Nickname*
Der Spitzname wird benötigt, um eine Webadresse für viele deiner persönlichen Seiten zu erstellen. Auch wird dieser wie eine Email-Adresse genutzt, wenn eine Verbindung zu anderen Personen hergestellt werden soll. Durch die Art, wie der Spitzname genutzt wird, gibt es bestimmte Einschränkungen. Er darf nur US-ASCII-Textzeichen und Nummern enthalten und er muss zudem mit einem Buchstaben beginnen. Er muss außerdem einzigartig im System sein. Dieser Spitzname wird an vielen Stellen genutzt, um deinen Account zu identifizieren, und kann daher später nicht mehr geändert werden.
*Verzeichnis-Eintrag*
Das Registrierungsformular erlaubt es dir, direkt auszuwählen, ob du im Onlineverzeichnis aufgelistet wirst oder nicht. Das ist wie ein Telefonbuch und du kannst entscheiden, nicht aufgeführt zu werden. Wir bitten dich, "Ja" zu wählen, so dass dich andere Leute (Freunde, Familie etc.) finden können. Wenn du "Nein" wählst, wirst du hauptsächlich unsichtbar sein und nur wenige Möglichkeiten zur Interaktion haben. Was auch immer du wählst, kann jederzeit nach dem Login in deinen Account-Einstellungen geändert werden.
*Registrierung*
Sobald du die nötigen Informationen eingegeben hast, klicke auf "Registrieren". Eine Email wird an die hinterlegte Email-Adresse geschickt. Bitte prüfe den Posteingang (inkl. dem Spam-Ordner) für die Registrierungsdetails und dein Initialpasswort.
**Login-Seite**
Gib auf der "Login"-Seite die Informationen ein, die du während der Registrierung erhalten hast. Du kannst entweder deinen Spitznamen oder die Email-Adresse als Login-Namen nutzen.
Wenn du deinen Account nutzt, um mehrfache '[Seiten](help/Pages)' zu verwalten, die die gleiche Email-Adresse benutzen, dann nutze bitte den Spitznamen des Accounts, der verwaltet werden soll.
*Wenn* dein Account OpenID nutzt, dann kannst du deine OpenID-Adresse als Login-Name nutzen und das Passwort-Feld frei lassen. Du wirst zu deinem OpenID-Anbieter weitergeleitet, wo du deine Anmeldung abschließt.
Wenn OpenID nicht genutzt wird, gib dein Passwort ein. Dieses hast du zu Beginn in der Registrierungsmail erhalten. Dein Passwort ist zeichengenau; Groß- und Kleinschreibung wird beachtet. Prüfe bitte, ob deine Feststelltaste aktiv ist, falls du Schwierigkeiten beim Login hast.
**Passwort ändern**
Besuche nach deinem ersten Login bitte die Einstellungsseite und wechsle das Passwort in eines, dass du dir merken kannst.
**Der Anfang**
Ein ['Tipp für neue Mitglieder'](newmember)-Link zeigt sich in den ersten beiden Wochen auf deiner Startseite, um dir erste Informationen zum Start zu bieten.
**Persönliche Daten exportieren**
Du kannst eine Kopie deiner persönlichen Daten in einer XML-Datei exportieren. Gehe hierzu in deinen Einstellungen auf "Persönliche Daten exportieren".
**Schau dir ebenfalls folgende Seiten an**
* [Profile](help/Profiles)
* [Gruppen und Privatssphäre](help/Groups-and-Privacy)
* [Account löschen](help/Remove-Account)

28
doc/de/Bugs-and-Issues.md Normal file
View file

@ -0,0 +1,28 @@
Bugs und Probleme
===============
* [Zur Startseite der Hilfe](help)
Wenn dein Server eine Supportseite hat, solltest du jeden Bug und jedes Problem, den/das du findest, zunächst dort melden. Die Fehler zunächst dort zu melden, statt auf der allgemeinen Bug-Seite, erleichtert es den Entwicklern, neue Features zu entwickeln, wenn sie sich nicht mit Fehlern beschäftigen müssen, mit denen sie nichts zu tun haben.
Wenn du ein technisch verantwortlicher Nutzer bist oder wenn deine Seite keine Support-Seite hat, dann kannst du den <a href="http://bugs.friendica.com/">Bug Tracker</a> nutzen. Bitte nutze zunächst die Suche, ob es bereits einen offenen Bug gibt, der deiner Anfrage entspricht.
Versuche, so viele Informationen wie möglich zum Bug zu bieten. Hierzu gehört auch die **komplette** Fehlermeldung oder Notiz und alle Schritte, die zu dem Fehler geführt haben. Es ist generell besser, zu viele Informationen zu liefern, als zu wenige.
Lies dir diesen <a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs-de.html">Artikel (mehrsprachig)</a> durch, um mehr über **gute** Bug-Reports zu erfahren.
**Bug-Bearbeitung sponsern**
Wenn du einen Bug findest, der seine Ursache im Hauptsystem hat (also wenn es sich nicht nur um deine Seite handelt), dann kannst du diesen sponsern.
Die Bug/Fehler-Datenbank erlaubt es dir, Fehler zu sponsern. Das schafft einen Anreiz für die Entwickler, deinen Fehler zu bearbeiten. Das ist nicht zwingend notwendig, da wir keine Bugs mögen und versuchen, diese zu beheben. Wichtiger ist dieses für die zukünftige Projektentwicklung und für Feature-Anfragen.
Bug-Sponsoring arbeitet nach dem System der Anerkennung. Wenn du 10€ spendest, um einen Bug zu beheben, dann sende die Zahlung per PayPal an den Entwickler, der den Bug behoben hat. Und denke nie daran, für geleistete Arbeit nicht zu bezahlen. Einige dieser Leute könnten deine Kreditkarte hacken, falls du sie verärgern solltest.
Zur Zeit können nur Personen gesponserte Bugs bearbeiten, die als Entwickler bestätigt wurden. Hierfür muss der Entwickler bereits einige Friendica-Bugs bearbeitet haben. Das dient zur Absicherung, damit der behobene Bug auch gut mit Friendica läuft. Wenn du wünschst, als Entwickler bestätigt zu werden, dann arbeite dich ein und übernimm einige nicht-gesponserte Probleme oder dein eigenes Projekt und du wirst auf der Leiter nach oben klettern.
Wenn du sicher glaubst, dass du einen gesponserten Bug beheben kannst, aber nicht als Entwickler bestätigt bist, kann es passieren, dass ein gesponserter Entwickler den Bug bearbeiten, bevor du ihn dir sichern kannst. Wenn das nicht der Fall ist, dann trage einen kleinen Vermerk in die Anfrage ein. Wenn du unsere Code-Standards erfüllst, versuchen wir, dir einen Bonus zukommen zu lassen.
Wenn du ein Projekt mit mehr als 50€ sponserst, dann fragen dich die Entwickler gegebenenfalls, ob sie einen Teil der Zahlung vorab erhalten (normalerweise die Hälfte). Nochmals: es handelt sich um ein Anerkennungssystem - und hauptsächlich dient es dazu, Zahlungsprobleme und Streitigkeiten zu verhindern. Du solltest nach 1-2 Wochen einen gewissen Fortschritt oder Demonstrationen erwarten können. Wenn die Arbeit nicht in einer für dich annehmbaren Zeit gelöst ist, hast du das Recht, das Geld zurückzufordern.
Friendica ist nicht in diese Transaktionen involviert. Es handelt sich ausschließlich um ein persönliches Abkommen zwischen dem Sponsor und dem Entwickler. Wenn es irgendwelche Probleme gibt, müssen die Parteien es untereinander klären. Wir erstellen gerade einige Richtlinien, um potentielle Probleme zu vermeiden.

67
doc/de/Connectors.md Normal file
View file

@ -0,0 +1,67 @@
Konnektoren (Connectors)
==========
* [Zur Startseite der Hilfe](help)
Konnektoren erlauben es dir, dich mit anderen sozialen Netzwerken zu verbinden. Konnektoren werden nur bei bestehenden Facebook-, Twitter und StatusNet-Accounts benötigt. Außerdem gibt es einen Konnektor, um deinen Email-Posteingang zu nutzen.
Wenn die folgenden Netzwerk-Konnektoren auf deinem System installiert sind, kannst du mit den folgenden Links die Einstellungsseiten besuchen und für deinen Account konfigurieren:
* [Facebook](/settings/addon)
* [Twitter](/settings/addon)
* [StatusNet](/settings/addon)
* [Email](/settings)
Anleitung, um sich mit Personen in bestimmten Netzwerken zu verbinden
==========================================================
**Friendica**
Du kannst dich verbinden, indem du deine Identitäts-Adresse auf der "Verbinden"-Seite des Friendica-Nutzers eingibst. Ebenso kannst du deren Identitäts-Adresse in der "Verbinden"-Box auf deiner ["Kontakt"-Seite](contacts) eingeben.
**Diaspora**
Füge die Diaspore-Identitäts-Adresse (z.B. name@diasporapod.com)auf deiner ["Kontakte"-Seite](contacts) in das Feld "Neuen Kontakt hinzufügen" ein.
**Identi.ca/StatusNet/GNU-Social**
Diese Netzwerke werden als "federated social web" bzw. "OStatus"-Kontakte bezeichnet.
Bitte beachte, dass es **keine** Einstellungen zur Privatssphäre im OStatus-Netzwerk gibt. **Jede** Nachricht, die an eines dieser OStatus-Mitglieder verschickt wird, ist für jeden auf der Welt sichtbar; alle Privatssphäreneinstellungen verlieren ihre Wirkung. Diese Nachrichten erscheinen ebenfalls in öffentlichen Suchergebnissen.
Da die OStatus-Kommunikation keine Authentifizierung benutzt, können OStatus-Nutzer *keine* Nachrichten empfangen, wenn du in deinen Privatssphäreneinstellungen "Profil und Nachrichten vor Unbekannten verbergen" wählst.
Um dich mit einem OStatus-Mitglied zu verbinden, trage deren Profil-URL oder Identitäts-Adresse auf deiner ["Kontakte"-Seite](contacts) in das Feld "Neuen Kontakt hinzufügen" ein.
Der StatusNet-Konnektor kann genutzt werden, wenn du Beiträge schreiben willst, die auf einer OStatus-Seite über einen existierenden OStatus-Account erscheinen sollen.
Das ist nicht notwendig, wenn du OStatus-Mitgliedern von Friendica aus folgst und diese dir auch folgen, indem sie auf deiner Kontaktseite ihre eigene Identitäts-Adresse eingeben.
**Blogger, Wordpress, RSS feeds, andere Webseiten**
Trage die URL auf deiner ["Kontakte"-Seite](contacts) in das Feld "Neuen Kontakt hinzufügen" ein. Du hast keine Möglichkeit, diesen Kontakten zu antworten.
Das erlaubt dir, dich mit Millionen von Seiten im Internet zu _verbinden_. Alles, was dafür nötig ist, ist dass die Seite einen Feed im RSS- oder Atom Syndication-Format nutzt und welches einen Autoren und ein Bild zur Seite liefert.
**Twitter**
Um einem Twitter-Nutzer zu folgen, trage die URL der Hauptseite des Twitter-Accounts auf deiner ["Kontakte"-Seite](contacts) in das Feld "Neuen Kontakt hinzufügen" ein. Um zu antworten, musst du den Twitter-Konnektor installieren und über deinen eigenen Status-Editor antworten. Beginne deine Nachricht mit @twitternutzer, ersetze das aber durch den richtigen Twitter-Namen.
**Email**
Konfiguriere den Email-Konnektor auf deiner [Einstellungsseite](settings). Wenn du das gemacht hast, kannst du auf deiner ["Kontakte"-Seite](contacts) die Email-Adresse in das Feld "Neuen Kontakt hinzufügen" eintragen. Diese Email-Adresse muss jedoch bereits mit einer Nachricht in deinem Email-Posteingang auf dem Server liegen. Du hast die Möglichkeit, Email-Kontakte in deine privaten Unterhaltungen einzubeziehen.
**Facebook**
Der Facebook-Konnektor ist ein Plugin/Addon, dass es dir erlaubt, von Friendica aus mit Freunden auf Facebook zu interagieren. Wenn er aktiviert ist, wird deine Facebook-Freundesliste importiert und du wirst Facebook-Beiträge sehen und kommentieren können. Facebook-Freunde können außerdem zu privaten Gesprächen hinzugefügt werden. Du hast nicht die Möglichkeit, einzelne Facebook-Accounts hinzuzufügen, sondern nur deine gesamte Freundesliste, die aktualisiert wird, wenn neue Freunde hinzugefügt werden.
Wenn das Facebook-Plugin/Addon installiert ist, kannst du diesen auf deiner Einstellungsseite unter ["Facebook Connector Settings"](settings/addon) einstellen. Dieser Eintrag erscheint nur, wenn das Plugin/Addon installiert ist. Folge den Vorgaben, um den Facebook-Konnektor zu installieren oder löschen.
Du kannst ebenfalls auswählen, ob deine öffentlichen Posts auch standardmäßig bei Facebook veröffentlicht werden sollen. Du kannst diese Einstellung jederzeit im aktuellen Beitrag beeinflussen, indem du auf das "Schloss"-Icon unter dem Beitragseditor gehst. Diese Einstellung hat keine Auswirkung auf private Unterhaltungen. Diese werden immer an Facebook-Freunde mit den entsprechenden Genehmigungen geschickt.
(Beachte: Aktuell können Facebook-Kontakte keine privaten Fotos sehen. Das wird zukünftig gelöst. Facebook-Kontakte können aber trotzdem öffentliche Fotos sehen, die du hochgeladen hast.)

22
doc/de/Developers.md Normal file
View file

@ -0,0 +1,22 @@
Friendica - Entwickler-Guide
==========
* [Zur Startseite der Hilfe](help)
Hier erfährst du, wie du bei uns mitmachen kannst
Zunächst erstelle dir ein funktionierendes Git-Paket auf deinem System, auf dem du die Entwicklung durchführst.
Erstelle deinen eigenen Github-Account.
Du hast die Möglichkeit, die Friendica-Daten direkt über Github von der folgenden Seite laden: [https://github.com/friendica/friendica.git](https://github.com/friendica/friendica.git)
Befolge die Anleitung unter diesem Link [http://help.github.com/fork-a-repo/](http://help.github.com/fork-a-repo/), um deine eigene Kopie (fork) der Ursprungsdaten auf Github zu erstellen und bearbeiten.
Gehe nun zu deiner Github-Seite und erstelle eine "Pull request", wenn du soweit bist, dein Projekt wieder in das Hauptprojekt einzugliedern.
**Wichtig**
Bitte hole dir alle Änderungen aus dem Projektverzeichnis und führe sie mit deiner Arbeit zusammen, **bevor** du deine "pull request" stellt. Wir behalten es uns vor, Patches abzulehnen, die eine große Anzahl an Fehlern hervorrufen. Dies gilt vor allem für Übersetzungen, da wir hier möglicherweise nicht alle feinen Unterschiede in konfliktären Versionen erkennen können.
Außerdem: **teste deine Änderungen!** Vergiss nicht, dass eine simple Fehlerlösung einen anderen Fehler auslösen kann. Lass deine Änderungen von einem erfahrenen Friendica-Entwickler gegenprüfen.

View file

@ -0,0 +1,68 @@
Gruppen und Privatsphäre
==================
* [Zur Startseite der Hilfe](help)
Gruppen sind nur eine Ansammlung von Freunden. Aber Friendica nutzt diese, um sehr mächtige Features zur Verfügung zu stellen.
**Gruppen erstellen**
Um eine Gruppe zu erstellen, besuche deine "Kontakte"-Seite und wähle "Neue Gruppe erstellen" (je nach Design nur als Pluszeichen angezeigt). Gib deiner Gruppe einen Namen.
Das führt dich zu einer Seite, auf der du die Gruppenmitglieder auswählen kannst.
Du hast zwei Boxen auf der Seite. Die obere Box ist die Übersicht der aktuellen Mitglieder. Die untere beinhaltet alle Freunde, die *nicht* Mitglied dieser Gruppe sind.
Wenn du auf das Foto einer Person klickst, die nicht in der Gruppe ist, wird diese in die Gruppe verschoben. Wenn du auf das Foto einer Person klickst, die bereits in der Gruppe ist, dann wird diese Person daraus entfernt.
**Zugriffskontrolle**
Sobald du eine Gruppe erstellt hast, kannst du diese auf jeder Zugriffsrechteliste nutzen. Damit ist das kleine Schloss neben deinem Statuseditor auf deiner Startseite gemeint. Wenn du darauf klickst, kannst du auswählen, wer deinen Beitrag sehen kann und wer *nicht*. Dabei kann es sich um eine einzelne Person oder eine ganze Gruppe handeln.
Auf deiner "Netzwerk"-Seite ("Unterhaltungen deiner Kontakte") findest du Beiträge und Gespräche aller deiner Kontakte in deinem Netzwerk. Du kannst aber auch eine einzelne Gruppe auswählen und nur Beiträge dieser Gruppenmitglieder anzeigen lassen.
Aber stopp, es gibt noch mehr...
Wenn du auf deiner "Netzwerk"-Seite eine bestimmte Gruppe ausgewählt hast, dann findest du im Statuseditor neben dem Schloss ein Ausrufezeichen. Dies dient dazu, deine Aufmerksamkeit auf das Schloss zu richten. Klicke auf das Schloss. Dort siehst du, dass dein Status-Update in dieser Ansicht standardmäßig nur für diese Gruppe freigegeben ist. Das hilft dir, deinen zukünftigen Mitarbeitern nicht das Gleiche zu schreiben wie deinen Trinkfreunden. Du kannst diese Einstellung natürlich auch überschreiben.
**Standardmäßige Zugriffsrechte von Beiträgen**
Standardmäßig geht Friendica davon aus, dass alle deine Beiträge privat sein sollen. Aus diesem Grund erstellt Friendica nach der Anmeldung eine Gruppe, in die automatisch alle deine Kontakte hinzugefügt werden. Alle deine Beiträge sind nur auf diese Gruppe beschränkt.
Beachte, dass diese Einstellung von deinem Seiten-Administrator überschrieben werden kann, was bedeutet, dass alle deine Beiträge standardmäßig "öffentlich" sind (bspw. für das gesamte Internet).
Wenn du deine Beiträge standardmäßig "öffentlich" haben willst, dann kannst du deine Standardzugriffsrechte auf deiner Einstellungseite ändern. Dort kannst du außerdem festlegen, welchen Gruppen standardmäßig deine Beiträge erhalten oder in welche Gruppe deine neuen Kontakte standardmäßig eingeordnet werden.
**Fragen der Privatssphäre, die zu beachten sind**
Diese privaten Gespräche funktionieren am besten, wenn deine Freunde Friendica-Mitglieder sind. So wissen wir, wer sonst noch deine Gespräche sehen kann - niemand, *solange* deine Freunde deine Nachrichten nicht kopieren und an andere verschicken.
Dies ist eine Vertrauensfrage, die du beachten musst. Keine Software der Welt kann deine Freunde davon abhalten, die privaten Unterhaltungen zu veröffentlichen. Nur eine gute Auswahl deiner Freunde.
Bei status.net, identi.ca und anderen Netzwerk-Anbietern ist es nicht so gesichert. Du musst **sehr** vorsichtig sein, wenn du Mitglieder anderer Netzwerke in einer deiner Gruppen hast, da es möglich ist, dass deine privaten Nachrichten in einem öffentlichen Stream enden. Wenn du auf die "Kontakt bearbeiten"-Seite einer Person gehst, zeigen wir dir, ob sie Mitglied eines unsicheren Netzwerks ist oder nicht.
Sobald du einen Post erstellt hast, kannst du die Zugriffsrechte nicht mehr ändern. Innerhalb von Sekunden ist dieser an viele verschiedene Personen verschickt worden - möglicherweise bereits an alle Addressierten. Wenn du versehentlich eine Nachricht erstellt hast und sie zurücknehmen willst, dann ist es das beste, diese zu löschen. Wir senden eine Löschmitteilung an jeden, der deine Nachricht erhalten hat - und das sollte die Nachricht genauso schnell löschen, wie sie zunächst erstellt wurde. In vielen Fällen wird sie in weniger als einer Minute aus dem Internet gelöscht. Nochmals: das gilt für Friendica-Netzwerke. Sobald eine Nachricht an ein anderes Netzwerk geschickt wurde, kann es nicht mehr so schnell gelöscht werden und in manchen Fällen auch gar nicht mehr.
Wenn du das bisher noch nicht wusstest, dann empfehlen wir dir, deine Freunde dazu zu ermutigen, auch Friendica zu nutzen, da alle diese Privatsphären-Einstellungen innerhalb eines privatsphärenbewussten Netzwerk viel besser funktionieren. Viele andere Netzwerke, mit denen sich Friendica verbinden kann, bieten keine Kontrolle über die Privatsphäre.
Profile, Fotos und die Privatsphäre
=============================
Die dezentralisierte Natur von Friendica (statt eine Webseite zu haben, die alles kontrolliert, gibt es viele Webseiten, die Information austauschen) hat in der Kommunikation mit anderen Seiten einige Konsequenzen. Du solltest dir über einige Dinge bewusst sein, um am besten entscheiden zu können, wie du mit deiner Privatsphäre umgehst.
**Fotos**
Fotos privat zu verteilen ist ein Problem. Wir können Fotos nur mit Friendica-Nutzern __privat__ austauschen. Um mit anderen Leuten Fotos zu teilen, müssen wir erkennen, wer sie sind. Wir können die Identität von Friendica-Nutzern prüfen, da es hierfür einen Mechanismus gibt. Deine Freunde anderer Netzwerke werden deine privaten Fotos nicht sehen können, da wir deren Identität nicht überprüfen können.
Unsere Entwickler arbeiten an einer Lösung, um deinen Freunden den Zugriff zu ermöglichen - unabhängig, zu welchem Netzwerk sie gehören. Wir nehmen hingegen Privatsphäre ernst und agieren nicht wie andere Netzwerke, die __nur so tun__ als ob deine Fotos privat sind, sie aber trotzdem anderen ohne Identitätsprüfung zeigen.
**Profile**
Dein Profil und deine "Wall" sollen vielleicht auch von Freunden anderer Netzwerke besucht werden können. Wenn du diese Seiten allerdings für Webbesucher sperrst, die Friendica nicht kennt, kann das auch Freunde anderer Netzwerke blockieren.
Das kann möglicherweise ungewollte Ergebnisse produzieren, wenn du lange Statusbeiträge z.B. für Twitter oder Facebook schreibst. Wenn Friendica einen Beitrag an diese Netzwerke schickt und nur eine bestimmte Nachrichtenlänge erlaubt ist, dann verkürzen wir diesen und erstellen einen Link, der zum Originalbeitrag führt. Der Originallink führt zurück zu deinem Friendica-Profil. Da Friendica nicht bestätigen kann, um wen es sich handelt, kann es passieren, dass diese Leute den Beitrag nicht komplett lesen können.
Für Leute, die davon betroffen sind, schlagen wir vor, eine Zusammenfassung in Twitter-Länge zu erstellen mit mehr Details für Freunde, die den ganzen Beitrag sehen können.
Dein Profil oder deine gesamte Friendica-Seite zu blockieren, hat außerdem ernsthafte Einflüsse auf deine Kommunikation mit StatusNet/identi.ca-Nutzern. Diese Netzwerke kommunizieren mit anderen über öffentliche Protokolle, die nicht authentifiziert werden. Um deine Beiträge zu sehen, müssen diese Netzwerke deine Beiträge als "unbekannte Webbesucher" ansehen. Wenn wir das erlauben, würde es dazu führen, das absolut jeder deine Beiträge sehen. Und du hast Friendica so eingestellt, das nicht zuzulassen. Beachte also, dass das Blockieren von unbekannten Besuchern auch dazu führen kann, dass öffentliche Netzwerke (wie identi.ca) und Newsfeed-Reader wie Google Reader auch geblockt werden.

39
doc/de/Home.md Normal file
View file

@ -0,0 +1,39 @@
Friendica - Dokumentation und Ressourcen
=====================================
**Inhalte**
* [Account - Basics](help/Account-Basics)
* [Schnellstart für neue Benutzer](help/guide)
* [Beiträge erstellen](help/Text_editor)
* [Beiträge kommentieren, einordnen und löschen](help/Text_comment)
* [Profile](help/Profiles)
* [Konnektoren (Connectors)](help/Connectors)
* [Freunde finden](help/Making-Friends)
* [Gruppen und Privatsphäre](help/Groups-and-Privacy)
* [Tags und Erwähnungen](help/Tags-and-Mentions)
* [Seiten](help/Pages)
* [Account löschen](help/Remove-Account)
* [Bugs und Probleme](help/Bugs-and-Issues)
**Technische Dokumentation**
* [Installation](help/Install)
* [Konfigurationen](help/Settings)
* [Plugins](help/Plugins)
* [Konnektoren (Connectors) installieren (Facebook/Twitter/StatusNet)](help/Installing-Connectors)
* [Nachrichtenfluss](help/Message-Flow)
* [Entwickler](help/Developers)
**Externe Ressourcen**
* [Haupt-Webseite](http://friendica.com)
* [Foren](http://groups.google.com/group/friendica)
* [Entwickler-Foren](http://groups.google.com/group/friendica-dev)
* [Deutsches Friendica-Wiki](http://wiki.toktan.org/doku.php)
**Über diese Seite**
* [Seite/Friendica-Version](friendica)

89
doc/de/Install.md Normal file
View file

@ -0,0 +1,89 @@
Friendica Installation
==========
* [Zur Startseite der Hilfe](help)
Wir haben hart daran gearbeitet, um Friendica auf vorgefertigten Hosting-Plattformen zum Laufen zu bringen - solche, auf denen auch Wordpress Blogs und Drupal-Installationen laufen. Aber bedenke, dass Friendica mehr als eine einfache Webanwendung ist. Es handelt sich um ein komplexes Kommunikationssystem, das eher an einen Email-Server erinnert als an einen Webserver. Um die Verfügbarkeit und Performance zu gewährleisten, werden Nachrichten im Hintergrund verschickt und gespeichert, um sie später zu verschicken, wenn eine Webseite gerade nicht erreichbar ist. Diese Funktionalität benötigt ein wenig mehr als die normalen Blogs. Nicht jeder PHP/MySQL-Hosting-Anbieter kann Friendica unterstützen. Viele hingegen können es. Aber **bitte** prüfe die Voraussetzungen deines Servers vor der Installation.
Wenn dir Fehler während der Installation auffallen, sag uns bitte über das Forum auf http://groups.google.com/group/friendica oder über http://bugs.friendica.com Bescheid. Gib uns bitte so viele Infos zu deinem System, wie du kannst, und beschreibe den Fehler mit allen Details und Fehlermeldungen, so dass wir den Fehler zukünftig verhindern können. Aufgrund der großen Anzahl an verschiedenen Betriebssystemen und PHP-Plattformen haben wir nur geringe Kapazitäten, um deine PHP-Installation zu debuggen oder fehlende Module zu ersetzen, aber wir tun unser Bestes, um allgemeine Code-Fehler zu beheben.
Bevor du anfängst: suche dir einen Domain- oder Subdomainnamen für deinen Server. Denke ausreichend darüber nach, da ein Wechsel nach der Friendica-Installation derzeit nicht unterstützt wird. Dinge verändern sich und einige deiner Freunde haben möglicherweise Probleme, mit dir zu kommunizieren. Wir planen, diese Einschränkung in einer zukünftigen Version zu beheben.
1. Voraussetzungen
- Apache mit einer aktiverten mod-rewrite-Funktion und dem Eintrag "Options All", so dass du die lokale .htaccess-Datei nutzen kannst
- PHP 5.2+. Je neuer, desto besser. Du benötigst 5.3 für die Authentifizierung untereinander. In einer Windows-Umgebung arbeitet die Version 5.2+ möglicherweise nicht, da die Funktion dns_get_record() erst ab Version 5.3 verfügbar ist.
- PHP *Kommandozeilen*-Zugang mit register_argc_argv auf "true" gesetzt in der php.ini-Datei
- curl, gd, mysql und openssl-Erweiterung
- etwas in der Art eines Email-Servers oder eines Gateways wie PHP mail()
- mcrypt (optional; wird für die Server-zu-Server Nachrichtenentschlüsselung benötigt)
- Mysql 5.x
- die Möglichkeit, wiederkehrende Aufgaben mit cron (Linux/Mac) oder "Scheduled Tasks" einzustellen (Windows) [Beachte: andere Optionen sind in Abschnitt 7 dieser Dokumentation zu finden]
- Installation in einer Top-Level-Domain oder Subdomain (ohne eine Verzeichnis/Pfad-Komponente in der URL) wird bevorzugt. Verzeichnispfade sind für diesen Zweck nicht so günstig und wurden auch nicht ausführlich getestet.
[Dreamhost.com bietet ein ausreichendes Hosting-Paket mit den nötigen Features zu einem annehmbaren Preis. Wenn dein Hosting-Anbieter keinen Unix-Zugriff erlaubt, kannst du Schwierigkeiten mit der Einrichtung der Webseite haben.
2. Entpacke die Friendica-Daten in das Quellverzeichnis (root) des Dokumentenbereichs deines Webservers.
- Wenn du die Möglichkeit hierzu hast, empfehlen wir dir "git" zu nutzen, um die Daten direkt von der Quelle zu klonen, statt die gepackte .tar- oder .zip-Datei zu nutzen. Das macht die Aktualisierung wesentlich einfacher. Der Linux-Code, mit dem man die Dateien direkt in ein Verzeichnis wie "meinewebseite" kopiert, ist
`git clone https://github.com/friendica/friendica.git meinewebseite`
- und dann kannst du die letzten Änderungen immer mit dem folgenden Code holen
`git pull`
- Addons installieren
- zunächst solltest du **in** deinem Webseitenordner sein
`cd meinewebseite`
- dann kannst du das Addon-Verzeichnis seperat kopieren
`git clone https://github.com/friendica/friendica-addons.git addon`
- Um das Addon-Verzeichnis aktuell zu halten, solltest du in diesem Pfad ein "git pull"-Befehl eintragen
`cd meinewebseite/addon`
`git pull`
- Wenn du den Verzeichnispfad auf deinen Webserver kopierst, dann stelle sicher, dass du auch die .htaccess kopierst, da "Punkt"-Dateien oft versteckt sind und normalerweise nicht direkt kopiert werden.
3. Erstelle eine leere Datenbank und notiere alle Zugangsdaten (Adresse der Datenbank, Nutzername, Passwort, Datenbankname).
4. Besuche deine Webseite mit deinem Browser und befolge die Anleitung. Bitte beachte jeden Fehler und korrigiere diese, bevor du fortfährst.
5. *Wenn* die automatisierte Installation aus irgendeinem Grund fehlschlägt, dann prüfe das Folgende:
- ".htconfig.php" existiert ... wenn nicht, bearbeite die „htconfig.php“ und ändere die Systemeinstellungen. Benenne sie um in „.htconfig.php"
- die Datenbank beinhaltet Daten. ... wenn nicht, importiere den Inhalt der Datei "database.sql" mit phpmyadmin oder per mysql-Kommandozeile.
6. Besuche deine Seite an diesem Punkt wieder und registriere deinen persönlichen Account. Alle Registrierungsprobleme sollten automatisch behebbar sein.
Wenn du irgendwelche **kritischen** Fehler zu diesen Zeitpunkt erhalten solltest, deutet das darauf hin, dass die Datenbank nicht korrekt installiert wurde. Du kannst bei Bedarf die Datei .htconfig.php verschieben/umbenennen und die Datenbank leeren (als „Dropping“ bezeichnet), so dass du mit einem sauberen System neu starten kannst.
7. Erstelle einen Cron job oder einen regelmäßigen Task, um den Poller alle 5-10 Minuten im Hintergrund ablaufen zu lassen. Beispiel:
`cd /base/directory; /path/to/php include/poller.php`
Ändere "/base/directory" und "/path/to/php" auf deine Systemvorgaben.
Wenn du einen Linux-Server nutzt, benutze den Befehl "crontab -e" und ergänze eine Zeile wie die Folgende; angepasst an dein System
`*/10 * * * * cd /home/myname/mywebsite; /usr/bin/php include/poller.php`
Du kannst den PHP-Pfad finden, indem du den Befehl „which php“ ausführst. Wenn du Schwierigkeiten mit diesem Schritt hast, kannst du deinen Hosting-Anbieter kontaktieren. Friendica wird nicht korrekt laufen, wenn dieser Schritt nicht erfolgreich abgeschlossen werden kann.
Alternativ kannst du das Plugin 'poormancron' nutzen, um diesen Schritt durchzuführen, wenn du eine aktuelle Friendica-Version nutzt. Um dies zu machen, musst du die ".htconfig.php" an der Stelle anpassen, die dein Plugin beschreibt. In einer frischen Installation sieht es aus wie:
`$a->config['system']['addon'] = 'js_upload';`
Dies setzt voraus, dass das Addon-Modul "js_upload" aktiviert ist. Du kannst auch weitere Addons/Plugins ergänzen. Ändere den Eintrag folgendermaßen ab:
`$a->config['system']['addon'] = 'js_upload,poormancron';`
und speichere deine Änderungen.

View file

@ -0,0 +1,110 @@
Konnektoren installieren (Facebook/Twitter/StatusNet)
==================================================
* [Zur Startseite der Hilfe](help)
Friendica nutzt Plugins, um die Verbindung zu anderen Netzwerken wie Facebook und Twitter zu gewährleisten.
Es gibt außerdem ein Plugin, um über einen bestehenden Status.Net-Account diesen Service zu nutzen. Du brauchst dieses Plugin aber nicht, um mit Status.Net-Mitgliedern von Friendica aus zu kommunizieren - es sei denn, du wünschst es, über einen existierenden Account einen Beitrag zu schreiben.
Alle drei Plugins benötigen einen Account im gewünschten Netzwerk. Zusätzlich musst du (bzw. der Administrator der Seite) einen API-Schlüssel holen, um einen authentifizierten Zugriff zu deinem Friendica-Server herstellen zu lassen.
**Seitenkonfiguration**
Plugins müssen vom Administrator installiert werden, bevor sie genutzt werden können. Dieses kann über das Administrationsmenü erstellt werden.
Jeder der Konnektoren benötigt zudem einen API-Schlüssel vom Service, der verbunden werden soll. Einige Plugins erlaube es, diese Informationen auf den Administrationsseiten einzustellen, wohingegen andere eine direkte Bearbeitung der Konfigurationsdatei ".htconfig.php" erfordern. Der Weg, um diese Schlüssel zu erhalten, variiert stark, jedoch brauchen fast alle einen bestehenden Account im gewünschten Service. Einmal installiert, können diese Schlüssel von allen Seitennutzern genutzt werden.
Im Folgenden findest du die Einstellungen für die verschiedenen Services (viele dieser Informationen kommen direkt aus den Quelldateien der Plugins):
**Twitter Plugin für Friendica**
* Author: Tobias Diekershoff
* tobias.diekershoff@gmx.net
* License:3-clause BSD license
Konfiguration:
Um dieses Plugin zu nutzen, benötigst du einen OAuth Consumer-Schlüsselpaar (Schlüssel und Geheimnis), das du auf der Seite [https://twitter.com/apps](https://twitter.com/apps) erhalten kannst
Registriere deine Friendica-Seite als "Client"-Anwendung mit "Read&Write"-Zugriff. Wir benötigen "Twitter als Login" nicht. Sobald du deine Anwendung installiert hast, erhältst du das Schlüsselpaar für deine Seite.
Trage dieses Schlüsselpaar in deine globale ".htconfig.php"-Datei ein.
```
$a->config['twitter']['consumerkey'] = 'your consumer_key here';
$a->config['twitter']['consumersecret'] = 'your consumer_secret here';
```
Anschließend kann der Nutzer deiner Seite die Twitter-Einstellungen selbst eintragen: "Einstellungen -> Connector Einstellungen".
Dokumentation: http://diekershoff.homeunix.net/redmine/wiki/friendikaplugin/Twitter_Plugin
**StatusNet Plugin für Friendica**
* Author: Tobias Diekershoff
* tobias.diekershoff@gmx.net
* License:3-clause BSD license
Konfiguration
Wenn das Addon aktiv ist, muss der Nutzer die folgenden Einstellungen vornehmen, um sich mit dem StatusNet-Account seiner Wahl zu verbinden.
* Die Basis-URL des StatusNet-API; für identi.ca ist es https://identi.ca/api/
* OAuth Consumer key & Geheimnis
Um das OAuth-Schlüsselpaar zu erhalten, muss der Nutzer
(a) seinen Friendica-Admin fragen, ob bereits ein Schlüsselpaar existiert oder
(b) einen Friendica-Server als Anwendung auf dem StatusNet-Server anmelden.
Dies kann über Einstellungen --> Connections --> "Register an OAuth client application" -> "Register a new application" auf dem StatusNet-Server durchgeführt werden.
Während der Registrierung des OAuth-Clients ist Folgendes zu beachten:
* Der Anwendungsname muss auf der StatusNet-Seite einzigartig sein, daher empfehlen wir einen Namen wie "friendica-nnnn", ersetze dabei "nnnn" mit einer frei gewählten Nummer oder deinem Webseitennamen.
* es gibt keine Callback-URL
* Registriere einen Desktop-Client
* stelle Lese- und Schreibrechte ein
* die Quell-URL sollte die URL deines Friendica-Servers sein
Sobald die benötigten Daten gespeichert sind, musst du deinen Friendica-Account mit StatusNet verbinden. Das kannst du über Einstellungen --> Connector-Einstellungen durchführen. Folge dem "Einloggen mit StatusNet"-Button, erlaube den Zugriff und kopiere den Sicherheitscode in die entsprechende Box. Friendica wird dann versuchen, die abschließende OAuth-Einstellungen über die API zu beziehen.
Wenn es geklappt hat, kannst du in den Einstellungen festlegen, ob deine öffentlichen Nachrichten automatisch in deinem StatusNet-Account erscheinen soll (achte hierbei auf das kleine Schloss-Symbol im Status-Editor)
Dokumentation: http://diekershoff.homeunix.net/redmine/wiki/friendikaplugin/StatusNet_Plugin
**Installiere den Friendica/Facebook-Konnektor**
* Registriere einen API-Schlüssel für deine Seite auf [developer.facebook.com](Facebook).
Hierfür benötigst du einen Facebook-Account und ggf. weitere Authentifizierungen über eine Kreditkarten- oder Mobilfunknummer.
a. Wir würden uns sehr darüber freuen, wenn du "Friendica" in dem Anwendungsnamen eintragen würdest, um die Bekanntheit des Namens zu erhöhen. Das Friendica-Icon ist im Bildverzeichnis enthalten und kann als Anwendungs-Icon für die Facebook-App genutzt werden. Nutze [images/friendica-16.jpg](images/friendica-16.jpg) für das Icon und [images/friendica-128.jpg](images/friendica-128.jpg) für das Logo.
b. Die URL sollte deine Seite mit dem abschließenden Schrägstrich sein
Es **kann** notwendig sein, dass du eine "Privacy"- oder "Terms of service"-URL angeben musst.
c. Setze nun noch unter "App Domains" die URL auf deineSubdomain.deineDomain.de und bei "Website with Facebook Login" die URL zu deineDomain.de.
d. Installiere nun das Facebook-Plugin auf deiner Friendica-Seite über "admin/plugins". Du solltest links in der Sidebar einen Facebook-Link unter "Plugin Features" finden. Klicke diesen an.
e. Gib nun die App-ID und das App-Secret ein, die Facebook dir gegeben hat. Ändere die anderen Daten, wie es gewünscht ist.
Auf Friendica kann nun jeder Nutzer, der eine Verbindung zu Facebook wünscht, die Seite "Einstellungen -> Connector-Einstellungen" aufrufen und dort "Installiere Facebook-Connector" auswählen.
Wähle die gewünschten Einstellungen für deine Nutzungs- und Privatsphäreansprüche.
Hier meldest du dich bei Facebook an und gibst dem Plugin die nötigen Zugriffsrechte, um richtig zu funktionieren. Erlaube dieses.
Und fertig. Um es abzustellen, gehe wieder auf die Einstellungsseite und auf "Remove Facebook posting".
Videos und eingebetteter Code werden nicht gepostet, wenn sonst kein anderer Inhalt enthalten ist. Links und Bilder werden in ein Format übertragen, das von der Facebook-API verstanden wird. Lange Texte werden verkürzt und mit einem Link zum Originalbeitrag versehen.
Facebook-Kontakte können außerdem keine privaten Fotos sehen, da diese nicht richtig authentifiziert werden können, wenn sie deine Seite besuchen. Dieser Fehler wird zukünftig bearbeitet.

47
doc/de/Making-Friends.md Normal file
View file

@ -0,0 +1,47 @@
Freunde finden
==============
* [Zur Startseite der Hilfe](help)
Freundschaft kann in Friendica viele verschiedene Bedeutungen annehmen. Aber lasst es uns einfach halten, du willst einfach mit jemandem befreundet sein. Wie machst du das?
Der einfachste Weg, um das zu machen, ist es, der Gruppe <a href="http://kakste.com/profile/newhere">Neu hier</a> beizutreten. Diese Gruppe ist speziell für Leute, die neu im Friendica-Netzwerk sind. Verbinde dich einfach mit der Gruppe, schreibe auf die "Wall" und lerne neue Leute kennen. Du musst uns nicht einmal direkt "liken" - kommentiere einige Beiträge und andere Leute werden anfangen, dich hinzuzufügen.
Als Nächstes kannst du dir das Verzeichnis anschauen. Das Verzeichnis ist in zwei Teile aufgeteilt. Wenn du auf den "Verzeichnis"-Button klickst, wirst du zunächst alle Mitglieder deines Servers sehen, die sich dazu entschlossen haben, angezeigt zu werden. Außerdem siehst du dort einen Link zum globalen Verzeichnis. Wenn du dich durch das globale Verzeichnis klickst, siehst du alle Nutzer weltweit auf allen Servern, die sich entschlossen haben, im Verzeichnis zu erscheinen. Du wirst außerdem den Link "Show Community Forums" sehen, welcher dich zu Gruppen, Foren und Fan-Seiten führt. Du verbindest dich mit Personen, Gruppen und Foren auf die gleiche Art, wobei Gruppen und Foren deine Anfrage automatisch annehmen, wohingegen ein Mensch dich erst manuell bestätigen muss.
*Mit anderen Friendica-Nutzern verbinden*
Besuche ihr Profil. Direkt unter dem Profilfoto ist das Wort "Verbinden" (bzw. "Connect" in einem englischsprachigem Profil). Klicke drauf und du gelangst zur "Verbinden"-Seite. Dort wirst du nach deiner Identitätsadresse gefragt. Das ist nötig, damit die Seite dein Profil finden kann.
*Was kommt in die Box?*
Wenn deine Friendica-Seite "demo.friendica.com" heißt und dein Nutzername/Spitzname auf der Seite "bob" ist, dann wäre es "bob@demo.friendica.com". Wie du siehst, sieht es wie eine Email-Adresse aus. Das ist beabsichtigt, da sich die Leute das so leichter merken können. Du *kannst* auch die URL deiner Startseite eintragen, wie z.B. "http://demo.friendica.com/profile/bob", aber der Email-Adressen-Stil ist einfacher.
Wenn du die "Verbinden"-Seite bestätigt hast, kommst du zurück zu deiner Seite, um dort die Anfrage zu bestätigen. Wenn du das gemacht hast, können beide Seiten miteinander kommunizieren, um den Prozess abzuschließen (sobald dein neuer Freund die Anfrage bestätigt hat).
Wenn du bereits die Identitäts-Adresse einer Person kennst, kannst du diese auch direkt in das "Verbinden"-Feld auf deiner "Kontakte"-Seite eintragen. Dies wird dich durch einen ähnlichen Prozess leiten.
**Alternative Netzwerke**
Du kannst deine oder andere Identitäts-Adressen ebenfalls nutzen, um über verschiedene Netzwerke hinweg Freundschaften aufzubauen. Die Liste möglicher Netzwerke steigt immer weiter. Wenn du z.B. "bob" auf identi.ca (eine Status.Net-Seite) kennst, dann kannst du bob@identi.ca auf deiner "Kontakt"-Seite verbinden. (Oder du kannst die URL von Bobs identi.ca-Seite eintragen, wenn du es wünscht). Du kannst auch "teilweise" mit Leuten auf Google Buzz befreundet sein, wenn du deren GMail-Adresse einträgst. Google Buzz unterstützt bisher noch nicht alle Protokolle, die wir für die direkte Kommunikation benötigen, aber es sollte möglich sein, Statusupdates von Friendica zu folgen. Das Gleiche gilt für Twitter- und Diaspora-Accounts. Tatsächlich kannst du jedem und jeder Website folgen, der/die einen Syndication-Feed (RSS/Atom etc.) zur Verfügung stellt. Wenn wir einen Informationsstrom und einen Namen dazu finden, können wir auch versuchen, uns damit zu verbinden.
Wenn du deine Email-Postfachverbindung auf deiner Einstellungsseite konfiguriert hast, dann kannst du die Email-Adresse jeder Person eintragen, die dir schon eine Nachricht an dein Postfach geschickt hat und bereits in deinem sozialen Stream erscheint. Du kannst diesen Personen außerdem von Friendica aus antworten.
Leute können sich ebenfalls von anderen Netzwerken aus mit dir befreunden. Ein Freund von dir hat einen identi.ca-Account und kann sich mit dir befreunden, indem er deine Identitäts-Adresse in seine identi.ca-Verbinden-Dialogbox einträgt. Ein ähnlicher Mechanismus ist für Diaspora-Nutzer vorhanden, indem deine Identitäts-Adresse in ihre Suchleiste eingegeben wird.
Beachte: Manche StatusNet-Versionen benötigen die volle URL deines Profils und funktionieren möglicherweise nicht mit der Identitäts-Adresse.
Wenn jemand eine Freundschaftsanfrage schickt, erhältst du eine Benachrichtigung. Du musst dann diese Anfrage bestätigen, um die Freundschaftsanfrage abzuschließen.
Einige Netzwerke erlauben es, Nachrichten zu schicken, ohne befreundet zu sein oder deine Bestätigung zu benötigen. Friendica erlaubt dies in der Standardeinstellung nicht, da es zu Spam führen kann.
Wenn du eine Freundschaftsanfrage von einem anderen Friendica-Nutzer erhältst, dann hast du die Möglichkeit, diesen als "Fan" oder "Freund" einzutragen. Ein Fan kann sehen, was du schreibst und auch private Kommunikation sehen, die du zu diesen sendest, aber nicht umgekehrt. Als Freund kannst du in beide Richtungen kommunizieren.
Diaspora nutzt eine andere Terminologie mit der Unterteilung in "mit dir teilen" und "Freund".
Sobald ihr Freunde geworden seid, dir die Person aber permanent Spam oder sinnlose Informationen schickt, dann kannst du diese "ignorieren" - ohne die Freundschaft komplett zu beenden oder denjenigen zu zeigen, dass du nicht daran interessiert bist, was diese Person sagt. In verschiedener Hinsicht sind diese Personen wie "Fans", aber sie wissen es nicht. Sie denken, sie sind als Freunde eingetragen.
Du kannst auch eine Person "blocken". Das blockt die komplette Kommunikation mit dieser Person. Sie können zwar weiterhin öffentliche Beiträge sehen, wie auch jeder andere in der Welt, allerdings können sie nicht direkt mit dir kommunizieren.
Du kannst Freunde löschen, egal wie der Freundschaftsstatus ist, was dazu führt, dass alles, was mit dieser Person verbunden ist, von deiner Webseite gelöscht wird.

43
doc/de/Message-Flow.md Normal file
View file

@ -0,0 +1,43 @@
Friendica Nachrichtenfluss
==============
* [Zur Startseite der Hilfe](help)
Diese Seite soll einige Infos darüber dokumentieren, wie Nachrichten innerhalb von Friendica von einer Person zur anderen übertragen werden. Es gibt verschiedene Pfade, die verschiedene Protokolle und Nachrichtenformate nutzen.
Diejenigen, die den Nachrichtenfluss genauer verstehen wollen, sollten sich mindestens mit dem DFRN-Protokoll (http://dfrn.org/dfrn.pdf) und den Elementen zur Nachrichtenverarbeitung des OStatus Stack informieren (salmon und Pubsubhubbub).
Der Großteil der Nachrichtenverarbeitung nutzt die Datei include/items.php, welche Funktionen für verschiedene Feed-bezogene Import-/Exportaktivitäten liefert.
Wenn eine Nachricht veröffentlicht wird, werden alle Übermittlungen an alle Netzwerke mit include/notifier.php durchgeführt, welche entscheidet, wie und an wen die Nachricht geliefert wird. Diese Datei bindet dabei die lokale Bearbeitung aller Übertragungen ein inkl. dfrn-notify.
mod/dfrn_notify.php handhabt die Rückmeldung (remote side) von dfrn-notify.
Lokale Feeds werden durch mod/dfrn_poll.php generiert - was ebenfalls die Rückmeldung (remote side) von dfrn-notify handhabt.
Salmon-Benachrichtigungen kommen via mod/salmon.php an.
PuSh-Feeds (pubsubhubbub) kommen via mod/pubsub.php an.
DFRN-poll Feed-Imports kommen via include/poller.php als geplanter Task an, das implementiert die lokale Bearbeitung (local side) des DFRN-Protokolls.
Szenario #1. Bob schreibt eine öffentliche Statusnachricht
Dies ist eine öffentliche Nachricht ohne begrenzte Nutzerfreigabe, so dass keine private Übertragung notwendig ist. Es gibt zwei Wege, die genutzt werden können - als bbcode an DFRN-Clients oder als durch den Server konvertierten HTML-Code (mit PuSH; pubsubhubbub). Wenn ein PuSH-Hub einsatzfähig ist, nutzen DFRN-Poll-Clients vorrangig die Informationen, die durch den PuSH-Kanal kommen. Sie fallen zurück auf eine tägliche Abfrage, wenn der Hub Übertragungsschwierigkeiten hat (das kann vorkommen, wenn der standardmäßige Google-Referenzhub genutzt wird). Wenn kein spezifizierter Hub oder Hubs ausgewählt sind, werden DFRN-Clients in einer pro Kontakt konfigurierbaren Rate mit bis zu 5-Minuten-Intervallen abfragen. Feeds, die via DFRN-Poll abgerufen werden, sind bbcode und können auch private Unterhaltungen enthalten, die vom Poller auf ihre Zugriffsrechte hin geprüft werden.
Szenario #2. Jack antwortet auf Bobs öffentliche Nachricht. Jack ist im Friendica/DFRN-Netzwerk.
Jack nutzt dfrn-notify, um eine direkte Antwort an Bob zu schicken. Bob erstellt dann einen Feed der Unterhaltung und sendet diesen an jeden, der an der Unterhaltung beteiligt ist und dfrn-notify nutzt. Die PuSH-Hubs werden darüber informiert, dass neuer Inhalt verfügbar ist. Der/die Hub/s erhalten dann die neuesten Feeds und übertragen diese an alle Hub-Teilnehmer (die auch zu verschiedenen Netzwerken gehören können).
Szenario #3. Mary antwortet auf Bobs öffentliche Nachricht. Mary ist im Friendica/DFRN-Netzwerk.
Mary nutzt dfrn-notify, um eine direkte Antwort an Bob zu schicken. Bob erstellt dann einen Feed der Unterhaltung und sendet diesen an jeden, der an der Unterhaltung beteiligt ist (mit Ausnahme von Bob selbst; die Unterhaltung wird nun an Jack und Mary geschickt). Die Nachrichten werden mit dfrn-notify übertragen. PuSH-Hubs werden darüber informiert, dass neuer Inhalt verfügbar ist. Der/die Hub/s erhalten dann die neuesten Feeds und übertragen sie an alle Hub-Teilnehmer (die auch zu verschiedenen Netzwerken gehören können).
Szenario #4. William antwortet auf Bobs öffentliche Nachricht. William ist in einem OStatus-Netzwerk.
William nutzt salmon, um Bob über seine Antwort zu benachrichtigen. Der Inhalt ist HTML-Code, der in das Salmon Magic Envelope eingebettet ist. Bob erstellt dann einen Feed der Unterhaltung und sendet es an alle Friendica-Nutzer, die an der Unterhaltung beteiligt sind und dfrn-notify nutzen (mit Ausnahme von William selbst; die Unterhaltung wird an Jack und Mary weitergeleitet). PuSH-Hubs werden darüber informiert, dass neuer Inhalt verfügbar ist. Der/die Hub/s erhalten dann die neuesten Feeds und übertragen sie an alle Hub-Teilnehmer (die auch zu verschiedenen Netzwerken gehören können).
Szenario #5. Bob schreibt eine private Nachricht an Mary und Jack.
Die Nachricht wird sofort an Mary und Jack mit Hilfe von dfrn_notify geschickt. Öffentliche Hubs werden nicht benachrichtigt. Im Falle eines Timeouts wird eine erneute Verarbeitung angestoßen. Antworten folgen dem gleichen Nachrichtenfluss wie öffentliche Antworten, allerdings werden die Hubs nicht darüber informiert, wodurch die Nachrichten niemals in öffentliche Feeds gelangen. Die komplette Unterhaltung ist nur für Mary und Jack in ihren durch dfrn-poll personalisierten Feeds verfügbar (und für niemanden sonst).

35
doc/de/Pages.md Normal file
View file

@ -0,0 +1,35 @@
Seiten
=====
* [Zur Startseite der Hilfe](help)
Friendica lässt dich auch Foren und/oder Prominenten-Seiten erstellen.
Jede Seite in Friendica hat einen einzigartigen Spitznamen. Das gilt für alle Seiten, unabhängig davon, ob es sich um normale Profile oder Forenseite handelt.
Das Erste, was du machen musst, um eine neue Seite zu kreieren ist, einen neuen Account zu erstellen. Bitte beachte, dass der Seitenadministrator die Registrierung neuer Accounts sperren oder an Bedingungen knüpfen kann.
Wenn du einen zweiten Account in einem System erstellst und die gleiche Email-Adresse oder den gleichen OpenID-Account nutzt, kannst du dich zukünftig nur noch mit deinem Spitznamen anmelden.
Gehe im neuen Account auf die "Einstellungs"-Seite und dort am Ende der Seite auf "Erweiterte Konto-/Seitentyp-Einstellungen". Normalerweise nutzt du "Normales Konto" für einen normalen, persönlichen Account. Das ist die Standardeinstellung. Gruppenseiten bieten die Möglichkeit, Leute als Freund/Fan ohne Kontaktbestätigung zuzulassen.
Die Auswahl der Einstellung, die du wählst, hängt davon ab, wie du mit anderen Leuten auf deiner Seite interagieren willst. Die "Marktschreier"-Einstellung (Soapbox) lässt den Seitenbesitzer die gesamte Kommunikation kontrollieren. Alles was du schreibst, geht an alle Seitennutzer, aber es gibt keine Möglichkeit, zu interagieren. Diese Seite wird normalerweise für Ankündigungen oder die Kommunikation von Gemeinschaften genutzt.
Die normalste Einstellung ist das "Forum-/Promi-Konto". Diese erstellt eine Gruppenseite, in der alle Mitglieder frei miteinander interagieren können. Der "Automatische Freunde Seite"-Account ist typischerweise für persönliche Profile, bei denen du alle Freundschaftsanfragen automatisch bestätigen willst.
**Multiple Seiten verwalten**
Wir schlagen vor, dass du eine Gruppenseite mit der gleichen Email-Adresse und dem gleichen Passwort wie bei deinem normalen Account nutzt. Wenn du das machst, findest du einen neuen "Verwalten"-Link im Hauptmenü, das dir hilft, einfach zwischen den Identitäten zu wechseln. Du musst das nicht machen, die Alternative ist allerdings, dich immer wieder aus- und wieder einzuloggen. Und das kann umständlich sein, wenn du mehrere verschiedene Seiten/Identitäten verwaltest.
Du kannst ebenso jemanden wählen, der deine Seite verwaltet. Mach das, indem du die [Delegierungs-Setup-Seite](delegate) besuchst. Dort wird dir eine Liste an "Potentiellen Bevollmächtigen" angezeigt. Die Auswahl einer oder mehrerer Personen gibt diesen die Möglichkeit, deine Seite zu verwalten. Sie können Kontakte, Profile und alle Inhalte deines Accounts/deiner Seite bearbeiten. Bitte nutze diese Einstellung mit Vorsicht. Delegierte haben jedoch keine Möglichkeit, grundlegende Account-Einstellungen wie das Passwort oder den Seitentypen zu ändern bzw. den Account zu löschen.
**Beiträge auf Community-Seiten**
Wenn du Mitglied einer Community-Seite/-Forums bist, kannst du die Seite in einem Beitrag hinzufügen/erwähnen, wenn du den @-Tag nutzt. Zum Beispiel würde @Fahrrad deinen Beitrag neben den sonst ausgewählten Nutzern an alle Nutzer schicken, die in der Gruppe "Fahrrad" sind. Wenn dein Beitrag privat ist, musst du diese Gruppe explizit in den Zugriffsrechten des Beitrags auswählen **und** sie mit dem @-Tag erwähnen (was den Beitrag auf die Gruppenmitglieder erweitert).
Du kannst außerdem via "Wall zu Wall" einen Beitrag auf der Community-Seite bzw. in dem Community-Forum erstellen.
Kommentare, die du an eine Community-Seite schickst, werden an den Originalbeitrag weitergeleitet. Das Forum bzw. die Gruppe mit dem @-Tag zu erwähnen, leitet den Beitrag nicht weiter, da die Verteilung des Beitrages komplett vom Original-Beitragsschreiber kontrolliert wird.

343
doc/de/Plugins.md Normal file
View file

@ -0,0 +1,343 @@
**Friendica Addon/Plugin-Entwicklung**
==============
* [Zur Startseite der Hilfe](help)
Bitte schau dir das Beispiel-Addon "randplace" für ein funktionierendes Beispiel für manche der hier aufgeführten Funktionen an. Das Facebook-Addon bietet ein Beispiel dafür, die "addon"- und "module"-Funktion gemeinsam zu integrieren. Addons arbeiten, indem sie Event Hooks abfangen. Module arbeiten, indem bestimmte Seitenanfragen (durch den URL-Pfad) abgefangen werden
Plugin-Namen können keine Leerstellen oder andere Interpunktionen enthalten und werden als Datei- und Funktionsnamen genutzt. Du kannst einen lesbaren Namen im Kommentarblock eintragen. Jedes Addon muss beides beinhalten - eine Installations- und eine Deinstallationsfunktion, die auf dem Addon-/Plugin-Namen basieren; z.B. "plugin1name_install()". Diese beiden Funktionen haben keine Argumente und sind dafür verantwortlich, Event Hooks zu registrieren und abzumelden (unregistering), die dein Plugin benötigt. Die Installations- und Deinstallationsfunktionfunktionen werden auch ausgeführt (z.B. neu installiert), wenn sich das Plugin nach der Installation ändert - somit sollte deine Deinstallationsfunktion keine Daten zerstört und deine Installationsfunktion sollte bestehende Daten berücksichtigen. Zukünftige Extensions werden möglicherweise "Setup" und "Entfernen" anbieten.
Plugins sollten einen Kommentarblock mit den folgenden vier Parametern enthalten:
/*
* Name: My Great Plugin
* Description: This is what my plugin does. It's really cool
* Version: 1.0
* Author: John Q. Public <john@myfriendicasite.com>
*/
Registriere deine Plugin-Hooks während der Installation.
register_hook($hookname, $file, $function);
$hookname ist ein String und entspricht einem bekannten Friendica-Hook.
$file steht für den Pfadnamen, der relativ zum Top-Level-Friendicaverzeichnis liegt. Das *sollte* "addon/plugin_name/plugin_name.php' sein.
$function ist ein String und der Name der Funktion, die ausgeführt wird, wenn der Hook aufgerufen wird.
Deine Hook-Callback-Funktion wird mit mindestens einem und bis zu zwei Argumenten aufgerufen
function myhook_function(&$a, &$b) {
}
Wenn du Änderungen an den aufgerufenen Daten vornehmen willst, musst du diese als Referenzvariable (mit "&") während der Funktionsdeklaration deklarieren.
$a ist die Friendica "App"-Klasse, die eine Menge an Informationen über den aktuellen Friendica-Status beinhaltet, u.a. welche Module genutzt werden, Konfigurationsinformationen, Inhalte der Seite zum Zeitpunkt des Hook-Aufrufs. Es ist empfohlen, diese Funktion "$a" zu nennen, um seine Nutzung an den Gebrauch an anderer Stelle anzugleichen.
$b kann frei benannt werden. Diese Information ist speziell auf den Hook bezogen, der aktuell bearbeitet wird, und beinhaltet normalerweise Daten, die du sofort nutzen, anzeigen oder bearbeiten kannst. Achte darauf, diese mit "&" zu deklarieren, wenn du sie bearbeiten willst.
**Module**
Plugins/Addons können auch als "Module" agieren und alle Seitenanfragen für eine bestimte URL abfangen. Um ein Plugin als Modul zu nutzen, ist es nötig, die Funktion "plugin_name_module()" zu definieren, die keine Argumente benötigt und nichts weiter machen muss.
Wenn diese Funktion existiert, wirst du nun alle Seitenanfragen für "http://my.web.site/plugin_name" erhalten - mit allen URL-Komponenten als zusätzliche Argumente. Diese werden in ein Array $a->argv geparst und stimmen mit $a->argc überein, wobei sie die Anzahl der URL-Komponenten abbilden. So würde http://my.web.site/plugin/arg1/arg2 nach einem Modul "plugin" suchen und seiner Modulfunktion die $a-App-Strukur übergeben (dies ist für viele Komponenten verfügbar). Das umfasst:
$a->argc = 3
$a->argv = array(0 => 'plugin', 1 => 'arg1', 2 => 'arg2');
Deine Modulfunktionen umfassen oft die Funktion plugin_name_content(&$a), welche den Seiteninhalt definiert und zurückgibt. Sie können auch plugin_name_post(&$a) umfassen, welches vor der content-Funktion aufgerufen wird und normalerweise die Resultate der POST-Formulare handhabt. Du kannst ebenso plugin_name_init(&$a) nutzen, was oft frühzeitig aufgerufen wird und das Modul initialisert.
**Derzeitige Hooks:**
**'authenticate'** - wird aufgerufen, wenn sich der User einloggt.
$b ist ein Array
'username' => der übertragene Nutzername
'password' => das übertragene Passwort
'authenticated' => setze das auf einen anderen Wert als "0", damit der User sich authentifiziert
'user_record' => die erfolgreiche Authentifizierung muss auch einen gültigen Nutzereintrag aus der Datenbank zurückgeben
**'logged_in'** - wird aufgerufen, sobald ein Nutzer sich erfolgreich angemeldet hat.
$b beinhaltet den $a->Nutzer-Array
**'display_item'** - wird aufgerufen, wenn ein Beitrag für die Anzeige formatiert wird.
$b ist ein Array
'item' => Die Item-Details (Array), die von der Datenbank ausgegeben werden
'output' => Die HTML-Ausgabe (String) des Items, bevor es zur Seite hinzugefügt wird
**'post_local'** - wird aufgerufen, wenn der Statusbeitrag oder ein Kommentar im lokalen System eingetragen wird.
$b ist das Item-Array der Information, die in der Datenbank hinterlegt wird.
{Bitte beachte: der Seiteninhalt ist bbcode - nicht HTML)
**'post_local_end'** - wird aufgerufen, wenn ein lokaler Statusbeitrag oder Kommentar im lokalen System gespeichert wird.
$b ist das Item-Array einer Information, die gerade in der Datenbank gespeichert wurden.
{Bitte beachte: der Seiteninhalt ist bbcode - nicht HTML)
**'post_remote'** - wird aufgerufen, wenn ein Beitrag aus einer anderen Quelle empfangen wird. Dies kann auch genutzt werden, um lokale Aktivitäten oder systemgenerierte Nachrichten zu veröffentlichen/posten.
$b ist das Item-Array einer Information, die in der Datenbank und im Item gespeichert ist.
{Bitte beachte: der Seiteninhalt ist bbcode - nicht HTML)
**'settings_form'** - wird aufgerufen, wenn die HTML-Ausgabe für die Einstellungsseite generiert wird.
$b ist die HTML-Ausgabe (String) der Einstellungsseite vor dem finalen "</form>"-Tag.
**'settings_post'** - wird aufgerufen, wenn die Einstellungsseiten geladen werden.
$b ist der $_POST-Array
**'plugin_settings'** - wird aufgerufen, wenn die HTML-Ausgabe der Addon-Einstellungsseite generiert wird.
$b ist die HTML-Ausgabe (String) der Addon-Einstellungsseite vor dem finalen "</form>"-Tag.
**'plugin_settings_post'** - wird aufgerufen, wenn die Addon-Einstellungsseite geladen wird.
$b ist der $_POST-Array
**'profile_post'** - wird aufgerufen, wenn die Profilseite angezeigt wird.
$b ist der $_POST-Array
**'profile_edit'** - wird aufgerufen, bevor die Profil-Bearbeitungsseite angezeigt wird.
$b ist ein Array
'profile' => Profileintrag (Array) aus der Datenbank
'entry' => die HTML-Ausgabe (string) des generierten Eintrags
**'profile_advanced'** - wird aufgerufen, wenn die HTML-Ausgabe für das "Advanced profile" generiert wird; stimmt mit dem "Profil"-Tab auf der Profilseite der Nutzer überein.
$b ist die HTML-Ausgabe (String) des erstellten Profils
(Die Details des Profil-Arrays sind in $a->profile)
**'directory_item'** - wird von der Verzeichnisseite aufgerufen, wenn ein Item für die Anzeige formatiert wird.
$b ist ein Array
'contact' => Kontakteintrag (Array) einer Person aus der Datenbank
'entry' => die HTML-Ausgabe (String) des generierten Eintrags
**'profile_sidebar_enter'** - wird aufgerufen, bevor die Sidebar "Kurzprofil" einer Seite erstellt wird.
$b ist der Profil-Array einer Person
**'profile_sidebar'** - wird aufgerufen, wenn die Sidebar "Kurzprofil" einer Seite erstellt wird.
$b ist ein Array
'profile' => Kontakteintrag (Array) einer Person aus der Datenbank
'entry' => die HTML-Ausgabe (String) des generierten Eintrags
**'contact_block_end'** - wird aufgerufen, wenn der Block "Kontakte/Freunde" der Profil-Sidebar komplett formatiert wurde.
$b ist ein Array
'contacts' => Array von "contacts"
'output' => die HTML-Ausgabe (String) des Kontaktblocks
**'bbcode'** - wird während der Umwandlung von bbcode auf HTML aufgerufen.
$b ist der konvertierte Text (String)
**'html2bbcode'** - wird während der Umwandlung von HTML zu bbcode aufgerufen (z.B. bei Nachrichtenbeiträgen).
$b ist der konvertierte Text (String)
**'page_header'** - wird aufgerufen, nachdem der Bereich der Seitennavigation geladen wurde.
$b ist die HTML-Ausgabe (String) der "nav"-Region
**'personal_xrd'** - wird aufgerufen, bevor die Ausgabe der persönlichen XRD-Datei erzeugt wird.
$b ist ein Array
'user' => die hinterlegten Einträge der Person
'xml' => die komplette XML-Datei die ausgegeben wird
**'home_content'** - wird aufgerufen, bevor die Ausgabe des Homepage-Inhalts erstellt wird; wird nicht eingeloggten Nutzern angezeigt.
$b ist die HTML-Ausgabe (String) der Auswahlregion
**'contact_edit'** - wird aufgerufen, wenn die Kontaktdetails vom Nutzer auf der "Kontakte"-Seite bearbeitet werden.
$b ist ein Array
'contact' => Kontakteintrag (Array) des abgezielten Kontakts
'output' => die HTML-Ausgabe (String) der "Kontakt bearbeiten"-Seite
**'contact_edit_post'** - wird aufgerufen, wenn die "Kontakt bearbeiten"-Seite ausgegeben wird.
$b ist der $_POST-Array
**'init_1'** - wird aufgerufen, kurz nachdem die Datenbank vor Beginn der Sitzung geöffnet wird.
$b wird nicht genutzt
**'page_end'** - wird aufgerufen, nachdem die Funktion des HTML-Inhalts komplett abgeschlossen ist.
$b ist die HTML-Ausgabe (String) vom Inhalt-"div"
**'avatar_lookup'** - wird aufgerufen, wenn der Avatar geladen wird.
$b ist ein Array
'size' => Größe des Avatars, der geladen wird
'email' => Email-Adresse, um nach dem Avatar zu suchen
'url' => generierte URL (String) des Avatars
Eine komplette Liste aller Hook-Callbacks mit den zugehörigen Dateien (am 14-Feb-2012 generiert): Bitte schau in die Quellcodes für Details zu Hooks, die oben nicht dokumentiert sind.
boot.php: call_hooks('login_hook',$o);
boot.php: call_hooks('profile_sidebar_enter', $profile);
boot.php: call_hooks('profile_sidebar', $arr);
boot.php: call_hooks("proc_run", $arr);
include/contact_selectors.php: call_hooks('network_to_name', $nets);
include/api.php: call_hooks('logged_in', $a->user);
include/api.php: call_hooks('logged_in', $a->user);
include/queue.php: call_hooks('queue_predeliver', $a, $r);
include/queue.php: call_hooks('queue_deliver', $a, $params);
include/text.php: call_hooks('contact_block_end', $arr);
include/text.php: call_hooks('smilie', $s);
include/text.php: call_hooks('prepare_body_init', $item);
include/text.php: call_hooks('prepare_body', $prep_arr);
include/text.php: call_hooks('prepare_body_final', $prep_arr);
include/nav.php: call_hooks('page_header', $a->page['nav']);
include/auth.php: call_hooks('authenticate', $addon_auth);
include/bbcode.php: call_hooks('bbcode',$Text);
include/oauth.php: call_hooks('logged_in', $a->user);
include/acl_selectors.php: call_hooks($a->module . '_pre_' . $selname, $arr);
include/acl_selectors.php: call_hooks($a->module . '_post_' . $selname, $o);
include/acl_selectors.php: call_hooks('contact_select_options', $x);
include/acl_selectors.php: call_hooks($a->module . '_pre_' . $selname, $arr);
include/acl_selectors.php: call_hooks($a->module . '_post_' . $selname, $o);
include/acl_selectors.php: call_hooks($a->module . '_pre_' . $selname, $arr);
include/acl_selectors.php: call_hooks($a->module . '_post_' . $selname, $o);
include/notifier.php: call_hooks('notifier_normal',$target_item);
include/notifier.php: call_hooks('notifier_end',$target_item);
include/items.php: call_hooks('atom_feed', $atom);
include/items.php: call_hooks('atom_feed_end', $atom);
include/items.php: call_hooks('atom_feed_end', $atom);
include/items.php: call_hooks('parse_atom', $arr);
include/items.php: call_hooks('post_remote',$arr);
include/items.php: call_hooks('atom_author', $o);
include/items.php: call_hooks('atom_entry', $o);
include/bb2diaspora.php: call_hooks('bb2diaspora',$Text);
include/cronhooks.php: call_hooks('cron', $d);
include/security.php: call_hooks('logged_in', $a->user);
include/html2bbcode.php: call_hooks('html2bbcode', $text);
include/Contact.php: call_hooks('remove_user',$r[0]);
include/Contact.php: call_hooks('contact_photo_menu', $args);
include/conversation.php: call_hooks('conversation_start',$cb);
include/conversation.php: call_hooks('render_location',$locate);
include/conversation.php: call_hooks('display_item', $arr);
include/conversation.php: call_hooks('render_location',$locate);
include/conversation.php: call_hooks('display_item', $arr);
include/conversation.php: call_hooks('item_photo_menu', $args);
include/conversation.php: call_hooks('jot_tool', $jotplugins);
include/conversation.php: call_hooks('jot_networks', $jotnets);
include/plugin.php: if(! function_exists('call_hooks')) {
include/plugin.php:function call_hooks($name, &$data = null) {
index.php: call_hooks('init_1');
index.php: call_hooks('app_menu', $arr);
index.php: call_hooks('page_end', $a->page['content']);
mod/photos.php: call_hooks('photo_post_init', $_POST);
mod/photos.php: call_hooks('photo_post_file',$ret);
mod/photos.php: call_hooks('photo_post_end',$foo);
mod/photos.php: call_hooks('photo_post_end',$foo);
mod/photos.php: call_hooks('photo_post_end',$foo);
mod/photos.php: call_hooks('photo_post_end',intval($item_id));
mod/photos.php: call_hooks('photo_upload_form',$ret);
mod/friendica.php: call_hooks('about_hook', $o);
mod/editpost.php: call_hooks('jot_tool', $jotplugins);
mod/editpost.php: call_hooks('jot_networks', $jotnets);
mod/parse_url.php: call_hooks('parse_link', $arr);
mod/home.php: call_hooks('home_init',$ret);
mod/home.php: call_hooks("home_content",$o);
mod/contacts.php: call_hooks('contact_edit_post', $_POST);
mod/contacts.php: call_hooks('contact_edit', $arr);
mod/settings.php: call_hooks('plugin_settings_post', $_POST);
mod/settings.php: call_hooks('connector_settings_post', $_POST);
mod/settings.php: call_hooks('settings_post', $_POST);
mod/settings.php: call_hooks('plugin_settings', $settings_addons);
mod/settings.php: call_hooks('connector_settings', $settings_connectors);
mod/settings.php: call_hooks('settings_form',$o);
mod/register.php: call_hooks('register_account', $newuid);
mod/like.php: call_hooks('post_local_end', $arr);
mod/xrd.php: call_hooks('personal_xrd', $arr);
mod/item.php: call_hooks('post_local_start', $_REQUEST);
mod/item.php: call_hooks('post_local',$datarray);
mod/item.php: call_hooks('post_local_end', $datarray);
mod/profile.php: call_hooks('profile_advanced',$o);
mod/profiles.php: call_hooks('profile_post', $_POST);
mod/profiles.php: call_hooks('profile_edit', $arr);
mod/tagger.php: call_hooks('post_local_end', $arr);
mod/cb.php: call_hooks('cb_init');
mod/cb.php: call_hooks('cb_post', $_POST);
mod/cb.php: call_hooks('cb_afterpost');
mod/cb.php: call_hooks('cb_content', $o);
mod/directory.php: call_hooks('directory_item', $arr);

47
doc/de/Profiles.md Normal file
View file

@ -0,0 +1,47 @@
Profile
========
* [Zur Startseite der Hilfe](help)
Mit Friendica kann eine unbegrenzte Anzahl an Profilen angelegt werden. Du kannst verschiedene Profile nutzen, um verschiedenen Gruppen verschiedene Seiten von dir zu zeigen.
Du hast immer ein Profil, das als dein "Standard"- (default) oder "öffentliches" (public) Profil angelegt ist. Dieses Profil ist immer für die Öffentlichkeit zugänglich und kann nicht versteckt werden (hier mag es einige wenige Ausnahmen auf privaten oder getrennten Seiten geben). Du kannst und solltest die Informationen, die du in deinem öffentlichen Profil veröffentlichst, begrenzen.
Das bedeutet, dass du folgende Informationen in dein öffentlichen Profil eintragen solltest, wenn du willst, dass Freunde dich finden können ...
* Dein richtiger Name
* Ein Foto von **dir**
* Dein geographischer Standort; zumindest das Land, in dem du lebst.
Ohne diese Basisinformationen kannst du hier sehr einsam sein. Die meisten Leute, auch deine besten Freunde, werden nicht versuchen, einen Account mit Spitznamen und ohne Foto zu verbinden.
Wenn du außerdem Leute mit gleichen Interessen treffen willst, dann nimm dir etwas Zeit und trage einige Stichworte ein. Zum Beispiel etwas wie "Musik, Linux, Photographie" oder andere Dinge. Du kannst so viele Stichworte eintragen, wie du willst.
Dein "Standard-" oder "öffentliches" Profil wird außerdem Kontakten in anderen Netzwerken gezeigt, auch wenn sie nicht die Möglichkeit haben, die privaten Profile einzusehen. Nur Mitglieder des Friendica-Netzwerks können alternative oder private Profile sehen.
Um ein alternatives Profil zu erstellen, gehe auf "Profil verwalten/editieren". Du kannst entweder ein bestehendes Profil bearbeiten, das Foto ändern, oder ein neues Profil erstellen. Du kannst ebenfalls einen Klon eines bestehenden Profils erstellen, falls du nur einige wenige Einstellungen ändern, aber nicht alle Daten noch mal eingeben willst.
Um bestimmten Personen ein Profil zuzuweisen, wähle die Person über "Kontakte" und klicke auf das Bearbeiten-Symbol (Stift). Du wirst ein Auswahlmenü mit verschiedenen vorhandenen Profilen angezeigt bekommen. Wenn diese Auswahl nicht angezeigt wird, dann ist die Person in einem nicht unterstützten Netzwerk und kann dadurch auch kein Profil zugewiesen bekommen.
Wenn eine befreundete Person auf den "magischen Profillink" klickt, sieht sie das private Profil, das du dieser Person zugewiesen hast. Wenn sie nicht eingeloggt ist oder das Profil von woanders angeschaut wird, wird nur das öffentliche Profil angezeigt.
Ein "magischer Profillink" erscheint, wenn man mit der Maus über den Kontaktnamen oder das Foto geht. Der Cursor wird zur Hand und auf dem Bild erscheint ein Pfeil, der nach unten zeigt. Dieser "magische Cursor" zeigt an, dass du ein spezielles Profil angezeigt bekommst, das nur für Freunde, aber nicht für die Öffentlichkeit sichtbar ist.
Du wirst außerdem möglicherweise entdecken (vorausgesetzt, du hast die nötigen Zugriffsrechte), dass du direkt auf die Seite einer anderen Person schreiben kannst (oft wird diese Beitragsart "wall-to-wall" genannt). Ebenso kannst du die Möglichkeit haben, direkt Beiträge zu kommentieren, während du die Seite der anderen Person besuchst.
Es gibt zwei Einstellungen, welche erlauben, dein Profil ins Verzeichnis einzutragen, so dass du von anderen Personen gefunden werden kannst. Du kannst diese Einstellungen auf deiner "Einstellungen"-Seite ändern. Die eine Einstellung erlaubt dir, dein Profil im Verzeichnis dieses Servers zu veröffentlichen. Die zweite Option erlaubt es dir, dich in das globale Friendica-Verzeichnis einzutragen. Dies ist ein riesiges Verzeichnis, dass alle Personen von vielen Friendica-Installationen weltweit umfasst.
Wenn du für andere nicht sichtbar sein willst, dann kannst du dein Profil einfach unveröffentlicht lassen.
Außerdem hast du möglicherweise mehrere Profile, aber nur ein Profilfoto. Dies ist beabsichtigt. In frühen Tests haben wir mit verschiedenen Fotos für jedes Profil experimentiert und herausgefunden, dass es sehr verwirrend für die Nutzer ist. Sie sehen möglicherweise je nach Profil, Seite oder Unterhaltung verschiedene Fotos und merken, dass es unterschiedliche Profile gibt, die sie nicht einsehen können.
(Du kannst aber die Rich-Text-Infoboxen in deinem Profil nutzen und dort weitere Bilder in das Feld "Erzähle uns ein bisschen von dir …" einfügen.)
**Schlüsselwörter und Verzeichnissuche**
Auf der Verzeichnisseite willst du vielleicht nach Personen deines Servers suchen, die ihre Profile veröffentlicht haben. Die Suche richtet sich normalerweise nach deinem Spitznamen oder Teilen deines richtigen Namens. Darüber hinaus wird dieses Feld auch andere Felder deines Profils wie Geschlecht, Ort, "über mich", Arbeit und Bildung finden. Du kannst zudem auch "Schlüsselwörter" in dein Standardprofil eintragen, so dass dich andere Personen über deine Interessen finden können. Du hast zwei Schlüsselwortarten zur Auswahl - öffentlich und privat. Private Schlüsselwörter werden *nicht* jedem angezeigt. Du kannst diese Schlüsselwörter nutzen, um andere Personen zu finden, die ebenfalls in einer bestimmten Gruppe sind oder z.B. das Fischen mögen, ohne dass es jeder in einem öffentlichen Profil sieht. Öffentliche Schlüsselwörter werden auf der "Kontaktvorschläge"-Seite genutzt. Auch wenn die Schlüsselwörter hier nicht direkt angezeigt werden, kann es trotzdem sein, dass diese im HTML-Code der Seite gesehen werden könnten.
In der Verzeichnis-Suche kannst du ebenfalls die "booleasche"-Logik zu nutzen. Mit "+lesbisch +Florida" kannst du Leute finden, deren sexuelle Einstellung (oder andere Schlüsselwörter) das Wort "lesbisch" enthält und die in Florida leben. Schau dir den Bereich über "Thematische Tags" auf der "[Tags und Erwähnungen-Seite](help/Tags-and-Mentions) für weitere Informationen, um booleansche Suchen durchzuführen.
Auf deiner Kontaktseite ist der Link "Ähnliche Interessen", um damit andere Leute zu finden (falls dein Seitenadministrator das globale Verzeichnis nicht ausgeschaltet hat). Hierfür werden die Schlüsselwörter aus deinen öffentlichen und privaten Profilen genutzt, um Personen im globalen Verzeichnis zu finden, die gleiche oder ähnliche Schlüsselwörter haben (deine privaten Schlüsselwörter werden nicht in das globale Verzeichnis übertragen oder gespeichert). Je mehr Schlüsselwörter du einträgst, umso genauer ist die Suche. Das Suchergebnis ist nach Relevanz sortiert. Gegebenenfalls stehst du ganz oben auf der Liste - schließlich bist du die Person, die am besten zu deinen Schlüsselwörtern passt.

8
doc/de/README.md Normal file
View file

@ -0,0 +1,8 @@
Friendica-doc-german
====================
Friendica - doc - german
Hier findest du die deutsche Version der Friendica-Hilfedateien. Es handelt sich um eine selbst erstellte, öffentlich freigegebene Arbeit mit dem Ziel, Friendica durch deutsche Hilfedateien für weitere Personen zugänglich zu machen, die dem Englischen nicht ausreichend mächtig sind.
Die Daten basieren auf dem offiziellen Friendica-Github https://github.com/friendica/friendica (Stand: 03.11.12)

24
doc/de/Remove-Account.md Normal file
View file

@ -0,0 +1,24 @@
Accounts löschen
==============
* [Zur Startseite der Hilfe](help)
Wir freuen uns nicht, wenn Leute Friendica verlassen, aber wenn du deinen Account löschen willst, dann besuche die folgende URL
[Lösche mich (http://NamederSeite/removeme)](../removeme)
in deinem Webbrowser. Du musst dabei eingeloggt sein.
Du wirst nach deinem Passwort gefragt, um die Anfrage zu bestätigen. Wenn dieses mit deinem gespeichertem Passwort übereinstimmt, dann wird dein Account sofort gelöscht. Anders als andere Netzwerke, behalten wir die Daten **nicht** für eine gewisse Zeit, falls du deine Meinung noch änderst. Deine Nutzerdetails, deine Unterhaltungen, deine Photos, deine Freunde - alles; wird sofort gelöscht und du wirst ausgeloggt.
Wenn Beiträge ablaufen, schicken wir Mitteilungen an Friendica, um diese zu löschen. Diaspora hat keine automatische Löschfunktion, so dass diese Funktion in dem Netzwerk deaktiviert ist. Und hoffentlich ist klar, dass das Löschen auch in anderen Netzwerken nicht funktioniert. Wenn du manuell einen Beitrag bzw. eine Reihe von Beiträgen löschst, dann senden wir individuelle Mitteilungen zu Friendica und Diaspora für jeden gelöschten Post.
Diaspora versäumt dieses oft.
Wenn du einen Beitrag löscht, aber jemand diesem Beitrag folgt, wird es trotzdem gelöscht. Dein Wunsch hat Priorität.
Wenn du deinen Account löscht, dann löschen wir alle Beiträge, dein Profil, die Nutzerdaten etc. sofort.
Um einen Gesamtlöschauftrag zu versenden, bräuchten wir zunächst noch deinen Account; auch, um deinen Freunden zu zeigen, wer diese Anfrage stellt. Das können wir nicht tun, wenn du keinen Account mehr hast.
Deine Freunde können möglicherweise noch deine Beiträge sehen, wenn dein Account gelöscht wurde, aber es gibt keinen öffentlichen Ort in Friendica mehr, wo diese angeschaut werden können. Wenn du Freunde bei Diaspora hast, kann es sein, dass deine Beiträge weiterhin vorhanden und für andere aus diesem Netzwerk sichtbar sind.

226
doc/de/Settings.md Normal file
View file

@ -0,0 +1,226 @@
Konfigurationen
==============
* [Zur Startseite der Hilfe](help)
Hier findest du einige eingebaute Features, welche kein graphisches Interface haben oder nicht dokumentiert sind. Konfigurationseinstellungen sind in der Datei ".htconfig.php" gespeichert. Bearbeite diese Datei, indem du sie z.B. mit einem Texteditor öffnest. Verschiedene Systemeinstellungen sind bereits in dieser Datei dokumentiert und werden hier nicht weiter erklärt.
**Tastaturbefehle**
Friendica erfasst die folgenden Tastaturbefehle:
* [Pause] - Pausiert die Update-Aktivität via "Ajax". Das ist ein Prozess, der Updates durchführt, ohne die Seite neu zu laden. Du kannst diesen Prozess pausieren, um deine Netzwerkauslastung zu reduzieren und/oder um es in der Javascript-Programmierung zum Debuggen zu nutzen. Ein Pausenzeichen erscheint unten links im Fenster. Klicke die [Pause]-Taste ein weiteres Mal, um die Pause zu beenden.
* [F8] - Zeigt eine Sprachauswahl an
**Geburtstagsbenachrichtigung**
Geburtstage erscheinen auf deiner Startseite für alle Freunde, die in den nächsten 6 Tagen Geburtstag haben. Um deinen Geburtstag für alle sichtbar zu machen, musst du deinen Geburtstag (zumindest Tag und Monat) in dein Standardprofil eintragen. Es ist nicht notwendig, das Jahr einzutragen.
**Konfigurationseinstellungen**
**Sprache**
Systemeinstellung
Bitte schau dir die Datei util/README an, um Informationen zur Erstellung einer Übersetzung zu erhalten.
Konfiguriere:
```
$a->config['system']['language'] = 'name';
```
**System-Thema (Design)**
Systemeinstellung
Wähle ein Thema als Standardsystemdesign (welches vom Nutzer überschrieben werden kann). Das Standarddesign ist "default".
Konfiguriere:
```
$a->config['system']['theme'] = 'theme-name';
```
**Verifiziere SSL-Zertifikate**
Sicherheitseinstellungen
Standardmäßig erlaubt Friendica SSL-Kommunikation von Seiten, die "selbstunterzeichnete" SSL-Zertifikate nutzen. Um eine weitreichende Kompatibilität mit anderen Netzwerken und Browsern zu gewährleisten, empfehlen wir, selbstunterzeichnete Zertifikate **nicht** zu nutzen. Aber wir halten dich nicht davon ab, solche zu nutzen. SSL verschlüsselt alle Daten zwischen den Webseiten (und für deinen Browser), was dir eine komplett verschlüsselte Kommunikation erlaubt. Auch schützt es deine Login-Daten vor Datendiebstahl. Selbstunterzeichnete Zertifikate können kostenlos erstellt werden. Diese Zertifikate können allerdings Opfer eines sogenannten ["man-in-the-middle"-Angriffs](http://de.wikipedia.org/wiki/Man-in-the-middle-Angriff) werden, und sind daher weniger bevorzugt. Wenn du es wünscht, kannst du eine strikte Zertifikatabfrage einstellen. Das führt dazu, dass du keinerlei Verbindung zu einer selbstunterzeichneten SSL-Seite erstellen kannst
Konfiguriere:
```
$a->config['system']['verifyssl'] = true;
```
**Erlaubte Freunde-Domains**
Kooperationen/Gemeinschaften/Bildung Erweiterung
Kommagetrennte Liste von Domains, welche eine Freundschaft mit dieser Seite eingehen dürfen. Wildcards werden akzeptiert (Wildcard-Unterstützung unter Windows benötigt PHP5.3) Standardmäßig sind alle gültigen Domains erlaubt.
Konfiguriere:
```
$a->config['system']['allowed_sites'] = "sitea.com, *siteb.com";
```
**Erlaubte Email-Domains**
Kooperationen/Gemeinschaften/Bildung Erweiterung
Kommagetrennte Liste von Domains, welche bei der Registrierung als Part der Email-Adresse erlaubt sind. Das grenzt Leute aus, die nicht Teil der Gruppe oder Organisation sind. Wildcards werden akzeptiert (Wildcard-Unterstützung unter Windows benötigt PHP5.3) Standardmäßig sind alle gültigen Email-Adressen erlaubt.
Konfiguriere:
```
$a->config['system']['allowed_email'] = "sitea.com, *siteb.com";
```
**Öffentlichkeit blockieren**
Kooperationen/Gemeinschaften/Bildung Erweiterung
Setze diese Einstellung auf "true" und sperre den öffentlichen Zugriff auf alle Seiten, solange man nicht eingeloggt ist. Das blockiert die Ansicht von Profilen, Freunden, Fotos, vom Verzeichnis und den Suchseiten. Ein Nebeneffekt ist, dass Einträge dieser Seite nicht im globalen Verzeichnis erscheinen. Wir empfehlen, speziell diese Einstellung auszuschalten (die Einstellung ist an anderer Stelle auf dieser Seite erklärt). Beachte: das ist speziell für Seiten, die beabsichtigen, von anderen Friendica-Netzwerken abgeschottet zu sein. Unautorisierte Personen haben ebenfalls nicht die Möglichkeit, Freundschaftsanfragen von Seitennutzern zu beantworten. Die Standardeinstellung steht auf "false". Verfügbar in Version 2.2 und höher.
Konfiguriere:
```
$a->config['system']['block_public'] = true;
```
**Veröffentlichung erzwingen**
Kooperationen/Gemeinschaften/Bildung Erweiterung
Standardmäßig können Nutzer selbst auswählen, ob ihr Profil im Seitenverzeichnis erscheint. Diese Einstellung zwingt alle Nutzer dazu, im Verzeichnis zu erscheinen. Diese Einstellung kann vom Nutzer nicht deaktiviert werden. Die Standardeinstellung steht auf "false".
Konfiguriere:
```
$a->config['system']['publish_all'] = true;
```
**Globales Verzeichnis**
Kooperationen/Gemeinschaften/Bildung Erweiterung
Mit diesem Befehl wird die URL eingestellt, die zum Update des globalen Verzeichnisses genutzt wird. Dieser Befehl ist in der Standardkonfiguration enthalten. Der nichtdokumentierte Teil dieser Einstellung ist, dass das globale Verzeichnis gar nicht verfügbar ist, wenn diese Einstellung nicht gesetzt wird. Dies erlaubt eine private Kommunikation, die komplett vom globalen Verzeichnis isoliert ist.
Konfiguriere:
```
$a->config['system']['directory_submit_url'] = 'http://dir.friendica.com/submit';
```
**Proxy Konfigurationseinstellung**
Wenn deine Seite eine Proxy-Einstellung nutzt, musst du diese Einstellungen vornehmen, um mit anderen Seiten im Internet zu kommunizieren.
Konfiguriere:
```
$a->config['system']['proxy'] = "http://proxyserver.domain:port";
$a->config['system']['proxyuser'] = "username:password";
```
**Netzwerk-Timeout**
Legt fest, wie lange das Netzwerk warten soll, bevor ein Timeout eintritt. Der Wert wird in Sekunden angegeben. Standardmäßig ist 60 eingestellt; 0 steht für "unbegrenzt" (nicht empfohlen).
Konfiguriere:
```
$a->config['system']['curl_timeout'] = 60;
```
**Banner/Logo**
Hiermit legst du das Banner der Seite fest. Standardmäßig ist das Friendica-Logo und der Name festgelegt. Du kannst hierfür HTML/CSS nutzen, um den Inhalt zu gestalten und/oder die Position zu ändern, wenn es nicht bereits voreingestellt ist.
Konfiguriere:
```
$a->config['system']['banner'] = '<span id="logo-text">Meine tolle Webseite</span>';
```
**Maximale Bildgröße**
Maximale Bild-Dateigröße in Byte. Standardmäßig ist 0 gesetzt, was bedeutet, dass kein Limit gesetzt ist.
Konfiguriere:
```
$a->config['system']['maximagesize'] = 1000000;
```
**UTF-8 Reguläre Ausdrücke**
Während der Registrierung werden die Namen daraufhin geprüft, ob sie reguläre UTF-8-Ausdrücke nutzen. Hierfür wird PHP benötigt, um mit einer speziellen Einstellung kompiliert zu werden, die UTF-8-Ausdrücke benutzt. Wenn du absolut keine Möglichkeit hast, Accounts zu registrieren, setze den Wert von "no_utf" auf "true". Standardmäßig ist "false" eingestellt (das bedeutet, dass UTF-8-Ausdrücke unterstützt werden und funktionieren).
Konfiguriere:
```
$a->config['system']['no_utf'] = true;
```
**Prüfe vollständigen Namen**
Es kann vorkommen, dass viele Spammer versuchen, sich auf deiner Seite zu registrieren. In Testphasen haben wir festgestellt, dass diese automatischen Registrierungen das Feld "Vollständiger Name" oft nur mit Namen ausfüllen, die kein Leerzeichen beinhalten. Wenn du Leuten erlauben willst, sich nur mit einem Namen anzumelden, dann setze die Einstellung auf "true". Die Standardeinstellung ist auf "false" gesetzt.
Konfiguriere:
```
$a->config['system']['no_regfullname'] = true;
```
**OpenID**
Standardmäßig wird OpenID für die Registrierung und für Logins genutzt. Wenn du nicht willst, dass OpenID-Strukturen für dein System übernommen werden, dann setze "no_openid" auf "true". Standardmäßig ist hier "false" gesetzt.
Konfiguriere:
```
$a->config['system']['no_openid'] = true;
```
**Multiple Registrierungen**
Um mehrfache Seiten zu erstellen, muss sich eine Person mehrfach registrieren können. Deine Seiteneinstellung kann Registrierungen komplett blockieren oder an Bedingungen knüpfen. Standardmäßig können eingeloggte Nutzer weitere Accounts für die Seitenerstellung registrieren. Hier ist weiterhin eine Bestätigung notwendig, wenn "REGISTER_APPROVE" ausgewählt ist. Wenn du die Erstellung weiterer Accounts blockieren willst, dann setze die Einstellung "block_extended_register" auf "true". Standardmäßig ist hier "false" gesetzt.
Konfiguriere:
```
$a->config['system']['block_extended_register'] = true;
```
**Entwicklereinstellungen**
Diese sind am nützlichsten, um Protokollprozesse zu debuggen oder andere Kommunikationsfehler einzugrenzen.
Konfiguriere:
```
$a->config['system']['debugging'] = true;
$a->config['system']['logfile'] = 'logfile.out';
$a->config['system']['loglevel'] = LOGGER_DEBUG;
```
Erstellt detaillierte Debugging-Logfiles, die in der Datei "logfile.out" gespeichert werden (Datei muss auf dem Server mit Schreibrechten versehen sein). "LOGGER_DEBUG" zeigt eine Menge an Systeminformationen, enthält aber keine detaillierten Daten. Du kannst ebenfalls "LOGGER_ALL" auswählen, allerdings empfehlen wir dieses nur, wenn ein spezifisches Problem eingegrenzt werden soll. Andere Log-Level sind möglich, werden aber derzeit noch nicht genutzt.
**PHP-Fehler-Logging**
Nutze die folgenden Einstellungen, um PHP-Fehler direkt in einer Datei zu erfassen.
Konfiguriere:
```
error_reporting(E_ERROR | E_WARNING | E_PARSE );
ini_set('error_log','php.out');
ini_set('log_errors','1');
ini_set('display_errors', '0');
```
Diese Befehle erfassen alle PHP-Fehler in der Datei "php.out" (Datei muss auf dem Server mit Schreibrechten versehen sein). Nicht deklarierte Variablen werden manchmal mit einem Verweis versehen, weshalb wir empfehlen, "E_NOTICE" und "E_ALL" nicht zu nutzen. Die Menge an Fehlern, die auf diesem Level gemeldet werden, ist komplett harmlos. Bitte informiere die Entwickler über alle Fehler, die du in deinen Log-Dateien mit den oben genannten Einstellungen erhältst. Sie weisen generell auf Fehler in, die bearbeitet werden müssen.
Wenn du eine leere (weiße) Seite erhältst, schau in die PHP-Log-Datei - dies deutet fast immer darauf hin, dass ein Fehler aufgetreten ist.

View file

@ -0,0 +1,31 @@
Tags und Erwähnungen
=================
* [Zur Startseite der Hilfe](help)
Wie viele andere soziale Netzwerke benutzt auch Friendica eine spezielle Schreibweise in seinen Nachrichten, um Tags oder kontextbezogene Links zu anderen Beiträgen hervorzuheben.
**Erwähnungen**
Personen werden "getagged", indem du das "@"-Zeichen vor den Namen schreibst.
Im Folgenden findest du verschiedene Möglichkeiten, um eine Person zu erwähnen:
* @mike - deutet auf eine Person hin, die im Netzwerk den Namen "mike" nutzt
* @mike_macgirvin - deutet auf eine Person hin, die sich im Netzwerk "Mike Macgirvin" nennt. Beachte, dass Leerzeichen in Tags nicht genutzt werden können.
* @mike+151 - diese Schreibweise deutet auf eine Person hin, die "mike" heißt und deren Kontakt-Identitäts-Nummer 151 ist. Bei der Eingabe erscheint direkt ein Auswahlmenü, sodass du diese Nummer nicht selbst kennen musst.
* @mike@macgirvin.com - diese Schreibweise deutet auf die Profiladresse eines Nutzers in einem anderen Netzwerk oder auf jemanden, der *nicht* in deiner Kontaktliste ist. Diese Schreibweise wird "Fernerwähnung" (remote mention)genannt und kann nur im Email-Stil geschrieben werden, nicht als Internetadresse/URL.
Wenn das System ungewollte Erwähnungen nicht blockiert, erhält diese Person eine Mitteilung oder nimmt direkt an der Diskussion teil, wenn es sich um einen öffentlichen Beitrag handelt. Bitte beachte, dass Friendica eingehende "Erwähnungs"-Nachrichten von Personen blockt, die du nicht zu deinem Profil hinzugefügt hast. Diese Maßnahme dient dazu, Spam zu vermeiden.
"Fernerwähnungen" werden durch das OStatus-Protokoll übermittelt. Dieses Protokoll wird von Friendica, StatusNet und anderen Systemen genutzt, ist allerdings derzeit nicht in Diaspora eingebaut.
Friendica unterscheidet bei Tags nicht zwischen Personen und Gruppen (einige andere Netzwerke nutzen "!gruppe", um solche zu markieren).
**Thematische Tags**
Thematische Tags werden durch eine "#" gekennzeichnet. Dieses Zeichen erstellen einen Link zur allgemeinen Seitensuche mit dem ausgewählten Begriff. So wird z.B. #Autos zu einer Suche führen, die alle Beiträge deiner Seite umfasst, die dieses Wort erwähnen. Thematische Tags haben generell eine Mindestlänge von 3 Stellen. Kürzere Suchbegriffe finden meist keine Suchergebnisse, wobei dieses abhängig von der Datenbankeinstellung ist. Tags mit einem Leerzeichen werden, wie es auch bei Namen der Fall ist, durch einen Unterstrich gekennzeichnet. Es ist hingegen nicht möglich, Tags zu erstellen, deren gesuchtes Wort einen Unterstrich enthält.
Thematische Tags werden auch dann nicht verlinkt, wenn sie nur aus Nummern bestehen, wie z.B. #1. Wenn du einen numerischen Tag nutzen willst, füge bitte einen Beschreibungstext hinzu wie z.B. #2012_Wahl.

47
doc/de/Text_comment.md Normal file
View file

@ -0,0 +1,47 @@
Beiträge kommentieren, einordnen und löschen
==========================================================
* [Zur Startseite der Hilfe](help)
Hier findest du eine Übersicht über die verschiedenen Möglichkeiten, bestehende Beiträge einzuordnen und zu kommentieren. <span style="color: red;">Achtung: für dieses Beispiel wurde das Thema <b>"Diabook"</b> genutzt. Wenn du ein anderes Design benutzt, wirst du manche dieser Symbole gar nicht oder in anderer Form vorfinden.
</span>
<img src="doc/img/diabook.png" width="308" height="42" alt="diabook" >
<i>Die einzelnen Symbole</i>
<img src="doc/img/post_thumbs_up.png" width="27" height="32" alt="post_thumbs_up.png" align="left" style="padding-bottom: 10px;"> Mit diesem Symbol kannst du zeigen, dass dir ein Beitrag gefällt. Falls du diese Eingabe zurücknehmen willst, klicke einfach ein zweites Mal auf das Symbol.
<p style="clear:both;"></p>
<img src="doc/img/post_thumbs_down.png" width="27" height="32" alt="post_thumbs_down.png" align="left" style="padding-bottom: 10px;"> Mit diesem Symbol kannst du zeigen, dass dir ein Beitrag <b>nicht</b> gefällt. Falls du diese Eingabe zurücknehmen willst, klicke einfach ein zweites Mal auf das Symbol.
<p style="clear:both;"></p>
<img src="doc/img/post_share.png" width="27" height="32" alt="post_share.png" align="left" style="padding-bottom: 10px;"> Mit diesem Symbol kannst du einen Beitrag weiter verteilen. Einfach anklicken und sofort erscheint der Beitrag in deinem Beitragseditor. Am Ende des eingefügten Beitrags erscheint ein Link zum Originalbeitrag.
<p style="clear:both;"></p>
<img src="doc/img/post_mark.png" width="27" height="32" alt="post_mark.png" align="left" style="padding-bottom: 10px;"> Mit diesem Symbol kannst du einen Beitrag für dich markieren. Markierte Beiträge erscheinen in deiner Netzwerk-Seite unter "Markierte". Wenn du die Markierung entfernen willst, klicke einfach ein zweites Mal auf das Symbol.
<p style="clear:both;"></p>
<img src="doc/img/post_tag.png" width="27" height="41" alt="post_tag.png" align="left" style="padding-bottom: 10px;"> Mit diesem Symbol kannst du einen tag zum Beitrag hinzufügen und diesen so einem bestimmten Schlagwort zuzuordnen. Anschließend kannst du auf diesen tag klicken und alle Beiträge mit diesem tag ansehen. ACHTUNG: tags können nicht mehr entfernt werden.
<p style="clear:both;"></p>
<img src="doc/img/post_categorize.png" width="27" height="32" alt="post_categorize.png" align="left" style="padding-bottom: 20px;"> Mit diesem Symbol ist es möglich, die Beiträge in bestimmte Gruppen einzuordnen. Dies dient dazu, gewählte Beiträge nach eigenen Vorstellungen zu sortieren und wieder zu finden. Wähle eine vorhandene Gruppe oder gib einen neuen Namen ein. Die erstellten Gruppen findest du unter "Gespeicherte Ordner" in der Netzwerk-Ansicht.
<p style="clear:both;"></p>
<img src="doc/img/post_delete.png" width="27" height="32" alt="post_delete.png" align="left"> Mit diesem Symbol löschst du deinen eigenen Beitrag bzw. entfernst einen Beitrag einer anderen Person aus deinem Stream.
<P style="clear: both;"></p>
<img src="doc/img/post_choose.png" width="27" height="32" alt="post_choose.png" align="left"> Mit diesem Symbol kannst du mehrere Beiträge auswählen und gesammelt löschen. Hierfür gehst du nach dem Markieren aller gewünschten Beiträge auf "Lösche die markierten Beiträge" am Ende der Seite mit allen Beiträgen.
<P style="clear: both;"></p>
**Im Folgenden findest du Symbole weiterer Themen**
Darkbubble <img src="doc/img/darkbubble.png" alt="darkbubble.png" style="padding-left: 20px; vertical-align:middle;">
Darkzero <img src="doc/img/darkzero.png" alt="darkzero.png" style="padding-left: 35px; vertical-align:middle;">
<span style="padding-left: 10px; font-style:italic;">(inkl. weiterer "zero"-Themen, slackr, comix, easterbunny, facepark)</span>
Dispy <img src="doc/img/dispy.png" alt="dispy.png" style="padding-left: 57px; vertical-align:middle;"> <i>(inkl. smoothly, testbubble)</i>
Frost Mobile <img src="doc/img/frost.png" alt="frost.png" style="padding-left: 16px; vertical-align:middle;">

41
doc/de/Text_editor.md Normal file
View file

@ -0,0 +1,41 @@
Beiträge erstellen
=================
* [Zur Startseite der Hilfe](help)
Hier findest du eine Übersicht über die verschiedenen Möglichkeiten, deinen Beitrag zu bearbeiten. <span style="color: red;">Achtung: für dieses Beispiel wurde das Thema <b>"Diabook"</b> genutzt. Wenn du ein anderes Design benutzt, wird du manche dieser Symbole gar nicht oder in anderer Form vorfinden.
</span>
<img src="doc/img/friendica_editor.png" width="538" height="218" alt="editor">
<i>Die einzelnen Symbole</i>
<img src="doc/img/camera.png" width="44" height="33" alt="editor" align="left" style="padding-bottom: 20px;"> Wenn du auf dieses Symbol klickst, dann kannst du ein Bild von deinem Computer hinzufügen. Wenn du eine Internetadresse (URL) eingeben willst, dann kannst du das "Baum"-Symbol im oberen Teil des Editors nutzen. Wenn du ein Bild ausgewählt hast, dann erscheint eine Miniaturdarstellung des Bildes im Editor.
<p style="clear:both;"></p>
<img src="doc/img/paper_clip.png" width="44" height="33" alt="paper_clip" align="left"> Wenn du dieses Symbol anklickst, dann kannst du weitere Dateien von deinem Computer einfügen. Eine Vorschau des Dateiinhalts erfolgt nicht.
<p style="clear:both;"></p>
<img src="doc/img/chain.png" width="44" height="33" alt="chain" align="left"> Wenn du die Kette anklickst, dann kannst du eine Internetadresse (URL) einfügen. Im Editor erscheint automatisch eine kurze Information zum eingefügten Link.
<p style="clear:both;"></p>
<img src="doc/img/video.png" width="44" height="33" alt="video" align="left"> Wenn du dieses Symbol wählst, dann kannst du eine Internetadresse (URL) zu einem Video einfügen. Eine Miniaturansicht des Videos erscheint in der Vorschau bzw. im fertigen Beitrag.
<p style="clear:both;"></p>
<img src="doc/img/mic.png" width="44" height="33" alt="mic" align="left"> Wenn du dieses Symbol wählst, dann kannst du eine Internetadresse (URL) zu einer Sound-Datei einfügen. Ein Player erscheint in der Vorschau bzw. im fertigen Beitrag.
<p style="clear:both;"></p>
<img src="doc/img/globe.png" width="44" height="33" alt="globe" align="left"> Wenn du dieses Symbol wählst, dann kannst du deinen Standort festlegen. Hier reicht schon eine Angabe wie "Berlin" oder "10775". Dieser Eintrag führt anschließend zu einer Suchanfrage bei Google Maps.
<p style="clear:both;"></p>
**Im Folgenden findest du Symbole weiterer Themen**
Cleanzero <img src="doc/img/editor_zero.png" alt="cleanzero.png" style="padding-left: 20px; vertical-align:middle;">
<span style="padding-left: 10px; font-style:italic;">(inkl. weiterer "zero"-Themen, comix, easterbunny, facepark, slackr </span>
Darkbubble <img src="doc/img/editor_darkbubble.png" alt="darkbubble.png" style="padding-left: 14px; vertical-align:middle;"> <i>(inkl. smoothly, testbubble)</i>
Frost <img src="doc/img/editor_frost.png" alt="frost.png" style="padding-left: 42px; vertical-align:middle;">
Vier <img src="doc/img/editor_vier.png" alt="vier.png" style="padding-left: 44px; vertical-align:middle;"> <i>(inkl. dispy)</i>

27
doc/de/andfinally.md Normal file
View file

@ -0,0 +1,27 @@
... und zuletzt
===============
Und damit sind wir auch schon am Ende der Schnellstartanleitung.
Hier sind noch einige weitere Dinge, die dir den Start vereinfachen können.
**Gruppen**
- <a href="https://kakste.com/profile/newhere">Neu hier?</a> - eine Gruppe für Leute, die neu bei Friendica sind
- <a href="http://helpers.pyxis.uberspace.de/profile/helpers">Friendica Support</a> - Probleme? Dann ist das der Platz, um zu fragen!
- <a href="https://kakste.com/profile/public_stream">Öffentlicher Stream</a> - ein Platz, um über alles mit jedem zu reden.
- <a href="https://letstalk.pyxis.uberspace.de/profile/letstalk">Let's Talk</a> eine Gruppe, um Leute und Gruppen mit gleichen Interessen zu finden
- <a href="http://newzot.hydra.uberspace.de/profile/newzot">Local Friendica</a> eine Seite für lokale Friendica-Gruppen</a>
**Dokumentation**
- <a href="help/Connectors">Zu weiteren Netzwerken verbinden</a>
- <a href="help">Zur Startseite der Hilfe</a>

16
doc/de/groupsandpages.md Normal file
View file

@ -0,0 +1,16 @@
Gruppen und Seiten
==========
* [Zur Startseite der Hilfe](help)
Hier siehst du das globale Verzeichnis. Wenn du dich mal verirrt hast, kannst du <a href = "help/groupsandpages">diesen Link klicken</a> und wieder hierher kommen.
Auf dieser Seite findest du eine Zusammenstellung von Gruppen, Foren und bekannten Seiten. Gruppen sind keine realen Personen. Sich mit diesen zu verbinden ist, als wenn man jemanden auf Facebook "liked" ("gefällt mir") oder wenn man sich in einem Forum anmeldet. Habe keine Sorge, falls du dich unbehaglich fühlst, wenn du dich einer neuen Person vorstellen sollst, da es sich nicht um Personen handelt.
Wenn du dich mit einer Gruppe verbindest, erscheinen alle Nachrichten der Gruppe in deinem "Netzwerk"-Tab. Du kannst diese Beiträge kommentieren oder selbst in der Gruppe schreiben, ohne eine der Gruppenmitglieder persönlich hinzuzufügen. Das ist ein großartiger Weg, dynamisch neue Freunde zu gewinnen. Du findest Personen, die du magst, anstatt Fremde hinzuzufügen. Suche dir einfach eine Gruppe und füge sie so hinzu, wie du auch normale Freunde hinzufügst. Es gibt eine Menge Gruppen und möglicherweise findest du nicht wieder zu dieser Seite zurück. In diesem Fall nutze einfach den Link oben auf dieser Seite.
Wenn du einige Gruppen hinzugefügt hast, gehe <a href="help/andfinally">weiter zum nächsten Schritt</a>.
<iframe src="http://dir.friendica.com/directory/forum" width="950" height="600"></iframe>

17
doc/de/guide.md Normal file
View file

@ -0,0 +1,17 @@
Erste Schritte...
==========
* [Zur Startseite der Hilfe](help)
Das Erste zum Anfang: geh sicher, dass du schon eingeloggt bist. Wenn du noch nicht eingeloggt bist, kannst du das in dem Fenster unten machen.
Sobald du eingeloggt bist (oder wenn du bereits eingeloggt bist), kannst du unten nun auf deine Profilseite schauen.
Hier sieht es ein wenig wie auf deiner Facebook-Seite aus. Hier findest du alle deine Statusmeldungen und Nachrichten deiner Freunde, die direkt auf deine Seite ("Wall") geschrieben haben. Um deinen Status einzutragen, klicke einfach auf die Box oben, in der "Teilen" steht. Wenn du das machst, vergrößert sich die Box. Nun kannst du einige Formatierungsoptionen wie Fett, kursiv, unterstrichen auswählen und ebenfalls Bilder und Links hinzufügen. Unten findest du in diesem Feld weitere Links, mit denen du Bilder und Dateien von deinem Computer hochladen, Webseiten mit einem Kurztext teilen und Video- und Audiodateien aus dem Internet einfügen kannst. Außerdem kannst du hier eintragen, wo du gerade bist.
Wenn du deinen Beitrag ("Post") geschrieben hast, kannst du auf das "Schloss"-Symbol klicken und festlegen, wer deinen Beitrag sehen kann. Wenn du dieses Symbol nicht anklickst, ist dein Beitrag öffentlich. Das bedeutet, dass jeder, der dein Profil ansieht, der auf dem "Community"-Tab deines Servers oder auf dem "Netzwerk"-Tab ("Beiträge deiner Kontakte") eines befreundeten Kontakts ist, den Beitrag sehen kann.
Probiere es doch einfach mal aus. Wenn du fertg bist, schauen wir uns den <a href="help/network">"Netzwerk"-Tab</a> an.
<iframe src="login" width="950" height="600"></iframe>

View file

@ -0,0 +1,16 @@
Neue Freunde finden
==============
* [Zur Startseite der Hilfe](help)
Hier siehst du die Kontaktvorschläge. Wenn du dich mal verirrt hast, kannst du <a href="help/makenewfriends">diesen Link klicken</a> und wieder hierher kommen.
Diese Seite ist ein wenig wie die Kontaktvorschläge in Facebook. Jeder auf dieser Liste hat zugestimmt, als Kontaktvorschlag zu erscheinen. Das bedeutet, das sie Anfragen meist nicht ablehnen, da sie neue Leute kennenlernen wollen.
Siehst du jemanden, dessen Aussehen du magst? Klicke auf den "Verbinden"-Button beim Foto. Als nächstes kommst du zur Seite "Freundschafts-/Kontaktanfrage". Fülle das Formular wie vorgegeben aus und trage optional eine kleine Notiz ein. Nun musst du nur noch auf die Bestätigung warten. Beachte dabei, dass es sich um reale Personen handelt und es somit etwas dauern kann. Jetzt, nachdem du jemanden hinzugefügt hast, weißt du vielleicht nicht mehr, wie du zurückkommst. Klicke einfach auf den Link oben auf dieser Seite und du kommst zurück zur Seite mit den Kontaktvorschlägen, um weitere Personen hinzuzufügen.
Du willst nicht einfach Personen hinzufügen, die du nicht kennst? Kein Problem - an dieser Stelle kommen wir zu den <a href="help/groupsandpages">Gruppen und Seiten</a>.
<iframe src="suggest" width="950" height="600"></iframe>

14
doc/de/network.md Normal file
View file

@ -0,0 +1,14 @@
Deine "Netzwerk"-Seite
==============
* [Zur Startseite der Hilfe](help)
Das ist dein "Netzwerk"-Tab. Wenn du dich mal verirrt hast, kannst du <a href="help/network">diesen Link klicken</a>, um wieder hierher zu kommen.
Diese Seite ist ein wenig wie die News-Seite in Facebook oder der Stream in Diaspora. Hier findest du alle Beiträge deiner Kontakte, Gruppen und Feeds, die du eingetragen hast. Wenn du neu bist, siehst du hier noch nichts, falls du deinen Status im letzten Schritt noch nicht eingetragen hast. Wenn du bereits ein paar Freunde eingetragen hast, findest du hier ihre Beiträge. Hier kannst du Beiträge kommentieren, eintragen, dass du den Beitrag magst oder ablehnst oder die Profile durch einen Klick auf deren Namen anschauen und auf deren Seite ("Wall") Nachrichten schreiben.
Nun wollen wir diese Seite mit Inhalt füllen. Der erste Schritt ist es, Leute <a href="help/makingnewfriends">zu deinem Account hinzuzufügen</a>.
<iframe src="network" width="950" height="600"></iframe>

BIN
doc/img/camera.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 828 B

BIN
doc/img/chain.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 709 B

BIN
doc/img/darkbubble.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
doc/img/darkzero.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
doc/img/diabook.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
doc/img/dispy.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
doc/img/editor_frost.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
doc/img/editor_vier.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
doc/img/editor_zero.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
doc/img/frost.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

BIN
doc/img/globe.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
doc/img/mic.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,017 B

BIN
doc/img/padlock.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 393 B

BIN
doc/img/paper_clip.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
doc/img/post_categorize.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 488 B

BIN
doc/img/post_choose.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 B

BIN
doc/img/post_delete.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 378 B

BIN
doc/img/post_link.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 572 B

BIN
doc/img/post_mark.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 739 B

BIN
doc/img/post_share.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 444 B

BIN
doc/img/post_tag.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 612 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 521 B

BIN
doc/img/post_thumbs_up.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 508 B

BIN
doc/img/posts_define.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

BIN
doc/img/video.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 547 B

View file

@ -2,7 +2,7 @@ This is your Network Tab. If you get lost, you can <a href="help/network">click
This is a bit like the Newsfeed at Facebook or the Stream at Diaspora. It's where all the posts from your contacts, groups, and feeds will appear. If you're new, you won't see anything in this page, unless you posted your status in the last step. If you've already added a few friends, you'll be able to see their posts. Here, you can comment, like, or dislike posts, or click on somebody's name to visit their profile page where you can write on their wall.
Now we need to fill it up, the first step, is to <a href="help/peopleyouknow"> add people you already know from Facebook</a>.
Now we need to fill it up, the first step, is to <a href="help/makingnewfriends"> make some new friends</a>.
<iframe src="network" width="950" height="600"></iframe>

View file

@ -1,13 +0,0 @@
This is your connector settings page. If you get lost, you can <a href="help/network">click this link</a> to bring yourself back here.
This is the bit that makes Friendica unique. You can connect to <i>anybody on the internet</i> from your Friendica account using this page! The available connectors varies depending on which plugins you have installed, but for now, we'll walk you through Facebook. Note that not all servers have the Facebook connector installed. If you can't find it in the list below, don't worry, we'll look at ways of connecting to more people in the following pages.
The biggest of all social networks is Facebook. Fortunately, this connector is really easy. Scroll down the page, and click Facebook Connector Settings. Enter your Facebook user name and password and let the application (the connector) do everything the options suggest. You can <a href="https://github.com/friendica/friendica/wiki/How-to:-Friendica%E2%80%99s-Facebook-connector" target="_blank">fine tune this</a> or experiment with the other connectors too. If you need help, you can always ask at <a href="http://helpers.pyxis.uberspace.de/profile/helpers" target="_blank">Friendica Support</a> or <a href="help/Connectors" target="_blank">see the instructions here</a>.
When you're ready, we can move on to <a href="help/makingnewfriends">making new friends</a>.
<iframe src="settings/connectors" width="950" height="600"></iframe>

View file

@ -54,8 +54,8 @@ $a->config['php_path'] = 'php';
// You shouldn't need to change anything else.
// Location of global directory submission page.
$a->config['system']['directory_submit_url'] = 'http://dir.friendika.com/submit';
$a->config['system']['directory_search_url'] = 'http://dir.friendika.com/directory?search=';
$a->config['system']['directory_submit_url'] = 'http://dir.friendica.com/submit';
$a->config['system']['directory_search_url'] = 'http://dir.friendica.com/directory?search=';
// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 659 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 756 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 280 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

View file

@ -1,240 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="96"
height="96"
id="svg2"
version="1.1"
inkscape:version="0.48.0 r9654"
sodipodi:docname="friendika.svg"
inkscape:export-filename="/home/meta/Documents/My random images/friendika.png"
inkscape:export-xdpi="80.552788"
inkscape:export-ydpi="80.552788">
<defs
id="defs4">
<linearGradient
id="highlightgradient">
<stop
id="stop3833"
offset="0"
style="stop-color:#ffffff;stop-opacity:0.74374998;" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop3829" />
</linearGradient>
<linearGradient
id="shadowgradient">
<stop
id="stop3833-5"
offset="0"
style="stop-color:#000000;stop-opacity:0.5;" />
<stop
style="stop-color:#818080;stop-opacity:0;"
offset="1"
id="stop3829-9" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#highlightgradient"
id="linearGradient4011"
x1="44.948269"
y1="0"
x2="54.103466"
y2="46.797421"
gradientUnits="userSpaceOnUse"
gradientTransform="scale(1,0.54545455)" />
<linearGradient
inkscape:collect="always"
xlink:href="#shadowgradient"
id="linearGradient4021"
x1="52.016712"
y1="96"
x2="42.867535"
y2="41.837971"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.5,0,48)" />
<filter
inkscape:collect="always"
id="filter4055"
x="-0.03"
width="1.06"
y="-0.12"
height="1.24">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="1.2"
id="feGaussianBlur4057" />
</filter>
<filter
inkscape:collect="always"
id="filter4059"
x="-0.029877551"
width="1.0597551"
y="-0.122"
height="1.244">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="1.22"
id="feGaussianBlur4061" />
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.9132799"
inkscape:cx="53.033009"
inkscape:cy="2.8284271"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
width="256px"
inkscape:snap-global="true"
inkscape:window-width="1680"
inkscape:window-height="1010"
inkscape:window-x="194"
inkscape:window-y="0"
inkscape:window-maximized="0">
<inkscape:grid
type="xygrid"
id="grid2985"
empspacing="3"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true"
spacingx="2px"
spacingy="2px" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Colors"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-956.3622)"
style="display:inline">
<path
style="fill:#ffc019;fill-opacity:1;stroke:none"
d="M 16,0 C 7.0091019,0.04308252 0,7.0521845 0,16 0,16 0,57.499123 0,80 0,89.120146 7.0091019,96 16,96 L 32,96 32,70 64,70 63.916016,46.068359 32,46.236328 32,26 64,26 64,0 C 64,0 24,0 16,0 z"
transform="translate(0,956.3622)"
id="rect2993"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccsccccccccc" />
<path
style="fill:#1872a2;fill-opacity:1;stroke:none"
d="m 80,1052.3622 c 8.990898,0 16.086165,-6.966 16,-16 0,0 0,-41.4991 0,-64 0.07767,-9.01639 -7.067354,-16 -16,-16 l -16,0 0,26 -32,0 0,22 32,0 0,22 -32,0 0,26 c 0,0 32,0 48,0 z"
id="rect2993-6"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccsccccccccc" />
</g>
<g
style="display:inline"
inkscape:label="Lines as original logo"
id="g3997"
inkscape:groupmode="layer">
<path
sodipodi:nodetypes="cccccccc"
inkscape:connector-curvature="0"
id="path3999"
d="m 64,0 0,26 -32,0 0,22 m 32,0 0,22 -32,0 0,26"
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<rect
ry="16"
rx="16"
y="0"
x="0"
height="96"
width="96"
id="rect4001"
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Lines with center break"
style="display:none">
<path
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 64,0 0,26 -32,0 0,22 32,0 0,22 -32,0 0,26"
id="path3926"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccc" />
<rect
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect3928"
width="96"
height="96"
x="0"
y="0"
rx="16"
ry="16" />
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Effects"
style="display:inline">
<rect
style="fill:url(#linearGradient3930);fill-opacity:1;stroke:none"
id="rect3823"
width="96"
height="48.04369"
x="-3.1086245e-15"
y="1.8024861e-14"
ry="15.215644"
rx="15.214664" />
<rect
style="fill:url(#linearGradient3904);fill-opacity:1;stroke:none"
id="rect3823-8"
width="96"
height="47.86721"
x="1.5376101e-14"
y="-96"
ry="15.159752"
rx="15.214664"
transform="scale(1,-1)" />
<rect
style="fill:url(#linearGradient4011);fill-opacity:1;stroke:none;filter:url(#filter4059)"
id="rect4003"
width="98"
height="24"
x="0"
y="0"
rx="15.214664"
ry="8.2994423"
transform="matrix(1.0296115,0,0,1.1963836,-2.901924,-4.7132067)" />
<rect
style="opacity:0.56746030000000003;fill:url(#linearGradient4021);fill-opacity:1;stroke:none;filter:url(#filter4055)"
id="rect4013"
width="96"
height="24"
x="0"
y="72"
rx="14.008356"
ry="12"
transform="matrix(0.9768331,0,0,0.91974646,1.1649641,8.098115)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 528 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 346 B

View file

@ -192,6 +192,7 @@ function contact_photo_menu($contact) {
$status_link="";
$photos_link="";
$posts_link="";
$poke_link="";
$sparkle = false;
if($contact['network'] === NETWORK_DFRN) {
@ -211,10 +212,12 @@ function contact_photo_menu($contact) {
$pm_url = $a->get_baseurl() . '/message/new/' . $contact['id'];
}
$poke_link = $a->get_baseurl() . '/poke/?f=&c=' . $contact['id'];
$contact_url = $a->get_baseurl() . '/contacts/' . $contact['id'];
$posts_link = $a->get_baseurl() . '/network/?cid=' . $contact['id'];
$menu = Array(
t("Poke") => $poke_link,
t("View Status") => $status_link,
t("View Profile") => $profile_link,
t("View Photos") => $photos_link,

View file

@ -3,31 +3,141 @@
if(! class_exists("Photo")) {
class Photo {
private $image;
private $width;
private $height;
private $valid;
private $type;
private $types;
private $image;
/**
* supported mimetypes and corresponding file extensions
*/
static function supportedTypes() {
$t = array();
$t['image/jpeg'] ='jpg';
if (imagetypes() & IMG_PNG) $t['image/png'] = 'png';
return $t;
}
/**
* Put back gd stuff, not everybody have Imagick
*/
private $imagick;
private $width;
private $height;
private $valid;
private $type;
private $types;
public function __construct($data, $type="image/jpeg") {
/**
* supported mimetypes and corresponding file extensions
*/
static function supportedTypes() {
if(class_exists('Imagick')) {
/**
* Imagick::queryFormats won't help us a lot there...
* At least, not yet, other parts of friendica uses this array
*/
$t = array(
'image/jpeg' => 'jpg',
'image/png' => 'png',
'image/gif' => 'gif'
);
} else {
$t = array();
$t['image/jpeg'] ='jpg';
if (imagetypes() & IMG_PNG) $t['image/png'] = 'png';
}
$this->types = $this->supportedTypes();
if (!array_key_exists($type,$this->types)){
$type='image/jpeg';
return $t;
}
public function __construct($data, $type=null) {
$this->imagick = class_exists('Imagick');
$this->types = $this->supportedTypes();
if (!array_key_exists($type,$this->types)){
$type='image/jpeg';
}
$this->type = $type;
if($this->is_imagick() && $this->load_data($data)) {
return true;
} else {
// Failed to load with Imagick, fallback
$this->imagick = false;
}
return $this->load_data($data);
}
public function __destruct() {
if($this->image) {
if($this->is_imagick()) {
$this->image->clear();
$this->image->destroy();
return;
}
imagedestroy($this->image);
}
}
public function is_imagick() {
return $this->imagick;
}
/**
* Maps Mime types to Imagick formats
*/
public function get_FormatsMap() {
$m = array(
'image/jpeg' => 'JPG',
'image/png' => 'PNG',
'image/gif' => 'GIF'
);
return $m;
}
private function load_data($data) {
if($this->is_imagick()) {
$this->image = new Imagick();
try {
$this->image->readImageBlob($data);
}
catch (Exception $e) {
// Imagick couldn't use the data
return false;
}
/**
* Setup the image to the format it will be saved to
*/
$map = $this->get_FormatsMap();
$format = $map[$type];
$this->image->setFormat($format);
// Always coalesce, if it is not a multi-frame image it won't hurt anyway
$this->image = $this->image->coalesceImages();
/**
* setup the compression here, so we'll do it only once
*/
switch($this->getType()){
case "image/png":
$quality = get_config('system','png_quality');
if((! $quality) || ($quality > 9))
$quality = PNG_QUALITY;
/**
* From http://www.imagemagick.org/script/command-line-options.php#quality:
*
* 'For the MNG and PNG image formats, the quality value sets
* the zlib compression level (quality / 10) and filter-type (quality % 10).
* The default PNG "quality" is 75, which means compression level 7 with adaptive PNG filtering,
* unless the image has a color map, in which case it means compression level 7 with no PNG filtering'
*/
$quality = $quality * 10;
$this->image->setCompressionQuality($quality);
break;
case "image/jpeg":
$quality = get_config('system','jpeg_quality');
if((! $quality) || ($quality > 100))
$quality = JPEG_QUALITY;
$this->image->setCompressionQuality($quality);
}
// The 'width' and 'height' properties are only used by non-Imagick routines.
$this->width = $this->image->getImageWidth();
$this->height = $this->image->getImageHeight();
$this->valid = true;
return true;
}
$this->valid = false;
$this->type = $type;
$this->image = @imagecreatefromstring($data);
if($this->image !== FALSE) {
$this->width = imagesx($this->image);
@ -35,463 +145,606 @@ class Photo {
$this->valid = true;
imagealphablending($this->image, false);
imagesavealpha($this->image, true);
}
}
public function __destruct() {
if($this->image)
imagedestroy($this->image);
}
public function is_valid() {
return $this->valid;
}
public function getWidth() {
return $this->width;
}
public function getHeight() {
return $this->height;
}
public function getImage() {
return $this->image;
}
public function getType() {
return $this->type;
}
public function getExt() {
return $this->types[$this->type];
}
public function scaleImage($max) {
$width = $this->width;
$height = $this->height;
$dest_width = $dest_height = 0;
if((! $width)|| (! $height))
return FALSE;
if($width > $max && $height > $max) {
if($width > $height) {
$dest_width = $max;
$dest_height = intval(( $height * $max ) / $width);
}
else {
$dest_width = intval(( $width * $max ) / $height);
$dest_height = $max;
}
}
else {
if( $width > $max ) {
$dest_width = $max;
$dest_height = intval(( $height * $max ) / $width);
}
else {
if( $height > $max ) {
$dest_width = intval(( $width * $max ) / $height);
$dest_height = $max;
}
else {
$dest_width = $width;
$dest_height = $height;
}
}
}
$dest = imagecreatetruecolor( $dest_width, $dest_height );
imagealphablending($dest, false);
imagesavealpha($dest, true);
if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dest_width, $dest_height, $width, $height);
if($this->image)
imagedestroy($this->image);
$this->image = $dest;
$this->width = imagesx($this->image);
$this->height = imagesy($this->image);
}
public function rotate($degrees) {
$this->image = imagerotate($this->image,$degrees,0);
$this->width = imagesx($this->image);
$this->height = imagesy($this->image);
}
public function flip($horiz = true, $vert = false) {
$w = imagesx($this->image);
$h = imagesy($this->image);
$flipped = imagecreate($w, $h);
if($horiz) {
for ($x = 0; $x < $w; $x++) {
imagecopy($flipped, $this->image, $x, 0, $w - $x - 1, 0, 1, $h);
}
}
if($vert) {
for ($y = 0; $y < $h; $y++) {
imagecopy($flipped, $this->image, 0, $y, 0, $h - $y - 1, $w, 1);
}
}
$this->image = $flipped;
}
public function orient($filename) {
// based off comment on http://php.net/manual/en/function.imagerotate.php
if( (! function_exists('exif_read_data')) || ($this->getType() !== 'image/jpeg') )
return;
$exif = exif_read_data($filename);
$ort = $exif['Orientation'];
switch($ort)
{
case 1: // nothing
break;
case 2: // horizontal flip
$this->flip();
break;
case 3: // 180 rotate left
$this->rotate(180);
break;
case 4: // vertical flip
$this->flip(false, true);
break;
case 5: // vertical flip + 90 rotate right
$this->flip(false, true);
$this->rotate(-90);
break;
case 6: // 90 rotate right
$this->rotate(-90);
break;
case 7: // horizontal flip + 90 rotate right
$this->flip();
$this->rotate(-90);
break;
case 8: // 90 rotate left
$this->rotate(90);
break;
}
}
public function scaleImageUp($min) {
$width = $this->width;
$height = $this->height;
$dest_width = $dest_height = 0;
if((! $width)|| (! $height))
return FALSE;
if($width < $min && $height < $min) {
if($width > $height) {
$dest_width = $min;
$dest_height = intval(( $height * $min ) / $width);
}
else {
$dest_width = intval(( $width * $min ) / $height);
$dest_height = $min;
}
}
else {
if( $width < $min ) {
$dest_width = $min;
$dest_height = intval(( $height * $min ) / $width);
}
else {
if( $height < $min ) {
$dest_width = intval(( $width * $min ) / $height);
$dest_height = $min;
}
else {
$dest_width = $width;
$dest_height = $height;
}
}
}
$dest = imagecreatetruecolor( $dest_width, $dest_height );
imagealphablending($dest, false);
imagesavealpha($dest, true);
if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dest_width, $dest_height, $width, $height);
if($this->image)
imagedestroy($this->image);
$this->image = $dest;
$this->width = imagesx($this->image);
$this->height = imagesy($this->image);
}
public function scaleImageSquare($dim) {
$dest = imagecreatetruecolor( $dim, $dim );
imagealphablending($dest, false);
imagesavealpha($dest, true);
if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dim, $dim, $this->width, $this->height);
if($this->image)
imagedestroy($this->image);
$this->image = $dest;
$this->width = imagesx($this->image);
$this->height = imagesy($this->image);
}
public function cropImage($max,$x,$y,$w,$h) {
$dest = imagecreatetruecolor( $max, $max );
imagealphablending($dest, false);
imagesavealpha($dest, true);
if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
imagecopyresampled($dest, $this->image, 0, 0, $x, $y, $max, $max, $w, $h);
if($this->image)
imagedestroy($this->image);
$this->image = $dest;
$this->width = imagesx($this->image);
$this->height = imagesy($this->image);
}
public function saveImage($path) {
switch($this->type){
case "image/png":
$quality = get_config('system','png_quality');
if((! $quality) || ($quality > 9))
$quality = PNG_QUALITY;
imagepng($this->image, $path, $quality);
break;
default:
$quality = get_config('system','jpeg_quality');
if((! $quality) || ($quality > 100))
$quality = JPEG_QUALITY;
imagejpeg($this->image,$path,$quality);
return true;
}
return false;
}
public function imageString() {
ob_start();
switch($this->type){
case "image/png":
$quality = get_config('system','png_quality');
if((! $quality) || ($quality > 9))
$quality = PNG_QUALITY;
imagepng($this->image,NULL, $quality);
break;
default:
$quality = get_config('system','jpeg_quality');
if((! $quality) || ($quality > 100))
$quality = JPEG_QUALITY;
public function is_valid() {
if($this->is_imagick())
return ($this->image !== FALSE);
return $this->valid;
}
imagejpeg($this->image,NULL,$quality);
public function getWidth() {
if(!$this->is_valid())
return FALSE;
if($this->is_imagick())
return $this->image->getImageWidth();
return $this->width;
}
public function getHeight() {
if(!$this->is_valid())
return FALSE;
if($this->is_imagick())
return $this->image->getImageHeight();
return $this->height;
}
public function getImage() {
if(!$this->is_valid())
return FALSE;
if($this->is_imagick()) {
/* Clean it */
$this->image = $this->image->deconstructImages();
return $this->image;
}
return $this->image;
}
public function getType() {
if(!$this->is_valid())
return FALSE;
return $this->type;
}
public function getExt() {
if(!$this->is_valid())
return FALSE;
return $this->types[$this->getType()];
}
public function scaleImage($max) {
if(!$this->is_valid())
return FALSE;
$width = $this->getWidth();
$height = $this->getHeight();
$dest_width = $dest_height = 0;
if((! $width)|| (! $height))
return FALSE;
if($width > $max && $height > $max) {
// very tall image (greater than 16:9)
// constrain the width - let the height float.
if((($height * 9) / 16) > $width) {
$dest_width = $max;
$dest_height = intval(( $height * $max ) / $width);
}
// else constrain both dimensions
elseif($width > $height) {
$dest_width = $max;
$dest_height = intval(( $height * $max ) / $width);
}
else {
$dest_width = intval(( $width * $max ) / $height);
$dest_height = $max;
}
}
else {
if( $width > $max ) {
$dest_width = $max;
$dest_height = intval(( $height * $max ) / $width);
}
else {
if( $height > $max ) {
// very tall image (greater than 16:9)
// but width is OK - don't do anything
if((($height * 9) / 16) > $width) {
$dest_width = $width;
$dest_height = $height;
}
else {
$dest_width = intval(( $width * $max ) / $height);
$dest_height = $max;
}
}
else {
$dest_width = $width;
$dest_height = $height;
}
}
}
if($this->is_imagick()) {
/**
* If it is not animated, there will be only one iteration here,
* so don't bother checking
*/
// Don't forget to go back to the first frame
$this->image->setFirstIterator();
do {
// FIXME - implement horizantal bias for scaling as in followin GD functions
// to allow very tall images to be constrained only horizontally.
$this->image->scaleImage($dest_width, $dest_height);
} while ($this->image->nextImage());
// These may not be necessary any more
$this->width = $this->image->getImageWidth();
$this->height = $this->image->getImageHeight();
return;
}
$dest = imagecreatetruecolor( $dest_width, $dest_height );
imagealphablending($dest, false);
imagesavealpha($dest, true);
if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dest_width, $dest_height, $width, $height);
if($this->image)
imagedestroy($this->image);
$this->image = $dest;
$this->width = imagesx($this->image);
$this->height = imagesy($this->image);
}
public function rotate($degrees) {
if(!$this->is_valid())
return FALSE;
if($this->is_imagick()) {
$this->image->setFirstIterator();
do {
$this->image->rotateImage(new ImagickPixel(), -$degrees); // ImageMagick rotates in the opposite direction of imagerotate()
} while ($this->image->nextImage());
return;
}
$this->image = imagerotate($this->image,$degrees,0);
$this->width = imagesx($this->image);
$this->height = imagesy($this->image);
}
public function flip($horiz = true, $vert = false) {
if(!$this->is_valid())
return FALSE;
if($this->is_imagick()) {
$this->image->setFirstIterator();
do {
if($horiz) $this->image->flipImage();
if($vert) $this->image->flopImage();
} while ($this->image->nextImage());
return;
}
$w = imagesx($this->image);
$h = imagesy($this->image);
$flipped = imagecreate($w, $h);
if($horiz) {
for ($x = 0; $x < $w; $x++) {
imagecopy($flipped, $this->image, $x, 0, $w - $x - 1, 0, 1, $h);
}
}
if($vert) {
for ($y = 0; $y < $h; $y++) {
imagecopy($flipped, $this->image, 0, $y, 0, $h - $y - 1, $w, 1);
}
}
$this->image = $flipped;
}
public function orient($filename) {
// based off comment on http://php.net/manual/en/function.imagerotate.php
if(!$this->is_valid())
return FALSE;
if( (! function_exists('exif_read_data')) || ($this->getType() !== 'image/jpeg') )
return;
$exif = @exif_read_data($filename);
if(! $exif)
return;
$ort = $exif['Orientation'];
switch($ort)
{
case 1: // nothing
break;
case 2: // horizontal flip
$this->flip();
break;
case 3: // 180 rotate left
$this->rotate(180);
break;
case 4: // vertical flip
$this->flip(false, true);
break;
case 5: // vertical flip + 90 rotate right
$this->flip(false, true);
$this->rotate(-90);
break;
case 6: // 90 rotate right
$this->rotate(-90);
break;
case 7: // horizontal flip + 90 rotate right
$this->flip();
$this->rotate(-90);
break;
case 8: // 90 rotate left
$this->rotate(90);
break;
}
}
public function scaleImageUp($min) {
if(!$this->is_valid())
return FALSE;
$width = $this->getWidth();
$height = $this->getHeight();
$dest_width = $dest_height = 0;
if((! $width)|| (! $height))
return FALSE;
if($width < $min && $height < $min) {
if($width > $height) {
$dest_width = $min;
$dest_height = intval(( $height * $min ) / $width);
}
else {
$dest_width = intval(( $width * $min ) / $height);
$dest_height = $min;
}
}
else {
if( $width < $min ) {
$dest_width = $min;
$dest_height = intval(( $height * $min ) / $width);
}
else {
if( $height < $min ) {
$dest_width = intval(( $width * $min ) / $height);
$dest_height = $min;
}
else {
$dest_width = $width;
$dest_height = $height;
}
}
}
if($this->is_imagick())
return $this->scaleImage($dest_width,$dest_height);
$dest = imagecreatetruecolor( $dest_width, $dest_height );
imagealphablending($dest, false);
imagesavealpha($dest, true);
if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dest_width, $dest_height, $width, $height);
if($this->image)
imagedestroy($this->image);
$this->image = $dest;
$this->width = imagesx($this->image);
$this->height = imagesy($this->image);
}
public function scaleImageSquare($dim) {
if(!$this->is_valid())
return FALSE;
if($this->is_imagick()) {
$this->image->setFirstIterator();
do {
$this->image->scaleImage($dim, $dim);
} while ($this->image->nextImage());
return;
}
$dest = imagecreatetruecolor( $dim, $dim );
imagealphablending($dest, false);
imagesavealpha($dest, true);
if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dim, $dim, $this->width, $this->height);
if($this->image)
imagedestroy($this->image);
$this->image = $dest;
$this->width = imagesx($this->image);
$this->height = imagesy($this->image);
}
public function cropImage($max,$x,$y,$w,$h) {
if(!$this->is_valid())
return FALSE;
if($this->is_imagick()) {
$this->image->setFirstIterator();
do {
$this->image->cropImage($w, $h, $x, $y);
/**
* We need to remove the canva,
* or the image is not resized to the crop:
* http://php.net/manual/en/imagick.cropimage.php#97232
*/
$this->image->setImagePage(0, 0, 0, 0);
} while ($this->image->nextImage());
return $this->scaleImage($max);
}
$s = ob_get_contents();
ob_end_clean();
return $s;
}
$dest = imagecreatetruecolor( $max, $max );
imagealphablending($dest, false);
imagesavealpha($dest, true);
if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha
imagecopyresampled($dest, $this->image, 0, 0, $x, $y, $max, $max, $w, $h);
if($this->image)
imagedestroy($this->image);
$this->image = $dest;
$this->width = imagesx($this->image);
$this->height = imagesy($this->image);
}
public function saveImage($path) {
if(!$this->is_valid())
return FALSE;
$string = $this->imageString();
file_put_contents($path, $string);
}
public function imageString() {
if(!$this->is_valid())
return FALSE;
if($this->is_imagick()) {
/* Clean it */
$this->image = $this->image->deconstructImages();
$string = $this->image->getImagesBlob();
return $string;
}
$quality = FALSE;
ob_start();
switch($this->getType()){
case "image/png":
$quality = get_config('system','png_quality');
if((! $quality) || ($quality > 9))
$quality = PNG_QUALITY;
imagepng($this->image,NULL, $quality);
break;
case "image/jpeg":
$quality = get_config('system','jpeg_quality');
if((! $quality) || ($quality > 100))
$quality = JPEG_QUALITY;
imagejpeg($this->image,NULL,$quality);
}
$string = ob_get_contents();
ob_end_clean();
return $string;
}
public function store($uid, $cid, $rid, $filename, $album, $scale, $profile = 0, $allow_cid = '', $allow_gid = '', $deny_cid = '', $deny_gid = '') {
public function store($uid, $cid, $rid, $filename, $album, $scale, $profile = 0, $allow_cid = '', $allow_gid = '', $deny_cid = '', $deny_gid = '') {
$r = q("select `guid` from photo where `resource-id` = '%s' and `guid` != '' limit 1",
dbesc($rid)
);
if(count($r))
$guid = $r[0]['guid'];
else
$guid = get_guid();
$r = q("select `guid` from photo where `resource-id` = '%s' and `guid` != '' limit 1",
dbesc($rid)
);
if(count($r))
$guid = $r[0]['guid'];
else
$guid = get_guid();
$x = q("select id from photo where `resource-id` = '%s' and uid = %d and `contact-id` = %d and `scale` = %d limit 1",
dbesc($rid),
intval($uid),
intval($cid),
intval($scale)
);
if(count($x)) {
$r = q("UPDATE `photo`
set `uid` = %d,
`contact-id` = %d,
`guid` = '%s',
`resource-id` = '%s',
`created` = '%s',
`edited` = '%s',
`filename` = '%s',
`type` = '%s',
`album` = '%s',
`height` = %d,
`width` = %d,
`data` = '%s',
`scale` = %d,
`profile` = %d,
`allow_cid` = '%s',
`allow_gid` = '%s',
`deny_cid` = '%s',
`deny_gid` = '%s'
where id = %d limit 1",
$x = q("select id from photo where `resource-id` = '%s' and uid = %d and `contact-id` = %d and `scale` = %d limit 1",
dbesc($rid),
intval($uid),
intval($cid),
intval($scale)
);
if(count($x)) {
$r = q("UPDATE `photo`
set `uid` = %d,
`contact-id` = %d,
`guid` = '%s',
`resource-id` = '%s',
`created` = '%s',
`edited` = '%s',
`filename` = '%s',
`type` = '%s',
`album` = '%s',
`height` = %d,
`width` = %d,
`data` = '%s',
`scale` = %d,
`profile` = %d,
`allow_cid` = '%s',
`allow_gid` = '%s',
`deny_cid` = '%s',
`deny_gid` = '%s'
where id = %d limit 1",
intval($uid),
intval($cid),
dbesc($guid),
dbesc($rid),
dbesc(datetime_convert()),
dbesc(datetime_convert()),
dbesc(basename($filename)),
dbesc($this->type),
dbesc($album),
intval($this->height),
intval($this->width),
dbesc($this->imageString()),
intval($scale),
intval($profile),
dbesc($allow_cid),
dbesc($allow_gid),
dbesc($deny_cid),
dbesc($deny_gid),
intval($x[0]['id'])
);
}
else {
$r = q("INSERT INTO `photo`
( `uid`, `contact-id`, `guid`, `resource-id`, `created`, `edited`, `filename`, type, `album`, `height`, `width`, `data`, `scale`, `profile`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid` )
VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d, %d, '%s', '%s', '%s', '%s' )",
intval($uid),
intval($cid),
dbesc($guid),
dbesc($rid),
dbesc(datetime_convert()),
dbesc(datetime_convert()),
dbesc(basename($filename)),
dbesc($this->type),
dbesc($album),
intval($this->height),
intval($this->width),
dbesc($this->imageString()),
intval($scale),
intval($profile),
dbesc($allow_cid),
dbesc($allow_gid),
dbesc($deny_cid),
dbesc($deny_gid)
);
}
return $r;
}
intval($uid),
intval($cid),
dbesc($guid),
dbesc($rid),
dbesc(datetime_convert()),
dbesc(datetime_convert()),
dbesc(basename($filename)),
dbesc($this->getType()),
dbesc($album),
intval($this->getHeight()),
intval($this->getWidth()),
dbesc($this->imageString()),
intval($scale),
intval($profile),
dbesc($allow_cid),
dbesc($allow_gid),
dbesc($deny_cid),
dbesc($deny_gid),
intval($x[0]['id'])
);
}
else {
$r = q("INSERT INTO `photo`
( `uid`, `contact-id`, `guid`, `resource-id`, `created`, `edited`, `filename`, type, `album`, `height`, `width`, `data`, `scale`, `profile`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid` )
VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d, %d, '%s', '%s', '%s', '%s' )",
intval($uid),
intval($cid),
dbesc($guid),
dbesc($rid),
dbesc(datetime_convert()),
dbesc(datetime_convert()),
dbesc(basename($filename)),
dbesc($this->getType()),
dbesc($album),
intval($this->getHeight()),
intval($this->getWidth()),
dbesc($this->imageString()),
intval($scale),
intval($profile),
dbesc($allow_cid),
dbesc($allow_gid),
dbesc($deny_cid),
dbesc($deny_gid)
);
}
return $r;
}
}}
/**
* Guess image mimetype from filename or from Content-Type header
*
*
* @arg $filename string Image filename
* @arg $fromcurl boolean Check Content-Type header from curl request
*/
function guess_image_type($filename, $fromcurl=false) {
logger('Photo: guess_image_type: '.$filename . ($fromcurl?' from curl headers':''), LOGGER_DEBUG);
$type = null;
if ($fromcurl) {
$a = get_app();
$headers=array();
$h = explode("\n",$a->get_curl_headers());
foreach ($h as $l) {
list($k,$v) = array_map("trim", explode(":", trim($l), 2));
$headers[$k] = $v;
}
if (array_key_exists('Content-Type', $headers))
$type = $headers['Content-Type'];
}
if (is_null($type)){
$ext = pathinfo($filename, PATHINFO_EXTENSION);
$types = Photo::supportedTypes();
$type = "image/jpeg";
foreach ($types as $m=>$e){
if ($ext==$e) $type = $m;
}
}
$type = null;
if ($fromcurl) {
$a = get_app();
$headers=array();
$h = explode("\n",$a->get_curl_headers());
foreach ($h as $l) {
list($k,$v) = array_map("trim", explode(":", trim($l), 2));
$headers[$k] = $v;
}
if (array_key_exists('Content-Type', $headers))
$type = $headers['Content-Type'];
}
if (is_null($type)){
// Guessing from extension? Isn't that... dangerous?
if(class_exists('Imagick') && file_exists($filename) && is_readable($filename)) {
/**
* Well, this not much better,
* but at least it comes from the data inside the image,
* we won't be tricked by a manipulated extension
*/
$image = new Imagick($filename);
$type = $image->getImageMimeType();
} else {
$ext = pathinfo($filename, PATHINFO_EXTENSION);
$types = Photo::supportedTypes();
$type = "image/jpeg";
foreach ($types as $m=>$e){
if ($ext==$e) $type = $m;
}
}
}
logger('Photo: guess_image_type: type='.$type, LOGGER_DEBUG);
return $type;
return $type;
}
function import_profile_photo($photo,$uid,$cid) {
$a = get_app();
$a = get_app();
$r = q("select `resource-id` from photo where `uid` = %d and `contact-id` = %d and `scale` = 4 and `album` = 'Contact Photos' limit 1",
intval($uid),
intval($cid)
);
if(count($r)) {
$hash = $r[0]['resource-id'];
}
else {
$hash = photo_new_resource();
}
$photo_failure = false;
$r = q("select `resource-id` from photo where `uid` = %d and `contact-id` = %d and `scale` = 4 and `album` = 'Contact Photos' limit 1",
intval($uid),
intval($cid)
);
if(count($r) && strlen($r[0]['resource-id'])) {
$hash = $r[0]['resource-id'];
}
else {
$hash = photo_new_resource();
}
$filename = basename($photo);
$img_str = fetch_url($photo,true);
// guess mimetype from headers or filename
$type = guess_image_type($photo,true);
$photo_failure = false;
$img = new Photo($img_str, $type);
if($img->is_valid()) {
$filename = basename($photo);
$img_str = fetch_url($photo,true);
$img->scaleImageSquare(175);
$r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 4 );
$type = guess_image_type($photo,true);
$img = new Photo($img_str, $type);
if($img->is_valid()) {
if($r === false)
$photo_failure = true;
$img->scaleImageSquare(175);
$img->scaleImage(80);
$r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 4 );
$r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 5 );
if($r === false)
$photo_failure = true;
if($r === false)
$photo_failure = true;
$img->scaleImage(80);
$img->scaleImage(48);
$r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 5 );
$r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 6 );
if($r === false)
$photo_failure = true;
if($r === false)
$photo_failure = true;
$img->scaleImage(48);
$photo = $a->get_baseurl() . '/photo/' . $hash . '-4.' . $img->getExt();
$thumb = $a->get_baseurl() . '/photo/' . $hash . '-5.' . $img->getExt();
$micro = $a->get_baseurl() . '/photo/' . $hash . '-6.' . $img->getExt();
}
else
$photo_failure = true;
$r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 6 );
if($photo_failure) {
$photo = $a->get_baseurl() . '/images/person-175.jpg';
$thumb = $a->get_baseurl() . '/images/person-80.jpg';
$micro = $a->get_baseurl() . '/images/person-48.jpg';
}
if($r === false)
$photo_failure = true;
return(array($photo,$thumb,$micro));
$photo = $a->get_baseurl() . '/photo/' . $hash . '-4.' . $img->getExt();
$thumb = $a->get_baseurl() . '/photo/' . $hash . '-5.' . $img->getExt();
$micro = $a->get_baseurl() . '/photo/' . $hash . '-6.' . $img->getExt();
}
else
$photo_failure = true;
if($photo_failure) {
$photo = $a->get_baseurl() . '/images/person-175.jpg';
$thumb = $a->get_baseurl() . '/images/person-80.jpg';
$micro = $a->get_baseurl() . '/images/person-48.jpg';
}
return(array($photo,$thumb,$micro));
}

View file

@ -394,7 +394,10 @@ function probe_url($url, $mode = PROBE_NORMAL) {
}
if($link['@attributes']['rel'] === 'diaspora-public-key') {
$diaspora_key = base64_decode(unamp($link['@attributes']['href']));
$pubkey = rsatopem($diaspora_key);
if(strstr($diaspora_key,'RSA '))
$pubkey = rsatopem($diaspora_key);
else
$pubkey = $diaspora_key;
$diaspora = true;
}
}
@ -455,10 +458,10 @@ function probe_url($url, $mode = PROBE_NORMAL) {
$poll = 'email ' . random_string();
$priority = 0;
$x = email_msg_meta($mbox,$msgs[0]);
if(stristr($x->from,$orig_url))
$adr = imap_rfc822_parse_adrlist($x->from,'');
elseif(stristr($x->to,$orig_url))
$adr = imap_rfc822_parse_adrlist($x->to,'');
if(stristr($x[0]->from,$orig_url))
$adr = imap_rfc822_parse_adrlist($x[0]->from,'');
elseif(stristr($x[0]->to,$orig_url))
$adr = imap_rfc822_parse_adrlist($x[0]->to,'');
if(isset($adr)) {
foreach($adr as $feadr) {
if((strcasecmp($feadr->mailbox,$name) == 0)
@ -551,6 +554,13 @@ function probe_url($url, $mode = PROBE_NORMAL) {
logger('probe_url: scrape_vcard: ' . print_r($vcard,true), LOGGER_DATA);
}
if($diaspora && $addr) {
// Diaspora returns the name as the nick. As the nick will never be updated,
// let's use the Diaspora nickname (the first part of the handle) as the nick instead
$addr_parts = explode('@', $addr);
$vcard['nick'] = $addr_parts[0];
}
if($twitter) {
logger('twitter: setup');
$tid = basename($url);
@ -560,9 +570,10 @@ function probe_url($url, $mode = PROBE_NORMAL) {
else
$poll = $tapi . '?screen_name=' . $tid;
$profile = 'http://twitter.com/#!/' . $tid;
$vcard['photo'] = 'https://api.twitter.com/1/users/profile_image/' . $tid;
//$vcard['photo'] = 'https://api.twitter.com/1/users/profile_image/' . $tid;
$vcard['photo'] = 'https://api.twitter.com/1/users/profile_image?screen_name=' . $tid . '&size=bigger';
$vcard['nick'] = $tid;
$vcard['fn'] = $tid . '@twitter';
$vcard['fn'] = $tid;
}
if($lastfm) {

View file

@ -156,6 +156,7 @@
//echo "<pre>"; var_dump($r); die();
}
}
header("HTTP/1.1 404 Not Found");
logger('API call not implemented: '.$a->query_string." - ".print_r($_REQUEST,true));
$r = '<status><error>not implemented</error></status>';
switch($type){
@ -490,7 +491,8 @@
$_REQUEST['type'] = 'wall';
$_REQUEST['profile_uid'] = local_user();
$_REQUEST['api_source'] = true;
$txt = urldecode(requestdata('status'));
$txt = requestdata('status');
//$txt = urldecode(requestdata('status'));
require_once('library/HTMLPurifier.auto.php');
require_once('include/html2bbcode.php');
@ -554,7 +556,8 @@
}
else
$_REQUEST['body'] = urldecode(requestdata('status'));
$_REQUEST['body'] = requestdata('status');
//$_REQUEST['body'] = urldecode(requestdata('status'));
$parent = requestdata('in_reply_to_status_id');
if(ctype_digit($parent))
@ -752,6 +755,15 @@
$ret = api_format_items($r,$user_info);
// We aren't going to try to figure out at the item, group, and page
// level which items you've seen and which you haven't. If you're looking
// at the network timeline just mark everything seen.
$r = q("UPDATE `item` SET `unseen` = 0
WHERE `unseen` = 1 AND `uid` = %d",
intval($user_info['uid'])
);
$data = array('$statuses' => $ret);
switch($type){
@ -1725,4 +1737,6 @@ notifications/follow
notifications/leave
blocks/exists
blocks/blocking
lists
*/

View file

@ -10,14 +10,13 @@ function nuke_session() {
unset($_SESSION['administrator']);
unset($_SESSION['cid']);
unset($_SESSION['theme']);
unset($_SESSION['mobile-theme']);
unset($_SESSION['page_flags']);
unset($_SESSION['submanage']);
unset($_SESSION['my_url']);
unset($_SESSION['my_address']);
unset($_SESSION['addr']);
unset($_SESSION['return_url']);
unset($_SESSION['theme']);
unset($_SESSION['page_flags']);
}
@ -169,23 +168,4 @@ else {
}
}
// Returns an array of group id's this contact is a member of.
// This array will only contain group id's related to the uid of this
// DFRN contact. They are *not* neccessarily unique across the entire site.
if(! function_exists('init_groups_visitor')) {
function init_groups_visitor($contact_id) {
$groups = array();
$r = q("SELECT `gid` FROM `group_member`
WHERE `contact-id` = %d ",
intval($contact_id)
);
if(count($r)) {
foreach($r as $rr)
$groups[] = $rr['gid'];
}
return $groups;
}}

View file

@ -7,6 +7,7 @@ require_once("include/html2bbcode.php");
require_once("include/bbcode.php");
require_once("include/markdownify/markdownify.php");
// we don't want to support a bbcode specific markdown interpreter
// and the markdown library we have is pretty good, but provides HTML output.
// So we'll use that to convert to HTML, then convert the HTML back to bbcode,
@ -51,10 +52,10 @@ function diaspora2bb($s) {
$s = preg_replace("/([^\]\=]|^)(https?\:\/\/)([a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/ism", '$1[url=$2$3]$2$3[/url]',$s);
//$s = preg_replace("/([^\]\=]|^)(https?\:\/\/)(vimeo|youtu|www\.youtube|soundcloud)([a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/ism", '$1[url=$2$3$4]$2$3$4[/url]',$s);
$s = preg_replace("/\[url\=?(.*?)\]https?:\/\/www.youtube.com\/watch\?v\=(.*?)\[\/url\]/ism",'[youtube]$2[/youtube]',$s);
$s = preg_replace("/\[url\=https?:\/\/www.youtube.com\/watch\?v\=(.*?)\].*?\[\/url\]/ism",'[youtube]$1[/youtube]',$s);
$s = preg_replace("/\[url\=?(.*?)\]https?:\/\/vimeo.com\/([0-9]+)(.*?)\[\/url\]/ism",'[vimeo]$2[/vimeo]',$s);
$s = preg_replace("/\[url\=https?:\/\/vimeo.com\/([0-9]+)\](.*?)\[\/url\]/ism",'[vimeo]$1[/vimeo]',$s);
$s = bb_tag_preg_replace("/\[url\=?(.*?)\]https?:\/\/www.youtube.com\/watch\?v\=(.*?)\[\/url\]/ism",'[youtube]$2[/youtube]','url',$s);
$s = bb_tag_preg_replace("/\[url\=https?:\/\/www.youtube.com\/watch\?v\=(.*?)\].*?\[\/url\]/ism",'[youtube]$1[/youtube]','url',$s);
$s = bb_tag_preg_replace("/\[url\=?(.*?)\]https?:\/\/vimeo.com\/([0-9]+)(.*?)\[\/url\]/ism",'[vimeo]$2[/vimeo]','url',$s);
$s = bb_tag_preg_replace("/\[url\=https?:\/\/vimeo.com\/([0-9]+)\](.*?)\[\/url\]/ism",'[vimeo]$1[/vimeo]','url',$s);
// remove duplicate adjacent code tags
$s = preg_replace("/(\[code\])+(.*?)(\[\/code\])+/ism","[code]$2[/code]", $s);
@ -130,63 +131,64 @@ function diaspora_ol($s) {
}
function bb2diaspora($Text,$preserve_nl = false) {
function bb2diaspora($Text,$preserve_nl = false, $fordiaspora = true) {
//////////////////////
// An attempt was made to convert bbcode to html and then to markdown
// consisting of the following lines.
// I'm undoing this as we have a lot of bbcode constructs which
// were simply getting lost, for instance bookmark, vimeo, video, youtube, events, etc.
// We can try this again, but need a very good test sequence to verify
// all the major bbcode constructs that we use are getting through.
//////////////////////
/*
// bbcode() will convert "[*]" into "<li>" with no closing "</li>"
// Markdownify() is unable to handle these, as it makes each new
// "<li>" into a deeper nested element until it crashes. So pre-format
// the lists as Diaspora lists before sending the $Text to bbcode()
//
// Note that to get nested lists to work for Diaspora, we would need
// to define the closing tag for the list elements. So nested lists
// are going to be flattened out in Diaspora for now
// Re-enabling the converter again.
// The bbcode parser now handles youtube-links (and the other stuff) correctly.
// Additionally the html code is now fixed so that lists are now working.
$endlessloop = 0;
while ((((strpos($Text, "[/list]") !== false) && (strpos($Text, "[list") !== false)) ||
((strpos($Text, "[/ol]") !== false) && (strpos($Text, "[ol]") !== false)) ||
((strpos($Text, "[/ul]") !== false) && (strpos($Text, "[ul]") !== false))) && (++$endlessloop < 20)) {
$Text = preg_replace_callback("/\[list\](.*?)\[\/list\]/is", 'diaspora_ul', $Text);
$Text = preg_replace_callback("/\[list=1\](.*?)\[\/list\]/is", 'diaspora_ol', $Text);
$Text = preg_replace_callback("/\[list=i\](.*?)\[\/list\]/s",'diaspora_ol', $Text);
$Text = preg_replace_callback("/\[list=I\](.*?)\[\/list\]/s", 'diaspora_ol', $Text);
$Text = preg_replace_callback("/\[list=a\](.*?)\[\/list\]/s", 'diaspora_ol', $Text);
$Text = preg_replace_callback("/\[list=A\](.*?)\[\/list\]/s", 'diaspora_ol', $Text);
$Text = preg_replace_callback("/\[ul\](.*?)\[\/ul\]/is", 'diaspora_ul', $Text);
$Text = preg_replace_callback("/\[ol\](.*?)\[\/ol\]/is", 'diaspora_ol', $Text);
}
/**
* Transform #tags, strip off the [url] and replace spaces with underscore
*/
$Text = preg_replace_callback('/#\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', create_function('$match',
'return \'#\'. str_replace(\' \', \'_\', $match[2]);'
), $Text);
*/
// Converting images with size parameters to simple images. Markdown doesn't know it.
$Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '[img]$3[/img]', $Text);
// the following was added on 10-January-2012 due to an inability of Diaspora's
// new javascript markdown processor to handle links with images as the link "text"
// It is not optimal and may be removed if this ability is restored in the future
//if ($fordiaspora)
// $Text = preg_replace("/\[url\=([^\[\]]*)\]\s*\[img\](.*?)\[\/img\]\s*\[\/url\]/ism",
// "[url]$1[/url]\n[img]$2[/img]", $Text);
// Convert it to HTML - don't try oembed
// $Text = bbcode($Text, $preserve_nl, false);
$Text = bbcode($Text, $preserve_nl, false);
// Now convert HTML to Markdown
// $md = new Markdownify(false, false, false);
// $Text = $md->parseString($Text);
$md = new Markdownify(false, false, false);
$Text = $md->parseString($Text);
// The Markdownify converter converts underscores '_' in URLs to '\_', which
// messes up the URL. Manually fix these
$count = 1;
$pos = bb_find_open_close($Text, '[', ']', $count);
while($pos !== false) {
$start = substr($Text, 0, $pos['start']);
$subject = substr($Text, $pos['start'], $pos['end'] - $pos['start'] + 1);
$end = substr($Text, $pos['end'] + 1);
$subject = str_replace('\_', '_', $subject);
$Text = $start . $subject . $end;
$count++;
$pos = bb_find_open_close($Text, '[', ']', $count);
}
// If the text going into bbcode() has a plain URL in it, i.e.
// with no [url] tags around it, it will come out of parseString()
// looking like: <http://url.com>, which gets removed by strip_tags().
// So take off the angle brackets of any such URL
// $Text = preg_replace("/<http(.*?)>/is", "http$1", $Text);
$Text = preg_replace("/<http(.*?)>/is", "http$1", $Text);
// Remove all unconverted tags
// $Text = strip_tags($Text);
//////
// end of bb->html->md conversion attempt
//////
$Text = strip_tags($Text);
/* Old routine
$ev = bbtoevent($Text);
@ -362,6 +364,7 @@ function bb2diaspora($Text,$preserve_nl = false) {
$Text = preg_replace_callback('/\[(.*?)\]\((.*?)\)/ism','unescape_underscores_in_links',$Text);
*/
// Remove any leading or trailing whitespace, as this will mess up
// the Diaspora signature verification and cause the item to disappear

View file

@ -47,6 +47,89 @@ function bb_unspacefy_and_trim($st) {
return $unspacefied;
}
function bb_find_open_close($s, $open, $close, $occurance = 1) {
if($occurance < 1)
$occurance = 1;
$start_pos = -1;
for($i = 1; $i <= $occurance; $i++) {
if( $start_pos !== false)
$start_pos = strpos($s, $open, $start_pos + 1);
}
if( $start_pos === false)
return false;
$end_pos = strpos($s, $close, $start_pos);
if( $end_pos === false)
return false;
$res = array( 'start' => $start_pos, 'end' => $end_pos );
return $res;
}
function get_bb_tag_pos($s, $name, $occurance = 1) {
if($occurance < 1)
$occurance = 1;
$start_open = -1;
for($i = 1; $i <= $occurance; $i++) {
if( $start_open !== false)
$start_open = strpos($s, '[' . $name, $start_open + 1); // allow [name= type tags
}
if( $start_open === false)
return false;
$start_equal = strpos($s, '=', $start_open);
$start_close = strpos($s, ']', $start_open);
if( $start_close === false)
return false;
$start_close++;
$end_open = strpos($s, '[/' . $name . ']', $start_close);
if( $end_open === false)
return false;
$res = array( 'start' => array('open' => $start_open, 'close' => $start_close),
'end' => array('open' => $end_open, 'close' => $end_open + strlen('[/' . $name . ']')) );
if( $start_equal !== false)
$res['start']['equal'] = $start_equal + 1;
return $res;
}
function bb_tag_preg_replace($pattern, $replace, $name, $s) {
$string = $s;
$occurance = 1;
$pos = get_bb_tag_pos($string, $name, $occurance);
while($pos !== false && $occurance < 1000) {
$start = substr($string, 0, $pos['start']['open']);
$subject = substr($string, $pos['start']['open'], $pos['end']['close'] - $pos['start']['open']);
$end = substr($string, $pos['end']['close']);
if($end === false)
$end = '';
$subject = preg_replace($pattern, $replace, $subject);
$string = $start . $subject . $end;
$occurance++;
$pos = get_bb_tag_pos($string, $name, $occurance);
}
return $string;
}
if(! function_exists('bb_extract_images')) {
function bb_extract_images($body) {
@ -123,6 +206,10 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
$Text = preg_replace_callback("/\[pre\](.*?)\[\/pre\]/ism", 'bb_spacefy',$Text);
// Move all spaces out of the tags
$Text = preg_replace("/\[(\w*)\](\s*)/ism", '$2[$1]', $Text);
$Text = preg_replace("/(\s*)\[\/(\w*)\]/ism", '[/$2]$1', $Text);
// Extract the private images which use data url's since preg has issues with
// large data sizes. Stash them away while we do bbcode conversion, and then put them back
// in after we've done all the regex matching. We cannot use any preg functions to do this.
@ -220,6 +307,12 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
// Check for list text
$Text = str_replace("[*]", "<li>", $Text);
// Check for style sheet commands
$Text = preg_replace("(\[style=(.*?)\](.*?)\[\/style\])ism","<span style=\"$1;\">$2</span>",$Text);
// Check for CSS classes
$Text = preg_replace("(\[class=(.*?)\](.*?)\[\/class\])ism","<span class=\"$1\">$2</span>",$Text);
// handle nested lists
$endlessloop = 0;
@ -313,21 +406,30 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
$Text = preg_replace("/\[img\](.*?)\[\/img\]/ism", '<img src="$1" alt="' . t('Image/photo') . '" />', $Text);
$Text = preg_replace("/\[video\](.*?\.(ogg|ogv|oga|ogm|webm|mp4))\[\/video\]/ism", '<video src="$1" controls="controls" width="425" height="350"><a href="$1">$1</a></video>', $Text);
$Text = preg_replace("/\[audio\](.*?\.(ogg|ogv|oga|ogm|webm|mp4|mp3))\[\/audio\]/ism", '<audio src="$1" controls="controls"><a href="$1">$1</a></audio>', $Text);
$Text = preg_replace("/\[crypt\](.*?)\[\/crypt\]/ism",'<br/><img src="' .$a->get_baseurl() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . t('Encrypted content') . '" /><br />', $Text);
$Text = preg_replace("/\[crypt=(.*?)\](.*?)\[\/crypt\]/ism",'<br/><img src="' .$a->get_baseurl() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . '$1' . ' ' . t('Encrypted content') . '" /><br />', $Text);
// Try to Oembed
if ($tryoembed) {
$Text = preg_replace("/\[video\](.*?\.(ogg|ogv|oga|ogm|webm|mp4))\[\/video\]/ism", '<video src="$1" controls="controls" width="' . $a->videowidth . '" height="' . $a->videoheight . '"><a href="$1">$1</a></video>', $Text);
$Text = preg_replace("/\[audio\](.*?\.(ogg|ogv|oga|ogm|webm|mp4|mp3))\[\/audio\]/ism", '<audio src="$1" controls="controls"><a href="$1">$1</a></audio>', $Text);
$Text = preg_replace_callback("/\[video\](.*?)\[\/video\]/ism", 'tryoembed', $Text);
$Text = preg_replace_callback("/\[audio\](.*?)\[\/audio\]/ism", 'tryoembed', $Text);
} else {
$Text = preg_replace("/\[video\](.*?)\[\/video\]/", '$1', $Text);
$Text = preg_replace("/\[audio\](.*?)\[\/audio\]/", '$1', $Text);
}
// html5 video and audio
$Text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/ism", '<iframe src="$1" width="425" height="350"><a href="$1">$1</a></iframe>', $Text);
if ($tryoembed)
$Text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/ism", '<iframe src="$1" width="' . $a->videowidth . '" height="' . $a->videoheight . '"><a href="$1">$1</a></iframe>', $Text);
else
$Text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/ism", '<a href="$1">$1</a>', $Text);
// Youtube extensions
if ($tryoembed) {
@ -340,7 +442,10 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
$Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/embed\/(.*?)\[\/youtube\]/ism",'[youtube]$1[/youtube]',$Text);
$Text = preg_replace("/\[youtube\]https?:\/\/youtu.be\/(.*?)\[\/youtube\]/ism",'[youtube]$1[/youtube]',$Text);
$Text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", '<iframe width="425" height="350" src="http://www.youtube.com/embed/$1" frameborder="0" ></iframe>', $Text);
if ($tryoembed)
$Text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", '<iframe width="' . $a->videowidth . '" height="' . $a->videoheight . '" src="http://www.youtube.com/embed/$1" frameborder="0" ></iframe>', $Text);
else
$Text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", "http://www.youtube.com/watch?v=$1", $Text);
if ($tryoembed) {
@ -349,8 +454,12 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
}
$Text = preg_replace("/\[vimeo\]https?:\/\/player.vimeo.com\/video\/([0-9]+)(.*?)\[\/vimeo\]/ism",'[vimeo]$1[/vimeo]',$Text);
$Text = preg_replace("/\[vimeo\]https?:\/\/vimeo.com\/([0-9]+)(.*?)\[\/vimeo\]/ism",'[vimeo]$1[/vimeo]',$Text);
$Text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", '<iframe width="425" height="350" src="http://player.vimeo.com/video/$1" frameborder="0" ></iframe>', $Text);
$Text = preg_replace("/\[vimeo\]https?:\/\/vimeo.com\/([0-9]+)(.*?)\[\/vimeo\]/ism",'[vimeo]$1[/vimeo]',$Text);
if ($tryoembed)
$Text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", '<iframe width="' . $a->videowidth . '" height="' . $a->videoheight . '" src="http://player.vimeo.com/video/$1" frameborder="0" ></iframe>', $Text);
else
$Text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", "http://vimeo.com/$1", $Text);
// $Text = preg_replace("/\[youtube\](.*?)\[\/youtube\]/", '<object width="425" height="350" type="application/x-shockwave-flash" data="http://www.youtube.com/v/$1" ><param name="movie" value="http://www.youtube.com/v/$1"></param><!--[if IE]><embed src="http://www.youtube.com/v/$1" type="application/x-shockwave-flash" width="425" height="350" /><![endif]--></object>', $Text);
@ -358,6 +467,9 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
// oembed tag
$Text = oembed_bbcode2html($Text);
// Avoid triple linefeeds through oembed
$Text = str_replace("<br style='clear:left'></span><br /><br />", "<br style='clear:left'></span><br />", $Text);
// If we found an event earlier, strip out all the event code and replace with a reformatted version.
// Replace the event-start section with the entire formatted event. The other bbcode is stripped.
// Summary (e.g. title) is required, earlier revisions only required description (in addition to
@ -383,13 +495,35 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
$Text = preg_replace('/\[\&amp\;([#a-z0-9]+)\;\]/','&$1;',$Text);
$Text = preg_replace('/\&\#039\;/','\'',$Text);
$Text = preg_replace('/\&quot\;/','"',$Text);
// fix any escaped ampersands that may have been converted into links
$Text = preg_replace("/\<(.*?)(src|href)=(.*?)\&amp\;(.*?)\>/ism",'<$1$2=$3&$4>',$Text);
$Text = preg_replace("/\<(.*?)(src|href)=\"[^hfm](.*?)\>/ism",'<$1$2="">',$Text);
if($saved_image)
$Text = bb_replace_images($Text, $saved_image);
// Clean up the HTML by loading and saving the HTML with the DOM
// Only do it when it has to be done - for performance reasons
if (!$tryoembed) {
$doc = new DOMDocument();
$doc->preserveWhiteSpace = false;
$Text = mb_convert_encoding($Text, 'HTML-ENTITIES', "UTF-8");
$doctype = '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">';
@$doc->loadHTML($doctype."<html><body>".$Text."</body></html>");
$Text = $doc->saveHTML();
$Text = str_replace(array("<html><body>", "</body></html>", $doctype), array("", "", ""), $Text);
$Text = str_replace('<br></li>','</li>', $Text);
$Text = mb_convert_encoding($Text, "UTF-8", 'HTML-ENTITIES');
}
call_hooks('bbcode',$Text);
return $Text;

View file

@ -68,7 +68,7 @@ function get_config($family, $key, $instore = false) {
);
if(count($ret)) {
// manage array value
$val = (preg_match("|^a:[0-9]+:{.*}$|", $ret[0]['v'])?unserialize( $ret[0]['v']):$ret[0]['v']);
$val = (preg_match("|^a:[0-9]+:{.*}$|s", $ret[0]['v'])?unserialize( $ret[0]['v']):$ret[0]['v']);
$a->config[$family][$key] = $val;
return $val;
}
@ -162,7 +162,7 @@ function get_pconfig($uid,$family, $key, $instore = false) {
);
if(count($ret)) {
$val = (preg_match("|^a:[0-9]+:{.*}$|", $ret[0]['v'])?unserialize( $ret[0]['v']):$ret[0]['v']);
$val = (preg_match("|^a:[0-9]+:{.*}$|s", $ret[0]['v'])?unserialize( $ret[0]['v']):$ret[0]['v']);
$a->config[$uid][$family][$key] = $val;
return $val;
}

View file

@ -142,9 +142,16 @@ function common_friends_visitor_widget($profile_uid) {
$cid = $zcid = 0;
if(can_write_wall($a,$profile_uid))
$cid = remote_user();
else {
if(is_array($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $visitor) {
if($visitor['uid'] == $profile_uid) {
$cid = $visitor['cid'];
break;
}
}
}
if(! $cid) {
if(get_my_url()) {
$r = q("select id from contact where nurl = '%s' and uid = %d limit 1",
dbesc(normalise_link(get_my_url())),

View file

@ -1,5 +1,8 @@
<?php
require_once("include/bbcode.php");
// Note: the code in 'item_extract_images' and 'item_redir_and_replace_images'
// is identical to the code in mod/message.php for 'item_extract_images' and
// 'item_redir_and_replace_images'
@ -51,19 +54,27 @@ function item_redir_and_replace_images($body, $images, $cid) {
$origbody = $body;
$newbody = '';
for($i = 0; $i < count($images); $i++) {
$search = '/\[url\=(.*?)\]\[!#saved_image' . $i . '#!\]\[\/url\]' . '/is';
$replace = '[url=' . z_path() . '/redir/' . $cid
. '?f=1&url=' . '$1' . '][!#saved_image' . $i . '#!][/url]' ;
$cnt = 1;
$pos = get_bb_tag_pos($origbody, 'url', 1);
while($pos !== false && $cnt < 1000) {
$img_end = strpos($origbody, '[!#saved_image' . $i . '#!][/url]') + strlen('[!#saved_image' . $i . '#!][/url]');
$process_part = substr($origbody, 0, $img_end);
$origbody = substr($origbody, $img_end);
$search = '/\[url\=(.*?)\]\[!#saved_image([0-9]*)#!\]\[\/url\]' . '/is';
$replace = '[url=' . z_path() . '/redir/' . $cid
. '?f=1&url=' . '$1' . '][!#saved_image' . '$2' .'#!][/url]';
$process_part = preg_replace($search, $replace, $process_part);
$newbody = $newbody . $process_part;
$newbody .= substr($origbody, 0, $pos['start']['open']);
$subject = substr($origbody, $pos['start']['open'], $pos['end']['close'] - $pos['start']['open']);
$origbody = substr($origbody, $pos['end']['close']);
if($origbody === false)
$origbody = '';
$subject = preg_replace($search, $replace, $subject);
$newbody .= $subject;
$cnt++;
$pos = get_bb_tag_pos($origbody, 'url', 1);
}
$newbody = $newbody . $origbody;
$newbody .= $origbody;
$cnt = 0;
foreach($images as $image) {
@ -73,7 +84,6 @@ function item_redir_and_replace_images($body, $images, $cid) {
$newbody = str_replace('[!#saved_image' . $cnt . '#!]', '[img]' . $image . '[/img]', $newbody);
$cnt++;
}
return $newbody;
}}
@ -89,17 +99,17 @@ function localize_item(&$item){
$item['body'] = item_redir_and_replace_images($extracted['body'], $extracted['images'], $item['contact-id']);
$xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">";
if ($item['verb']=== ACTIVITY_LIKE || $item['verb']=== ACTIVITY_DISLIKE){
if (activity_match($item['verb'],ACTIVITY_LIKE) || activity_match($item['verb'],ACTIVITY_DISLIKE)){
$r = q("SELECT * from `item`,`contact` WHERE
$r = q("SELECT * from `item`,`contact` WHERE
`item`.`contact-id`=`contact`.`id` AND `item`.`uri`='%s';",
dbesc($item['parent-uri']));
if(count($r)==0) return;
$obj=$r[0];
$author = '[url=' . $item['author-link'] . ']' . $item['author-name'] . '[/url]';
$author = '[url=' . $item['author-link'] . ']' . $item['author-name'] . '[/url]';
$objauthor = '[url=' . $obj['author-link'] . ']' . $obj['author-name'] . '[/url]';
switch($obj['verb']){
case ACTIVITY_POST:
switch ($obj['object-type']){
@ -113,38 +123,36 @@ function localize_item(&$item){
default:
if($obj['resource-id']){
$post_type = t('photo');
$m=array(); preg_match("/\[url=([^]]*)\]/", $obj['body'], $m);
$m=array(); preg_match("/\[url=([^]]*)\]/", $obj['body'], $m);
$rr['plink'] = $m[1];
} else {
$post_type = t('status');
}
}
$plink = '[url=' . $obj['plink'] . ']' . $post_type . '[/url]';
switch($item['verb']){
case ACTIVITY_LIKE :
$bodyverb = t('%1$s likes %2$s\'s %3$s');
break;
case ACTIVITY_DISLIKE:
$bodyverb = t('%1$s doesn\'t like %2$s\'s %3$s');
break;
if(activity_match($item['verb'],ACTIVITY_LIKE)) {
$bodyverb = t('%1$s likes %2$s\'s %3$s');
}
elseif(activity_match($item['verb'],ACTIVITY_DISLIKE)) {
$bodyverb = t('%1$s doesn\'t like %2$s\'s %3$s');
}
$item['body'] = sprintf($bodyverb, $author, $objauthor, $plink);
}
if ($item['verb']=== ACTIVITY_FRIEND){
if (activity_match($item['verb'],ACTIVITY_FRIEND)) {
if ($item['object-type']=="" || $item['object-type']!== ACTIVITY_OBJ_PERSON) return;
$Aname = $item['author-name'];
$Alink = $item['author-link'];
$xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">";
$obj = parse_xml_string($xmlhead.$item['object']);
$links = parse_xml_string($xmlhead."<links>".unxmlify($obj->link)."</links>");
$Bname = $obj->title;
$Blink = ""; $Bphoto = "";
foreach ($links->link as $l){
@ -153,9 +161,9 @@ function localize_item(&$item){
case "alternate": $Blink = $atts['href'];
case "photo": $Bphoto = $atts['href'];
}
}
$A = '[url=' . zrl($Alink) . ']' . $Aname . '[/url]';
$B = '[url=' . zrl($Blink) . ']' . $Bname . '[/url]';
if ($Bphoto!="") $Bphoto = '[url=' . zrl($Blink) . '][img]' . $Bphoto . '[/img][/url]';
@ -163,16 +171,73 @@ function localize_item(&$item){
$item['body'] = sprintf( t('%1$s is now friends with %2$s'), $A, $B)."\n\n\n".$Bphoto;
}
if ($item['verb']===ACTIVITY_TAG){
$r = q("SELECT * from `item`,`contact` WHERE
if (stristr($item['verb'],ACTIVITY_POKE)) {
$verb = urldecode(substr($item['verb'],strpos($item['verb'],'#')+1));
if(! $verb)
return;
if ($item['object-type']=="" || $item['object-type']!== ACTIVITY_OBJ_PERSON) return;
$Aname = $item['author-name'];
$Alink = $item['author-link'];
$xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">";
$obj = parse_xml_string($xmlhead.$item['object']);
$links = parse_xml_string($xmlhead."<links>".unxmlify($obj->link)."</links>");
$Bname = $obj->title;
$Blink = ""; $Bphoto = "";
foreach ($links->link as $l){
$atts = $l->attributes();
switch($atts['rel']){
case "alternate": $Blink = $atts['href'];
case "photo": $Bphoto = $atts['href'];
}
}
$A = '[url=' . zrl($Alink) . ']' . $Aname . '[/url]';
$B = '[url=' . zrl($Blink) . ']' . $Bname . '[/url]';
if ($Bphoto!="") $Bphoto = '[url=' . zrl($Blink) . '][img=80x80]' . $Bphoto . '[/img][/url]';
// we can't have a translation string with three positions but no distinguishable text
// So here is the translate string.
$txt = t('%1$s poked %2$s');
// now translate the verb
$txt = str_replace( t('poked'), t($verb), $txt);
// then do the sprintf on the translation string
$item['body'] = sprintf($txt, $A, $B). "\n\n\n" . $Bphoto;
}
if (stristr($item['verb'],ACTIVITY_MOOD)) {
$verb = urldecode(substr($item['verb'],strpos($item['verb'],'#')+1));
if(! $verb)
return;
$Aname = $item['author-name'];
$Alink = $item['author-link'];
$A = '[url=' . zrl($Alink) . ']' . $Aname . '[/url]';
$txt = t('%1$s is currently %2$s');
$item['body'] = sprintf($txt, $A, t($verb));
}
if (activity_match($item['verb'],ACTIVITY_TAG)) {
$r = q("SELECT * from `item`,`contact` WHERE
`item`.`contact-id`=`contact`.`id` AND `item`.`uri`='%s';",
dbesc($item['parent-uri']));
if(count($r)==0) return;
$obj=$r[0];
$author = '[url=' . zrl($item['author-link']) . ']' . $item['author-name'] . '[/url]';
$author = '[url=' . zrl($item['author-link']) . ']' . $item['author-name'] . '[/url]';
$objauthor = '[url=' . zrl($obj['author-link']) . ']' . $obj['author-name'] . '[/url]';
switch($obj['verb']){
case ACTIVITY_POST:
switch ($obj['object-type']){
@ -186,30 +251,30 @@ function localize_item(&$item){
default:
if($obj['resource-id']){
$post_type = t('photo');
$m=array(); preg_match("/\[url=([^]]*)\]/", $obj['body'], $m);
$m=array(); preg_match("/\[url=([^]]*)\]/", $obj['body'], $m);
$rr['plink'] = $m[1];
} else {
$post_type = t('status');
}
}
$plink = '[url=' . $obj['plink'] . ']' . $post_type . '[/url]';
$parsedobj = parse_xml_string($xmlhead.$item['object']);
$tag = sprintf('#[url=%s]%s[/url]', $parsedobj->id, $parsedobj->content);
$item['body'] = sprintf( t('%1$s tagged %2$s\'s %3$s with %4$s'), $author, $objauthor, $plink, $tag );
}
if ($item['verb']=== ACTIVITY_FAVORITE){
if (activity_match($item['verb'],ACTIVITY_FAVORITE)){
if ($item['object-type']== "")
return;
$Aname = $item['author-name'];
$Alink = $item['author-link'];
$xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">";
$obj = parse_xml_string($xmlhead.$item['object']);
if(strlen($obj->id)) {
$r = q("select * from item where uri = '%s' and uid = %d limit 1",
@ -235,23 +300,67 @@ function localize_item(&$item){
$item['body'] = str_replace($mtch[0],'@[url=' . zrl($mtch[1]). ']',$item['body']);
}
}
// add zrl's to public images
if(preg_match_all('/\[url=(.*?)\/photos\/(.*?)\/image\/(.*?)\]\[img(.*?)\]h(.*?)\[\/img\]\[\/url\]/is',$item['body'],$matches,PREG_SET_ORDER)) {
foreach($matches as $mtch) {
$item['body'] = str_replace($mtch[0],'[url=' . zrl($mtch[1] . '/photos/' . $mtch[2] . '/image/' . $mtch[3] ,true) . '][img' . $mtch[4] . ']h' . $mtch[5] . '[/img][/url]',$item['body']);
}
$photo_pattern = "/\[url=(.*?)\/photos\/(.*?)\/image\/(.*?)\]\[img(.*?)\]h(.*?)\[\/img\]\[\/url\]/is";
if(preg_match($photo_pattern,$item['body'])) {
$photo_replace = '[url=' . zrl('$1' . '/photos/' . '$2' . '/image/' . '$3' ,true) . '][img' . '$4' . ']h' . '$5' . '[/img][/url]';
$item['body'] = bb_tag_preg_replace($photo_pattern, $photo_replace, 'url', $item['body']);
}
// add sparkle links to appropriate permalinks
$x = stristr($item['plink'],'/display/');
if($x) {
$sparkle = false;
$y = best_link_url($item,$sparkle,true);
if(strstr($y,'/redir/'))
$item['plink'] = $y . '?f=&url=' . $item['plink'];
}
}
/**
* Count the total of comments on this item and its desendants
*/
function count_descendants($item) {
$total = count($item['children']);
if($total > 0) {
foreach($item['children'] as $child) {
if(! visible_activity($child))
$total --;
$total += count_descendants($child);
}
}
return $total;
}
function visible_activity($item) {
if(activity_match($item['verb'],ACTIVITY_LIKE) || activity_match($item['verb'],ACTIVITY_DISLIKE))
return false;
if(activity_match($item['verb'],ACTIVITY_FOLLOW) && $item['object-type'] === ACTIVITY_OBJ_NOTE) {
if(! (($item['self']) && ($item['uid'] == local_user()))) {
return false;
}
}
return true;
}
/**
* "Render" a conversation or list of items for HTML display.
* There are two major forms of display:
* - Sequential or unthreaded ("New Item View" or search results)
* - conversation view
* The $mode parameter decides between the various renderings and also
* figures out how to determine page owner and other contextual items
* figures out how to determine page owner and other contextual items
* that are based on unique features of the calling module.
*
*/
@ -265,34 +374,88 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
$ssl_state = ((local_user()) ? true : false);
$profile_owner = 0;
$page_writeable = false;
$page_writeable = false;
$live_update_div = '';
$previewing = (($preview) ? ' preview ' : '');
if($mode === 'network') {
$profile_owner = local_user();
$page_writeable = true;
}
if(!$update) {
// The special div is needed for liveUpdate to kick in for this page.
// We only launch liveUpdate if you aren't filtering in some incompatible
// way and also you aren't writing a comment (discovered in javascript).
if($mode === 'profile') {
$live_update_div = '<div id="live-network"></div>' . "\r\n"
. "<script> var profile_uid = " . $_SESSION['uid']
. "; var netargs = '" . substr($a->cmd,8)
. '?f='
. ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '')
. ((x($_GET,'search')) ? '&search=' . $_GET['search'] : '')
. ((x($_GET,'star')) ? '&star=' . $_GET['star'] : '')
. ((x($_GET,'order')) ? '&order=' . $_GET['order'] : '')
. ((x($_GET,'bmark')) ? '&bmark=' . $_GET['bmark'] : '')
. ((x($_GET,'liked')) ? '&liked=' . $_GET['liked'] : '')
. ((x($_GET,'conv')) ? '&conv=' . $_GET['conv'] : '')
. ((x($_GET,'spam')) ? '&spam=' . $_GET['spam'] : '')
. ((x($_GET,'nets')) ? '&nets=' . $_GET['nets'] : '')
. ((x($_GET,'cmin')) ? '&cmin=' . $_GET['cmin'] : '')
. ((x($_GET,'cmax')) ? '&cmax=' . $_GET['cmax'] : '')
. ((x($_GET,'file')) ? '&file=' . $_GET['file'] : '')
. "'; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
}
}
else if($mode === 'profile') {
$profile_owner = $a->profile['profile_uid'];
$page_writeable = can_write_wall($a,$profile_owner);
}
if($mode === 'notes') {
if(!$update) {
$tab = notags(trim($_GET['tab']));
$tab = ( $tab ? $tab : 'posts' );
if($tab === 'posts') {
// This is ugly, but we can't pass the profile_uid through the session to the ajax updater,
// because browser prefetching might change it on us. We have to deliver it with the page.
$live_update_div = '<div id="live-profile"></div>' . "\r\n"
. "<script> var profile_uid = " . $a->profile['profile_uid']
. "; var netargs = '?f='; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
}
}
}
else if($mode === 'notes') {
$profile_owner = local_user();
$page_writeable = true;
if(!$update) {
$live_update_div = '<div id="live-notes"></div>' . "\r\n"
. "<script> var profile_uid = " . local_user()
. "; var netargs = '/?f='; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
}
}
if($mode === 'display') {
else if($mode === 'display') {
$profile_owner = $a->profile['uid'];
$page_writeable = can_write_wall($a,$profile_owner);
if(!$update) {
$live_update_div = '<div id="live-display"></div>' . "\r\n"
. "<script> var profile_uid = " . $_SESSION['uid'] . ";"
. " var profile_page = 1; </script>";
}
}
if($mode === 'community') {
else if($mode === 'community') {
$profile_owner = 0;
$page_writeable = false;
if(!$update) {
$live_update_div = '<div id="live-community"></div>' . "\r\n"
. "<script> var profile_uid = -1; var netargs = '/?f='; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
}
}
else if($mode === 'search') {
$live_update_div = '<div id="live-search"></div>' . "\r\n";
}
$page_dropping = ((local_user() && local_user() == $profile_owner) ? true : false);
if($update)
$return_url = $_SESSION['return_url'];
@ -307,26 +470,26 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
$items = $cb['items'];
$cmnt_tpl = get_markup_template('comment_item.tpl');
$tpl = 'wall_item.tpl';
$wallwall = 'wallwall_item.tpl';
$hide_comments_tpl = get_markup_template('hide_comments.tpl');
$alike = array();
$dlike = array();
// array with html for each thread (parent+comments)
$threads = array();
$threadsid = -1;
$page_template = get_markup_template("conversation.tpl");
if($items && count($items)) {
if($mode === 'network-new' || $mode === 'search' || $mode === 'community') {
// "New Item View" on network page or search page results
// "New Item View" on network page or search page results
// - just loop through the items and format them minimally for display
//$tpl = get_markup_template('search_item.tpl');
// $tpl = get_markup_template('search_item.tpl');
$tpl = 'search_item.tpl';
foreach($items as $item) {
@ -339,24 +502,39 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
$sparkle = '';
if($mode === 'search' || $mode === 'community') {
if(((activity_match($item['verb'],ACTIVITY_LIKE)) || (activity_match($item['verb'],ACTIVITY_DISLIKE)))
if(((activity_match($item['verb'],ACTIVITY_LIKE)) || (activity_match($item['verb'],ACTIVITY_DISLIKE)))
&& ($item['id'] != $item['parent']))
continue;
$nickname = $item['nickname'];
}
else
$nickname = $a->user['nickname'];
// prevent private email from leaking.
if($item['network'] === NETWORK_MAIL && local_user() != $item['uid'])
continue;
$profile_name = ((strlen($item['author-name'])) ? $item['author-name'] : $item['name']);
if($item['author-link'] && (! $item['author-name']))
$profile_name = $item['author-link'];
$tags=array();
$hashtags = array();
$mentions = array();
foreach(explode(',',$item['tag']) as $tag){
$tag = trim($tag);
if ($tag!="") {
$t = bbcode($tag);
$tags[] = $t;
if($t[0] == '#')
$hashtags[] = $t;
elseif($t[0] == '@')
$mentions[] = $t;
}
}
$sp = false;
$profile_link = best_link_url($item,$sp);
if($profile_link === 'mailbox')
@ -364,7 +542,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
if($sp)
$sparkle = ' sparkle';
else
$profile_link = zrl($profile_link);
$profile_link = zrl($profile_link);
$normalised = normalise_link((strlen($item['author-link'])) ? $item['author-link'] : $item['url']);
if(($normalised != 'mailbox') && (x($a->contacts[$normalised])))
@ -386,20 +564,23 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
$drop = array(
'dropping' => $dropping,
'select' => t('Select'),
'pagedrop' => $page_dropping,
'select' => t('Select'),
'delete' => t('Delete'),
);
$star = false;
$isstarred = "unstarred";
$lock = false;
$likebuttons = false;
$shareable = false;
$body = prepare_body($item,true);
//$tmp_item = replace_macros($tpl,array(
list($categories, $folders) = get_cats_and_terms($item);
$tmp_item = array(
'template' => $tpl,
'id' => (($preview) ? 'P0' : $item['item_id']),
@ -412,7 +593,17 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
'thumb' => $profile_avatar,
'title' => template_escape($item['title']),
'body' => template_escape($body),
'tags' => template_escape($tags),
'hashtags' => template_escape($hashtags),
'mentions' => template_escape($mentions),
'txt_cats' => t('Categories:'),
'txt_folders' => t('Filed under:'),
'has_cats' => ((count($categories)) ? 'true' : ''),
'has_folders' => ((count($folders)) ? 'true' : ''),
'categories' => $categories,
'folders' => $folders,
'text' => strip_tags(template_escape($body)),
'localtime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'r'),
'ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])),
'location' => template_escape($location),
'indent' => '',
@ -431,6 +622,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
'conv' => (($preview) ? '' : array('href'=> $a->get_baseurl($ssl_state) . '/display/' . $nickname . '/' . $item['id'], 'title'=> t('View in context'))),
'previewing' => $previewing,
'wait' => t('Please wait'),
'thread_level' => 1,
);
$arr = array('item' => $item, 'output' => $tmp_item);
@ -445,371 +637,56 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
else
{
// Normal View
$page_template = get_markup_template("threaded_conversation.tpl");
require_once('object/Conversation.php');
require_once('object/Item.php');
// Figure out how many comments each parent has
// (Comments all have gravity of 6)
// Store the result in the $comments array
$conv = new Conversation($mode, $preview);
$comments = array();
// get all the topmost parents
// this shouldn't be needed, as we should have only them in our array
// But for now, this array respects the old style, just in case
$threads = array();
foreach($items as $item) {
if((intval($item['gravity']) == 6) && ($item['id'] != $item['parent'])) {
if(! x($comments,$item['parent']))
$comments[$item['parent']] = 1;
else
$comments[$item['parent']] += 1;
} elseif(! x($comments,$item['parent']))
$comments[$item['parent']] = 0; // avoid notices later on
}
// map all the like/dislike activities for each parent item
// Store these in the $alike and $dlike arrays
foreach($items as $item) {
// Can we put this after the visibility check?
like_puller($a,$item,$alike,'like');
like_puller($a,$item,$dlike,'dislike');
// Only add what is visible
if($item['network'] === NETWORK_MAIL && local_user() != $item['uid']) {
continue;
}
if(! visible_activity($item)) {
continue;
}
$item['pagedrop'] = $page_dropping;
if($item['id'] == $item['parent']) {
$item_object = new Item($item);
$conv->add_thread($item_object);
}
}
$comments_collapsed = false;
$comments_seen = 0;
$comment_lastcollapsed = false;
$comment_firstcollapsed = false;
$blowhard = 0;
$blowhard_count = 0;
foreach($items as $item) {
$comment = '';
$template = $tpl;
$commentww = '';
$sparkle = '';
$owner_url = $owner_photo = $owner_name = '';
// We've already parsed out like/dislike for special treatment. We can ignore them now
if(((activity_match($item['verb'],ACTIVITY_LIKE))
|| (activity_match($item['verb'],ACTIVITY_DISLIKE)))
&& ($item['id'] != $item['parent']))
continue;
$toplevelpost = (($item['id'] == $item['parent']) ? true : false);
// Take care of author collapsing and comment collapsing
// (author collapsing is currently disabled)
// If a single author has more than 3 consecutive top-level posts, squash the remaining ones.
// If there are more than two comments, squash all but the last 2.
if($toplevelpost) {
$item_writeable = (($item['writable'] || $item['self']) ? true : false);
$comments_seen = 0;
$comments_collapsed = false;
$comment_lastcollapsed = false;
$comment_firstcollapsed = false;
$threadsid++;
$threads[$threadsid]['id'] = $item['item_id'];
$threads[$threadsid]['private'] = $item['private'];
$threads[$threadsid]['items'] = array();
}
else {
// prevent private email reply to public conversation from leaking.
if($item['network'] === NETWORK_MAIL && local_user() != $item['uid'])
continue;
$comments_seen ++;
$comment_lastcollapsed = false;
$comment_firstcollapsed = false;
}
$override_comment_box = ((($page_writeable) && ($item_writeable)) ? true : false);
$show_comment_box = ((($page_writeable) && ($item_writeable) && ($comments_seen == $comments[$item['parent']])) ? true : false);
if(($comments[$item['parent']] > 2) && ($comments_seen <= ($comments[$item['parent']] - 2)) && ($item['gravity'] == 6)) {
if (!$comments_collapsed){
$threads[$threadsid]['num_comments'] = sprintf( tt('%d comment','%d comments',$comments[$item['parent']]),$comments[$item['parent']] );
$threads[$threadsid]['hide_text'] = t('show more');
$comments_collapsed = true;
$comment_firstcollapsed = true;
}
}
if(($comments[$item['parent']] > 2) && ($comments_seen == ($comments[$item['parent']] - 1))) {
$comment_lastcollapsed = true;
}
$redirect_url = $a->get_baseurl($ssl_state) . '/redir/' . $item['cid'] ;
$lock = ((($item['private'] == 1) || (($item['uid'] == local_user()) && (strlen($item['allow_cid']) || strlen($item['allow_gid'])
|| strlen($item['deny_cid']) || strlen($item['deny_gid']))))
? t('Private Message')
: false);
// Top-level wall post not written by the wall owner (wall-to-wall)
// First figure out who owns it.
$osparkle = '';
if(($toplevelpost) && (! $item['self']) && ($mode !== 'profile')) {
if($item['wall']) {
// On the network page, I am the owner. On the display page it will be the profile owner.
// This will have been stored in $a->page_contact by our calling page.
// Put this person as the wall owner of the wall-to-wall notice.
$owner_url = zrl($a->page_contact['url']);
$owner_photo = $a->page_contact['thumb'];
$owner_name = $a->page_contact['name'];
$template = $wallwall;
$commentww = 'ww';
}
if((! $item['wall']) && $item['owner-link']) {
$owner_linkmatch = (($item['owner-link']) && link_compare($item['owner-link'],$item['author-link']));
$alias_linkmatch = (($item['alias']) && link_compare($item['alias'],$item['author-link']));
$owner_namematch = (($item['owner-name']) && $item['owner-name'] == $item['author-name']);
if((! $owner_linkmatch) && (! $alias_linkmatch) && (! $owner_namematch)) {
// The author url doesn't match the owner (typically the contact)
// and also doesn't match the contact alias.
// The name match is a hack to catch several weird cases where URLs are
// all over the park. It can be tricked, but this prevents you from
// seeing "Bob Smith to Bob Smith via Wall-to-wall" and you know darn
// well that it's the same Bob Smith.
// But it could be somebody else with the same name. It just isn't highly likely.
$owner_url = $item['owner-link'];
$owner_photo = $item['owner-avatar'];
$owner_name = $item['owner-name'];
$template = $wallwall;
$commentww = 'ww';
// If it is our contact, use a friendly redirect link
if((link_compare($item['owner-link'],$item['url']))
&& ($item['network'] === NETWORK_DFRN)) {
$owner_url = $redirect_url;
$osparkle = ' sparkle';
}
else
$owner_url = zrl($owner_url);
}
}
}
$likebuttons = '';
$shareable = ((($profile_owner == local_user()) && ($item['private'] != 1)) ? true : false);
if($page_writeable) {
/* if($toplevelpost) { */
$likebuttons = array(
'like' => array( t("I like this \x28toggle\x29"), t("like")),
'dislike' => array( t("I don't like this \x28toggle\x29"), t("dislike")),
);
if ($shareable) $likebuttons['share'] = array( t('Share this'), t('share'));
/* } */
$qc = $qcomment = null;
if(in_array('qcomment',$a->plugins)) {
$qc = ((local_user()) ? get_pconfig(local_user(),'qcomment','words') : null);
$qcomment = (($qc) ? explode("\n",$qc) : null);
}
if(($show_comment_box) || (($show_comment_box == false) && ($override_comment_box == false) && ($item['last-child']))) {
$comment = replace_macros($cmnt_tpl,array(
'$return_path' => '',
'$jsreload' => (($mode === 'display') ? $_SESSION['return_url'] : ''),
'$type' => (($mode === 'profile') ? 'wall-comment' : 'net-comment'),
'$id' => $item['item_id'],
'$parent' => $item['parent'],
'$qcomment' => $qcomment,
'$profile_uid' => $profile_owner,
'$mylink' => $a->contact['url'],
'$mytitle' => t('This is you'),
'$myphoto' => $a->contact['thumb'],
'$comment' => t('Comment'),
'$submit' => t('Submit'),
'$edbold' => t('Bold'),
'$editalic' => t('Italic'),
'$eduline' => t('Underline'),
'$edquote' => t('Quote'),
'$edcode' => t('Code'),
'$edimg' => t('Image'),
'$edurl' => t('Link'),
'$edvideo' => t('Video'),
'$preview' => t('Preview'),
'$ww' => (($mode === 'network') ? $commentww : '')
));
}
}
if(local_user() && link_compare($a->contact['url'],$item['author-link']))
$edpost = array($a->get_baseurl($ssl_state)."/editpost/".$item['id'], t("Edit"));
else
$edpost = false;
$drop = '';
$dropping = false;
if((intval($item['contact-id']) && $item['contact-id'] == remote_user()) || ($item['uid'] == local_user()))
$dropping = true;
$drop = array(
'dropping' => $dropping,
'select' => t('Select'),
'delete' => t('Delete'),
);
$star = false;
$filer = false;
$isstarred = "unstarred";
if ($profile_owner == local_user()) {
if($toplevelpost) {
$isstarred = (($item['starred']) ? "starred" : "unstarred");
$star = array(
'do' => t("add star"),
'undo' => t("remove star"),
'toggle' => t("toggle star status"),
'classdo' => (($item['starred']) ? "hidden" : ""),
'classundo' => (($item['starred']) ? "" : "hidden"),
'starred' => t('starred'),
'tagger' => t("add tag"),
'classtagger' => "",
);
}
$filer = t("save to folder");
}
$photo = $item['photo'];
$thumb = $item['thumb'];
// Post was remotely authored.
$diff_author = ((link_compare($item['url'],$item['author-link'])) ? false : true);
$profile_name = (((strlen($item['author-name'])) && $diff_author) ? $item['author-name'] : $item['name']);
if($item['author-link'] && (! $item['author-name']))
$profile_name = $item['author-link'];
$sp = false;
$profile_link = best_link_url($item,$sp);
if($profile_link === 'mailbox')
$profile_link = '';
if($sp)
$sparkle = ' sparkle';
else
$profile_link = zrl($profile_link);
$normalised = normalise_link((strlen($item['author-link'])) ? $item['author-link'] : $item['url']);
if(($normalised != 'mailbox') && (x($a->contacts,$normalised)))
$profile_avatar = $a->contacts[$normalised]['thumb'];
else
$profile_avatar = (((strlen($item['author-avatar'])) && $diff_author) ? $item['author-avatar'] : $a->get_cached_avatar_image($thumb));
$like = ((x($alike,$item['uri'])) ? format_like($alike[$item['uri']],$alike[$item['uri'] . '-l'],'like',$item['uri']) : '');
$dislike = ((x($dlike,$item['uri'])) ? format_like($dlike[$item['uri']],$dlike[$item['uri'] . '-l'],'dislike',$item['uri']) : '');
$locate = array('location' => $item['location'], 'coord' => $item['coord'], 'html' => '');
call_hooks('render_location',$locate);
$location = ((strlen($locate['html'])) ? $locate['html'] : render_location_google($locate));
$indent = (($toplevelpost) ? '' : ' comment');
if(strcmp(datetime_convert('UTC','UTC',$item['created']),datetime_convert('UTC','UTC','now - 12 hours')) > 0)
$indent .= ' shiny';
//
localize_item($item);
$tags=array();
foreach(explode(',',$item['tag']) as $tag){
$tag = trim($tag);
if ($tag!="") $tags[] = bbcode($tag);
}
// Build the HTML
$body = prepare_body($item,true);
//$tmp_item = replace_macros($template,
$tmp_item = array(
// collapse comments in template. I don't like this much...
'comment_firstcollapsed' => $comment_firstcollapsed,
'comment_lastcollapsed' => $comment_lastcollapsed,
// template to use to render item (wall, walltowall, search)
'template' => $template,
'type' => implode("",array_slice(explode("/",$item['verb']),-1)),
'tags' => $tags,
'body' => template_escape($body),
'text' => strip_tags(template_escape($body)),
'id' => $item['item_id'],
'linktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['author-link'])) ? $item['author-link'] : $item['url'])),
'olinktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['owner-link'])) ? $item['owner-link'] : $item['url'])),
'to' => t('to'),
'wall' => t('Wall-to-Wall'),
'vwall' => t('via Wall-To-Wall:'),
'profile_url' => $profile_link,
'item_photo_menu' => item_photo_menu($item),
'name' => template_escape($profile_name),
'thumb' => $profile_avatar,
'osparkle' => $osparkle,
'sparkle' => $sparkle,
'title' => template_escape($item['title']),
'ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])),
'lock' => $lock,
'location' => template_escape($location),
'indent' => $indent,
'owner_url' => $owner_url,
'owner_photo' => $owner_photo,
'owner_name' => template_escape($owner_name),
'plink' => get_plink($item),
'edpost' => $edpost,
'isstarred' => $isstarred,
'star' => $star,
'filer' => $filer,
'drop' => $drop,
'vote' => $likebuttons,
'like' => $like,
'dislike' => $dislike,
'comment' => $comment,
'previewing' => $previewing,
'wait' => t('Please wait'),
);
$arr = array('item' => $item, 'output' => $tmp_item);
call_hooks('display_item', $arr);
$threads[$threadsid]['items'][] = $arr['output'];
$threads = $conv->get_template_data($alike, $dlike);
if(!$threads) {
logger('[ERROR] conversation : Failed to get template data.', LOGGER_DEBUG);
$threads = array();
}
}
}
$page_template = get_markup_template("conversation.tpl");
$o = replace_macros($page_template, array(
'$baseurl' => $a->get_baseurl($ssl_state),
'$live_update' => $live_update_div,
'$remove' => t('remove'),
'$mode' => $mode,
'$user' => $a->user,
'$threads' => $threads,
'$dropping' => ($dropping?t('Delete Selected Items'):False),
'$dropping' => ($page_dropping?t('Delete Selected Items'):False),
));
return $o;
@ -856,14 +733,20 @@ function item_photo_menu($item){
if(! count($a->contacts))
load_contact_links(local_user());
}
$sub_link="";
$poke_link="";
$contact_url="";
$pm_url="";
$status_link="";
$photos_link="";
$posts_link="";
if((local_user()) && local_user() == $item['uid'] && $item['parent'] == $item['id'] && (! $item['self'])) {
$sub_link = 'javascript:dosubthread(' . $item['id'] . '); return false;';
}
$sparkle = false;
$profile_link = best_link_url($item,$sparkle,$ssl_state);
$profile_link = best_link_url($item,$sparkle,$ssl_state);
if($profile_link === 'mailbox')
$profile_link = '';
@ -879,12 +762,13 @@ function item_photo_menu($item){
$profile_link = zrl($profile_link);
if(local_user() && local_user() == $item['uid'] && link_compare($item['url'],$item['author-link'])) {
$cid = $item['contact-id'];
}
}
else {
$cid = 0;
}
}
if(($cid) && (! $item['self'])) {
$poke_link = $a->get_baseurl($ssl_state) . '/poke/?f=&c=' . $cid;
$contact_url = $a->get_baseurl($ssl_state) . '/contacts/' . $cid;
$posts_link = $a->get_baseurl($ssl_state) . '/network/?cid=' . $cid;
@ -901,24 +785,30 @@ function item_photo_menu($item){
}
$menu = Array(
t("Follow Thread") => $sub_link,
t("View Status") => $status_link,
t("View Profile") => $profile_link,
t("View Photos") => $photos_link,
t("Network Posts") => $posts_link,
t("Network Posts") => $posts_link,
t("Edit Contact") => $contact_url,
t("Send PM") => $pm_url,
t("Poke") => $poke_link
);
$args = array('item' => $item, 'menu' => $menu);
call_hooks('item_photo_menu', $args);
$menu = $args['menu'];
$menu = $args['menu'];
$o = "";
foreach($menu as $k=>$v){
if ($v!="") $o .= "<li><a href='$v'>$k</a></li>\n";
if(strpos($v,'javascript:') === 0) {
$v = substr($v,11);
$o .= "<li><a href=\"#\" onclick=\"$v\">$k</a></li>\n";
}
elseif ($v!="") $o .= "<li><a href=\"$v\">$k</a></li>\n";
}
return $o;
}}
@ -946,7 +836,7 @@ function like_puller($a,$item,&$arr,$mode) {
$arr[$item['thr-parent'] . '-l'] = array();
if(! isset($arr[$item['thr-parent']]))
$arr[$item['thr-parent']] = 1;
else
else
$arr[$item['thr-parent']] ++;
$arr[$item['thr-parent'] . '-l'][] = '<a href="'. $url . '"'. $sparkle .'>' . $item['author-name'] . '</a>';
}
@ -967,10 +857,10 @@ function format_like($cnt,$arr,$type,$id) {
$o .= (($type === 'like') ? sprintf( t('%s likes this.'), $arr[0]) : sprintf( t('%s doesn\'t like this.'), $arr[0])) . EOL ;
else {
$spanatts = 'class="fakelink" onclick="openClose(\'' . $type . 'list-' . $id . '\');"';
$o .= (($type === 'like') ?
$o .= (($type === 'like') ?
sprintf( t('<span %1$s>%2$d people</span> like this.'), $spanatts, $cnt)
:
sprintf( t('<span %1$s>%2$d people</span> don\'t like this.'), $spanatts, $cnt) );
:
sprintf( t('<span %1$s>%2$d people</span> don\'t like this.'), $spanatts, $cnt) );
$o .= EOL ;
$total = count($arr);
if($total >= MAX_LIKERS)
@ -990,7 +880,7 @@ function format_like($cnt,$arr,$type,$id) {
function status_editor($a,$x, $notes_cid = 0, $popup=false) {
$o = '';
$geotag = (($x['allow_location']) ? get_markup_template('jot_geotag.tpl') : '');
$plaintext = false;
@ -998,8 +888,25 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) {
$plaintext = true;
$tpl = get_markup_template('jot-header.tpl');
$a->page['htmlhead'] .= replace_macros($tpl, array(
'$newpost' => 'true',
'$baseurl' => $a->get_baseurl(true),
'$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
'$geotag' => $geotag,
'$nickname' => $x['nickname'],
'$ispublic' => t('Visible to <strong>everybody</strong>'),
'$linkurl' => t('Please enter a link URL:'),
'$vidurl' => t("Please enter a video link/URL:"),
'$audurl' => t("Please enter an audio link/URL:"),
'$term' => t('Tag term:'),
'$fileas' => t('Save to Folder:'),
'$whereareu' => t('Where are you right now?'),
'$delitems' => t('Delete item(s)?')
));
$tpl = get_markup_template('jot-end.tpl');
$a->page['end'] .= replace_macros($tpl, array(
'$newpost' => 'true',
'$baseurl' => $a->get_baseurl(true),
'$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
@ -1016,7 +923,7 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) {
$tpl = get_markup_template("jot.tpl");
$jotplugins = '';
$jotnets = '';
@ -1047,7 +954,7 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) {
if($notes_cid)
$jotnets .= '<input type="hidden" name="contact_allow[]" value="' . $notes_cid .'" />';
$tpl = replace_macros($tpl,array('$jotplugins' => $jotplugins));
$tpl = replace_macros($tpl,array('$jotplugins' => $jotplugins));
$o .= replace_macros($tpl,array(
'$return_path' => $a->query_string,
@ -1090,24 +997,71 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) {
'$bang' => $x['bang'],
'$profile_uid' => $x['profile_uid'],
'$preview' => t('Preview'),
'$sourceapp' => t($a->sourcename),
'$cancel' => t('Cancel'),
'$rand_num' => random_digits(12)
));
if ($popup==true){
$o = '<div id="jot-popup" style="display: none;">'.$o.'</div>';
}
return $o;
}
function get_item_children($arr, $parent) {
$children = array();
$a = get_app();
foreach($arr as $item) {
if($item['id'] != $item['parent']) {
if(get_config('system','thread_allow') && $a->theme_thread_allow) {
// Fallback to parent-uri if thr-parent is not set
$thr_parent = $item['thr-parent'];
if($thr_parent == '')
$thr_parent = $item['parent-uri'];
if($thr_parent == $parent['uri']) {
$item['children'] = get_item_children($arr, $item);
$children[] = $item;
}
}
else if($item['parent'] == $parent['id']) {
$children[] = $item;
}
}
}
return $children;
}
function sort_item_children($items) {
$result = $items;
usort($result,'sort_thr_created_rev');
foreach($result as $k => $i) {
if(count($result[$k]['children'])) {
$result[$k]['children'] = sort_item_children($result[$k]['children']);
}
}
return $result;
}
function add_children_to_list($children, &$arr) {
foreach($children as $y) {
$arr[] = $y;
if(count($y['children']))
add_children_to_list($y['children'], $arr);
}
}
function conv_sort($arr,$order) {
if((!(is_array($arr) && count($arr))))
return array();
$parents = array();
$children = array();
foreach($arr as $x)
if($x['id'] == $x['parent'])
@ -1119,24 +1073,25 @@ function conv_sort($arr,$order) {
usort($parents,'sort_thr_commented');
if(count($parents))
foreach($parents as $i=>$_x)
$parents[$i]['children'] = array();
foreach($parents as $i=>$_x)
$parents[$i]['children'] = get_item_children($arr, $_x);
foreach($arr as $x) {
/*foreach($arr as $x) {
if($x['id'] != $x['parent']) {
$p = find_thread_parent_index($parents,$x);
if($p !== false)
$parents[$p]['children'][] = $x;
}
}
}*/
if(count($parents)) {
foreach($parents as $k => $v) {
if(count($parents[$k]['children'])) {
$y = $parents[$k]['children'];
$parents[$k]['children'] = sort_item_children($parents[$k]['children']);
/*$y = $parents[$k]['children'];
usort($y,'sort_thr_created_rev');
$parents[$k]['children'] = $y;
$parents[$k]['children'] = $y;*/
}
}
}
}
$ret = array();
@ -1144,8 +1099,9 @@ function conv_sort($arr,$order) {
foreach($parents as $x) {
$ret[] = $x;
if(count($x['children']))
foreach($x['children'] as $y)
$ret[] = $y;
add_children_to_list($x['children'], $ret);
/*foreach($x['children'] as $y)
$ret[] = $y;*/
}
}

View file

@ -100,11 +100,33 @@ function datetime_convert($from = 'UTC', $to = 'UTC', $s = 'now', $fmt = "Y-m-d
return str_replace('1','0',$d->format($fmt));
}
$d = new DateTime($s, new DateTimeZone($from));
$d->setTimeZone(new DateTimeZone($to));
try {
$from_obj = new DateTimeZone($from);
}
catch(Exception $e) {
$from_obj = new DateTimeZone('UTC');
}
try {
$d = new DateTime($s, $from_obj);
}
catch(Exception $e) {
logger('datetime_convert: exception: ' . $e->getMessage());
$d = new DateTime('now', $from_obj);
}
try {
$to_obj = new DateTimeZone($to);
}
catch(Exception $e) {
$to_obj = new DateTimeZone('UTC');
}
$d->setTimeZone($to_obj);
return($d->format($fmt));
}}
// wrapper for date selector, tailored for use in birthday fields
function dob($dob) {

View file

@ -71,22 +71,32 @@ class dba {
}
public function q($sql) {
global $a;
if((! $this->db) || (! $this->connected))
return false;
$this->error = '';
//if (get_config("system", "db_log") != "")
// @file_put_contents(get_config("system", "db_log"), datetime_convert().':'.session_id(). ' Start '.$sql."\n", FILE_APPEND);
if(x($a->config,'system') && x($a->config['system'],'db_log'))
$stamp1 = microtime(true);
if($this->mysqli)
$result = @$this->db->query($sql);
else
$result = @mysql_query($sql,$this->db);
//if (get_config("system", "db_log") != "")
// @file_put_contents(get_config("system", "db_log"), datetime_convert().':'.session_id(). ' Stop '."\n", FILE_APPEND);
if(x($a->config,'system') && x($a->config['system'],'db_log')) {
$stamp2 = microtime(true);
$duration = round($stamp2-$stamp1, 3);
if ($duration > $a->config["system"]["db_loglimit"]) {
$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
@file_put_contents($a->config["system"]["db_log"], $duration."\t".
basename($backtrace[1]["file"])."\t".
$backtrace[1]["line"]."\t".$backtrace[2]["function"]."\t".
substr($sql, 0, 2000)."\n", FILE_APPEND);
}
}
if($this->mysqli) {
if($this->db->errno)

View file

@ -328,8 +328,9 @@ function delivery_run($argv, $argc){
dbesc($nickname)
);
if(count($x)) {
if($owner['page-flags'] == PAGE_COMMUNITY && ! $x[0]['writable']) {
if($x && count($x)) {
$write_flag = ((($x[0]['rel']) && ($x[0]['rel'] != CONTACT_IS_SHARING)) ? true : false);
if((($owner['page-flags'] == PAGE_COMMUNITY) || ($write_flag)) && (! $x[0]['writable'])) {
q("update contact set writable = 1 where id = %d limit 1",
intval($x[0]['id'])
);

View file

@ -102,6 +102,37 @@ function diaspora_dispatch($importer,$msg) {
return $ret;
}
function diaspora_handle_from_contact($contact_id) {
$handle = False;
logger("diaspora_handle_from_contact: contact id is " . $contact_id, LOGGER_DEBUG);
$r = q("SELECT network, addr, self, url, nick FROM contact WHERE id = %d",
intval($contact_id)
);
if($r) {
$contact = $r[0];
logger("diaspora_handle_from_contact: contact 'self' = " . $contact['self'] . " 'url' = " . $contact['url'], LOGGER_DEBUG);
if($contact['network'] === NETWORK_DIASPORA) {
$handle = $contact['addr'];
// logger("diaspora_handle_from_contact: contact id is a Diaspora person, handle = " . $handle, LOGGER_DEBUG);
}
elseif(($contact['network'] === NETWORK_DFRN) || ($contact['self'] == 1)) {
$baseurl_start = strpos($contact['url'],'://') + 3;
$baseurl_length = strpos($contact['url'],'/profile') - $baseurl_start; // allows installations in a subdirectory--not sure how Diaspora will handle
$baseurl = substr($contact['url'], $baseurl_start, $baseurl_length);
$handle = $contact['nick'] . '@' . $baseurl;
// logger("diaspora_handle_from_contact: contact id is a DFRN person, handle = " . $handle, LOGGER_DEBUG);
}
}
return $handle;
}
function diaspora_get_contact_by_handle($uid,$handle) {
$r = q("SELECT * FROM `contact` WHERE `network` = '%s' AND `uid` = %d AND `addr` = '%s' LIMIT 1",
dbesc(NETWORK_DIASPORA),
@ -110,6 +141,17 @@ function diaspora_get_contact_by_handle($uid,$handle) {
);
if($r && count($r))
return $r[0];
$handle_parts = explode("@", $handle);
$nurl_sql = '%%://' . $handle_parts[1] . '%%/profile/' . $handle_parts[0];
$r = q("SELECT * FROM contact WHERE network = '%s' AND uid = %d AND nurl LIKE '%s' LIMIT 1",
dbesc(NETWORK_DFRN),
intval($uid),
dbesc($nurl_sql)
);
if($r && count($r))
return $r[0];
return false;
}
@ -1236,6 +1278,7 @@ function diaspora_comment($importer,$xml,$msg) {
$datarray['uid'] = $importer['uid'];
$datarray['contact-id'] = $contact['id'];
$datarray['type'] = 'remote-comment';
$datarray['wall'] = $parent_item['wall'];
$datarray['gravity'] = GRAVITY_COMMENT;
$datarray['guid'] = $guid;
@ -1272,7 +1315,7 @@ function diaspora_comment($importer,$xml,$msg) {
if(($parent_item['origin']) && (! $parent_author_signature)) {
q("insert into sign (`iid`,`signed_text`,`signature`,`signer`) values (%d,'%s','%s','%s') ",
intval($message_id),
dbesc($author_signed_data),
dbesc($signed_data),
dbesc(base64_encode($author_signature)),
dbesc($diaspora_handle)
);
@ -1281,7 +1324,7 @@ function diaspora_comment($importer,$xml,$msg) {
// the existence of parent_author_signature means the parent_author or owner
// is already relaying.
proc_run('php','include/notifier.php','comment',$message_id);
proc_run('php','include/notifier.php','comment-import',$message_id);
}
$myconv = q("SELECT `author-link`, `author-avatar`, `parent` FROM `item` WHERE `parent-uri` = '%s' AND `uid` = %d AND `parent` != 0 AND `deleted` = 0 ",
@ -1318,7 +1361,7 @@ function diaspora_comment($importer,$xml,$msg) {
'verb' => ACTIVITY_POST,
'otype' => 'item',
'parent' => $conv_parent,
'parent_uri' => $parent_uri
));
// only send one notification
@ -1673,8 +1716,8 @@ function diaspora_like($importer,$xml,$msg) {
// likes on comments not supported here and likes on photos not supported by Diaspora
if($target_type !== 'Post')
return;
// if($target_type !== 'Post')
// return;
$contact = diaspora_get_contact_by_handle($importer['uid'],$msg['author']);
if(! $contact) {
@ -1855,7 +1898,7 @@ EOT;
if(! $parent_author_signature) {
q("insert into sign (`iid`,`signed_text`,`signature`,`signer`) values (%d,'%s','%s','%s') ",
intval($message_id),
dbesc($author_signed_data),
dbesc($signed_data),
dbesc(base64_encode($author_signature)),
dbesc($diaspora_handle)
);
@ -1866,7 +1909,7 @@ EOT;
// is already relaying. The parent_item['origin'] indicates the message was created on our system
if(($parent_item['origin']) && (! $parent_author_signature))
proc_run('php','include/notifier.php','comment',$message_id);
proc_run('php','include/notifier.php','comment-import',$message_id);
return;
}
@ -1917,7 +1960,7 @@ function diaspora_signed_retraction($importer,$xml,$msg) {
$contact = diaspora_get_contact_by_handle($importer['uid'],$diaspora_handle);
if(! $contact) {
logger('diaspora_signed_retraction: no contact');
logger('diaspora_signed_retraction: no contact ' . $diaspora_handle . ' for ' . $importer['uid']);
return;
}
@ -1992,7 +2035,7 @@ function diaspora_signed_retraction($importer,$xml,$msg) {
// is already relaying.
logger('diaspora_signed_retraction: relaying relayable_retraction');
proc_run('php','include/notifier.php','relayable_retraction',$r[0]['id']);
proc_run('php','include/notifier.php','drop',$r[0]['id']);
}
}
}
@ -2029,11 +2072,20 @@ function diaspora_profile($importer,$xml,$msg) {
$image_url = unxmlify($xml->image_url);
$birthday = unxmlify($xml->birthday);
$r = q("SELECT DISTINCT ( `resource-id` ) FROM `photo` WHERE `uid` = %d AND `contact-id` = %d AND `album` = 'Contact Photos' ",
$handle_parts = explode("@", $diaspora_handle);
if($name === '') {
$name = $handle_parts[0];
}
if(strpos($image_url, $handle_parts[1]) === false) {
$image_url = "http://" . $handle_parts[1] . $image_url;
}
/* $r = q("SELECT DISTINCT ( `resource-id` ) FROM `photo` WHERE `uid` = %d AND `contact-id` = %d AND `album` = 'Contact Photos' ",
intval($importer['uid']),
intval($contact['id'])
);
$oldphotos = ((count($r)) ? $r : null);
$oldphotos = ((count($r)) ? $r : null);*/
require_once('include/Photo.php');
@ -2066,7 +2118,7 @@ function diaspora_profile($importer,$xml,$msg) {
intval($importer['uid'])
);
if($r) {
/* if($r) {
if($oldphotos) {
foreach($oldphotos as $ph) {
q("DELETE FROM `photo` WHERE `uid` = %d AND `contact-id` = %d AND `album` = 'Contact Photos' AND `resource-id` = '%s' ",
@ -2076,7 +2128,7 @@ function diaspora_profile($importer,$xml,$msg) {
);
}
}
}
} */
return;
@ -2119,7 +2171,6 @@ function diaspora_unshare($me,$contact) {
}
function diaspora_send_status($item,$owner,$contact,$public_batch = false) {
$a = get_app();
@ -2153,8 +2204,6 @@ function diaspora_send_status($item,$owner,$contact,$public_batch = false) {
}
}
*/
// Removal of tags
$body = preg_replace('/#\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', '#$2', $body);
//if(strlen($title))
// $body = "[b]".html_entity_decode($title)."[/b]\n\n".$body;
@ -2253,22 +2302,31 @@ function diaspora_send_followup($item,$owner,$contact,$public_batch = false) {
$myaddr = $owner['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3);
// $theiraddr = $contact['addr'];
// The first item in the `item` table with the parent id is the parent. However, MySQL doesn't always
// return the items ordered by `item`.`id`, in which case the wrong item is chosen as the parent.
// The only item with `parent` and `id` as the parent id is the parent item.
$p = q("select guid from item where parent = %d and id = %d limit 1",
intval($item['parent']),
intval($item['parent'])
);
// Diaspora doesn't support threaded comments
/*if($item['thr-parent']) {
$p = q("select guid, type, uri, `parent-uri` from item where uri = '%s' limit 1",
dbesc($item['thr-parent'])
);
}
else {*/
// The first item in the `item` table with the parent id is the parent. However, MySQL doesn't always
// return the items ordered by `item`.`id`, in which case the wrong item is chosen as the parent.
// The only item with `parent` and `id` as the parent id is the parent item.
$p = q("select guid, type, uri, `parent-uri` from item where parent = %d and id = %d limit 1",
intval($item['parent']),
intval($item['parent'])
);
//}
if(count($p))
$parent_guid = $p[0]['guid'];
$parent = $p[0];
else
return;
if($item['verb'] === ACTIVITY_LIKE) {
$tpl = get_markup_template('diaspora_like.tpl');
$like = true;
$target_type = 'Post';
$target_type = ( $parent['uri'] === $parent['parent-uri'] ? 'Post' : 'Comment');
// $target_type = (strpos($parent['type'], 'comment') ? 'Comment' : 'Post');
// $positive = (($item['deleted']) ? 'false' : 'true');
$positive = 'true';
@ -2285,15 +2343,15 @@ function diaspora_send_followup($item,$owner,$contact,$public_batch = false) {
// sign it
if($like)
$signed_text = $item['guid'] . ';' . $target_type . ';' . $parent_guid . ';' . $positive . ';' . $myaddr;
$signed_text = $item['guid'] . ';' . $target_type . ';' . $parent['guid'] . ';' . $positive . ';' . $myaddr;
else
$signed_text = $item['guid'] . ';' . $parent_guid . ';' . $text . ';' . $myaddr;
$signed_text = $item['guid'] . ';' . $parent['guid'] . ';' . $text . ';' . $myaddr;
$authorsig = base64_encode(rsa_sign($signed_text,$owner['uprvkey'],'sha256'));
$msg = replace_macros($tpl,array(
'$guid' => xmlify($item['guid']),
'$parent_guid' => xmlify($parent_guid),
'$parent_guid' => xmlify($parent['guid']),
'$target_type' =>xmlify($target_type),
'$authorsig' => xmlify($authorsig),
'$body' => xmlify($text),
@ -2320,16 +2378,23 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) {
$body = $item['body'];
$text = html_entity_decode(bb2diaspora($body));
// The first item in the `item` table with the parent id is the parent. However, MySQL doesn't always
// return the items ordered by `item`.`id`, in which case the wrong item is chosen as the parent.
// The only item with `parent` and `id` as the parent id is the parent item.
$p = q("select guid from item where parent = %d and id = %d limit 1",
intval($item['parent']),
intval($item['parent'])
);
// Diaspora doesn't support threaded comments
/*if($item['thr-parent']) {
$p = q("select guid, type, uri, `parent-uri` from item where uri = '%s' limit 1",
dbesc($item['thr-parent'])
);
}
else {*/
// The first item in the `item` table with the parent id is the parent. However, MySQL doesn't always
// return the items ordered by `item`.`id`, in which case the wrong item is chosen as the parent.
// The only item with `parent` and `id` as the parent id is the parent item.
$p = q("select guid, type, uri, `parent-uri` from item where parent = %d and id = %d limit 1",
intval($item['parent']),
intval($item['parent'])
);
//}
if(count($p))
$parent_guid = $p[0]['guid'];
$parent = $p[0];
else
return;
@ -2347,7 +2412,7 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) {
elseif($item['verb'] === ACTIVITY_LIKE) {
$like = true;
$target_type = 'Post';
$target_type = ( $parent['uri'] === $parent['parent-uri'] ? 'Post' : 'Comment');
// $positive = (($item['deleted']) ? 'false' : 'true');
$positive = 'true';
@ -2361,7 +2426,7 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) {
// fetch the original signature if the relayable was created by a Diaspora
// or DFRN user. Relayables for other networks are not supported.
$r = q("select * from sign where " . $sql_sign_id . " = %d limit 1",
/* $r = q("select * from sign where " . $sql_sign_id . " = %d limit 1",
intval($item['id'])
);
if(count($r)) {
@ -2377,14 +2442,32 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) {
// function is called
logger('diaspora_send_relay: original author signature not found, cannot send relayable');
return;
}
}*/
/* Since the author signature is only checked by the parent, not by the relay recipients,
* I think it may not be necessary for us to do so much work to preserve all the original
* signatures. The important thing that Diaspora DOES need is the original creator's handle.
* Let's just generate that and forget about all the original author signature stuff.
*
* Note: this might be more of an problem if we want to support likes on comments for older
* versions of Diaspora (diaspora-pistos), but since there are a number of problems with
* doing that, let's ignore it for now.
*
* Currently, only DFRN contacts are supported. StatusNet shouldn't be hard, but it hasn't
* been done yet
*/
$handle = diaspora_handle_from_contact($item['contact-id']);
if(! $handle)
return;
if($relay_retract)
$sender_signed_text = $item['guid'] . ';' . $target_type;
elseif($like)
$sender_signed_text = $item['guid'] . ';' . $target_type . ';' . $parent_guid . ';' . $positive . ';' . $handle;
$sender_signed_text = $item['guid'] . ';' . $target_type . ';' . $parent['guid'] . ';' . $positive . ';' . $handle;
else
$sender_signed_text = $item['guid'] . ';' . $parent_guid . ';' . $text . ';' . $handle;
$sender_signed_text = $item['guid'] . ';' . $parent['guid'] . ';' . $text . ';' . $handle;
// Sign the relayable with the top-level owner's signature
//
@ -2401,7 +2484,7 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) {
$msg = replace_macros($tpl,array(
'$guid' => xmlify($item['guid']),
'$parent_guid' => xmlify($parent_guid),
'$parent_guid' => xmlify($parent['guid']),
'$target_type' =>xmlify($target_type),
'$authorsig' => xmlify($authorsig),
'$parentsig' => xmlify($parentauthorsig),
@ -2517,7 +2600,7 @@ function diaspora_send_mail($item,$owner,$contact) {
}
function diaspora_transmit($owner,$contact,$slap,$public_batch) {
function diaspora_transmit($owner,$contact,$slap,$public_batch,$queue_run=false) {
$enabled = intval(get_config('system','diaspora_enabled'));
if(! $enabled) {
@ -2534,7 +2617,7 @@ function diaspora_transmit($owner,$contact,$slap,$public_batch) {
logger('diaspora_transmit: ' . $logid . ' ' . $dest_url);
if(was_recently_delayed($contact['id'])) {
if( (! $queue_run) && (was_recently_delayed($contact['id'])) ) {
$return_code = 0;
}
else {

View file

@ -48,8 +48,8 @@ function construct_mailbox_name($mailacct) {
function email_msg_meta($mbox,$uid) {
$ret = (($mbox && $uid) ? @imap_fetch_overview($mbox,$uid,FT_UID) : array(array()));
return ((count($ret)) ? $ret[0] : array());
$ret = (($mbox && $uid) ? @imap_fetch_overview($mbox,$uid,FT_UID) : array(array())); // POSSIBLE CLEANUP --> array(array()) is probably redundant now
return ((count($ret)) ? $ret : array());
}
function email_msg_headers($mbox,$uid) {

View file

@ -1,5 +1,7 @@
<?php
require_once('include/email.php');
function notification($params) {
logger('notification: entry', LOGGER_DEBUG);
@ -124,9 +126,9 @@ function notification($params) {
$preamble = sprintf( t('%1$s posted to your profile wall at %2$s') , $params['source_name'], $sitename);
$epreamble = sprintf( t('%1$s posted to [url=%2s]your wall[/url]') ,
$epreamble = sprintf( t('%1$s posted to [url=%2$s]your wall[/url]') ,
'[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]',
$itemlink);
$params['link']);
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
$tsitelink = sprintf( $sitelink, $siteurl );
@ -147,6 +149,24 @@ function notification($params) {
$itemlink = $params['link'];
}
if($params['type'] == NOTIFY_POKE) {
$subject = sprintf( t('[Friendica:Notify] %1$s poked you') , $params['source_name']);
$preamble = sprintf( t('%1$s poked you at %2$s') , $params['source_name'], $sitename);
$epreamble = sprintf( t('%1$s [url=%2$s]poked you[/url].') ,
'[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]',
$params['link']);
$subject = str_replace('poked', t($params['activity']), $subject);
$preamble = str_replace('poked', t($params['activity']), $preamble);
$epreamble = str_replace('poked', t($params['activity']), $epreamble);
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
$tsitelink = sprintf( $sitelink, $siteurl );
$hsitelink = sprintf( $sitelink, '<a href="' . $siteurl . '">' . $sitename . '</a>');
$itemlink = $params['link'];
}
if($params['type'] == NOTIFY_TAGSHARE) {
$subject = sprintf( t('[Friendica:Notify] %s tagged your post') , $params['source_name']);
$preamble = sprintf( t('%1$s tagged your post at %2$s') , $params['source_name'], $sitename);
@ -306,7 +326,7 @@ function notification($params) {
// If so, create the record of it and use a message-id smtp header.
if(!$r) {
logger("norify_id:" . intval($notify_id). ", parent: " . intval($params['parent']) . "uid: " .
logger("notify_id:" . intval($notify_id). ", parent: " . intval($params['parent']) . "uid: " .
intval($params['uid']), LOGGER_DEBUG);
$r = q("insert into `notify-threads` (`notify-id`, `master-parent-item`, `receiver-uid`, `parent-item`)
values(%d,%d,%d,%d)",
@ -477,6 +497,7 @@ class enotify {
$multipartMessageBody, // message body
$messageHeader // message headers
);
logger("notification: enotify::send header " . 'To: ' . $params['toEmail'] . "\n" . $messageHeader, LOGGER_DEBUG);
logger("notification: enotify::send returns " . $res, LOGGER_DEBUG);
}
}

View file

@ -40,7 +40,7 @@ function group_add($uid,$name) {
function group_rmv($uid,$name) {
$ret = false;
if(x($uid) && x($name)) {
$r = q("SELECT * FROM `group` WHERE `uid` = %d AND `name` = '%s' LIMIT 1",
$r = q("SELECT id FROM `group` WHERE `uid` = %d AND `name` = '%s' LIMIT 1",
intval($uid),
dbesc($name)
);
@ -49,6 +49,37 @@ function group_rmv($uid,$name) {
if(! $group_id)
return false;
// remove group from default posting lists
$r = q("SELECT def_gid, allow_gid, deny_gid FROM user WHERE uid = %d LIMIT 1",
intval($uid)
);
if($r) {
$user_info = $r[0];
$change = false;
if($user_info['def_gid'] == $group_id) {
$user_info['def_gid'] = 0;
$change = true;
}
if(strpos($user_info['allow_gid'], '<' . $group_id . '>') !== false) {
$user_info['allow_gid'] = str_replace('<' . $group_id . '>', '', $user_info['allow_gid']);
$change = true;
}
if(strpos($user_info['deny_gid'], '<' . $group_id . '>') !== false) {
$user_info['deny_gid'] = str_replace('<' . $group_id . '>', '', $user_info['deny_gid']);
$change = true;
}
if($change) {
q("UPDATE user SET def_gid = %d, allow_gid = '%s', deny_gid = '%s' WHERE uid = %d",
intval($user_info['def_gid']),
dbesc($user_info['allow_gid']),
dbesc($user_info['deny_gid']),
intval($uid)
);
}
}
// remove all members
$r = q("DELETE FROM `group_member` WHERE `uid` = %d AND `gid` = %d ",
intval($uid),
@ -103,7 +134,7 @@ function group_add_member($uid,$name,$member,$gid = 0) {
if((! $gid) || (! $uid) || (! $member))
return false;
$r = q("SELECT * FROM `group_member` WHERE `uid` = %d AND `id` = %d AND `contact-id` = %d LIMIT 1",
$r = q("SELECT * FROM `group_member` WHERE `uid` = %d AND `gid` = %d AND `contact-id` = %d LIMIT 1",
intval($uid),
intval($gid),
intval($member)

View file

@ -76,6 +76,7 @@ function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0)
killme();
$contact = $r[0];
require_once('include/security.php');
$groups = init_groups_visitor($contact['id']);
if(count($groups)) {
@ -374,6 +375,29 @@ function limit_body_size($body) {
return $body;
}}
function title_is_body($title, $body) {
$title = strip_tags($title);
$title = trim($title);
$title = str_replace(array("\n", "\r", "\t", " "), array("","","",""), $title);
$body = strip_tags($body);
$body = trim($body);
$body = str_replace(array("\n", "\r", "\t", " "), array("","","",""), $body);
if (strlen($title) < strlen($body))
$body = substr($body, 0, strlen($title));
if (($title != $body) and (substr($title, -3) == "...")) {
$pos = strrpos($title, "...");
if ($pos > 0) {
$title = substr($title, 0, $pos);
$body = substr($body, 0, $pos);
}
}
return($title == $body);
}
@ -400,6 +424,11 @@ function get_atom_elements($feed,$item) {
$res['body'] = unxmlify($item->get_content());
$res['plink'] = unxmlify($item->get_link(0));
// removing the content of the title if its identically to the body
// This helps with auto generated titles e.g. from tumblr
if (title_is_body($res["title"], $res["body"]))
$res['title'] = "";
if($res['plink'])
$base_url = implode('/', array_slice(explode('/',$res['plink']),0,3));
else
@ -418,7 +447,7 @@ function get_atom_elements($feed,$item) {
$res['author-avatar'] = unxmlify($link['attribs']['']['href']);
}
}
}
}
$rawactor = $item->get_item_tags(NAMESPACE_ACTIVITY, 'actor');
@ -450,7 +479,7 @@ function get_atom_elements($feed,$item) {
$res['author-avatar'] = unxmlify($link['attribs']['']['href']);
}
}
}
}
$rawactor = $feed->get_feed_tags(NAMESPACE_ACTIVITY, 'subject');
@ -475,7 +504,7 @@ function get_atom_elements($feed,$item) {
$res['app'] = strip_tags(unxmlify($apps[0]['attribs']['']['source']));
if($res['app'] === 'web')
$res['app'] = 'OStatus';
}
}
// base64 encoded json structure representing Diaspora signature
@ -550,6 +579,7 @@ function get_atom_elements($feed,$item) {
$res['body'] = escape_tags($res['body']);
}
// this tag is obsolete but we keep it for really old sites
$allow = $item->get_item_tags(NAMESPACE_DFRN,'comment-allow');
@ -618,7 +648,7 @@ function get_atom_elements($feed,$item) {
foreach($base as $link) {
if(!x($res, 'owner-avatar') || !$res['owner-avatar']) {
if($link['attribs']['']['rel'] === 'photo' || $link['attribs']['']['rel'] === 'avatar')
if($link['attribs']['']['rel'] === 'photo' || $link['attribs']['']['rel'] === 'avatar')
$res['owner-avatar'] = unxmlify($link['attribs']['']['href']);
}
}
@ -758,10 +788,41 @@ function get_atom_elements($feed,$item) {
$res['target'] .= '</target>' . "\n";
}
// This is some experimental stuff. By now retweets are shown with "RT:"
// But: There is data so that the message could be shown similar to native retweets
// There is some better way to parse this array - but it didn't worked for me.
$child = $item->feed->data["child"][SIMPLEPIE_NAMESPACE_ATOM_10]["feed"][0]["child"][SIMPLEPIE_NAMESPACE_ATOM_10]["entry"][0]["child"]["http://activitystrea.ms/spec/1.0/"][object][0]["child"];
if (is_array($child)) {
$message = $child["http://activitystrea.ms/spec/1.0/"]["object"][0]["child"][SIMPLEPIE_NAMESPACE_ATOM_10]["content"][0]["data"];
$author = $child[SIMPLEPIE_NAMESPACE_ATOM_10]["author"][0]["child"][SIMPLEPIE_NAMESPACE_ATOM_10];
$uri = $author["uri"][0]["data"];
$name = $author["name"][0]["data"];
$avatar = @array_shift($author["link"][2]["attribs"]);
$avatar = $avatar["href"];
if (($name != "") and ($uri != "") and ($avatar != "") and ($message != "")) {
$res["owner-name"] = $res["author-name"];
$res["owner-link"] = $res["author-link"];
$res["owner-avatar"] = $res["author-avatar"];
$res["author-name"] = $name;
$res["author-link"] = $uri;
$res["author-avatar"] = $avatar;
$res["body"] = html2bbcode($message);
}
}
$arr = array('feed' => $feed, 'item' => $item, 'result' => $res);
call_hooks('parse_atom', $arr);
//if (($res["title"] != "") or (strpos($res["body"], "RT @") > 0)) {
//if (strpos($res["body"], "RT @") !== false) {
// $debugfile = tempnam("/home/ike/log", "item-res2-");
// file_put_contents($debugfile, serialize($arr));
//}
return $res;
}
@ -817,6 +878,14 @@ function item_store($arr,$force_parent = false) {
$arr['body'] = strip_tags($arr['body']);
if (version_compare(PHP_VERSION, '5.3.0', '>=')) {
require_once('Text/LanguageDetect.php');
$naked_body = preg_replace('/\[(.+?)\]/','',$arr['body']);
$l = new Text_LanguageDetect;
$lng = $l->detectConfidence($naked_body);
$arr['postopts'] = (($lng['language']) ? 'lang=' . $lng['language'] . ';' . $lng['confidence'] : '');
}
$arr['wall'] = ((x($arr,'wall')) ? intval($arr['wall']) : 0);
$arr['uri'] = ((x($arr,'uri')) ? notags(trim($arr['uri'])) : random_string());
$arr['extid'] = ((x($arr,'extid')) ? notags(trim($arr['extid'])) : '');
@ -857,6 +926,8 @@ function item_store($arr,$force_parent = false) {
$arr['origin'] = ((x($arr,'origin')) ? intval($arr['origin']) : 0 );
$arr['guid'] = ((x($arr,'guid')) ? notags(trim($arr['guid'])) : get_guid());
$arr['thr-parent'] = $arr['parent-uri'];
if($arr['parent-uri'] === $arr['uri']) {
$parent_id = 0;
$parent_deleted = 0;
@ -882,9 +953,8 @@ function item_store($arr,$force_parent = false) {
// and re-attach to the conversation parent.
if($r[0]['uri'] != $r[0]['parent-uri']) {
$arr['thr-parent'] = $arr['parent-uri'];
$arr['parent-uri'] = $r[0]['parent-uri'];
$z = q("SELECT `id` FROM `item` WHERE `uri` = '%s' AND `parent-uri` = '%s' AND `uid` = %d
$z = q("SELECT * FROM `item` WHERE `uri` = '%s' AND `parent-uri` = '%s' AND `uid` = %d
ORDER BY `id` ASC LIMIT 1",
dbesc($r[0]['parent-uri']),
dbesc($r[0]['parent-uri']),
@ -924,7 +994,6 @@ function item_store($arr,$force_parent = false) {
if($force_parent) {
logger('item_store: $force_parent=true, reply converted to top-level post.');
$parent_id = 0;
$arr['thr-parent'] = $arr['parent-uri'];
$arr['parent-uri'] = $arr['uri'];
$arr['gravity'] = 0;
}
@ -1116,6 +1185,15 @@ function tag_deliver($uid,$item_id) {
// send a notification
// use a local photo if we have one
$r = q("select * from contact where uid = %d and nurl = '%s' limit 1",
intval($u[0]['uid']),
dbesc(normalise_link($item['author-link']))
);
$photo = (($r && count($r)) ? $r[0]['thumb'] : $item['author-avatar']);
require_once('include/enotify.php');
notification(array(
'type' => NOTIFY_TAGSELF,
@ -1128,11 +1206,16 @@ function tag_deliver($uid,$item_id) {
'link' => $a->get_baseurl() . '/display/' . $u[0]['nickname'] . '/' . $item['id'],
'source_name' => $item['author-name'],
'source_link' => $item['author-link'],
'source_photo' => $item['author-avatar'],
'source_photo' => $photo,
'verb' => ACTIVITY_TAG,
'otype' => 'item'
));
$arr = array('item' => $item, 'user' => $u[0], 'contact' => $r[0]);
call_hooks('tagged', $arr);
if((! $community_page) && (! $prvgroup))
return;
@ -1179,6 +1262,59 @@ function tag_deliver($uid,$item_id) {
function tgroup_check($uid,$item) {
$a = get_app();
$mention = false;
// check that the message originated elsewhere and is a top-level post
if(($item['wall']) || ($item['origin']) || ($item['uri'] != $item['parent-uri']))
return false;
$u = q("select * from user where uid = %d limit 1",
intval($uid)
);
if(! count($u))
return false;
$community_page = (($u[0]['page-flags'] == PAGE_COMMUNITY) ? true : false);
$prvgroup = (($u[0]['page-flags'] == PAGE_PRVGROUP) ? true : false);
$link = normalise_link($a->get_baseurl() . '/profile/' . $u[0]['nickname']);
// Diaspora uses their own hardwired link URL in @-tags
// instead of the one we supply with webfinger
$dlink = normalise_link($a->get_baseurl() . '/u/' . $u[0]['nickname']);
$cnt = preg_match_all('/[\@\!]\[url\=(.*?)\](.*?)\[\/url\]/ism',$item['body'],$matches,PREG_SET_ORDER);
if($cnt) {
foreach($matches as $mtch) {
if(link_compare($link,$mtch[1]) || link_compare($dlink,$mtch[1])) {
$mention = true;
logger('tgroup_check: mention found: ' . $mtch[2]);
}
}
}
if(! $mention)
return false;
if((! $community_page) && (! $prvgroup))
return false;
return true;
}
@ -1709,7 +1845,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
// Now process the feed
if($feed->get_item_quantity()) {
if($feed->get_item_quantity()) {
logger('consume_feed: feed item count = ' . $feed->get_item_quantity());
@ -1722,7 +1858,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
foreach($items as $item) {
$is_reply = false;
$is_reply = false;
$item_id = $item->get_id();
$rawthread = $item->get_item_tags( NAMESPACE_THREAD,'in-reply-to');
if(isset($rawthread[0]['attribs']['']['ref'])) {
@ -1735,12 +1871,17 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
if($pass == 1)
continue;
// not allowed to post
if($contact['rel'] == CONTACT_IS_FOLLOWER)
continue;
// Have we seen it? If not, import it.
$item_id = $item->get_id();
$datarray = get_atom_elements($feed,$item);
if((! x($datarray,'author-name')) && ($contact['network'] != NETWORK_DFRN))
$datarray['author-name'] = $contact['name'];
if((! x($datarray,'author-link')) && ($contact['network'] != NETWORK_DFRN))
@ -2010,6 +2151,14 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
$datarray['owner-avatar'] = $contact['thumb'];
}
// We've allowed "followers" to reach this point so we can decide if they are
// posting an @-tag delivery, which followers are allowed to do for certain
// page types. Now that we've parsed the post, let's check if it is legit. Otherwise ignore it.
if(($contact['rel'] == CONTACT_IS_FOLLOWER) && (! tgroup_check($importer['uid'],$datarray)))
continue;
$r = item_store($datarray);
continue;
@ -2041,6 +2190,121 @@ function local_delivery($importer,$data) {
$feed->enable_order_by_date(false);
$feed->init();
if($feed->error())
logger('local_delivery: Error parsing XML: ' . $feed->error());
// Check at the feed level for updated contact name and/or photo
$name_updated = '';
$new_name = '';
$photo_timestamp = '';
$photo_url = '';
$rawtags = $feed->get_feed_tags( NAMESPACE_DFRN, 'owner');
// Fallback should not be needed here. If it isn't DFRN it won't have DFRN updated tags
// if(! $rawtags)
// $rawtags = $feed->get_feed_tags( SIMPLEPIE_NAMESPACE_ATOM_10, 'author');
if($rawtags) {
$elems = $rawtags[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10];
if($elems['name'][0]['attribs'][NAMESPACE_DFRN]['updated']) {
$name_updated = $elems['name'][0]['attribs'][NAMESPACE_DFRN]['updated'];
$new_name = $elems['name'][0]['data'];
}
if((x($elems,'link')) && ($elems['link'][0]['attribs']['']['rel'] === 'photo') && ($elems['link'][0]['attribs'][NAMESPACE_DFRN]['updated'])) {
$photo_timestamp = datetime_convert('UTC','UTC',$elems['link'][0]['attribs'][NAMESPACE_DFRN]['updated']);
$photo_url = $elems['link'][0]['attribs']['']['href'];
}
}
if(($photo_timestamp) && (strlen($photo_url)) && ($photo_timestamp > $importer['avatar-date'])) {
logger('local_delivery: Updating photo for ' . $importer['name']);
require_once("Photo.php");
$photo_failure = false;
$have_photo = false;
$r = q("SELECT `resource-id` FROM `photo` WHERE `contact-id` = %d AND `uid` = %d LIMIT 1",
intval($importer['id']),
intval($importer['importer_uid'])
);
if(count($r)) {
$resource_id = $r[0]['resource-id'];
$have_photo = true;
}
else {
$resource_id = photo_new_resource();
}
$img_str = fetch_url($photo_url,true);
// guess mimetype from headers or filename
$type = guess_image_type($photo_url,true);
$img = new Photo($img_str, $type);
if($img->is_valid()) {
if($have_photo) {
q("DELETE FROM `photo` WHERE `resource-id` = '%s' AND `contact-id` = %d AND `uid` = %d",
dbesc($resource_id),
intval($importer['id']),
intval($importer['importer_uid'])
);
}
$img->scaleImageSquare(175);
$hash = $resource_id;
$r = $img->store($importer['importer_uid'], $importer['id'], $hash, basename($photo_url), 'Contact Photos', 4);
$img->scaleImage(80);
$r = $img->store($importer['importer_uid'], $importer['id'], $hash, basename($photo_url), 'Contact Photos', 5);
$img->scaleImage(48);
$r = $img->store($importer['importer_uid'], $importer['id'], $hash, basename($photo_url), 'Contact Photos', 6);
$a = get_app();
q("UPDATE `contact` SET `avatar-date` = '%s', `photo` = '%s', `thumb` = '%s', `micro` = '%s'
WHERE `uid` = %d AND `id` = %d LIMIT 1",
dbesc(datetime_convert()),
dbesc($a->get_baseurl() . '/photo/' . $hash . '-4.'.$img->getExt()),
dbesc($a->get_baseurl() . '/photo/' . $hash . '-5.'.$img->getExt()),
dbesc($a->get_baseurl() . '/photo/' . $hash . '-6.'.$img->getExt()),
intval($importer['importer_uid']),
intval($importer['id'])
);
}
}
if(($name_updated) && (strlen($new_name)) && ($name_updated > $importer['name-date'])) {
$r = q("select * from contact where uid = %d and id = %d limit 1",
intval($importer['importer_uid']),
intval($importer['id'])
);
$x = q("UPDATE `contact` SET `name` = '%s', `name-date` = '%s' WHERE `uid` = %d AND `id` = %d LIMIT 1",
dbesc(notags(trim($new_name))),
dbesc(datetime_convert()),
intval($importer['importer_uid']),
intval($importer['id'])
);
// do our best to update the name on content items
if(count($r)) {
q("update item set `author-name` = '%s' where `author-name` = '%s' and `author-link` = '%s' and uid = %d",
dbesc(notags(trim($new_name))),
dbesc($r[0]['name']),
dbesc($r[0]['url']),
intval($importer['importer_uid'])
);
}
}
/*
// Currently unsupported - needs a lot of work
$reloc = $feed->get_feed_tags( NAMESPACE_DFRN, 'relocate' );
@ -2280,6 +2544,7 @@ function local_delivery($importer,$data) {
$is_a_remote_delete = false;
// POSSIBLE CLEANUP --> Why select so many fields when only forum_mode and wall are used?
$r = q("select `item`.`id`, `item`.`uri`, `item`.`tag`, `item`.`forum_mode`,`item`.`origin`,`item`.`wall`,
`contact`.`name`, `contact`.`url`, `contact`.`thumb` from `item`
LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
@ -2293,7 +2558,7 @@ function local_delivery($importer,$data) {
intval($importer['importer_uid'])
);
if($r && count($r))
$is_a_remote_delete = true;
$is_a_remote_delete = true;
// Does this have the characteristics of a community or private group comment?
// If it's a reply to a wall post on a community/prvgroup page it's a
@ -2437,22 +2702,32 @@ function local_delivery($importer,$data) {
// Specifically, the recipient?
$is_a_remote_comment = false;
// POSSIBLE CLEANUP --> Why select so many fields when only forum_mode and wall are used?
$r = q("select `item`.`id`, `item`.`uri`, `item`.`tag`, `item`.`forum_mode`,`item`.`origin`,`item`.`wall`,
`contact`.`name`, `contact`.`url`, `contact`.`thumb` from `item`
LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
WHERE `item`.`uri` = '%s' AND (`item`.`parent-uri` = '%s' or `item`.`thr-parent` = '%s')
AND `item`.`uid` = %d
$sql_extra
$top_uri = $parent_uri;
$r = q("select `item`.`parent-uri` from `item`
WHERE `item`.`uri` = '%s'
LIMIT 1",
dbesc($parent_uri),
dbesc($parent_uri),
dbesc($parent_uri),
intval($importer['importer_uid'])
dbesc($parent_uri)
);
if($r && count($r))
$is_a_remote_comment = true;
if($r && count($r)) {
$top_uri = $r[0]['parent-uri'];
// POSSIBLE CLEANUP --> Why select so many fields when only forum_mode and wall are used?
$r = q("select `item`.`id`, `item`.`uri`, `item`.`tag`, `item`.`forum_mode`,`item`.`origin`,`item`.`wall`,
`contact`.`name`, `contact`.`url`, `contact`.`thumb` from `item`
LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
WHERE `item`.`uri` = '%s' AND (`item`.`parent-uri` = '%s' or `item`.`thr-parent` = '%s')
AND `item`.`uid` = %d
$sql_extra
LIMIT 1",
dbesc($top_uri),
dbesc($top_uri),
dbesc($top_uri),
intval($importer['importer_uid'])
);
if($r && count($r))
$is_a_remote_comment = true;
}
// Does this have the characteristics of a community or private group comment?
// If it's a reply to a wall post on a community/prvgroup page it's a
@ -2506,15 +2781,6 @@ function local_delivery($importer,$data) {
}
// TODO: make this next part work against both delivery threads of a community post
// if((! link_compare($datarray['author-link'],$importer['url'])) && (! $community)) {
// logger('local_delivery: received relay claiming to be from ' . $importer['url'] . ' however comment author url is ' . $datarray['author-link'] );
// they won't know what to do so don't report an error. Just quietly die.
// return 0;
// }
// our user with $importer['importer_uid'] is the owner
$own = q("select name,url,thumb from contact where uid = %d and self = 1 limit 1",
intval($importer['importer_uid'])
@ -2584,26 +2850,19 @@ function local_delivery($importer,$data) {
}
}
// if($community) {
// $newtag = '@[url=' . $a->get_baseurl() . '/profile/' . $importer['nickname'] . ']' . $importer['username'] . '[/url]';
// if(! stristr($datarray['tag'],$newtag)) {
// if(strlen($datarray['tag']))
// $datarray['tag'] .= ',';
// $datarray['tag'] .= $newtag;
// }
// }
$posted_id = item_store($datarray);
$parent = 0;
if($posted_id) {
$r = q("SELECT `parent` FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1",
$r = q("SELECT `parent`, `parent-uri` FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($posted_id),
intval($importer['importer_uid'])
);
if(count($r))
if(count($r)) {
$parent = $r[0]['parent'];
$parent_uri = $r[0]['parent-uri'];
}
if(! $is_like) {
$r1 = q("UPDATE `item` SET `last-child` = 0, `changed` = '%s' WHERE `uid` = %d AND `parent` = %d",
@ -2620,7 +2879,7 @@ function local_delivery($importer,$data) {
}
if($posted_id && $parent) {
proc_run('php',"include/notifier.php","comment-import","$posted_id");
if((! $is_like) && (! $importer['self'])) {
@ -2643,7 +2902,7 @@ function local_delivery($importer,$data) {
'verb' => ACTIVITY_POST,
'otype' => 'item',
'parent' => $parent,
'parent_uri' => $parent_uri,
));
}
@ -2660,6 +2919,9 @@ function local_delivery($importer,$data) {
$item_id = $item->get_id();
$datarray = get_atom_elements($feed,$item);
if($importer['rel'] == CONTACT_IS_FOLLOWER)
continue;
$r = q("SELECT `uid`, `last-child`, `edited`, `body` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
dbesc($item_id),
intval($importer['importer_uid'])
@ -2754,7 +3016,7 @@ function local_delivery($importer,$data) {
if(!x($datarray['type']) || $datarray['type'] != 'activity') {
$myconv = q("SELECT `author-link`, `author-avatar`, `parent` FROM `item` WHERE `parent-uri` = '%s' AND `uid` = %d AND `parent` != 0 AND `deleted` = 0",
dbesc($parent_uri),
dbesc($top_uri),
intval($importer['importer_uid'])
);
@ -2792,6 +3054,7 @@ function local_delivery($importer,$data) {
'verb' => ACTIVITY_POST,
'otype' => 'item',
'parent' => $conv_parent,
'parent_uri' => $parent_uri
));
@ -2881,7 +3144,8 @@ function local_delivery($importer,$data) {
$datarray['uid'] = $importer['importer_uid'];
$datarray['contact-id'] = $importer['id'];
if(! link_compare($datarray['owner-link'],$contact['url'])) {
if(! link_compare($datarray['owner-link'],$importer['url'])) {
// The item owner info is not our contact. It's OK and is to be expected if this is a tgroup delivery,
// but otherwise there's a possible data mixup on the sender's system.
// the tgroup delivery code called from item_store will correct it if it's a forum,
@ -2892,7 +3156,60 @@ function local_delivery($importer,$data) {
$datarray['owner-avatar'] = $importer['thumb'];
}
$r = item_store($datarray);
if(($importer['rel'] == CONTACT_IS_FOLLOWER) && (! tgroup_check($importer['importer_uid'],$datarray)))
continue;
$posted_id = item_store($datarray);
if(stristr($datarray['verb'],ACTIVITY_POKE)) {
$verb = urldecode(substr($datarray['verb'],strpos($datarray['verb'],'#')+1));
if(! $verb)
continue;
$xo = parse_xml_string($datarray['object'],false);
if(($xo->type == ACTIVITY_OBJ_PERSON) && ($xo->id)) {
// somebody was poked/prodded. Was it me?
$links = parse_xml_string("<links>".unxmlify($xo->link)."</links>",false);
foreach($links->link as $l) {
$atts = $l->attributes();
switch($atts['rel']) {
case "alternate":
$Blink = $atts['href'];
break;
default:
break;
}
}
if($Blink && link_compare($Blink,$a->get_baseurl() . '/profile/' . $importer['nickname'])) {
// send a notification
require_once('include/enotify.php');
notification(array(
'type' => NOTIFY_POKE,
'notify_flags' => $importer['notify-flags'],
'language' => $importer['language'],
'to_name' => $importer['username'],
'to_email' => $importer['email'],
'uid' => $importer['importer_uid'],
'item' => $datarray,
'link' => $a->get_baseurl() . '/display/' . $importer['nickname'] . '/' . $posted_id,
'source_name' => stripslashes($datarray['author-name']),
'source_link' => $datarray['author-link'],
'source_photo' => ((link_compare($datarray['author-link'],$importer['url']))
? $importer['thumb'] : $datarray['author-avatar']),
'verb' => $datarray['verb'],
'otype' => 'person',
'activity' => $verb,
));
}
}
}
continue;
}
}
@ -3100,7 +3417,6 @@ function atom_entry($item,$type,$author,$owner,$comment = false,$cid = 0) {
else
$body = $item['body'];
$o = "\r\n\r\n<entry>\r\n";
if(is_array($author))
@ -3110,7 +3426,7 @@ function atom_entry($item,$type,$author,$owner,$comment = false,$cid = 0) {
if(strlen($item['owner-name']))
$o .= atom_author('dfrn:owner',$item['owner-name'],$item['owner-link'],80,80,$item['owner-avatar']);
if(($item['parent'] != $item['id']) || ($item['parent-uri'] !== $item['uri']) || ($item['thr-parent'])) {
if(($item['parent'] != $item['id']) || ($item['parent-uri'] !== $item['uri']) || (($item['thr-parent'] !== '') && ($item['thr-parent'] !== $item['uri']))) {
$parent_item = (($item['thr-parent']) ? $item['thr-parent'] : $item['parent-uri']);
$o .= '<thr:in-reply-to ref="' . xmlify($parent_item) . '" type="text/html" href="' . xmlify($a->get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['parent']) . '" />' . "\r\n";
}
@ -3469,10 +3785,23 @@ function drop_item($id,$interactive = true) {
$owner = $item['uid'];
$cid = 0;
// check if logged in user is either the author or owner of this item
if((local_user() == $item['uid']) || (remote_user() == $item['contact-id'])) {
if(is_array($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $visitor) {
if($visitor['uid'] == $item['uid'] && $visitor['cid'] == $item['contact-id']) {
$cid = $visitor['cid'];
break;
}
}
}
if((local_user() == $item['uid']) || ($cid) || (! $interactive)) {
logger('delete item: ' . $item['id'], LOGGER_DEBUG);
// delete the item
$r = q("UPDATE `item` SET `deleted` = 1, `title` = '', `body` = '', `edited` = '%s', `changed` = '%s' WHERE `id` = %d LIMIT 1",
@ -3572,10 +3901,10 @@ function drop_item($id,$interactive = true) {
// send the notification upstream/downstream as the case may be
proc_run('php',"include/notifier.php","drop","$drop_id");
if(! $interactive)
return $owner;
proc_run('php',"include/notifier.php","drop","$drop_id");
goaway($a->get_baseurl() . '/' . $_SESSION['return_url']);
//NOTREACHED
}
@ -3657,7 +3986,6 @@ function posted_date_widget($url,$uid,$wall) {
return $o;
}
function store_diaspora_retract_sig($item, $user, $baseurl) {
// Note that we can't add a target_author_signature
// if the comment was deleted by a remote user. That should be ok, because if a remote user is deleting
@ -3683,7 +4011,7 @@ function store_diaspora_retract_sig($item, $user, $baseurl) {
}
else {
$r = q("SELECT `nick`, `url` FROM `contact` WHERE `id` = '%d' LIMIT 1",
$item['contact-id']
$item['contact-id'] // If this function gets called, drop_item() has already checked remote_user() == $item['contact-id']
);
if(count($r)) {
// The below handle only works for NETWORK_DFRN. I think that's ok, because this function

View file

@ -73,5 +73,3 @@ function unlock_function($fn_name) {
return;
}}
?>

View file

@ -686,6 +686,10 @@ class Markdownify {
# [1]: mailto:mail@example.com Title
$tag['href'] = 'mailto:'.$bufferDecoded;
}
$this->out('['.$buffer.']('.$tag['href'].' "'.$tag['title'].'")', true);
/*
# [This link][id]
foreach ($this->stack['a'] as $tag2) {
if ($tag2['href'] == $tag['href'] && $tag2['title'] === $tag['title']) {
@ -699,6 +703,7 @@ class Markdownify {
}
$this->out('['.$buffer.']['.$tag['linkID'].']', true);
*/
}
}
/**
@ -735,6 +740,13 @@ class Markdownify {
$this->parser->tagAttributes['src'] = $this->decode($this->parser->tagAttributes['src']);
}
// ![Alt text](/path/to/img.jpg "Optional title")
if ($this->parser->tagAttributes['title'] != "")
$this->out('!['.$this->parser->tagAttributes['alt'].']('.$this->parser->tagAttributes['src'].' "'.$this->parser->tagAttributes['title'].'")', true);
else
$this->out('!['.$this->parser->tagAttributes['alt'].']('.$this->parser->tagAttributes['src'].')', true);
/*
# [This link][id]
$link_id = false;
if (!empty($this->stack['a'])) {
@ -759,6 +771,7 @@ class Markdownify {
}
$this->out('!['.$this->parser->tagAttributes['alt'].']['.$link_id.']', true);
*/
}
/**
* handle <code> tags
@ -1181,4 +1194,4 @@ class Markdownify {
function parent() {
return end($this->parser->openTags);
}
}
}

View file

@ -14,15 +14,16 @@ function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accept_
return false;
@curl_setopt($ch, CURLOPT_HEADER, true);
if (!is_null($accept_content)){
curl_setopt($ch,CURLOPT_HTTPHEADER, array (
"Accept: " . $accept_content
));
}
@curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
@curl_setopt($ch, CURLOPT_USERAGENT, "Friendica");
//@curl_setopt($ch, CURLOPT_USERAGENT, "Friendica");
@curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; Friendica)");
if(intval($timeout)) {
@ -59,7 +60,6 @@ function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accept_
$base = $s;
$curl_info = @curl_getinfo($ch);
$http_code = $curl_info['http_code'];
// logger('fetch_url:' . $http_code . ' data: ' . $s);
$header = '';
@ -73,24 +73,22 @@ function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accept_
}
if($http_code == 301 || $http_code == 302 || $http_code == 303 || $http_code == 307) {
$matches = array();
preg_match('/(Location:|URI:)(.*?)\n/', $header, $matches);
$newurl = trim(array_pop($matches));
$matches = array();
preg_match('/(Location:|URI:)(.*?)\n/', $header, $matches);
$newurl = trim(array_pop($matches));
if(strpos($newurl,'/') === 0)
$newurl = $url . $newurl;
$url_parsed = @parse_url($newurl);
if (isset($url_parsed)) {
$redirects++;
return fetch_url($newurl,$binary,$redirects,$timeout);
}
}
$url_parsed = @parse_url($newurl);
if (isset($url_parsed)) {
$redirects++;
return fetch_url($newurl,$binary,$redirects,$timeout);
}
}
$a->set_curl_code($http_code);
$body = substr($s,strlen($header));
$a->set_curl_headers($header);
@curl_close($ch);
return($body);
}}
@ -800,8 +798,11 @@ function scale_external_images($s, $include_link = true, $scale_replace = false)
$a = get_app();
// Picture addresses can contain special characters
$s = htmlspecialchars_decode($s);
$matches = null;
$c = preg_match_all('/\[img\](.*?)\[\/img\]/ism',$s,$matches,PREG_SET_ORDER);
$c = preg_match_all('/\[img.*?\](.*?)\[\/img\]/ism',$s,$matches,PREG_SET_ORDER);
if($c) {
require_once('include/Photo.php');
foreach($matches as $mtch) {
@ -822,6 +823,12 @@ function scale_external_images($s, $include_link = true, $scale_replace = false)
$scaled = $mtch[1];
$i = fetch_url($scaled);
$cache = get_config('system','itemcache');
if (($cache != '') and is_dir($cache)) {
$cachefile = $cache."/".hash("md5", $scaled);
file_put_contents($cachefile, $i);
}
// guess mimetype from headers or filename
$type = guess_image_type($mtch[1],true);
@ -847,6 +854,10 @@ function scale_external_images($s, $include_link = true, $scale_replace = false)
}
}
}
// replace the special char encoding
$s = htmlspecialchars($s,ENT_QUOTES,'UTF-8');
return $s;
}

View file

@ -18,6 +18,31 @@ require_once('include/html2plain.php');
* us by hosting providers.
*/
/*
* The notifier is typically called with:
*
* proc_run('php', "include/notifier.php", COMMAND, ITEM_ID);
*
* where COMMAND is one of the following:
*
* activity (in diaspora.php, dfrn_confirm.php, profiles.php)
* comment-import (in diaspora.php, items.php)
* comment-new (in item.php)
* drop (in diaspora.php, items.php, photos.php)
* edit_post (in item.php)
* event (in events.php)
* expire (in items.php)
* like (in like.php, poke.php)
* mail (in message.php)
* suggest (in fsuggest.php)
* tag (in photos.php, poke.php, tagger.php)
* tgroup (in items.php)
* wall-new (in photos.php, item.php)
*
* and ITEM_ID is the id of the item in the database that needs to be sent to others.
*/
function notifier_run($argv, $argc){
global $a, $db;
@ -270,7 +295,7 @@ function notifier_run($argv, $argc){
// a delivery fork. private groups (forum_mode == 2) do not uplink
if((intval($parent['forum_mode']) == 1) && (! $top_level) && ($cmd !== 'uplink')) {
proc_run('php','include/notifier','uplink',$item_id);
proc_run('php','include/notifier.php','uplink',$item_id);
}
$conversants = array();
@ -555,9 +580,9 @@ function notifier_run($argv, $argc){
dbesc($nickname)
);
if(count($x)) {
if($owner['page-flags'] == PAGE_COMMUNITY && ! $x[0]['writable']) {
if($x && count($x)) {
$write_flag = ((($x[0]['rel']) && ($x[0]['rel'] != CONTACT_IS_SHARING)) ? true : false);
if((($owner['page-flags'] == PAGE_COMMUNITY) || ($write_flag)) && (! $x[0]['writable'])) {
q("update contact set writable = 1 where id = %d limit 1",
intval($x[0]['id'])
);

View file

@ -145,6 +145,7 @@ class FKOAuth1 extends OAuthServer {
}
$_SESSION['uid'] = $record['uid'];
$_SESSION['theme'] = $record['theme'];
$_SESSION['mobile-theme'] = get_pconfig($record['uid'], 'system', 'mobile_theme');
$_SESSION['authenticated'] = 1;
$_SESSION['page_flags'] = $record['page-flags'];
$_SESSION['my_url'] = $a->get_baseurl() . '/profile/' . $record['nickname'];

View file

@ -12,7 +12,9 @@ function oembed_replacecb($matches){
function oembed_fetch_url($embedurl){
$txt = Cache::get($embedurl);
$a = get_app();
$txt = Cache::get($a->videowidth . $embedurl);
// These media files should now be caught in bbcode.php
// left here as a fallback in case this is called from another source
@ -38,7 +40,7 @@ function oembed_fetch_url($embedurl){
$entries = $xpath->query("//link[@type='application/json+oembed']");
foreach($entries as $e){
$href = $e->getAttributeNode("href")->nodeValue;
$txt = fetch_url($href . '&maxwidth=425');
$txt = fetch_url($href . '&maxwidth=' . $a->videowidth);
break;
}
}
@ -47,7 +49,7 @@ function oembed_fetch_url($embedurl){
if ($txt==false || $txt==""){
// try oohembed service
$ourl = "http://oohembed.com/oohembed/?url=".urlencode($embedurl).'&maxwidth=425';
$ourl = "http://oohembed.com/oohembed/?url=".urlencode($embedurl).'&maxwidth=' . $a->videowidth;
$txt = fetch_url($ourl);
}
@ -55,7 +57,7 @@ function oembed_fetch_url($embedurl){
if ($txt[0]!="{") $txt='{"type":"error"}';
//save in cache
Cache::set($embedurl,$txt);
Cache::set($a->videowidth . $embedurl,$txt);
}
@ -114,7 +116,7 @@ function oembed_format_object($j){
if (isset($j->provider_name)) $ret.=" on ".$j->provider_name;
} else {
// add <a> for html2bbcode conversion
$ret .= "<a href='$embedurl' rel='oembed'/>";
$ret .= "<a href='$embedurl' rel='oembed'></a>";
}
$ret.="<br style='clear:left'></span>";
return mb_convert_encoding($ret, 'HTML-ENTITIES', mb_detect_encoding($ret));

View file

@ -275,7 +275,7 @@ function onepoll_run($argv, $argc){
openssl_private_decrypt(hex2bin($mailconf[0]['pass']),$password,$x[0]['prvkey']);
$mbox = email_connect($mailbox,$mailconf[0]['user'],$password);
unset($password);
logger("Mail: Connect");
logger("Mail: Connect to " . $mailconf[0]['user']);
if($mbox) {
q("UPDATE `mailacct` SET `last_check` = '%s' WHERE `id` = %d AND `uid` = %d LIMIT 1",
dbesc(datetime_convert()),
@ -289,20 +289,69 @@ function onepoll_run($argv, $argc){
$msgs = email_poll($mbox,$contact['addr']);
if(count($msgs)) {
logger("Mail: Parsing ".count($msgs)." mails.", LOGGER_DEBUG);
logger("Mail: Parsing ".count($msgs)." mails for ".$mailconf[0]['user'], LOGGER_DEBUG);
foreach($msgs as $msg_uid) {
$metas = email_msg_meta($mbox,implode(',',$msgs));
if(count($metas) != count($msgs)) {
logger("onepoll: for " . $mailconf[0]['user'] . " there are ". count($msgs) . " messages but received " . count($metas) . " metas", LOGGER_DEBUG);
break;
}
$msgs = array_combine($msgs, $metas);
foreach($msgs as $msg_uid => $meta) {
logger("Mail: Parsing mail ".$msg_uid, LOGGER_DATA);
$datarray = array();
$meta = email_msg_meta($mbox,$msg_uid);
$headers = email_msg_headers($mbox,$msg_uid);
// $meta = email_msg_meta($mbox,$msg_uid);
// $headers = email_msg_headers($mbox,$msg_uid);
// look for a 'references' header and try and match with a parent item we have locally.
$raw_refs = ((x($headers,'references')) ? str_replace("\t",'',$headers['references']) : '');
$datarray['uri'] = msgid2iri(trim($meta->message_id,'<>'));
// Have we seen it before?
$r = q("SELECT * FROM `item` WHERE `uid` = %d AND `uri` = '%s' LIMIT 1",
intval($importer_uid),
dbesc($datarray['uri'])
);
if(count($r)) {
logger("Mail: Seen before ".$msg_uid." for ".$mailconf[0]['user'],LOGGER_DEBUG);
if($meta->deleted && ! $r[0]['deleted']) {
q("UPDATE `item` SET `deleted` = 1, `changed` = '%s' WHERE `id` = %d LIMIT 1",
dbesc(datetime_convert()),
intval($r[0]['id'])
);
}
/*switch ($mailconf[0]['action']) {
case 0:
logger("Mail: Seen before ".$msg_uid." for ".$mailconf[0]['user'].". Doing nothing.", LOGGER_DEBUG);
break;
case 1:
logger("Mail: Deleting ".$msg_uid." for ".$mailconf[0]['user']);
imap_delete($mbox, $msg_uid, FT_UID);
break;
case 2:
logger("Mail: Mark as seen ".$msg_uid." for ".$mailconf[0]['user']);
imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
break;
case 3:
logger("Mail: Moving ".$msg_uid." to ".$mailconf[0]['movetofolder']." for ".$mailconf[0]['user']);
imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
if ($mailconf[0]['movetofolder'] != "")
imap_mail_move($mbox, $msg_uid, $mailconf[0]['movetofolder'], FT_UID);
break;
}*/
continue;
}
// look for a 'references' or an 'in-reply-to' header and try to match with a parent item we have locally.
// $raw_refs = ((x($headers,'references')) ? str_replace("\t",'',$headers['references']) : '');
$raw_refs = ((property_exists($meta,'references')) ? str_replace("\t",'',$meta->references) : '');
if(! trim($raw_refs))
$raw_refs = ((property_exists($meta,'in_reply_to')) ? str_replace("\t",'',$meta->in_reply_to) : '');
$raw_refs = trim($raw_refs); // Don't allow a blank reference in $refs_arr
if($raw_refs) {
$refs_arr = explode(' ', $raw_refs);
if(count($refs_arr)) {
@ -314,48 +363,14 @@ function onepoll_run($argv, $argc){
intval($importer_uid)
);
if(count($r))
$datarray['parent-uri'] = $r[0]['uri'];
$datarray['parent-uri'] = $r[0]['parent-uri']; // Set the parent as the top-level item
// $datarray['parent-uri'] = $r[0]['uri'];
}
if(! x($datarray,'parent-uri'))
$datarray['parent-uri'] = $datarray['uri'];
// Have we seen it before?
$r = q("SELECT * FROM `item` WHERE `uid` = %d AND `uri` = '%s' LIMIT 1",
intval($importer_uid),
dbesc($datarray['uri'])
);
if(count($r)) {
// logger("Mail: Seen before ".$msg_uid);
if($meta->deleted && ! $r[0]['deleted']) {
q("UPDATE `item` SET `deleted` = 1, `changed` = '%s' WHERE `id` = %d LIMIT 1",
dbesc(datetime_convert()),
intval($r[0]['id'])
);
}
switch ($mailconf[0]['action']) {
case 0:
break;
case 1:
logger("Mail: Deleting ".$msg_uid);
imap_delete($mbox, $msg_uid, FT_UID);
break;
case 2:
logger("Mail: Mark as seen ".$msg_uid);
imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
break;
case 3:
logger("Mail: Moving ".$msg_uid." to ".$mailconf[0]['movetofolder']);
imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
if ($mailconf[0]['movetofolder'] != "")
imap_mail_move($mbox, $msg_uid, $mailconf[0]['movetofolder'], FT_UID);
break;
}
continue;
}
// Decoding the header
$subject = imap_mime_header_decode($meta->subject);
$datarray['title'] = "";
@ -377,12 +392,12 @@ function onepoll_run($argv, $argc){
$r = email_get_msg($mbox,$msg_uid, $reply);
if(! $r) {
logger("Mail: can't fetch msg ".$msg_uid);
logger("Mail: can't fetch msg ".$msg_uid." for ".$mailconf[0]['user']);
continue;
}
$datarray['body'] = escape_tags($r['body']);
logger("Mail: Importing ".$msg_uid);
logger("Mail: Importing ".$msg_uid." for ".$mailconf[0]['user']);
// some mailing lists have the original author as 'from' - add this sender info to msg body.
// todo: adding a gravatar for the original author would be cool
@ -421,17 +436,18 @@ function onepoll_run($argv, $argc){
);
switch ($mailconf[0]['action']) {
case 0:
logger("Mail: Seen before ".$msg_uid." for ".$mailconf[0]['user'].". Doing nothing.", LOGGER_DEBUG);
break;
case 1:
logger("Mail: Deleting ".$msg_uid);
logger("Mail: Deleting ".$msg_uid." for ".$mailconf[0]['user']);
imap_delete($mbox, $msg_uid, FT_UID);
break;
case 2:
logger("Mail: Mark as seen ".$msg_uid);
logger("Mail: Mark as seen ".$msg_uid." for ".$mailconf[0]['user']);
imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
break;
case 3:
logger("Mail: Moving ".$msg_uid." to ".$mailconf[0]['movetofolder']);
logger("Mail: Moving ".$msg_uid." to ".$mailconf[0]['movetofolder']." for ".$mailconf[0]['user']);
imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
if ($mailconf[0]['movetofolder'] != "")
imap_mail_move($mbox, $msg_uid, $mailconf[0]['movetofolder'], FT_UID);

View file

@ -8,7 +8,7 @@ function uninstall_plugin($plugin){
q("DELETE FROM `addon` WHERE `name` = '%s' ",
dbesc($plugin)
);
@include_once('addon/' . $plugin . '/' . $plugin . '.php');
if(function_exists($plugin . '_uninstall')) {
$func = $plugin . '_uninstall';
@ -18,7 +18,6 @@ function uninstall_plugin($plugin){
if (! function_exists('install_plugin')){
function install_plugin($plugin) {
// silently fail if plugin was removed
if(! file_exists('addon/' . $plugin . '/' . $plugin . '.php'))
@ -77,7 +76,7 @@ function reload_plugins() {
$pl = trim($pl);
$fname = 'addon/' . $pl . '/' . $pl . '.php';
if(file_exists($fname)) {
$t = @filemtime($fname);
foreach($installed as $i) {
@ -111,7 +110,7 @@ function reload_plugins() {
if(! function_exists('register_hook')) {
function register_hook($hook,$file,$function) {
function register_hook($hook,$file,$function,$priority=0) {
$r = q("SELECT * FROM `hook` WHERE `hook` = '%s' AND `file` = '%s' AND `function` = '%s' LIMIT 1",
dbesc($hook),
@ -121,10 +120,11 @@ function register_hook($hook,$file,$function) {
if(count($r))
return true;
$r = q("INSERT INTO `hook` (`hook`, `file`, `function`) VALUES ( '%s', '%s', '%s' ) ",
$r = q("INSERT INTO `hook` (`hook`, `file`, `function`, `priority`) VALUES ( '%s', '%s', '%s', '%s' ) ",
dbesc($hook),
dbesc($file),
dbesc($function)
dbesc($function),
dbesc($priority)
);
return $r;
}}
@ -145,7 +145,7 @@ if(! function_exists('load_hooks')) {
function load_hooks() {
$a = get_app();
$a->hooks = array();
$r = q("SELECT * FROM `hook` WHERE 1");
$r = q("SELECT * FROM `hook` WHERE 1 ORDER BY `priority` DESC");
if(count($r)) {
foreach($r as $rr) {
if(! array_key_exists($rr['hook'],$a->hooks))
@ -255,6 +255,7 @@ function get_theme_info($theme){
'author' => array(),
'maintainer' => array(),
'version' => "",
'credits' => "",
'experimental' => false,
'unsupported' => false
);

View file

@ -161,7 +161,7 @@ function queue_run($argv, $argc){
case NETWORK_DIASPORA:
if($contact['notify']) {
logger('queue: diaspora_delivery: item ' . $q_item['id'] . ' for ' . $contact['name']);
$deliver_status = diaspora_transmit($owner,$contact,$data,$public);
$deliver_status = diaspora_transmit($owner,$contact,$data,$public,true);
if($deliver_status == (-1))
update_queue_time($q_item['id']);

81
include/redir.php Normal file
View file

@ -0,0 +1,81 @@
<?php
function auto_redir(&$a, $contact_nick) {
if((! $contact_nick) || ($contact_nick === $a->user['nickname']))
return;
if(local_user()) {
// We need to find out if $contact_nick is a user on this hub, and if so, if I
// am a contact of that user. However, that user may have other contacts with the
// same nickname as me on other hubs or other networks. Exclude these by requiring
// that the contact have a local URL. I will be the only person with my nickname at
// this URL, so if a result is found, then I am a contact of the $contact_nick user.
//
// We also have to make sure that I'm a legitimate contact--I'm not blocked or pending.
$baseurl = $a->get_baseurl();
$domain_st = strpos($baseurl, "://");
if($domain_st === false)
return;
$baseurl = substr($baseurl, $domain_st + 3);
$r = q("SELECT id FROM contact WHERE uid = ( SELECT uid FROM user WHERE nickname = '%s' LIMIT 1 )
AND nick = '%s' AND self = 0 AND url LIKE '%%%s%%' AND blocked = 0 AND pending = 0 LIMIT 1",
dbesc($contact_nick),
dbesc($a->user['nickname']),
dbesc($baseurl)
);
if((!$r) || (! count($r)) || $r[0]['id'] == remote_user())
return;
$r = q("SELECT * FROM contact WHERE nick = '%s'
AND network = '%s' AND uid = %d AND url LIKE '%%%s%%' LIMIT 1",
dbesc($contact_nick),
dbesc(NETWORK_DFRN),
intval(local_user()),
dbesc($baseurl)
);
if(! ($r && count($r)))
return;
$cid = $r[0]['id'];
$dfrn_id = $orig_id = (($r[0]['issued-id']) ? $r[0]['issued-id'] : $r[0]['dfrn-id']);
if($r[0]['duplex'] && $r[0]['issued-id']) {
$orig_id = $r[0]['issued-id'];
$dfrn_id = '1:' . $orig_id;
}
if($r[0]['duplex'] && $r[0]['dfrn-id']) {
$orig_id = $r[0]['dfrn-id'];
$dfrn_id = '0:' . $orig_id;
}
$sec = random_string();
q("INSERT INTO `profile_check` ( `uid`, `cid`, `dfrn_id`, `sec`, `expire`)
VALUES( %d, %s, '%s', '%s', %d )",
intval(local_user()),
intval($cid),
dbesc($dfrn_id),
dbesc($sec),
intval(time() + 45)
);
$url = curPageURL();
logger('auto_redir: ' . $r[0]['name'] . ' ' . $sec, LOGGER_DEBUG);
$dest = (($url) ? '&destination_url=' . $url : '');
goaway ($r[0]['poll'] . '?dfrn_id=' . $dfrn_id
. '&dfrn_version=' . DFRN_PROTOCOL_VERSION . '&type=profile&sec=' . $sec . $dest );
}
return;
}

View file

@ -6,6 +6,7 @@ function authenticate_success($user_record, $login_initial = false, $interactive
$_SESSION['uid'] = $user_record['uid'];
$_SESSION['theme'] = $user_record['theme'];
$_SESSION['mobile-theme'] = get_pconfig($user_record['uid'], 'system', 'mobile_theme');
$_SESSION['authenticated'] = 1;
$_SESSION['page_flags'] = $user_record['page-flags'];
$_SESSION['my_url'] = $a->get_baseurl() . '/profile/' . $user_record['nickname'];
@ -120,12 +121,26 @@ function can_write_wall(&$a,$owner) {
elseif($verified === 1)
return false;
else {
$cid = 0;
if(is_array($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $visitor) {
if($visitor['uid'] == $owner) {
$cid = $visitor['cid'];
break;
}
}
}
if(! $cid)
return false;
$r = q("SELECT `contact`.*, `user`.`page-flags` FROM `contact` LEFT JOIN `user` on `user`.`uid` = `contact`.`uid`
WHERE `contact`.`uid` = %d AND `contact`.`id` = %d AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
AND `user`.`blockwall` = 0 AND `readonly` = 0 AND ( `contact`.`rel` IN ( %d , %d ) OR `user`.`page-flags` = %d ) LIMIT 1",
intval($owner),
intval(remote_user()),
intval($cid),
intval(CONTACT_IS_SHARING),
intval(CONTACT_IS_FRIEND),
intval(PAGE_COMMUNITY)
@ -199,7 +214,7 @@ function permissions_sql($owner_id,$remote_verified = false,$groups = null) {
$gs .= '|<' . intval($g) . '>';
}
$sql = sprintf(
/*$sql = sprintf(
" AND ( allow_cid = '' OR allow_cid REGEXP '<%d>' )
AND ( deny_cid = '' OR NOT deny_cid REGEXP '<%d>' )
AND ( allow_gid = '' OR allow_gid REGEXP '%s' )
@ -209,6 +224,16 @@ function permissions_sql($owner_id,$remote_verified = false,$groups = null) {
intval($remote_user),
dbesc($gs),
dbesc($gs)
);*/
$sql = sprintf(
" AND ( NOT (deny_cid REGEXP '<%d>' OR deny_gid REGEXP '%s')
AND ( allow_cid REGEXP '<%d>' OR allow_gid REGEXP '%s' OR ( allow_cid = '' AND allow_gid = '') )
)
",
intval($remote_user),
dbesc($gs),
intval($remote_user),
dbesc($gs)
);
}
}
@ -346,3 +371,23 @@ function check_form_security_token_ForbiddenOnErr($typename = '', $formname = 'f
killme();
}
}
// Returns an array of group id's this contact is a member of.
// This array will only contain group id's related to the uid of this
// DFRN contact. They are *not* neccessarily unique across the entire site.
if(! function_exists('init_groups_visitor')) {
function init_groups_visitor($contact_id) {
$groups = array();
$r = q("SELECT `gid` FROM `group_member`
WHERE `contact-id` = %d ",
intval($contact_id)
);
if(count($r)) {
foreach($r as $rr)
$groups[] = $rr['gid'];
}
return $groups;
}}

View file

@ -229,7 +229,7 @@ function count_common_friends_zcid($uid,$zcid) {
}
function common_friends_zcid($uid,$zcid,$start = 0, $limit = 9999,$shuffle) {
function common_friends_zcid($uid,$zcid,$start = 0, $limit = 9999,$shuffle = false) {
if($shuffle)
$sql_extra = " order by rand() ";

View file

@ -63,7 +63,7 @@
if ($b[0]=="$") $b = $this->_get_var($b);
$val = ($a == $b);
} else if (strpos($args[2],"!=")>0){
list($a,$b) = explode("!=",$args[2]);
list($a,$b) = array_map("trim", explode("!=",$args[2]));
$a = $this->_get_var($a);
if ($b[0]=="$") $b = $this->_get_var($b);
$val = ($a != $b);
@ -133,6 +133,26 @@
return $ret;
}
/**
* DEBUG node
*
* {{ debug $var [$var [$var [...]]] }}{{ enddebug }}
*
* replace node with <pre>var_dump($var, $var, ...);</pre>
*/
private function _replcb_debug($args){
$vars = array_map('trim', explode(" ",$args[2]));
$vars[] = $args[1];
$ret = "<pre>";
foreach ($vars as $var){
$ret .= htmlspecialchars(var_export( $this->_get_var($var), true ));
$ret .= "\n";
}
$ret .= "</pre>";
return $ret;
}
private function _replcb_node($m) {
$node = $this->nodes[$m[1]];

View file

@ -70,7 +70,7 @@ function notags($string) {
if(! function_exists('escape_tags')) {
function escape_tags($string) {
return(htmlspecialchars($string));
return(htmlspecialchars($string, ENT_COMPAT, 'UTF-8', false));
}}
@ -280,6 +280,31 @@ function paginate(&$a) {
return $o;
}}
if(! function_exists('alt_pager')) {
function alt_pager(&$a, $i) {
$o = '';
$stripped = preg_replace('/(&page=[0-9]*)/','',$a->query_string);
$stripped = str_replace('q=','',$stripped);
$stripped = trim($stripped,'/');
$pagenum = $a->pager['page'];
$url = $a->get_baseurl() . '/' . $stripped;
$o .= '<div class="pager">';
if($a->pager['page']>1)
$o .= "<a href=\"$url"."&page=".($a->pager['page'] - 1).'">' . t('newer') . '</a>';
if($i>0) {
if($a->pager['page']>1)
$o .= "&nbsp;-&nbsp;";
$o .= "<a href=\"$url"."&page=".($a->pager['page'] + 1).'">' . t('older') . '</a>';
}
$o .= '</div>'."\r\n";
return $o;
}}
// Turn user/group ACLs stored as angle bracketed text into arrays
if(! function_exists('expand_acl')) {
@ -378,7 +403,7 @@ function load_view_file($s) {
return file_get_contents("$d/$lang/$b");
$theme = current_theme();
if(file_exists("$d/theme/$theme/$b"))
return file_get_contents("$d/theme/$theme/$b");
@ -479,6 +504,10 @@ function get_tags($s) {
$s = preg_replace('/\[code\](.*?)\[\/code\]/sm','',$s);
// ignore anything in a bbtag
$s = preg_replace('/\[(.*?)\]/sm','',$s);
// Match full names against @tags including the space between first and last
// We will look these up afterward to see if they are full names or not recognisable.
@ -681,6 +710,55 @@ function linkify($s) {
return($s);
}}
function get_poke_verbs() {
// index is present tense verb
// value is array containing past tense verb, translation of present, translation of past
$arr = array(
'poke' => array( 'poked', t('poke'), t('poked')),
'ping' => array( 'pinged', t('ping'), t('pinged')),
'prod' => array( 'prodded', t('prod'), t('prodded')),
'slap' => array( 'slapped', t('slap'), t('slapped')),
'finger' => array( 'fingered', t('finger'), t('fingered')),
'rebuff' => array( 'rebuffed', t('rebuff'), t('rebuffed')),
);
call_hooks('poke_verbs', $arr);
return $arr;
}
function get_mood_verbs() {
// index is present tense verb
// value is array containing past tense verb, translation of present, translation of past
$arr = array(
'happy' => t('happy'),
'sad' => t('sad'),
'mellow' => t('mellow'),
'tired' => t('tired'),
'perky' => t('perky'),
'angry' => t('angry'),
'stupefied' => t('stupified'),
'puzzled' => t('puzzled'),
'interested' => t('interested'),
'bitter' => t('bitter'),
'cheerful' => t('cheerful'),
'alive' => t('alive'),
'annoyed' => t('annoyed'),
'anxious' => t('anxious'),
'cranky' => t('cranky'),
'disturbed' => t('disturbed'),
'frustrated' => t('frustrated'),
'motivated' => t('motivated'),
'relaxed' => t('relaxed'),
'surprised' => t('surprised'),
);
call_hooks('mood_verbs', $arr);
return $arr;
}
/**
*
@ -748,7 +826,6 @@ function smilies($s, $sample = false) {
':facepalm',
':like',
':dislike',
'~friendika',
'~friendica'
);
@ -786,7 +863,6 @@ function smilies($s, $sample = false) {
'<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-facepalm.gif" alt=":facepalm" />',
'<img class="smiley" src="' . $a->get_baseurl() . '/images/like.gif" alt=":like" />',
'<img class="smiley" src="' . $a->get_baseurl() . '/images/dislike.gif" alt=":dislike" />',
'<a href="http://project.friendika.com">~friendika <img class="smiley" src="' . $a->get_baseurl() . '/images/friendika-16.png" alt="~friendika" /></a>',
'<a href="http://friendica.com">~friendica <img class="smiley" src="' . $a->get_baseurl() . '/images/friendica-16.png" alt="~friendica" /></a>'
);
@ -927,7 +1003,7 @@ function prepare_body($item,$attach = false) {
}
$title = ((strlen(trim($mtch[4]))) ? escape_tags(trim($mtch[4])) : escape_tags($mtch[1]));
$title .= ' ' . $mtch[2] . ' ' . t('bytes');
if((local_user() == $item['uid']) && $item['contact-id'] != $a->contact['id'])
if((local_user() == $item['uid']) && ($item['contact-id'] != $a->contact['id']) && ($item['network'] == NETWORK_DFRN))
$the_url = $a->get_baseurl() . '/redir/' . $item['contact-id'] . '?f=1&url=' . $mtch[1];
else
$the_url = $mtch[1];
@ -938,35 +1014,8 @@ function prepare_body($item,$attach = false) {
}
$s .= '<div class="clear"></div></div>';
}
$matches = false;
$cnt = preg_match_all('/<(.*?)>/',$item['file'],$matches,PREG_SET_ORDER);
if($cnt) {
// logger('prepare_text: categories: ' . print_r($matches,true), LOGGER_DEBUG);
foreach($matches as $mtch) {
if(strlen($x))
$x .= ',';
$x .= xmlify(file_tag_decode($mtch[1]))
. ((local_user() == $item['uid']) ? ' <a href="' . $a->get_baseurl() . '/filerm/' . $item['id'] . '?f=&cat=' . xmlify(file_tag_decode($mtch[1])) . '" title="' . t('remove') . '" >' . t('[remove]') . '</a>' : '');
}
if(strlen($x))
$s .= '<div class="categorytags"><span>' . t('Categories:') . ' </span>' . $x . '</div>';
}
$matches = false;
$x = '';
$cnt = preg_match_all('/\[(.*?)\]/',$item['file'],$matches,PREG_SET_ORDER);
if($cnt) {
// logger('prepare_text: filed_under: ' . print_r($matches,true), LOGGER_DEBUG);
foreach($matches as $mtch) {
if(strlen($x))
$x .= '&nbsp;&nbsp;&nbsp;';
$x .= xmlify(file_tag_decode($mtch[1])) . ' <a href="' . $a->get_baseurl() . '/filerm/' . $item['id'] . '?f=&term=' . xmlify(file_tag_decode($mtch[1])) . '" title="' . t('remove') . '" >' . t('[remove]') . '</a>';
}
if(strlen($x) && (local_user() == $item['uid']))
$s .= '<div class="filesavetags"><span>' . t('Filed under:') . ' </span>' . $x . '</div>';
}
// Look for spoiler
$spoilersearch = '<blockquote class="spoiler">';
@ -1020,6 +1069,73 @@ function prepare_text($text) {
}}
/**
* returns
* [
* //categories [
* {
* 'name': 'category name',
* 'removeurl': 'url to remove this category',
* 'first': 'is the first in this array? true/false',
* 'last': 'is the last in this array? true/false',
* } ,
* ....
* ],
* // folders [
* 'name': 'folder name',
* 'removeurl': 'url to remove this folder',
* 'first': 'is the first in this array? true/false',
* 'last': 'is the last in this array? true/false',
* } ,
* ....
* ]
* ]
*/
function get_cats_and_terms($item) {
$a = get_app();
$categories = array();
$folders = array();
$matches = false; $first = true;
$cnt = preg_match_all('/<(.*?)>/',$item['file'],$matches,PREG_SET_ORDER);
if($cnt) {
foreach($matches as $mtch) {
$categories[] = array(
'name' => xmlify(file_tag_decode($mtch[1])),
'url' => "#",
'removeurl' => ((local_user() == $item['uid'])?$a->get_baseurl() . '/filerm/' . $item['id'] . '?f=&cat=' . xmlify(file_tag_decode($mtch[1])):""),
'first' => $first,
'last' => false
);
$first = false;
}
}
if (count($categories)) $categories[count($categories)-1]['last'] = true;
if(local_user() == $item['uid']) {
$matches = false; $first = true;
$cnt = preg_match_all('/\[(.*?)\]/',$item['file'],$matches,PREG_SET_ORDER);
if($cnt) {
foreach($matches as $mtch) {
$folders[] = array(
'name' => xmlify(file_tag_decode($mtch[1])),
'url' => "#",
'removeurl' => ((local_user() == $item['uid'])?$a->get_baseurl() . '/filerm/' . $item['id'] . '?f=&term=' . xmlify(file_tag_decode($mtch[1])):""),
'first' => $first,
'last' => false
);
$first = false;
}
}
}
if (count($folders)) $folders[count($folders)-1]['last'] = true;
return array($categories, $folders);
}
/**
* return atom link elements for all of our hubs
*/
@ -1537,6 +1653,7 @@ function undo_post_tagging($s) {
function fix_mce_lf($s) {
$s = str_replace("\r\n","\n",$s);
// $s = str_replace("\n\n","\n",$s);
return $s;
}

View file

@ -277,6 +277,26 @@ function create_user($arr) {
require_once('include/group.php');
group_add($newuid, t('Friends'));
$r = q("SELECT id FROM `group` WHERE uid = %d AND name = '%s'",
intval($newuid),
dbesc(t('Friends'))
);
if($r && count($r)) {
$def_gid = $r[0]['id'];
q("UPDATE user SET def_gid = %d WHERE uid = %d",
intval($r[0]['id']),
intval($newuid)
);
}
if(get_config('system', 'newuser_private') && $def_gid) {
q("UPDATE user SET allow_gid = '%s' WHERE uid = %d",
dbesc("<" . $def_gid . ">"),
intval($newuid)
);
}
}
// if we have no OpenID photo try to look up an avatar

View file

@ -13,8 +13,10 @@
*/
require_once('boot.php');
require_once('object/BaseObject.php');
$a = new App;
BaseObject::set_app($a);
/**
*
@ -27,6 +29,8 @@ $install = ((file_exists('.htconfig.php') && filesize('.htconfig.php')) ? false
@include(".htconfig.php");
$lang = get_browser_language();
load_translation_table($lang);
@ -118,6 +122,12 @@ if(! x($_SESSION,'authenticated'))
$a->init_pagehead();
/**
* Build the page ending -- this is stuff that goes right before
* the closing </body> tag
*/
$a->init_page_end();
if(! x($_SESSION,'sysmsg'))
@ -358,6 +368,19 @@ if($a->module != 'install') {
$a->page['htmlhead'] = replace_macros($a->page['htmlhead'], array('$stylesheet' => current_theme_url()));
if($a->is_mobile || $a->is_tablet) {
if(isset($_SESSION['show-mobile']) && !$_SESSION['show-mobile']) {
$link = $a->get_baseurl() . '/toggle_mobile?address=' . curPageURL();
}
else {
$link = $a->get_baseurl() . '/toggle_mobile?off=1&address=' . curPageURL();
}
$a->page['footer'] = replace_macros(get_markup_template("toggle_mobile_footer.tpl"), array(
'$toggle_link' => $link,
'$toggle_text' => t('toggle mobile')
));
}
$page = $a->page;
$profile = $a->profile;

1
js/acl.min.js vendored Normal file
View file

@ -0,0 +1 @@
function ACL(e,t){that=this,that.url=e,that.kp_timer=null,t==undefined&&(t=[]),that.allow_cid=t[0]||[],that.allow_gid=t[1]||[],that.deny_cid=t[2]||[],that.deny_gid=t[3]||[],that.group_uids=[],that.nw=4,that.list_content=$("#acl-list-content"),that.item_tpl=unescape($(".acl-list-item[rel=acl-template]").html()),that.showall=$("#acl-showall"),t.length==0&&that.showall.addClass("selected"),that.showall.click(that.on_showall),$(".acl-button-show").live("click",that.on_button_show),$(".acl-button-hide").live("click",that.on_button_hide),$("#acl-search").keypress(that.on_search),$("#acl-wrapper").parents("form").submit(that.on_submit),that.get(0,100)}ACL.prototype.on_submit=function(){aclfileds=$("#acl-fields").html(""),$(that.allow_gid).each(function(e,t){aclfileds.append("<input type='hidden' name='group_allow[]' value='"+t+"'>")}),$(that.allow_cid).each(function(e,t){aclfileds.append("<input type='hidden' name='contact_allow[]' value='"+t+"'>")}),$(that.deny_gid).each(function(e,t){aclfileds.append("<input type='hidden' name='group_deny[]' value='"+t+"'>")}),$(that.deny_cid).each(function(e,t){aclfileds.append("<input type='hidden' name='contact_deny[]' value='"+t+"'>")})},ACL.prototype.search=function(){var e=$("#acl-search").val();that.list_content.html(""),that.get(0,100,e)},ACL.prototype.on_search=function(e){that.kp_timer&&clearTimeout(that.kp_timer),that.kp_timer=setTimeout(that.search,1e3)},ACL.prototype.on_showall=function(e){return e.preventDefault(),e.stopPropagation(),that.showall.hasClass("selected")?!1:(that.showall.addClass("selected"),that.allow_cid=[],that.allow_gid=[],that.deny_cid=[],that.deny_gid=[],that.update_view(),!1)},ACL.prototype.on_button_show=function(e){return e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation(),that.set_allow($(this).parent().attr("id")),!1},ACL.prototype.on_button_hide=function(e){return e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation(),that.set_deny($(this).parent().attr("id")),!1},ACL.prototype.set_allow=function(e){type=e[0],id=parseInt(e.substr(1));switch(type){case"g":that.allow_gid.indexOf(id)<0?that.allow_gid.push(id):that.allow_gid.remove(id),that.deny_gid.indexOf(id)>=0&&that.deny_gid.remove(id);break;case"c":that.allow_cid.indexOf(id)<0?that.allow_cid.push(id):that.allow_cid.remove(id),that.deny_cid.indexOf(id)>=0&&that.deny_cid.remove(id)}that.update_view()},ACL.prototype.set_deny=function(e){type=e[0],id=parseInt(e.substr(1));switch(type){case"g":that.deny_gid.indexOf(id)<0?that.deny_gid.push(id):that.deny_gid.remove(id),that.allow_gid.indexOf(id)>=0&&that.allow_gid.remove(id);break;case"c":that.deny_cid.indexOf(id)<0?that.deny_cid.push(id):that.deny_cid.remove(id),that.allow_cid.indexOf(id)>=0&&that.allow_cid.remove(id)}that.update_view()},ACL.prototype.update_view=function(){that.allow_gid.length==0&&that.allow_cid.length==0&&that.deny_gid.length==0&&that.deny_cid.length==0?(that.showall.addClass("selected"),$("#jot-perms-icon").removeClass("lock").addClass("unlock"),$("#jot-public").show(),$(".profile-jot-net input").attr("disabled",!1),typeof editor!="undefined"&&editor!=0&&$("#profile-jot-desc").html(ispublic)):(that.showall.removeClass("selected"),$("#jot-perms-icon").removeClass("unlock").addClass("lock"),$("#jot-public").hide(),$(".profile-jot-net input").attr("disabled","disabled"),$("#profile-jot-desc").html("&nbsp;")),$("#acl-list-content .acl-list-item").each(function(){$(this).removeClass("groupshow grouphide")}),$("#acl-list-content .acl-list-item").each(function(){itemid=$(this).attr("id"),type=itemid[0],id=parseInt(itemid.substr(1)),btshow=$(this).children(".acl-button-show").removeClass("selected"),bthide=$(this).children(".acl-button-hide").removeClass("selected");switch(type){case"g":var e="";that.allow_gid.indexOf(id)>=0&&(btshow.addClass("selected"),bthide.removeClass("selected"),e="groupshow"),that.deny_gid.indexOf(id)>=0&&(btshow.removeClass("selected"),bthide.addClass("selected"),e="grouphide"),$(that.group_uids[id]).each(function(t,n){e=="grouphide"&&$("#c"+n).removeClass("groupshow");if(e!=""){var r=$("#c"+n).attr("class");if(r==undefined)return!0;var i=r.indexOf("grouphide");i==-1&&$("#c"+n).addClass(e)}});break;case"c":that.allow_cid.indexOf(id)>=0&&(btshow.addClass("selected"),bthide.removeClass("selected")),that.deny_cid.indexOf(id)>=0&&(btshow.removeClass("selected"),bthide.addClass("selected"))}})},ACL.prototype.get=function(e,t,n){var r={start:e,count:t,search:n};$.ajax({type:"POST",url:that.url,data:r,dataType:"json",success:that.populate})},ACL.prototype.populate=function(e){var t=Math.ceil(e.tot/that.nw)*42;that.list_content.height(t),$(e.items).each(function(){html="<div class='acl-list-item {4} {5}' title='{6}' id='{2}{3}'>"+that.item_tpl+"</div>",html=html.format(this.photo,this.name,this.type,this.id,"",this.network,this.link),this.uids!=undefined&&(that.group_uids[this.id]=this.uids),that.list_content.append(html)}),that.update_view()};

6
js/ajaxupload.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View file

@ -17,7 +17,7 @@ var gArCountryInfo;
var gArStateInfo;
// NOTE:
// Some editors may exhibit problems viewing 2803 characters...
var sCountryString = "|Afghanistan|Albania|Algeria|American Samoa|Angola|Anguilla|Antartica|Antigua and Barbuda|Argentina|Armenia|Aruba|Ashmore and Cartier Island|Australia|Austria|Azerbaijan|Bahamas|Bahrain|Bangladesh|Barbados|Belarus|Belgium|Belize|Benin|Bermuda|Bhutan|Bolivia|Bosnia and Herzegovina|Botswana|Brazil|British Virgin Islands|Brunei|Bulgaria|Burkina Faso|Burma|Burundi|Cambodia|Cameroon|Canada|Cape Verde|Cayman Islands|Central African Republic|Chad|Chile|China|Christmas Island|Clipperton Island|Cocos (Keeling) Islands|Colombia|Comoros|Congo, Democratic Republic of the|Congo, Republic of the|Cook Islands|Costa Rica|Cote d'Ivoire|Croatia|Cuba|Cyprus|Czech Republic|Denmark|Djibouti|Dominica|Dominican Republic|Ecuador|Egypt|El Salvador|Equatorial Guinea|Eritrea|Estonia|Ethiopia|Europa Island|Falkland Islands (Islas Malvinas)|Faroe Islands|Fiji|Finland|France|French Guiana|French Polynesia|French Southern and Antarctic Lands|Gabon|Gambia, The|Gaza Strip|Georgia|Germany|Ghana|Gibraltar|Glorioso Islands|Greece|Greenland|Grenada|Guadeloupe|Guam|Guatemala|Guernsey|Guinea|Guinea-Bissau|Guyana|Haiti|Heard Island and McDonald Islands|Holy See (Vatican City)|Honduras|Hong Kong|Howland Island|Hungary|Iceland|India|Indonesia|Iran|Iraq|Ireland|Ireland, Northern|Israel|Italy|Jamaica|Jan Mayen|Japan|Jarvis Island|Jersey|Johnston Atoll|Jordan|Juan de Nova Island|Kazakhstan|Kenya|Kiribati|Korea, North|Korea, South|Kuwait|Kyrgyzstan|Laos|Latvia|Lebanon|Lesotho|Liberia|Libya|Liechtenstein|Lithuania|Luxembourg|Macau|Macedonia, Former Yugoslav Republic of|Madagascar|Malawi|Malaysia|Maldives|Mali|Malta|Man, Isle of|Marshall Islands|Martinique|Mauritania|Mauritius|Mayotte|Mexico|Micronesia, Federated States of|Midway Islands|Moldova|Monaco|Mongolia|Montserrat|Morocco|Mozambique|Namibia|Nauru|Nepal|Netherlands|Netherlands Antilles|New Caledonia|New Zealand|Nicaragua|Niger|Nigeria|Niue|Norfolk Island|Northern Mariana Islands|Norway|Oman|Pakistan|Palau|Panama|Papua New Guinea|Paraguay|Peru|Philippines|Pitcaim Islands|Poland|Portugal|Puerto Rico|Qatar|Reunion|Romainia|Russia|Rwanda|Saint Helena|Saint Kitts and Nevis|Saint Lucia|Saint Pierre and Miquelon|Saint Vincent and the Grenadines|Samoa|San Marino|Sao Tome and Principe|Saudi Arabia|Scotland|Senegal|Seychelles|Sierra Leone|Singapore|Slovakia|Slovenia|Solomon Islands|Somalia|South Africa|South Georgia and South Sandwich Islands|Spain|Spratly Islands|Sri Lanka|Sudan|Suriname|Svalbard|Swaziland|Sweden|Switzerland|Syria|Taiwan|Tajikistan|Tanzania|Thailand|Tobago|Toga|Tokelau|Tonga|Trinidad|Tunisia|Turkey|Turkmenistan|Tuvalu|Uganda|Ukraine|United Arab Emirates|United Kingdom|Uruguay|USA|Uzbekistan|Vanuatu|Venezuela|Vietnam|Virgin Islands|Wales|Wallis and Futuna|West Bank|Western Sahara|Yemen|Yugoslavia|Zambia|Zimbabwe|Friendicaland"
var sCountryString = "|Afghanistan|Albania|Algeria|American Samoa|Angola|Anguilla|Antartica|Antigua and Barbuda|Argentina|Armenia|Aruba|Ashmore and Cartier Island|Australia|Austria|Azerbaijan|Bahamas|Bahrain|Bangladesh|Barbados|Belarus|Belgium|Belize|Benin|Bermuda|Bhutan|Bolivia|Bosnia and Herzegovina|Botswana|Brazil|British Virgin Islands|Brunei|Bulgaria|Burkina Faso|Burma|Burundi|Cambodia|Cameroon|Canada|Cape Verde|Cayman Islands|Central African Republic|Chad|Chile|China|Christmas Island|Clipperton Island|Cocos (Keeling) Islands|Colombia|Comoros|Congo, Democratic Republic of the|Congo, Republic of the|Cook Islands|Costa Rica|Cote d'Ivoire|Croatia|Cuba|Cyprus|Czech Republic|Denmark|Djibouti|Dominica|Dominican Republic|Ecuador|Egypt|El Salvador|Equatorial Guinea|Eritrea|Estonia|Ethiopia|Europa Island|Falkland Islands (Islas Malvinas)|Faroe Islands|Fiji|Finland|France|French Guiana|French Polynesia|French Southern and Antarctic Lands|Gabon|Gambia, The|Gaza Strip|Georgia|Germany|Ghana|Gibraltar|Glorioso Islands|Greece|Greenland|Grenada|Guadeloupe|Guam|Guatemala|Guernsey|Guinea|Guinea-Bissau|Guyana|Haiti|Heard Island and McDonald Islands|Holy See (Vatican City)|Honduras|Hong Kong|Howland Island|Hungary|Iceland|India|Indonesia|Iran|Iraq|Ireland|Ireland, Northern|Israel|Italy|Jamaica|Jan Mayen|Japan|Jarvis Island|Jersey|Johnston Atoll|Jordan|Juan de Nova Island|Kazakhstan|Kenya|Kiribati|Korea, North|Korea, South|Kuwait|Kyrgyzstan|Laos|Latvia|Lebanon|Lesotho|Liberia|Libya|Liechtenstein|Lithuania|Luxembourg|Macau|Macedonia, Former Yugoslav Republic of|Madagascar|Malawi|Malaysia|Maldives|Mali|Malta|Man, Isle of|Marshall Islands|Martinique|Mauritania|Mauritius|Mayotte|Mexico|Micronesia, Federated States of|Midway Islands|Moldova|Monaco|Mongolia|Montserrat|Morocco|Mozambique|Namibia|Nauru|Nepal|Netherlands|Netherlands Antilles|New Caledonia|New Zealand|Nicaragua|Niger|Nigeria|Niue|Norfolk Island|Northern Mariana Islands|Norway|Oman|Pakistan|Palau|Panama|Papua New Guinea|Paraguay|Peru|Philippines|Pitcaim Islands|Poland|Portugal|Puerto Rico|Qatar|Reunion|Romania|Russia|Rwanda|Saint Helena|Saint Kitts and Nevis|Saint Lucia|Saint Pierre and Miquelon|Saint Vincent and the Grenadines|Samoa|San Marino|Sao Tome and Principe|Saudi Arabia|Scotland|Senegal|Seychelles|Sierra Leone|Singapore|Slovakia|Slovenia|Solomon Islands|Somalia|South Africa|South Georgia and South Sandwich Islands|Spain|Spratly Islands|Sri Lanka|Sudan|Suriname|Svalbard|Swaziland|Sweden|Switzerland|Syria|Taiwan|Tajikistan|Tanzania|Thailand|Tobago|Toga|Tokelau|Tonga|Trinidad|Tunisia|Turkey|Turkmenistan|Tuvalu|Uganda|Ukraine|United Arab Emirates|United Kingdom|Uruguay|USA|Uzbekistan|Vanuatu|Venezuela|Vietnam|Virgin Islands|Wales|Wallis and Futuna|West Bank|Western Sahara|Yemen|Yugoslavia|Zambia|Zimbabwe|Friendicaland"
var aStates = new Array();
aStates[0]="";
@ -275,7 +275,7 @@ aStates[249]="|'Adan|'Ataq|Abyan|Al Bayda'|Al Hudaydah|Al Jawf|Al Mahrah|Al Mahw
aStates[250]="|Kosovo|Montenegro|Serbia|Vojvodina";
aStates[251]="|Central|Copperbelt|Eastern|Luapula|Lusaka|North-Western|Northern|Southern|Western";
aStates[252]="|Bulawayo|Harare|ManicalandMashonaland Central|Mashonaland East|Mashonaland West|Masvingo|Matabeleland North|Matabeleland South|Midlands";
aStates[253]="|Self Hosted|Private Server|Architects Of Sleep|DFRN|Distributed Friend Network|Free-Beer.ch|Foojbook|Free-Haven|Friendica.eu|Friendika.me.4.it|Friendika - I Ask Questions|Frndc.com|Hikado|Hipatia|Hungerfreunde|Kaluguran Community|Kak Ste?|Karl.Markx.pm|Loozah Social Club|MyFriendica.net|MyFriendNetwork|Oi!|OpenMindSpace|Recolutionari.es|SPRACI|Sysfu Social Club|theshi.re|Tumpambae|Uzmiac|Other";
aStates[253]="|Self Hosted|Private Server|Architects Of Sleep|Chaos Friends|DFRN|Distributed Friend Network|ErrLock|Free-Beer.ch|Foojbook|Free-Haven|Friendica.eu|Friendika.me.4.it|Friendika - I Ask Questions|Frndc.com|Hikado|Hipatia|Hungerfreunde|Kaluguran Community|Kak Ste|Karl.Markx.pm|Loozah Social Club|MyFriendica.net|MyFriendNetwork|Oi!|OpenMindSpace|Optimistisch|Pplsnet|Recolutionari.es|SPRACI|Styliztique|Sysfu Social Club|theshi.re|Tumpambae|Uzmiac|Other";
/*
* gArCountryInfo
* (0) Country name

11
js/country.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View file

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

5
js/fk.autocomplete.min.js vendored Normal file
View file

@ -0,0 +1,5 @@
/**
* Friendica people autocomplete
*
* require jQuery, jquery.textareas
*/function ACPopup(e,t){this.idsel=-1,this.element=e,this.searchText="",this.ready=!0,this.kp_timer=!1,this.url=t;var n=530,r=130;if(typeof e.editorId=="undefined")style=$(e).offset(),n=$(e).width(),r=$(e).height();else{var i=e.getContainer();typeof i!="undefined"&&(style=$(i).offset(),n=$(i).width(),r=$(i).height())}style.top=style.top+r,style.width=n,style.position="absolute",style.display="none",this.cont=$("<div class='acpopup'></div>"),this.cont.css(style),$("body").append(this.cont)}function ContactAutocomplete(e,t){this.pattern=/@([^ \n]+)$/,this.popup=null;var n=this;$(e).unbind("keydown"),$(e).unbind("keyup"),$(e).keydown(function(e){n.popup!==null&&n.popup.onkey(e)}),$(e).keyup(function(e){cpos=$(this).getSelection(),cpos.start==cpos.end&&(match=$(this).val().substring(0,cpos.start).match(n.pattern),match!==null?(n.popup===null&&(n.popup=new ACPopup(this,t)),n.popup.ready&&match[1]!==n.popup.searchText&&n.popup.search(match[1]),n.popup.ready||(n.popup=null)):n.popup!==null&&(n.popup.close(),n.popup=null))})}ACPopup.prototype.close=function(){$(this.cont).remove(),this.ready=!1},ACPopup.prototype.search=function(e){var t=this;this.searchText=e,this.kp_timer&&clearTimeout(this.kp_timer),this.kp_timer=setTimeout(function(){t._search()},500)},ACPopup.prototype._search=function(){console.log("_search");var e=this,t={start:0,count:100,search:this.searchText,type:"c"};$.ajax({type:"POST",url:this.url,data:t,dataType:"json",success:function(t){e.cont.html(""),t.tot>0?(e.cont.show(),$(t.items).each(function(){html="<img src='{0}' height='16px' width='16px'>{1} ({2})".format(this.photo,this.name,this.nick),e.add(html,this.nick.replace(" ","")+"+"+this.id+" - "+this.link)})):e.cont.hide()}})},ACPopup.prototype.add=function(e,n){var r=this,i=$("<div class='acpopupitem' title='"+n+"'>"+e+"</div>");i.click(function(e){t=$(this).attr("title").replace(new RegExp(" - .*"),""),typeof r.element.container=="undefined"?(el=$(r.element),sel=el.getSelection(),sel.start=sel.start-r.searchText.length,el.setSelection(sel.start,sel.end).replaceSelectedText(t+" ").collapseSelection(!1),r.close()):(txt=tinyMCE.activeEditor.getContent(),newtxt=txt.replace(r.searchText,t+" "),tinyMCE.activeEditor.setContent(newtxt),tinyMCE.activeEditor.focus(),r.close())}),$(this.cont).append(i)},ACPopup.prototype.onkey=function(e){e.keyCode=="13"&&(this.idsel>-1?(this.cont.children()[this.idsel].click(),e.preventDefault()):this.close()),e.keyCode=="38"&&(cmax=this.cont.children().size()-1,this.idsel--,this.idsel<0&&(this.idsel=cmax),e.preventDefault());if(e.keyCode=="40"||e.keyCode=="9")cmax=this.cont.children().size()-1,this.idsel++,this.idsel>cmax&&(this.idsel=0),e.preventDefault();if(e.keyCode=="38"||e.keyCode=="40"||e.keyCode=="9")this.cont.children().removeClass("selected"),$(this.cont.children()[this.idsel]).addClass("selected");e.keyCode=="27"&&this.close()},function(e){e.fn.contact_autocomplete=function(e){this.each(function(){new ContactAutocomplete(this,e)})}}(jQuery);

6
js/jquery.htmlstream.min.js vendored Normal file
View file

@ -0,0 +1,6 @@
/* jQuery ajax stream plugin
* Version 0.1
* Copyright (C) 2009 Chris Tarquini
* Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License (http://creativecommons.org/licenses/by-sa/3.0/)
* Permissions beyond the scope of this license may be available by contacting petros000[at]hotmail.com.
*/(function(e){var t=e.ajax,n=e.get,r=e.post,i=!0;e.ajaxSetup({stream:!1,pollInterval:500}),e.enableAjaxStream=function(a){typeof a=="undefined"&&(a=!i),a?(e.ajax=s,e.get=o,e.post=u,i=!0):(e.ajax=t,e.get=n,e.post=r,i=!1)};var s=e.ajax=function(n){n=jQuery.extend(!0,n,jQuery.extend(!0,{},jQuery.ajaxSettings,n));if(n.stream){var r=0,i=0,s=null,o=0,u=!1,a=function(e){s=e,l()},f=function(){c("stream")},l=function(){u||(r=setTimeout(f,n.pollInterval))},c=function(t){typeof t=="undefined"&&(t="stream");if(s.status<3)return;var r=s.responseText;if(t=="stream"){if(r.length<=o){l();return}lastlength=r.length;if(i==r.length){l();return}}var u=r.substr(i);i=r.length,e.isFunction(n.OnDataRecieved)&&n.OnDataRecieved(u,t,s.responseText,s),s.status!=4&&l()},h=function(e,t){clearTimeout(r),u=!0,c(t)};if(e.isFunction(n.success)){var p=n.success;n.success=function(e,t){h(e,t),p(e,t)}}else n.success=h;if(e.isFunction(n.beforeSend)){var d=n.beforeSend;n.beforeSend=function(e){d(e),a(e)}}else n.beforeSend=a}t(n)},o=e.get=function(t,n,r,i,s){if(e.isFunction(n)){var o=r;r=n,e.isFunction(o)&&(s=o),n=null}e.isFunction(i)&&(s=i,i=undefined);var u=e.isFunction(s);return jQuery.ajax({type:"GET",url:t,data:n,success:r,dataType:i,stream:u,OnDataRecieved:s})},u=e.post=function(t,n,r,i,s){if(e.isFunction(n)){var o=r;r=n}e.isFunction(i)&&(s=i,i=undefined);var u=e.isFunction(s);return jQuery.ajax({type:"POST",url:t,data:n,success:r,dataType:i,stream:u,OnDataRecieved:s})}})(jQuery);

View file

@ -144,6 +144,29 @@
if(mail == 0) { mail = ''; $('#mail-update-li').removeClass('show') } else { $('#mail-update-li').addClass('show') }
$('#mail-update-li').html(mail);
var allevents = $(data).find('all-events').text();
if(allevents == 0) { allevents = ''; $('#allevents-update').removeClass('show') } else { $('#allevents-update').addClass('show') }
$('#allevents-update').html(allevents);
var alleventstoday = $(data).find('all-events-today').text();
if(alleventstoday == 0) { $('#allevents-update').removeClass('notif-allevents-today') } else { $('#allevents-update').addClass('notif-allevents-today') }
var events = $(data).find('events').text();
if(events == 0) { events = ''; $('#events-update').removeClass('show') } else { $('#events-update').addClass('show') }
$('#events-update').html(events);
var eventstoday = $(data).find('events-today').text();
if(eventstoday == 0) { $('#events-update').removeClass('notif-events-today') } else { $('#events-update').addClass('notif-events-today') }
var birthdays = $(data).find('birthdays').text();
if(birthdays == 0) {birthdays = ''; $('#birthdays-update').removeClass('show') } else { $('#birthdays-update').addClass('show') }
$('#birthdays-update').html(birthdays);
var birthdaystoday = $(data).find('birthdays-today').text();
if(birthdaystoday == 0) { $('#birthdays-update').removeClass('notif-birthdays-today') } else { $('#birthdays-update').addClass('notif-birthdays-today') }
var eNotif = $(data).find('notif')
if (eNotif.children("note").length==0){
@ -227,12 +250,13 @@
if($('#live-profile').length) { src = 'profile'; liveUpdate(); }
if($('#live-community').length) { src = 'community'; liveUpdate(); }
if($('#live-notes').length) { src = 'notes'; liveUpdate(); }
if($('#live-display').length) {
if($('#live-display').length) { src = 'display'; liveUpdate(); }
/* if($('#live-display').length) {
if(liking) {
liking = 0;
window.location.href=window.location.href
}
}
}*/
if($('#live-photos').length) {
if(liking) {
liking = 0;
@ -280,8 +304,7 @@
//});
// add a new thread
$('.tread-wrapper',data).each(function() {
$('.toplevel_item',data).each(function() {
var ident = $(this).attr('id');
if($('#' + ident).length == 0 && profile_page == 1) {
@ -291,10 +314,26 @@
$('#' + prev).after($(this));
}
else {
// Find out if the hidden comments are open, so we can keep it that way
// if a new comment has been posted
var id = $('.hide-comments-total', this).attr('id');
if(typeof id != 'undefined') {
id = id.split('-')[3];
var commentsOpen = $("#collapsed-comments-" + id).is(":visible");
}
$('img',this).each(function() {
$(this).attr('src',$(this).attr('dst'));
});
//vScroll = $(document).scrollTop();
$('html').height($('html').height());
$('#' + ident).replaceWith($(this));
if(typeof id != 'undefined') {
if(commentsOpen) showHideComments(id);
}
$('html').height('auto');
//$(document).scrollTop(vScroll);
}
prev = ident;
});
@ -357,12 +396,18 @@
function dolike(ident,verb) {
unpause();
$('#like-rotator-' + ident.toString()).show();
$.get('like/' + ident.toString() + '?verb=' + verb );
if(timer) clearTimeout(timer);
timer = setTimeout(NavUpdate,3000);
$.get('like/' + ident.toString() + '?verb=' + verb, NavUpdate );
liking = 1;
}
function dosubthread(ident) {
unpause();
$('#like-rotator-' + ident.toString()).show();
$.get('subthread/' + ident.toString(), NavUpdate );
liking = 1;
}
function dostar(ident) {
ident = ident.toString();
$('#like-rotator-' + ident).show();
@ -475,6 +520,19 @@
function showHideComments(id) {
if( $("#collapsed-comments-" + id).is(":visible")) {
$("#collapsed-comments-" + id).hide();
$("#hide-comments-" + id).html(window.showMore);
}
else {
$("#collapsed-comments-" + id).show();
$("#hide-comments-" + id).html(window.showFewer);
}
}
function preview_post() {
$("#jot-preview").val("1");
$("#jot-preview-content").show();
@ -641,7 +699,7 @@ Array.prototype.remove = function(item) {
function previewTheme(elm) {
theme = $(elm).val();
$.getJSON('pretheme?f=&theme=' + theme,function(data) {
$('#theme-preview').html('<div id="theme-desc">' + data.desc + '</div><a href="' + data.img + '"><img src="' + data.img + '" width="320" height="240" alt="' + theme + '" /></a>');
$('#theme-preview').html('<div id="theme-desc">' + data.desc + '</div><div id="theme-version">' + data.version + '</div><div id="theme-credits">' + data.credits + '</div><a href="' + data.img + '"><img src="' + data.img + '" width="320" height="240" alt="' + theme + '" /></a>');
});
}

1
js/main.min.js vendored Normal file

File diff suppressed because one or more lines are too long

6
js/webtoolkit.base64.min.js vendored Normal file
View file

@ -0,0 +1,6 @@
/**
*
* Base64 encode / decode
* http://www.webtoolkit.info/
*
**/var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(e){var t="",n,r,i,s,o,u,a,f=0;e=Base64._utf8_encode(e);while(f<e.length)n=e.charCodeAt(f++),r=e.charCodeAt(f++),i=e.charCodeAt(f++),s=n>>2,o=(n&3)<<4|r>>4,u=(r&15)<<2|i>>6,a=i&63,isNaN(r)?u=a=64:isNaN(i)&&(a=64),t=t+this._keyStr.charAt(s)+this._keyStr.charAt(o)+this._keyStr.charAt(u)+this._keyStr.charAt(a);return t},decode:function(e){var t="",n,r,i,s,o,u,a,f=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(f<e.length)s=this._keyStr.indexOf(e.charAt(f++)),o=this._keyStr.indexOf(e.charAt(f++)),u=this._keyStr.indexOf(e.charAt(f++)),a=this._keyStr.indexOf(e.charAt(f++)),n=s<<2|o>>4,r=(o&15)<<4|u>>2,i=(u&3)<<6|a,t+=String.fromCharCode(n),u!=64&&(t+=String.fromCharCode(r)),a!=64&&(t+=String.fromCharCode(i));return t=Base64._utf8_decode(t),t},_utf8_encode:function(e){e=e.replace(/\r\n/g,"\n");var t="";for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);r<128?t+=String.fromCharCode(r):r>127&&r<2048?(t+=String.fromCharCode(r>>6|192),t+=String.fromCharCode(r&63|128)):(t+=String.fromCharCode(r>>12|224),t+=String.fromCharCode(r>>6&63|128),t+=String.fromCharCode(r&63|128))}return t},_utf8_decode:function(e){var t="",n=0,r=c1=c2=0;while(n<e.length)r=e.charCodeAt(n),r<128?(t+=String.fromCharCode(r),n++):r>191&&r<224?(c2=e.charCodeAt(n+1),t+=String.fromCharCode((r&31)<<6|c2&63),n+=2):(c2=e.charCodeAt(n+1),c3=e.charCodeAt(n+2),t+=String.fromCharCode((r&15)<<12|(c2&63)<<6|c3&63),n+=3);return t}};

View file

@ -158,6 +158,8 @@ class HTML5_TreeBuilder {
if ($this->ignore_lf_token) $this->ignore_lf_token--;
$this->ignored = false;
$token['name'] = str_replace(':', '-', $token['name']);
// indenting is a little wonky, this can be changed later on
switch ($mode) {
@ -1429,7 +1431,7 @@ class HTML5_TreeBuilder {
case 'tbody': case 'td': case 'tfoot': case 'th': case 'thead': case 'tr':
// parse error
break;
/* A start tag token not covered by the previous entries */
default:
/* Reconstruct the active formatting elements, if any. */
@ -3038,7 +3040,7 @@ class HTML5_TreeBuilder {
private function insertElement($token, $append = true) {
$el = $this->dom->createElementNS(self::NS_HTML, $token['name']);
if (!empty($token['attr'])) {
foreach($token['attr'] as $attr) {

View file

@ -0,0 +1,221 @@
<?php
/**
* Mobile Detect
* $Id: Mobile_Detect.php 49 2012-06-06 20:46:30Z serbanghita@gmail.com $
*
* @usage require_once 'Mobile_Detect.php';
* $detect = new Mobile_Detect();
* $detect->isMobile() or $detect->isTablet()
*
* For more specific usage see the documentation navigate to:
* http://code.google.com/p/php-mobile-detect/wiki/Mobile_Detect
*
* @license http://www.opensource.org/licenses/mit-license.php The MIT License
*/
class Mobile_Detect {
protected $detectionRules;
protected $userAgent = null;
protected $accept = null;
// Assume the visitor has a desktop environment.
protected $isMobile = false;
protected $isTablet = false;
protected $phoneDeviceName = null;
protected $tabletDevicename = null;
protected $operatingSystemName = null;
protected $userAgentName = null;
// List of mobile devices (phones)
protected $phoneDevices = array(
'iPhone' => '(iPhone.*Mobile|iPod|iTunes)',
'BlackBerry' => 'BlackBerry|rim[0-9]+',
'HTC' => 'HTC|HTC.*(6800|8100|8900|A7272|S510e|C110e|Legend|Desire|T8282)|APX515CKT|Qtek9090|APA9292KT',
'Nexus' => 'Nexus One|Nexus S|Galaxy.*Nexus|Android.*Nexus',
'Dell' => 'Dell.*Streak|Dell.*Aero|Dell.*Venue|DELL.*Venue Pro|Dell Flash|Dell Smoke|Dell Mini 3iX|XCD28|XCD35',
'Motorola' => '\bDroid\b.*Build|DROIDX|HRI39|MOT\-|A1260|A1680|A555|A853|A855|A953|A955|A956|Motorola.*ELECTRIFY|Motorola.*i1|i867|i940|MB200|MB300|MB501|MB502|MB508|MB511|MB520|MB525|MB526|MB611|MB612|MB632|MB810|MB855|MB860|MB861|MB865|MB870|ME501|ME502|ME511|ME525|ME600|ME632|ME722|ME811|ME860|ME863|ME865|MT620|MT710|MT716|MT720|MT810|MT870|MT917|Motorola.*TITANIUM|WX435|WX445|XT300|XT301|XT311|XT316|XT317|XT319|XT320|XT390|XT502|XT530|XT531|XT532|XT535|XT603|XT610|XT611|XT615|XT681|XT701|XT702|XT711|XT720|XT800|XT806|XT860|XT862|XT875|XT882|XT883|XT894|XT909|XT910|XT912|XT928',
'Samsung' => 'Samsung|BGT-S5230|GT-B2100|GT-B2700|GT-B2710|GT-B3210|GT-B3310|GT-B3410|GT-B3730|GT-B3740|GT-B5510|GT-B5512|GT-B5722|GT-B6520|GT-B7300|GT-B7320|GT-B7330|GT-B7350|GT-B7510|GT-B7722|GT-B7800|GT-C3010|GT-C3011|GT-C3060|GT-C3200|GT-C3212|GT-C3212I|GT-C3222|GT-C3300|GT-C3300K|GT-C3303|GT-C3303K|GT-C3310|GT-C3322|GT-C3330|GT-C3350|GT-C3500|GT-C3510|GT-C3530|GT-C3630|GT-C3780|GT-C5010|GT-C5212|GT-C6620|GT-C6625|GT-C6712|GT-E1050|GT-E1070|GT-E1075|GT-E1080|GT-E1081|GT-E1085|GT-E1087|GT-E1100|GT-E1107|GT-E1110|GT-E1120|GT-E1125|GT-E1130|GT-E1160|GT-E1170|GT-E1175|GT-E1180|GT-E1182|GT-E1200|GT-E1210|GT-E1225|GT-E1230|GT-E1390|GT-E2100|GT-E2120|GT-E2121|GT-E2152|GT-E2220|GT-E2222|GT-E2230|GT-E2232|GT-E2250|GT-E2370|GT-E2550|GT-E2652|GT-E3210|GT-E3213|GT-I5500|GT-I5503|GT-I5700|GT-I5800|GT-I5801|GT-I6410|GT-I6420|GT-I7110|GT-I7410|GT-I7500|GT-I8000|GT-I8150|GT-I8160|GT-I8320|GT-I8330|GT-I8350|GT-I8530|GT-I8700|GT-I8703|GT-I8910|GT-I9000|GT-I9001|GT-I9003|GT-I9010|GT-I9020|GT-I9023|GT-I9070|GT-I9100|GT-I9103|GT-I9220|GT-I9250|GT-I9300|GT-I9300 |GT-M3510|GT-M5650|GT-M7500|GT-M7600|GT-M7603|GT-M8800|GT-M8910|GT-N7000|GT-P6810|GT-P7100|GT-S3110|GT-S3310|GT-S3350|GT-S3353|GT-S3370|GT-S3650|GT-S3653|GT-S3770|GT-S3850|GT-S5210|GT-S5220|GT-S5229|GT-S5230|GT-S5233|GT-S5250|GT-S5253|GT-S5260|GT-S5263|GT-S5270|GT-S5300|GT-S5330|GT-S5350|GT-S5360|GT-S5363|GT-S5369|GT-S5380|GT-S5380D|GT-S5560|GT-S5570|GT-S5600|GT-S5603|GT-S5610|GT-S5620|GT-S5660|GT-S5670|GT-S5690|GT-S5750|GT-S5780|GT-S5830|GT-S5839|GT-S6102|GT-S6500|GT-S7070|GT-S7200|GT-S7220|GT-S7230|GT-S7233|GT-S7250|GT-S7500|GT-S7530|GT-S7550|GT-S8000|GT-S8003|GT-S8500|GT-S8530|GT-S8600|SCH-A310|SCH-A530|SCH-A570|SCH-A610|SCH-A630|SCH-A650|SCH-A790|SCH-A795|SCH-A850|SCH-A870|SCH-A890|SCH-A930|SCH-A950|SCH-A970|SCH-A990|SCH-I100|SCH-I110|SCH-I400|SCH-I405|SCH-I500|SCH-I510|SCH-I515|SCH-I600|SCH-I730|SCH-I760|SCH-I770|SCH-I830|SCH-I910|SCH-I920|SCH-LC11|SCH-N150|SCH-N300|SCH-R100|SCH-R300|SCH-R351|SCH-R400|SCH-R410|SCH-T300|SCH-U310|SCH-U320|SCH-U350|SCH-U360|SCH-U365|SCH-U370|SCH-U380|SCH-U410|SCH-U430|SCH-U450|SCH-U460|SCH-U470|SCH-U490|SCH-U540|SCH-U550|SCH-U620|SCH-U640|SCH-U650|SCH-U660|SCH-U700|SCH-U740|SCH-U750|SCH-U810|SCH-U820|SCH-U900|SCH-U940|SCH-U960|SCS-26UC|SGH-A107|SGH-A117|SGH-A127|SGH-A137|SGH-A157|SGH-A167|SGH-A177|SGH-A187|SGH-A197|SGH-A227|SGH-A237|SGH-A257|SGH-A437|SGH-A517|SGH-A597|SGH-A637|SGH-A657|SGH-A667|SGH-A687|SGH-A697|SGH-A707|SGH-A717|SGH-A727|SGH-A737|SGH-A747|SGH-A767|SGH-A777|SGH-A797|SGH-A817|SGH-A827|SGH-A837|SGH-A847|SGH-A867|SGH-A877|SGH-A887|SGH-A897|SGH-A927|SGH-B100|SGH-B130|SGH-B200|SGH-B220|SGH-C100|SGH-C110|SGH-C120|SGH-C130|SGH-C140|SGH-C160|SGH-C170|SGH-C180|SGH-C200|SGH-C207|SGH-C210|SGH-C225|SGH-C230|SGH-C417|SGH-C450|SGH-D307|SGH-D347|SGH-D357|SGH-D407|SGH-D415|SGH-D780|SGH-D807|SGH-D980|SGH-E105|SGH-E200|SGH-E315|SGH-E316|SGH-E317|SGH-E335|SGH-E590|SGH-E635|SGH-E715|SGH-E890|SGH-F300|SGH-F480|SGH-I200|SGH-I300|SGH-I320|SGH-I550|SGH-I577|SGH-I600|SGH-I607|SGH-I617|SGH-I627|SGH-I637|SGH-I677|SGH-I700|SGH-I717|SGH-I727|SGH-I777|SGH-I780|SGH-I827|SGH-I847|SGH-I857|SGH-I896|SGH-I897|SGH-I900|SGH-I907|SGH-I917|SGH-I927|SGH-I937|SGH-I997|SGH-J150|SGH-J200|SGH-L170|SGH-L700|SGH-M110|SGH-M150|SGH-M200|SGH-N105|SGH-N500|SGH-N600|SGH-N620|SGH-N625|SGH-N700|SGH-N710|SGH-P107|SGH-P207|SGH-P300|SGH-P310|SGH-P520|SGH-P735|SGH-P777|SGH-Q105|SGH-R210|SGH-R220|SGH-R225|SGH-S105|SGH-S307|SGH-T109|SGH-T119|SGH-T139|SGH-T209|SGH-T219|SGH-T229|SGH-T239|SGH-T249|SGH-T259|SGH-T309|SGH-T319|SGH-T329|SGH-T339|SGH-T349|SGH-T359|SGH-T369|SGH-T379|SGH-T409|SGH-T429|SGH-T439|SGH-T459|SGH-T469|SGH-T479|SGH-T499|SGH-T509|SGH-T519|SGH-T539|SGH-T559|SGH-T589|SGH-T609|SGH-T619|SGH-T629|SGH-T639|SGH-T659|SGH-T669|SGH-T679|SGH-T709|SGH-T719|SGH-T729|SGH-T739|SGH-T746|SGH-T749|SGH-T759|SGH-T769|SGH-T809|SGH-T819|SGH-T839|SGH-T919|SGH-T929|SGH-T939|SGH-T959|SGH-T989|SGH-U100|SGH-U200|SGH-U800|SGH-V205|SGH-V206|SGH-X100|SGH-X105|SGH-X120|SGH-X140|SGH-X426|SGH-X427|SGH-X475|SGH-X495|SGH-X497|SGH-X507|SGH-X600|SGH-X610|SGH-X620|SGH-X630|SGH-X700|SGH-X820|SGH-X890|SGH-Z130|SGH-Z150|SGH-Z170|SGH-ZX10|SGH-ZX20|SHW-M110|SPH-A120|SPH-A400|SPH-A420|SPH-A460|SPH-A500|SPH-A560|SPH-A600|SPH-A620|SPH-A660|SPH-A700|SPH-A740|SPH-A760|SPH-A790|SPH-A800|SPH-A820|SPH-A840|SPH-A880|SPH-A900|SPH-A940|SPH-A960|SPH-D600|SPH-D700|SPH-D710|SPH-D720|SPH-I300|SPH-I325|SPH-I330|SPH-I350|SPH-I500|SPH-I600|SPH-I700|SPH-L700|SPH-M100|SPH-M220|SPH-M240|SPH-M300|SPH-M305|SPH-M320|SPH-M330|SPH-M350|SPH-M360|SPH-M370|SPH-M380|SPH-M510|SPH-M540|SPH-M550|SPH-M560|SPH-M570|SPH-M580|SPH-M610|SPH-M620|SPH-M630|SPH-M800|SPH-M810|SPH-M850|SPH-M900|SPH-M910|SPH-M920|SPH-M930|SPH-N100|SPH-N200|SPH-N240|SPH-N300|SPH-N400|SPH-Z400|SWC-E100',
'Sony' => 'E10i|SonyEricsson|SonyEricssonLT15iv',
'Asus' => 'Asus.*Galaxy',
'Palm' => 'PalmSource|Palm', // avantgo|blazer|elaine|hiptop|plucker|xiino ; @todo - complete the regex.
'Vertu' => 'Vertu|Vertu.*Ltd|Vertu.*Ascent|Vertu.*Ayxta|Vertu.*Constellation(F|Quest)?|Vertu.*Monika|Vertu.*Signature', // Just for fun ;)
'GenericPhone' => '(mmp|pocket|psp|symbian|Smartphone|smartfon|treo|up.browser|up.link|vodafone|wap|nokia|Series40|Series60|S60|SonyEricsson|N900|PPC;|MAUI.*WAP.*Browser|LG-P500)'
);
// List of tablet devices.
protected $tabletDevices = array(
'BlackBerryTablet' => 'PlayBook|RIM Tablet',
'iPad' => 'iPad|iPad.*Mobile', // @todo: check for mobile friendly emails topic.
'Kindle' => 'Kindle|Silk.*Accelerated',
'SamsungTablet' => 'SAMSUNG.*Tablet|Galaxy.*Tab|GT-P1000|GT-P1010|GT-P6210|GT-P6800|GT-P6810|GT-P7100|GT-P7300|GT-P7310|GT-P7500|GT-P7510|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-P1000|GT-P3100|GT-P3110|GT-P5100|GT-P5110|GT-P6200|GT-P7300|GT-P7320|GT-P7500|GT-P7510|GT-P7511',
'HTCtablet' => 'HTC Flyer|HTC Jetstream|HTC-P715a|HTC EVO View 4G|PG41200',
'MotorolaTablet' => 'xoom|sholest|MZ615|MZ605|MZ505|MZ601|MZ602|MZ603|MZ604|MZ606|MZ607|MZ608|MZ609|MZ615|MZ616|MZ617',
'AsusTablet' => 'Transformer|TF101',
'NookTablet' => 'NookColor|nook browser|BNTV250A|LogicPD Zoom2',
'AcerTablet' => 'Android.*\b(A100|A101|A200|A500|A501|A510|W500|W500P|W501|W501P)\b',
'YarvikTablet' => 'Android.*(TAB210|TAB211|TAB224|TAB250|TAB260|TAB264|TAB310|TAB360|TAB364|TAB410|TAB411|TAB420|TAB424|TAB450|TAB460|TAB461|TAB464|TAB465|TAB467|TAB468)',
'GenericTablet' => 'Tablet(?!.*PC)|ViewPad7|LG-V909|MID7015|BNTV250A|LogicPD Zoom2|\bA7EB\b|CatNova8|A1_07|CT704|CT1002|\bM721\b',
);
// List of mobile Operating Systems.
protected $operatingSystems = array(
'AndroidOS' => '(android.*mobile|android(?!.*mobile))',
'BlackBerryOS' => '(blackberry|rim tablet os)',
'PalmOS' => '(avantgo|blazer|elaine|hiptop|palm|plucker|xiino)',
'SymbianOS' => 'Symbian|SymbOS|Series60|Series40|\bS60\b',
'WindowsMobileOS' => 'IEMobile|Windows Phone|Windows CE.*(PPC|Smartphone)|MSIEMobile|Window Mobile|XBLWP7',
'iOS' => '(iphone|ipod|ipad)',
'FlashLiteOS' => '',
'JavaOS' => '',
'NokiaOS' => '',
'webOS' => '',
'badaOS' => '\bBada\b',
'BREWOS' => '',
);
// List of mobile User Agents.
protected $userAgents = array(
'Chrome' => '\bCrMo\b|Chrome\/[.0-9]* Mobile',
'Dolfin' => '\bDolfin\b',
'Opera' => 'Opera.*Mini|Opera.*Mobi|Android.*Opera',
'Skyfire' => 'skyfire',
'IE' => 'IEMobile|MSIEMobile',
'Firefox' => 'fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile',
'Bolt' => 'bolt',
'TeaShark' => 'teashark',
'Blazer' => 'Blazer',
'Safari' => 'Mobile.*Safari|Safari.*Mobile',
'Midori' => 'midori',
'GenericBrowser' => 'NokiaBrowser|OviBrowser|SEMC.*Browser'
);
function __construct(){
// Merge all rules together.
$this->detectionRules = array_merge(
$this->phoneDevices,
$this->tabletDevices,
$this->operatingSystems,
$this->userAgents
);
$this->userAgent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : null;
$this->accept = isset($_SERVER['HTTP_ACCEPT']) ? $_SERVER['HTTP_ACCEPT'] : null;
if (
isset($_SERVER['HTTP_X_WAP_PROFILE']) ||
isset($_SERVER['HTTP_X_WAP_CLIENTID']) ||
isset($_SERVER['HTTP_WAP_CONNECTION']) ||
isset($_SERVER['HTTP_PROFILE']) ||
isset($_SERVER['HTTP_X_OPERAMINI_PHONE_UA']) || // Reported by Nokia devices (eg. C3)
isset($_SERVER['HTTP_X_NOKIA_IPADDRESS']) ||
isset($_SERVER['HTTP_X_NOKIA_GATEWAY_ID']) ||
isset($_SERVER['HTTP_X_ORANGE_ID']) ||
isset($_SERVER['HTTP_X_VODAFONE_3GPDPCONTEXT']) ||
isset($_SERVER['HTTP_X_HUAWEI_USERID']) ||
isset($_SERVER['HTTP_UA_OS']) || // Reported by Windows Smartphones
(isset($_SERVER['HTTP_UA_CPU']) && $_SERVER['HTTP_UA_CPU'] == 'ARM') // Seen this on a HTC
) {
$this->isMobile = true;
} elseif (!empty($this->accept) && (strpos($this->accept, 'text/vnd.wap.wml') !== false || strpos($this->accept, 'application/vnd.wap.xhtml+xml') !== false)) {
$this->isMobile = true;
} else {
$this->_detect();
}
}
public function getRules()
{
return $this->detectionRules;
}
/**
* Magic overloading method.
*
* @method boolean is[...]()
* @param string $name
* @param array $arguments
* @return mixed
*/
public function __call($name, $arguments)
{
$key = substr($name, 2);
return $this->_detect($key);
}
/**
* Private method that does the detection of the
* mobile devices.
*
* @param string $key
* @return boolean|null
*/
private function _detect($key='')
{
if(empty($key)){
// Begin general search.
foreach($this->detectionRules as $_regex){
if(empty($_regex)){ continue; }
if(preg_match('/'.$_regex.'/is', $this->userAgent)){
$this->isMobile = true;
return true;
}
}
return false;
} else {
// Search for a certain key.
// Make the keys lowecase so we can match: isIphone(), isiPhone(), isiphone(), etc.
$key = strtolower($key);
$_rules = array_change_key_case($this->detectionRules);
if(array_key_exists($key, $_rules)){
if(empty($_rules[$key])){ return null; }
if(preg_match('/'.$_rules[$key].'/is', $this->userAgent)){
$this->isMobile = true;
return true;
} else {
return false;
}
} else {
trigger_error("Method $key is not defined", E_USER_WARNING);
}
return false;
}
}
/**
* Check if the device is mobile.
* Returns true if any type of mobile device detected, including special ones
* @return bool
*/
public function isMobile()
{
return $this->isMobile;
}
/**
* Check if the device is a tablet.
* Return true if any type of tablet device is detected.
* @return boolean
*/
public function isTablet()
{
foreach($this->tabletDevices as $_regex){
if(preg_match('/'.$_regex.'/is', $this->userAgent)){
$this->isTablet = true;
return true;
}
}
return false;
}
}

File diff suppressed because one or more lines are too long

14
mod/_well_known.php Normal file
View file

@ -0,0 +1,14 @@
<?php
require_once("hostxrd.php");
function _well_known_init(&$a){
if ($a->argc > 1) {
switch($a->argv[1]) {
case "host-meta":
hostxrd_init($a);
break;
}
}
http_status_exit(404);
killme();
}

View file

@ -231,42 +231,47 @@ function admin_page_site_post(&$a){
return;
}
check_form_security_token_redirectOnErr('/admin/site', 'admin_site');
check_form_security_token_redirectOnErr('/admin/site', 'admin_site');
$sitename = ((x($_POST,'sitename')) ? notags(trim($_POST['sitename'])) : '');
$banner = ((x($_POST,'banner')) ? trim($_POST['banner']) : false);
$language = ((x($_POST,'language')) ? notags(trim($_POST['language'])) : '');
$theme = ((x($_POST,'theme')) ? notags(trim($_POST['theme'])) : '');
$sitename = ((x($_POST,'sitename')) ? notags(trim($_POST['sitename'])) : '');
$banner = ((x($_POST,'banner')) ? trim($_POST['banner']) : false);
$language = ((x($_POST,'language')) ? notags(trim($_POST['language'])) : '');
$theme = ((x($_POST,'theme')) ? notags(trim($_POST['theme'])) : '');
$theme_mobile = ((x($_POST,'theme_mobile')) ? notags(trim($_POST['theme_mobile'])) : '');
$maximagesize = ((x($_POST,'maximagesize')) ? intval(trim($_POST['maximagesize'])) : 0);
$maximagelength = ((x($_POST,'maximagelength')) ? intval(trim($_POST['maximagelength'])) : MAX_IMAGE_LENGTH);
$jpegimagequality = ((x($_POST,'jpegimagequality')) ? intval(trim($_POST['jpegimagequality'])) : JPEG_QUALITY);
$register_policy = ((x($_POST,'register_policy')) ? intval(trim($_POST['register_policy'])) : 0);
$abandon_days = ((x($_POST,'abandon_days')) ? intval(trim($_POST['abandon_days'])) : 0);
$register_policy = ((x($_POST,'register_policy')) ? intval(trim($_POST['register_policy'])) : 0);
$abandon_days = ((x($_POST,'abandon_days')) ? intval(trim($_POST['abandon_days'])) : 0);
$register_text = ((x($_POST,'register_text')) ? notags(trim($_POST['register_text'])) : '');
$register_text = ((x($_POST,'register_text')) ? notags(trim($_POST['register_text'])) : '');
$allowed_sites = ((x($_POST,'allowed_sites')) ? notags(trim($_POST['allowed_sites'])) : '');
$allowed_email = ((x($_POST,'allowed_email')) ? notags(trim($_POST['allowed_email'])) : '');
$block_public = ((x($_POST,'block_public')) ? True : False);
$force_publish = ((x($_POST,'publish_all')) ? True : False);
$allowed_sites = ((x($_POST,'allowed_sites')) ? notags(trim($_POST['allowed_sites'])) : '');
$allowed_email = ((x($_POST,'allowed_email')) ? notags(trim($_POST['allowed_email'])) : '');
$block_public = ((x($_POST,'block_public')) ? True : False);
$force_publish = ((x($_POST,'publish_all')) ? True : False);
$global_directory = ((x($_POST,'directory_submit_url')) ? notags(trim($_POST['directory_submit_url'])) : '');
$no_multi_reg = ((x($_POST,'no_multi_reg')) ? True : False);
$no_openid = !((x($_POST,'no_openid')) ? True : False);
$no_regfullname = !((x($_POST,'no_regfullname')) ? True : False);
$no_utf = !((x($_POST,'no_utf')) ? True : False);
$no_community_page = !((x($_POST,'no_community_page')) ? True : False);
$thread_allow = ((x($_POST,'thread_allow')) ? True : False);
$newuser_private = ((x($_POST,'newuser_private')) ? True : False);
$no_multi_reg = ((x($_POST,'no_multi_reg')) ? True : False);
$no_openid = !((x($_POST,'no_openid')) ? True : False);
$no_regfullname = !((x($_POST,'no_regfullname')) ? True : False);
$no_utf = !((x($_POST,'no_utf')) ? True : False);
$no_community_page = !((x($_POST,'no_community_page')) ? True : False);
$verifyssl = ((x($_POST,'verifyssl')) ? True : False);
$proxyuser = ((x($_POST,'proxyuser')) ? notags(trim($_POST['proxyuser'])) : '');
$proxy = ((x($_POST,'proxy')) ? notags(trim($_POST['proxy'])) : '');
$timeout = ((x($_POST,'timeout')) ? intval(trim($_POST['timeout'])) : 60);
$delivery_interval = ((x($_POST,'delivery_interval'))? intval(trim($_POST['delivery_interval'])) : 0);
$poll_interval = ((x($_POST,'poll_interval'))? intval(trim($_POST['poll_interval'])) : 0);
$maxloadavg = ((x($_POST,'maxloadavg')) ? intval(trim($_POST['maxloadavg'])) : 50);
$dfrn_only = ((x($_POST,'dfrn_only')) ? True : False);
$ostatus_disabled = !((x($_POST,'ostatus_disabled')) ? True : False);
$diaspora_enabled = ((x($_POST,'diaspora_enabled')) ? True : False);
$ssl_policy = ((x($_POST,'ssl_policy')) ? intval($_POST['ssl_policy']) : 0);
$verifyssl = ((x($_POST,'verifyssl')) ? True : False);
$proxyuser = ((x($_POST,'proxyuser')) ? notags(trim($_POST['proxyuser'])) : '');
$proxy = ((x($_POST,'proxy')) ? notags(trim($_POST['proxy'])) : '');
$timeout = ((x($_POST,'timeout')) ? intval(trim($_POST['timeout'])) : 60);
$delivery_interval = ((x($_POST,'delivery_interval')) ? intval(trim($_POST['delivery_interval'])) : 0);
$poll_interval = ((x($_POST,'poll_interval')) ? intval(trim($_POST['poll_interval'])) : 0);
$maxloadavg = ((x($_POST,'maxloadavg')) ? intval(trim($_POST['maxloadavg'])) : 50);
$dfrn_only = ((x($_POST,'dfrn_only')) ? True : False);
$ostatus_disabled = !((x($_POST,'ostatus_disabled')) ? True : False);
$diaspora_enabled = ((x($_POST,'diaspora_enabled')) ? True : False);
$ssl_policy = ((x($_POST,'ssl_policy')) ? intval($_POST['ssl_policy']) : 0);
if($ssl_policy != intval(get_config('system','ssl_policy'))) {
if($ssl_policy == SSL_POLICY_FULL) {
@ -324,7 +329,14 @@ function admin_page_site_post(&$a){
}
set_config('system','language', $language);
set_config('system','theme', $theme);
if ( $theme_mobile === '---' ) {
del_config('system','mobile-theme');
} else {
set_config('system','mobile-theme', $theme_mobile);
}
set_config('system','maximagesize', $maximagesize);
set_config('system','max_image_length', $maximagelength);
set_config('system','jpeg_quality', $jpegimagequality);
set_config('config','register_policy', $register_policy);
set_config('system','account_abandon_days', $abandon_days);
@ -342,6 +354,8 @@ function admin_page_site_post(&$a){
} else {
set_config('system','directory_submit_url', $global_directory);
}
set_config('system','thread_allow', $thread_allow);
set_config('system','newuser_private', $newuser_private);
set_config('system','block_extended_register', $no_multi_reg);
set_config('system','no_openid', $no_openid);
@ -384,12 +398,19 @@ function admin_page_site(&$a) {
/* Installed themes */
$theme_choices = array();
$theme_choices_mobile = array();
$theme_choices_mobile["---"] = t("No special theme for mobile devices");
$files = glob('view/theme/*');
if($files) {
foreach($files as $file) {
$f = basename($file);
$theme_name = ((file_exists($file . '/experimental')) ? sprintf("%s - \x28Experimental\x29", $f) : $f);
$theme_choices[$f] = $theme_name;
if (file_exists($file . '/mobile')) {
$theme_choices_mobile[$f] = $theme_name;
}
else {
$theme_choices[$f] = $theme_name;
}
}
}
@ -426,38 +447,43 @@ function admin_page_site(&$a) {
'$advanced' => t('Advanced'),
'$baseurl' => $a->get_baseurl(true),
// name, label, value, help string, extra data...
'$sitename' => array('sitename', t("Site name"), htmlentities($a->config['sitename'], ENT_QUOTES), ""),
'$banner' => array('banner', t("Banner/Logo"), $banner, ""),
// name, label, value, help string, extra data...
'$sitename' => array('sitename', t("Site name"), htmlentities($a->config['sitename'], ENT_QUOTES), 'UTF-8'),
'$banner' => array('banner', t("Banner/Logo"), $banner, ""),
'$language' => array('language', t("System language"), get_config('system','language'), "", $lang_choices),
'$theme' => array('theme', t("System theme"), get_config('system','theme'), t("Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"), $theme_choices),
'$ssl_policy' => array('ssl_policy', t("SSL link policy"), (string) intval(get_config('system','ssl_policy')), t("Determines whether generated links should be forced to use SSL"), $ssl_choices),
'$theme' => array('theme', t("System theme"), get_config('system','theme'), t("Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"), $theme_choices),
'$theme_mobile' => array('theme_mobile', t("Mobile system theme"), get_config('system','mobile-theme'), t("Theme for mobile devices"), $theme_choices_mobile),
'$ssl_policy' => array('ssl_policy', t("SSL link policy"), (string) intval(get_config('system','ssl_policy')), t("Determines whether generated links should be forced to use SSL"), $ssl_choices),
'$maximagesize' => array('maximagesize', t("Maximum image size"), get_config('system','maximagesize'), t("Maximum size in bytes of uploaded images. Default is 0, which means no limits.")),
'$maximagelength' => array('maximagelength', t("Maximum image length"), get_config('system','max_image_length'), t("Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits.")),
'$jpegimagequality' => array('jpegimagequality', t("JPEG image quality"), get_config('system','jpeg_quality'), t("Uploaded JPEGS will be saved at this quality setting [0-100]. Default is 100, which is full quality.")),
'$register_policy' => array('register_policy', t("Register policy"), $a->config['register_policy'], "", $register_choices),
'$register_text' => array('register_text', t("Register text"), htmlentities($a->config['register_text'], ENT_QUOTES, 'UTF-8'), t("Will be displayed prominently on the registration page.")),
'$abandon_days' => array('abandon_days', t('Accounts abandoned after x days'), get_config('system','account_abandon_days'), t('Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit.')),
'$abandon_days' => array('abandon_days', t('Accounts abandoned after x days'), get_config('system','account_abandon_days'), t('Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit.')),
'$allowed_sites' => array('allowed_sites', t("Allowed friend domains"), get_config('system','allowed_sites'), t("Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains")),
'$allowed_email' => array('allowed_email', t("Allowed email domains"), get_config('system','allowed_email'), t("Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains")),
'$block_public' => array('block_public', t("Block public"), get_config('system','block_public'), t("Check to block public access to all otherwise public personal pages on this site unless you are currently logged in.")),
'$force_publish' => array('publish_all', t("Force publish"), get_config('system','publish_all'), t("Check to force all profiles on this site to be listed in the site directory.")),
'$global_directory' => array('directory_submit_url', t("Global directory update URL"), get_config('system','directory_submit_url'), t("URL to update the global directory. If this is not set, the global directory is completely unavailable to the application.")),
'$thread_allow' => array('thread_allow', t("Allow threaded items"), get_config('system','thread_allow'), t("Allow infinite level threading for items on this site.")),
'$newuser_private' => array('newuser_private', t("Private posts by default for new users"), get_config('system','newuser_private'), t("Set default post permissions for all new members to the default privacy group rather than public.")),
'$no_multi_reg' => array('no_multi_reg', t("Block multiple registrations"), get_config('system','block_extended_register'), t("Disallow users to register additional accounts for use as pages.")),
'$no_openid' => array('no_openid', t("OpenID support"), !get_config('system','no_openid'), t("OpenID support for registration and logins.")),
'$no_regfullname' => array('no_regfullname', t("Fullname check"), !get_config('system','no_regfullname'), t("Force users to register with a space between firstname and lastname in Full name, as an antispam measure")),
'$no_utf' => array('no_utf', t("UTF-8 Regular expressions"), !get_config('system','no_utf'), t("Use PHP UTF8 regular expressions")),
'$no_community_page' => array('no_community_page', t("Show Community Page"), !get_config('system','no_community_page'), t("Display a Community page showing all recent public postings on this site.")),
'$ostatus_disabled' => array('ostatus_disabled', t("Enable OStatus support"), !get_config('system','ostatus_disable'), t("Provide built-in OStatus \x28identi.ca, status.net, etc.\x29 compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed.")),
'$diaspora_enabled' => array('diaspora_enabled', t("Enable Diaspora support"), get_config('system','diaspora_enabled'), t("Provide built-in Diaspora network compatibility.")),
'$dfrn_only' => array('dfrn_only', t('Only allow Friendica contacts'), get_config('system','dfrn_only'), t("All contacts must use Friendica protocols. All other built-in communication protocols disabled.")),
'$no_utf' => array('no_utf', t("UTF-8 Regular expressions"), !get_config('system','no_utf'), t("Use PHP UTF8 regular expressions")),
'$no_community_page' => array('no_community_page', t("Show Community Page"), !get_config('system','no_community_page'), t("Display a Community page showing all recent public postings on this site.")),
'$ostatus_disabled' => array('ostatus_disabled', t("Enable OStatus support"), !get_config('system','ostatus_disabled'), t("Provide built-in OStatus \x28identi.ca, status.net, etc.\x29 compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed.")),
'$diaspora_enabled' => array('diaspora_enabled', t("Enable Diaspora support"), get_config('system','diaspora_enabled'), t("Provide built-in Diaspora network compatibility.")),
'$dfrn_only' => array('dfrn_only', t('Only allow Friendica contacts'), get_config('system','dfrn_only'), t("All contacts must use Friendica protocols. All other built-in communication protocols disabled.")),
'$verifyssl' => array('verifyssl', t("Verify SSL"), get_config('system','verifyssl'), t("If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites.")),
'$proxyuser' => array('proxyuser', t("Proxy user"), get_config('system','proxyuser'), ""),
'$proxy' => array('proxy', t("Proxy URL"), get_config('system','proxy'), ""),
'$timeout' => array('timeout', t("Network timeout"), (x(get_config('system','curl_timeout'))?get_config('system','curl_timeout'):60), t("Value is in seconds. Set to 0 for unlimited (not recommended).")),
'$delivery_interval' => array('delivery_interval', t("Delivery interval"), (x(get_config('system','delivery_interval'))?get_config('system','delivery_interval'):2), t("Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers.")),
'$poll_interval' => array('poll_interval', t("Poll interval"), (x(get_config('system','poll_interval'))?get_config('system','poll_interval'):2), t("Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval.")),
'$maxloadavg' => array('maxloadavg', t("Maximum Load Average"), ((intval(get_config('system','maxloadavg')) > 0)?get_config('system','maxloadavg'):50), t("Maximum system load before delivery and poll processes are deferred - default 50.")),
'$proxy' => array('proxy', t("Proxy URL"), get_config('system','proxy'), ""),
'$timeout' => array('timeout', t("Network timeout"), (x(get_config('system','curl_timeout'))?get_config('system','curl_timeout'):60), t("Value is in seconds. Set to 0 for unlimited (not recommended).")),
'$delivery_interval' => array('delivery_interval', t("Delivery interval"), (x(get_config('system','delivery_interval'))?get_config('system','delivery_interval'):2), t("Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers.")),
'$poll_interval' => array('poll_interval', t("Poll interval"), (x(get_config('system','poll_interval'))?get_config('system','poll_interval'):2), t("Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval.")),
'$maxloadavg' => array('maxloadavg', t("Maximum Load Average"), ((intval(get_config('system','maxloadavg')) > 0)?get_config('system','maxloadavg'):50), t("Maximum system load before delivery and poll processes are deferred - default 50.")),
'$form_security_token' => get_form_security_token("admin_site"),
));
@ -471,6 +497,9 @@ function admin_page_dbsync(&$a) {
if($a->argc > 3 && intval($a->argv[3]) && $a->argv[2] === 'mark') {
set_config('database', 'update_' . intval($a->argv[3]), 'success');
$curr = get_config('system','build');
if(intval($curr) == intval($a->argv[3]))
set_config('system','build',intval($curr) + 1);
info( t('Update has been marked successful') . EOL);
goaway($a->get_baseurl(true) . '/admin/dbsync');
}
@ -635,6 +664,7 @@ function admin_page_users(&$a){
);
function _setup_users($e){
$a = get_app();
$accounts = Array(
t('Normal Account'),
t('Soapbox Account'),
@ -645,6 +675,7 @@ function admin_page_users(&$a){
$e['register_date'] = relative_date($e['register_date']);
$e['login_date'] = relative_date($e['login_date']);
$e['lastitem_date'] = relative_date($e['lastitem_date']);
$e['is_admin'] = ($e['email'] === $a->config['admin_email']);
return $e;
}
$users = array_map("_setup_users", $users);
@ -665,6 +696,7 @@ function admin_page_users(&$a){
'$delete' => t('Delete'),
'$block' => t('Block'),
'$unblock' => t('Unblock'),
'$siteadmin' => t('Site admin'),
'$h_users' => t('Users'),
'$th_users' => array( t('Name'), t('Email'), t('Register date'), t('Last login'), t('Last item'), t('Account') ),

View file

@ -19,6 +19,12 @@ function babel_content(&$a) {
$o .= '<br /><br />';
$o .= '<form action="babel" method="post">';
$o .= t('Source (Diaspora) text to convert to BBcode:') . EOL . '<textarea name="d2bbtext" >' . htmlspecialchars($_REQUEST['d2bbtext']) .'</textarea>' . EOL;
$o .= '<input type="submit" name="submit" value="Submit" /></form>';
$o .= '<br /><br />';
if(x($_REQUEST,'text')) {
$text = trim($_REQUEST['text']);
@ -52,5 +58,18 @@ function babel_content(&$a) {
}
if(x($_REQUEST,'d2bbtext')) {
$d2bbtext = trim($_REQUEST['d2bbtext']);
$o .= t("Source input (Diaspora format): ") . EOL. EOL;
$o .= visible_lf($d2bbtext) . EOL. EOL;
$bb = diaspora2bb($d2bbtext);
$o .= t("diaspora2bb: ") . EOL. EOL;
$o .= visible_lf($bb) . EOL. EOL;
}
return $o;
}

View file

@ -1,8 +1,10 @@
<?php
function community_init(&$a) {
if(! local_user())
if(! local_user()) {
unset($_SESSION['theme']);
unset($_SESSION['mobile-theme']);
}
}
@ -30,8 +32,6 @@ function community_content(&$a, $update = 0) {
$o .= '<h3>' . t('Community') . '</h3>';
if(! $update) {
nav_set_selected('community');
$o .= '<div id="live-community"></div>' . "\r\n";
$o .= "<script> var profile_uid = -1; var netargs = '/?f='; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
}
if(x($a->data,'search'))
@ -44,22 +44,24 @@ function community_content(&$a, $update = 0) {
// Only public posts can be shown
// OR your own posts if you are a logged in member
if(! get_pconfig(local_user(),'system','alt_pager')) {
$r = q("SELECT COUNT(distinct(`item`.`uri`)) AS `total`
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id` LEFT JOIN `user` ON `user`.`uid` = `item`.`uid`
WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = ''
AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = ''
AND `item`.`private` = 0 AND `item`.`wall` = 1 AND `user`.`hidewall` = 0
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0"
);
$r = q("SELECT distinct(`item`.`uri`) AS `total`
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id` LEFT JOIN `user` ON `user`.`uid` = `item`.`uid`
WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = ''
AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = ''
AND `item`.`private` = 0 AND `item`.`wall` = 1 AND `user`.`hidewall` = 0
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 group by `item`.`uri` "
);
if(count($r))
$a->set_pager_total($r[0]['total']);
if(count($r))
$a->set_pager_total($r[0]['total']);
if(! $r[0]['total']) {
info( t('No results.') . EOL);
return $o;
}
if(! $r[0]['total']) {
info( t('No results.') . EOL);
return $o;
}
$r = q("SELECT distinct(`item`.`uri`), `item`.*, `item`.`id` AS `item_id`,
@ -70,9 +72,9 @@ function community_content(&$a, $update = 0) {
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
LEFT JOIN `user` ON `user`.`uid` = `item`.`uid`
WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = ''
AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = ''
AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = ''
AND `item`.`private` = 0 AND `item`.`wall` = 1 AND `user`.`hidewall` = 0
AND `item`.`private` = 0 AND `item`.`wall` = 1 AND `user`.`hidewall` = 0
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 group by `item`.`uri`
ORDER BY `received` DESC LIMIT %d, %d ",
intval($a->pager['start']),
@ -80,11 +82,21 @@ function community_content(&$a, $update = 0) {
);
if(! count($r)) {
info( t('No results.') . EOL);
return $o;
}
// we behave the same in message lists as the search module
$o .= conversation($a,$r,'community',$update);
$o .= paginate($a);
if(! get_pconfig(local_user(),'system','alt_pager')) {
$o .= paginate($a);
}
else {
$o .= alt_pager($a,count($r));
}
return $o;
}

View file

@ -28,39 +28,40 @@ function contacts_init(&$a) {
if($contact_id) {
$a->data['contact'] = $r[0];
$o .= '<div class="vcard">';
$o .= '<div class="fn">' . $a->data['contact']['name'] . '</div>';
$o .= '<div id="profile-photo-wrapper"><img class="photo" style="width: 175px; height: 175px;" src="' . $a->data['contact']['photo'] . '" alt="' . $a->data['contact']['name'] . '" /></div>';
$o .= '</div>';
$a->page['aside'] .= $o;
$vcard_widget = replace_macros(get_markup_template("vcard-widget.tpl"),array(
'$name' => $a->data['contact']['name'],
'$photo' => $a->data['contact']['photo']
));
$follow_widget = '';
}
else
$a->page['aside'] .= follow_widget();
else {
$vcard_widget = '';
$follow_widget = follow_widget();
}
$a->page['aside'] .= group_side('contacts','group',false,0,$contact_id);
$groups_widget .= group_side('contacts','group',false,0,$contact_id);
$findpeople_widget .= findpeople_widget();
$networks_widget .= networks_widget('contacts',$_GET['nets']);
$a->page['aside'] .= replace_macros(get_markup_template("contacts-widget-sidebar.tpl"),array(
'$vcard_widget' => $vcard_widget,
'$follow_widget' => $follow_widget,
'$groups_widget' => $groups_widget,
'$findpeople_widget' => $findpeople_widget,
'$networks_widget' => $networks_widget
));
$a->page['aside'] .= findpeople_widget();
$a->page['aside'] .= networks_widget('contacts',$_GET['nets']);
$base = $a->get_baseurl();
$tpl = get_markup_template("contacts-head.tpl");
$a->page['htmlhead'] .= replace_macros($tpl,array(
'$baseurl' => $a->get_baseurl(true),
'$base' => $base
));
$a->page['htmlhead'] .= '<script src="' . $a->get_baseurl(true) . '/library/jquery_ac/friendica.complete.js" ></script>';
$a->page['htmlhead'] .= <<< EOT
<script>$(document).ready(function() {
var a;
a = $("#contacts-search").autocomplete({
serviceUrl: '$base/acl',
minChars: 2,
width: 350,
});
a.setOptions({ params: { type: 'a' }});
});
</script>
EOT;
$tpl = get_markup_template("contacts-end.tpl");
$a->page['end'] .= replace_macros($tpl,array(
'$baseurl' => $a->get_baseurl(true),
'$base' => $base
));
}
@ -247,6 +248,10 @@ function contacts_content(&$a) {
'$baseurl' => $a->get_baseurl(true),
'$editselect' => $editselect,
));
$a->page['end'] .= replace_macros(get_markup_template('contact_end.tpl'), array(
'$baseurl' => $a->get_baseurl(true),
'$editselect' => $editselect,
));
require_once('include/contact_selectors.php');

View file

@ -584,6 +584,8 @@ function render_content(&$a, $items, $mode, $update, $preview = false) {
if (!$comments_collapsed){
$threads[$threadsid]['num_comments'] = sprintf( tt('%d comment','%d comments',$comments[$item['parent']]),$comments[$item['parent']] );
$threads[$threadsid]['hidden_comments_num'] = $comments[$item['parent']];
$threads[$threadsid]['hidden_comments_text'] = tt('comment', 'comments', $comments[$item['parent']]);
$threads[$threadsid]['hide_text'] = t('show more');
$comments_collapsed = true;
$comment_firstcollapsed = true;
@ -698,7 +700,9 @@ function render_content(&$a, $items, $mode, $update, $preview = false) {
'$edurl' => t('Link'),
'$edvideo' => t('Video'),
'$preview' => t('Preview'),
'$ww' => (($mode === 'network') ? $commentww : '')
'$sourceapp' => t($a->sourcename),
'$ww' => (($mode === 'network') ? $commentww : ''),
'$rand_num' => random_digits(12)
));
}
}

View file

@ -87,11 +87,16 @@ function dfrn_poll_init(&$a) {
if((int) $xml->status == 1) {
$_SESSION['authenticated'] = 1;
if(! x($_SESSION,'remote'))
$_SESSION['remote'] = array();
$_SESSION['remote'][] = array('cid' => $r[0]['id'],'uid' => $r[0]['uid'],'url' => $r[0]['url']);
$_SESSION['visitor_id'] = $r[0]['id'];
$_SESSION['visitor_home'] = $r[0]['url'];
$_SESSION['visitor_handle'] = $r[0]['addr'];
$_SESSION['visitor_visiting'] = $r[0]['uid'];
info( sprintf(t('%s welcomes %s'), $r[0]['username'] , $r[0]['name']) . EOL);
info( sprintf(t('%1$s welcomes %2$s'), $r[0]['username'] , $r[0]['name']) . EOL);
// Visitors get 1 day session.
$session_id = session_id();
$expire = time() + 86400;
@ -516,10 +521,13 @@ function dfrn_poll_content(&$a) {
if(((int) $xml->status == 0) && ($xml->challenge == $hash) && ($xml->sec == $sec)) {
$_SESSION['authenticated'] = 1;
if(! x($_SESSION,'remote'))
$_SESSION['remote'] = array();
$_SESSION['remote'][] = array('cid' => $r[0]['id'],'uid' => $r[0]['uid'],'url' => $r[0]['url']);
$_SESSION['visitor_id'] = $r[0]['id'];
$_SESSION['visitor_home'] = $r[0]['url'];
$_SESSION['visitor_visiting'] = $r[0]['uid'];
info( sprintf(t('%s welcomes %s'), $r[0]['username'] , $r[0]['name']) . EOL);
info( sprintf(t('%1$s welcomes %2$s'), $r[0]['username'] , $r[0]['name']) . EOL);
// Visitors get 1 day session.
$session_id = session_id();
$expire = time() + 86400;

View file

@ -756,8 +756,10 @@ function dfrn_request_content(&$a) {
*/
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
notice( t('Public access denied.') . EOL);
return;
if(! get_config('system','local_block')) {
notice( t('Public access denied.') . EOL);
return;
}
}

View file

@ -9,8 +9,10 @@ function directory_init(&$a) {
$a->page['aside'] .= findpeople_widget();
}
else
else {
unset($_SESSION['theme']);
unset($_SESSION['mobile-theme']);
}
}

View file

@ -1,7 +1,7 @@
<?php
function display_content(&$a) {
function display_content(&$a, $update = 0) {
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
notice( t('Public access denied.') . EOL);
@ -14,23 +14,25 @@ function display_content(&$a) {
require_once('include/acl_selectors.php');
$o = '<div id="live-display"></div>' . "\r\n";
$o = '';
$a->page['htmlhead'] .= <<<EOT
<script>
$(document).ready(function() {
$(".comment-edit-wrapper textarea").contact_autocomplete(baseurl+"/acl");
// make auto-complete work in more places
$(".wall-item-comment-wrapper textarea").contact_autocomplete(baseurl+"/acl");
});
</script>
EOT;
$a->page['htmlhead'] .= get_markup_template('display-head.tpl');
$nick = (($a->argc > 1) ? $a->argv[1] : '');
if($update) {
$nick = $_REQUEST['nick'];
}
else {
$nick = (($a->argc > 1) ? $a->argv[1] : '');
}
profile_load($a,$nick);
$item_id = (($a->argc > 2) ? intval($a->argv[2]) : 0);
if($update) {
$item_id = $_REQUEST['item_id'];
}
else {
$item_id = (($a->argc > 2) ? intval($a->argv[2]) : 0);
}
if(! $item_id) {
$a->error = 404;
@ -43,8 +45,18 @@ EOT;
$contact = null;
$remote_contact = false;
if(remote_user()) {
$contact_id = $_SESSION['visitor_id'];
$contact_id = 0;
if(is_array($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $v) {
if($v['uid'] == $a->profile['uid']) {
$contact_id = $v['cid'];
break;
}
}
}
if($contact_id) {
$groups = init_groups_visitor($contact_id);
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($contact_id),
@ -76,7 +88,7 @@ EOT;
return;
}
if ($is_owner)
if ($is_owner) {
$celeb = ((($a->user['page-flags'] == PAGE_SOAPBOX) || ($a->user['page-flags'] == PAGE_COMMUNITY)) ? true : false);
$x = array(
@ -91,10 +103,22 @@ EOT;
'profile_uid' => local_user()
);
$o .= status_editor($a,$x,0,true);
}
$sql_extra = item_permissions_sql($a->profile['uid'],$remote_contact,$groups);
if($update) {
$r = q("SELECT id FROM item WHERE item.uid = %d
AND `item`.`parent` = ( SELECT `parent` FROM `item` WHERE ( `id` = '%s' OR `uri` = '%s' ))
$sql_extra AND unseen = 1",
intval($a->profile['uid']),
dbesc($item_id),
dbesc($item_id)
);
if(!$r)
return '';
}
$r = q("SELECT `item`.*, `item`.`id` AS `item_id`,
`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
`contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`,
@ -121,12 +145,15 @@ EOT;
);
}
$items = conv_sort($r,"`commented`");
$o .= conversation($a,$r,'display', false);
if(!$update)
$o .= "<script> var netargs = '?f=&nick=" . $nick . "&item_id=" . $item_id . "'; </script>";
$o .= conversation($a,$items,'display', $update);
}
else {
$r = q("SELECT `id` FROM `item` WHERE `id` = '%s' OR `uri` = '%s' LIMIT 1",
$r = q("SELECT `id`,`deleted` FROM `item` WHERE `id` = '%s' OR `uri` = '%s' LIMIT 1",
dbesc($item_id),
dbesc($item_id)
);

View file

@ -36,7 +36,6 @@ function editpost_content(&$a) {
$o .= '<h2>' . t('Edit post') . '</h2>';
$tpl = get_markup_template('jot-header.tpl');
$a->page['htmlhead'] .= replace_macros($tpl, array(
'$baseurl' => $a->get_baseurl(),
'$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
@ -45,6 +44,15 @@ function editpost_content(&$a) {
'$nickname' => $a->user['nickname']
));
$tpl = get_markup_template('jot-end.tpl');
$a->page['end'] .= replace_macros($tpl, array(
'$baseurl' => $a->get_baseurl(),
'$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
'$ispublic' => '&nbsp;', // t('Visible to <strong>everybody</strong>'),
'$geotag' => $geotag,
'$nickname' => $a->user['nickname']
));
$tpl = get_markup_template("jot.tpl");
@ -94,13 +102,19 @@ function editpost_content(&$a) {
'$action' => 'item',
'$share' => t('Edit'),
'$upload' => t('Upload photo'),
'$shortupload' => t('upload photo'),
'$attach' => t('Attach file'),
'$shortattach' => t('attach file'),
'$weblink' => t('Insert web link'),
'$youtube' => t('Insert YouTube video'),
'$video' => t('Insert Vorbis [.ogg] video'),
'$audio' => t('Insert Vorbis [.ogg] audio'),
'$shortweblink' => t('web link'),
'$video' => t('Insert video link'),
'$shortvideo' => t('video link'),
'$audio' => t('Insert audio link'),
'$shortaudio' => t('audio link'),
'$setloc' => t('Set your location'),
'$shortsetloc' => t('set location'),
'$noloc' => t('Clear browser location'),
'$shortnoloc' => t('clear location'),
'$wait' => t('Please wait'),
'$permset' => t('Permission settings'),
'$ptyp' => $itm[0]['type'],
@ -115,8 +129,8 @@ function editpost_content(&$a) {
'$jotnets' => $jotnets,
'$title' => $itm[0]['title'],
'$placeholdertitle' => t('Set title'),
'$category' => file_tag_file_to_list($itm[0]['file'], 'category'),
'$placeholdercategory' => t('Categories (comma-separated list)'),
'$category' => file_tag_file_to_list($itm[0]['file'], 'category'),
'$placeholdercategory' => t('Categories (comma-separated list)'),
'$emtitle' => t('Example: bob@example.com, mary@example.com'),
'$lockstate' => $lockstate,
'$acl' => '', // populate_acl((($group) ? $group_acl : $a->user), $celeb),
@ -124,6 +138,9 @@ function editpost_content(&$a) {
'$profile_uid' => $_SESSION['uid'],
'$preview' => t('Preview'),
'$jotplugins' => $jotplugins,
'$sourceapp' => t($a->sourcename),
'$cancel' => t('Cancel'),
'$rand_num' => random_digits(12)
));
return $o;

View file

@ -141,10 +141,27 @@ function events_content(&$a) {
return;
}
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 limit 1",
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 limit 1",
intval($a->argv[2]),
intval(local_user())
);
}
$htpl = get_markup_template('event_head.tpl');
$a->page['htmlhead'] .= replace_macros($htpl,array('$baseurl' => $a->get_baseurl()));
$etpl = get_markup_template('event_end.tpl');
$a->page['end'] .= replace_macros($etpl,array('$baseurl' => $a->get_baseurl()));
$o ="";
// tabs
$tabs = profile_tabs($a, True);
@ -154,6 +171,7 @@ function events_content(&$a) {
$mode = 'view';
$y = 0;
$m = 0;
$ignored = ((x($_REQUEST,'ignored')) ? intval($_REQUEST['ignored']) : 0);
if($a->argc > 1) {
if($a->argc > 2 && $a->argv[1] == 'event') {
@ -231,10 +249,11 @@ function events_content(&$a) {
} else {
$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`
WHERE `event`.`uid` = %d
WHERE `event`.`uid` = %d and event.ignore = %d
AND (( `adjust` = 0 AND `finish` >= '%s' AND `start` <= '%s' )
OR ( `adjust` = 1 AND `finish` >= '%s' AND `start` <= '%s' )) ",
intval(local_user()),
intval($ignored),
dbesc($start),
dbesc($finish),
dbesc($adjust_start),

View file

@ -46,7 +46,7 @@ function fbrowser_content($a){
}
$r = q("SELECT `resource-id`, `id`, `filename`, type, min(`scale`) AS `hiq`,max(`scale`) AS `loq`, `desc`
FROM `photo` WHERE `uid` = %d $sql_extra
FROM `photo` WHERE `uid` = %d AND (height <= 320 AND width <= 320) $sql_extra
GROUP BY `resource-id` $sql_extra2",
intval(local_user())
);

View file

@ -1,11 +0,0 @@
<?php
require_once('mod/friendica.php');
function friendika_init(&$a) {
friendica_init($a);
}
function friendika_content(&$a) {
return friendica_content($a);
}

View file

@ -22,6 +22,8 @@ function home_content(&$a) {
if(x($_SESSION,'theme'))
unset($_SESSION['theme']);
if(x($_SESSION,'mobile-theme'))
unset($_SESSION['mobile-theme']);
$o .= '<h1>' . ((x($a->config,'sitename')) ? sprintf( t("Welcome to %s") ,$a->config['sitename']) : "" ) . '</h1>';
if(file_exists('home.html'))

View file

@ -60,7 +60,7 @@ function install_post(&$a) {
return;
break;
case 4;
case 4:
$urlpath = $a->get_path();
$dbhost = notags(trim($_POST['dbhost']));
$dbuser = notags(trim($_POST['dbuser']));
@ -155,11 +155,11 @@ function install_content(&$a) {
}
if(x($a->data,'txt') && strlen($a->data['txt'])) {
$tpl = get_markup_template('install.tpl');
$db_return_text .= manual_config($a);
}
if ($db_return_text!="") {
$tpl = get_markup_template('install.tpl');
return replace_macros($tpl, array(
'$title' => $install_title,
'$pass' => "",
@ -447,7 +447,7 @@ function check_htaccess(&$checks) {
function manual_config(&$a) {
$data = htmlentities($a->data['txt']);
$data = htmlentities($a->data['txt'],ENT_COMPAT,'UTF-8');
$o = t('The database configuration file ".htconfig.php" could not be written. Please use the enclosed text to create a configuration file in your web server root.');
$o .= "<textarea rows=\"24\" cols=\"80\" >$data</textarea>";
return $o;
@ -466,7 +466,6 @@ function load_database_rem($v, $i){
function load_database($db) {
$str = file_get_contents('database.sql');
// $str = array_reduce(explode("\n", $str),"load_database_rem","");
$arr = explode(';',$str);
$errors = false;
foreach($arr as $a) {
@ -488,7 +487,7 @@ function what_next() {
."<p>".t('IMPORTANT: You will need to [manually] setup a scheduled task for the poller.')
.t('Please see the file "INSTALL.txt".')
."</p><p>"
.t("Go to your new Firendica node <a href='$baseurl/register'>registration page</a> and register as new user. Remember to use the same email you have entered as administrator email. This will allow you to enter the site admin panel.")
.t("Go to your new Friendica node <a href='$baseurl/register'>registration page</a> and register as new user. Remember to use the same email you have entered as administrator email. This will allow you to enter the site admin panel.")
."</p>";
}

View file

@ -18,6 +18,7 @@
require_once('include/crypto.php');
require_once('include/enotify.php');
require_once('include/email.php');
require_once('Text/LanguageDetect.php');
function item_post(&$a) {
@ -45,6 +46,19 @@ function item_post(&$a) {
$return_path = ((x($_REQUEST,'return')) ? $_REQUEST['return'] : '');
$preview = ((x($_REQUEST,'preview')) ? intval($_REQUEST['preview']) : 0);
// Check for doubly-submitted posts, and reject duplicates
// Note that we have to ignore previews, otherwise nothing will post
// after it's been previewed
if(!$preview && x($_REQUEST['post_id_random'])) {
if(x($_SESSION['post-random']) && $_SESSION['post-random'] == $_REQUEST['post_id_random']) {
logger("item post: duplicate post", LOGGER_DEBUG);
item_post_return($a->get_baseurl(), $api_source, $return_path);
}
else
$_SESSION['post-random'] = $_REQUEST['post_id_random'];
}
/**
* Is this a reply to something?
*/
@ -78,6 +92,7 @@ function item_post(&$a) {
// if this isn't the real parent of the conversation, find it
if($r !== false && count($r)) {
$parid = $r[0]['parent'];
$parent_uri = $r[0]['uri'];
if($r[0]['id'] != $r[0]['parent']) {
$r = q("SELECT * FROM `item` WHERE `id` = `parent` AND `parent` = %d LIMIT 1",
intval($parid)
@ -95,8 +110,8 @@ function item_post(&$a) {
$parent = $r[0]['id'];
// multi-level threading - preserve the info but re-parent to our single level threading
if(($parid) && ($parid != $parent))
$thr_parent = $parent_uri;
//if(($parid) && ($parid != $parent))
$thr_parent = $parent_uri;
if($parent_item['contact-id'] && $uid) {
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
@ -216,6 +231,21 @@ function item_post(&$a) {
$emailcc = notags(trim($_REQUEST['emailcc']));
$body = escape_tags(trim($_REQUEST['body']));
$naked_body = preg_replace('/\[(.+?)\]/','',$body);
if (version_compare(PHP_VERSION, '5.3.0', '>=')) {
$l = new Text_LanguageDetect;
$lng = $l->detectConfidence($naked_body);
$postopts = (($lng['language']) ? 'lang=' . $lng['language'] . ';' . $lng['confidence'] : '');
logger('mod_item: detect language' . print_r($lng,true) . $naked_body, LOGGER_DATA);
}
else
$postopts = '';
$private = ((strlen($str_group_allow) || strlen($str_contact_allow) || strlen($str_group_deny) || strlen($str_contact_deny)) ? 1 : 0);
// If this is a comment, set the permissions from the parent.
@ -289,6 +319,7 @@ function item_post(&$a) {
$author = null;
$self = false;
$contact_id = 0;
if((local_user()) && (local_user() == $profile_uid)) {
$self = true;
@ -297,9 +328,19 @@ function item_post(&$a) {
);
}
elseif(remote_user()) {
$r = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1",
intval(remote_user())
);
if(is_array($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $v) {
if($v['uid'] == $profile_uid) {
$contact_id = $v['cid'];
break;
}
}
}
if($contact_id) {
$r = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1",
intval($contact_id)
);
}
}
if(count($r)) {
@ -345,8 +386,8 @@ function item_post(&$a) {
$match = null;
if((! $preview) && preg_match_all("/\[img\](.*?)\[\/img\]/",$body,$match)) {
$images = $match[1];
if((! $preview) && preg_match_all("/\[img([\=0-9x]*?)\](.*?)\[\/img\]/",$body,$match)) {
$images = $match[2];
if(count($images)) {
foreach($images as $image) {
if(! stristr($image,$a->get_baseurl() . '/photo/'))
@ -422,6 +463,7 @@ function item_post(&$a) {
$body = bb_translate_video($body);
/**
* Fold multi-line [code] sequences
*/
@ -430,6 +472,8 @@ function item_post(&$a) {
$body = scale_external_images($body,false);
/**
* Look for any tags and linkify them
*/
@ -525,6 +569,10 @@ function item_post(&$a) {
$uri = item_new_uri($a->get_hostname(),$profile_uid);
// Fallback so that we alway have a thr-parent
if(!$thr_parent)
$thr_parent = $uri;
$datarray = array();
$datarray['uid'] = $profile_uid;
$datarray['type'] = $post_type;
@ -561,7 +609,7 @@ function item_post(&$a) {
$datarray['attach'] = $attachments;
$datarray['bookmark'] = intval($bookmark);
$datarray['thr-parent'] = $thr_parent;
$datarray['postopts'] = '';
$datarray['postopts'] = $postopts;
$datarray['origin'] = $origin;
$datarray['moderated'] = $allow_moderated;
@ -584,7 +632,7 @@ function item_post(&$a) {
if($preview) {
require_once('include/conversation.php');
$o = conversation($a,array(array_merge($contact_record,$datarray)),'search',false,true);
$o = conversation($a,array(array_merge($contact_record,$datarray)),'search', false, true);
logger('preview: ' . $o);
echo json_encode(array('preview' => $o));
killme();
@ -724,6 +772,7 @@ function item_post(&$a) {
'verb' => ACTIVITY_POST,
'otype' => 'item',
'parent' => $parent,
'parent_uri' => $parent_item['uri']
));
}
@ -837,30 +886,32 @@ function item_post(&$a) {
logger('post_complete');
item_post_return($a->get_baseurl(), $api_source, $return_path);
// NOTREACHED
}
function item_post_return($baseurl, $api_source, $return_path) {
// figure out how to return, depending on from whence we came
if($api_source)
return;
if($return_path) {
goaway($a->get_baseurl() . "/" . $return_path);
goaway($baseurl . "/" . $return_path);
}
$json = array('success' => 1);
if(x($_REQUEST,'jsreload') && strlen($_REQUEST['jsreload']))
$json['reload'] = $a->get_baseurl() . '/' . $_REQUEST['jsreload'];
$json['reload'] = $baseurl . '/' . $_REQUEST['jsreload'];
logger('post_json: ' . print_r($json,true), LOGGER_DEBUG);
echo json_encode($json);
killme();
// NOTREACHED
}
function item_content(&$a) {
if((! local_user()) && (! remote_user()))
@ -958,7 +1009,26 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) {
intval($tagcid),
intval($profile_uid)
);
} elseif(strstr($name,'_') || strstr($name,' ')) { //no id
}
else {
$newname = str_replace('_',' ',$name);
//select someone from this user's contacts by name
$r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1",
dbesc($newname),
intval($profile_uid)
);
if(! $r) {
//select someone by attag or nick and the name passed in
$r = q("SELECT * FROM `contact` WHERE `attag` = '%s' OR `nick` = '%s' AND `uid` = %d ORDER BY `attag` DESC LIMIT 1",
dbesc($name),
dbesc($name),
intval($profile_uid)
);
}
}
/* } elseif(strstr($name,'_') || strstr($name,' ')) { //no id
//get the real name
$newname = str_replace('_',' ',$name);
//select someone from this user's contacts by name
@ -973,7 +1043,7 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) {
dbesc($name),
intval($profile_uid)
);
}
}*/
//$r is set, if someone could be selected
if(count($r)) {
$profile = $r[0]['url'];
@ -1039,16 +1109,11 @@ function store_diaspora_comment_sig($datarray, $author, $uprvkey, $parent_item,
require_once('include/bb2diaspora.php');
$signed_body = html_entity_decode(bb2diaspora($datarray['body']));
// $myaddr = $user['nickname'] . '@' . substr($baseurl, strpos($baseurl,'://') + 3);
// if( $author['network'] === NETWORK_DIASPORA)
// $diaspora_handle = $author['addr'];
// else {
// Only works for NETWORK_DFRN
$contact_baseurl_start = strpos($author['url'],'://') + 3;
$contact_baseurl_length = strpos($author['url'],'/profile') - $contact_baseurl_start;
$contact_baseurl = substr($author['url'], $contact_baseurl_start, $contact_baseurl_length);
$diaspora_handle = $author['nick'] . '@' . $contact_baseurl;
// }
$signed_text = $datarray['guid'] . ';' . $parent_item['guid'] . ';' . $signed_body . ';' . $diaspora_handle;

View file

@ -106,17 +106,18 @@ function like_content(&$a) {
$r = q("SELECT * FROM `item` WHERE `verb` = '%s' AND `deleted` = 0
AND `contact-id` = %d AND ( `parent` = '%s' OR `parent-uri` = '%s') LIMIT 1",
AND `contact-id` = %d AND ( `parent` = '%s' OR `parent-uri` = '%s' OR `thr-parent` = '%s') LIMIT 1",
dbesc($activity),
intval($contact['id']),
dbesc($item_id),
dbesc($item_id)
dbesc($item_id),
dbesc($item['uri'])
);
if(count($r)) {
$like_item = $r[0];
// Already voted, undo it
$r = q("UPDATE `item` SET `deleted` = 1, `changed` = '%s' WHERE `id` = %d LIMIT 1",
$r = q("UPDATE `item` SET `deleted` = 1, `unseen` = 1, `changed` = '%s' WHERE `id` = %d LIMIT 1",
dbesc(datetime_convert()),
intval($like_item['id'])
);
@ -245,9 +246,6 @@ function store_diaspora_like_retract_sig($activity, $item, $like_item, $contact)
if(($activity === ACTIVITY_LIKE) && (! $item['resource-id'])) {
$signed_text = $like_item['guid'] . ';' . 'Like';
// if( $contact['network'] === NETWORK_DIASPORA)
// $diaspora_handle = $contact['addr'];
// else {
// Only works for NETWORK_DFRN
$contact_baseurl_start = strpos($contact['url'],'://') + 3;
$contact_baseurl_length = strpos($contact['url'],'/profile') - $contact_baseurl_start;
@ -268,7 +266,6 @@ function store_diaspora_like_retract_sig($activity, $item, $like_item, $contact)
if( $r)
$authorsig = base64_encode(rsa_sign($signed_text,$r['prvkey'],'sha256'));
}
// }
if(! isset($authorsig))
$authorsig = '';
@ -299,9 +296,6 @@ function store_diaspora_like_sig($activity, $post_type, $contact, $post_id) {
logger('mod_like: storing diaspora like signature');
if(($activity === ACTIVITY_LIKE) && ($post_type === t('status'))) {
// if( $contact['network'] === NETWORK_DIASPORA)
// $diaspora_handle = $contact['addr'];
// else {
// Only works for NETWORK_DFRN
$contact_baseurl_start = strpos($contact['url'],'://') + 3;
$contact_baseurl_length = strpos($contact['url'],'/profile') - $contact_baseurl_start;
@ -322,7 +316,6 @@ function store_diaspora_like_sig($activity, $post_type, $contact, $post_id) {
if( $r)
$contact_uprvkey = $r['prvkey'];
}
// }
$r = q("SELECT guid, parent FROM `item` WHERE id = %d LIMIT 1",
intval($post_id)

View file

@ -23,7 +23,7 @@ function localtime_content(&$a) {
$o .= '<h3>' . t('Time Conversion') . '</h3>';
$o .= '<p>' . t('Friendika provides this service for sharing events with other networks and friends in unknown timezones.') . '</p>';
$o .= '<p>' . t('Friendica provides this service for sharing events with other networks and friends in unknown timezones.') . '</p>';

View file

@ -24,15 +24,15 @@ function lockview_content(&$a) {
if(! count($r))
killme();
$item = $r[0];
if($item['uid'] != local_user())
call_hooks('lockview_content', $item);
if($item['uid'] != local_user()) {
echo t('Remote privacy information not available.') . '<br />';
killme();
}
$allowed_users = expand_acl($item['allow_cid']);
$allowed_groups = expand_acl($item['allow_gid']);
$deny_users = expand_acl($item['deny_cid']);
$deny_groups = expand_acl($item['deny_gid']);
if(($item['private'] == 1) && (! strlen($item['allow_cid'])) && (! strlen($item['allow_gid']))
&& (! strlen($item['deny_cid'])) && (! strlen($item['deny_gid']))) {
@ -40,6 +40,11 @@ function lockview_content(&$a) {
killme();
}
$allowed_users = expand_acl($item['allow_cid']);
$allowed_groups = expand_acl($item['allow_gid']);
$deny_users = expand_acl($item['deny_cid']);
$deny_groups = expand_acl($item['deny_gid']);
$o = t('Visible to:') . '<br />';
$l = array();

View file

@ -3,8 +3,11 @@
function login_content(&$a) {
if(x($_SESSION,'theme'))
unset($_SESSION['theme']);
if(x($_SESSION,'mobile-theme'))
unset($_SESSION['mobile-theme']);
if(local_user())
goaway(z_root());
return login(($a->config['register_policy'] == REGISTER_CLOSED) ? false : true);
}
}

View file

@ -63,6 +63,7 @@ function manage_post(&$a) {
unset($_SESSION['administrator']);
unset($_SESSION['cid']);
unset($_SESSION['theme']);
unset($_SESSION['mobile-theme']);
unset($_SESSION['page_flags']);
unset($_SESSION['return_url']);
if(x($_SESSION,'submanage'))
@ -74,7 +75,10 @@ function manage_post(&$a) {
if($limited_id)
$_SESSION['submanage'] = $original_id;
goaway($a->get_baseurl(true) . '/profile/' . $a->user['nickname']);
$ret = array();
call_hooks('home_init',$ret);
goaway( $a->get_baseurl() . "/profile/" . $a->user['nickname'] );
// NOTREACHED
}

View file

@ -18,24 +18,17 @@ function message_init(&$a) {
));
$base = $a->get_baseurl();
$a->page['htmlhead'] .= '<script src="' . $a->get_baseurl(true) . '/library/jquery_ac/friendica.complete.js" ></script>';
$a->page['htmlhead'] .= <<< EOT
$head_tpl = get_markup_template('message-head.tpl');
$a->page['htmlhead'] .= replace_macros($head_tpl,array(
'$baseurl' => $a->get_baseurl(true),
'$base' => $base
));
<script>$(document).ready(function() {
var a;
a = $("#recip").autocomplete({
serviceUrl: '$base/acl',
minChars: 2,
width: 350,
onSelect: function(value,data) {
$("#recip-complete").val(data);
}
});
});
</script>
EOT;
$end_tpl = get_markup_template('message-end.tpl');
$a->page['end'] .= replace_macros($end_tpl,array(
'$baseurl' => $a->get_baseurl(true),
'$base' => $base
));
}
@ -242,7 +235,6 @@ function message_content(&$a) {
$tpl = get_markup_template('msg-header.tpl');
$a->page['htmlhead'] .= replace_macros($tpl, array(
'$baseurl' => $a->get_baseurl(true),
'$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
@ -250,6 +242,14 @@ function message_content(&$a) {
'$linkurl' => t('Please enter a link URL:')
));
$tpl = get_markup_template('msg-end.tpl');
$a->page['end'] .= replace_macros($tpl, array(
'$baseurl' => $a->get_baseurl(true),
'$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
'$nickname' => $a->user['nickname'],
'$linkurl' => t('Please enter a link URL:')
));
$preselect = (isset($a->argv[2])?array($a->argv[2]):false);
@ -351,6 +351,7 @@ function message_content(&$a) {
'$body' => template_escape($rr['body']),
'$to_name' => template_escape($rr['name']),
'$date' => datetime_convert('UTC',date_default_timezone_get(),$rr['mailcreated'], t('D, d M Y - g:i A')),
'$ago' => relative_date($rr['mailcreated']),
'$seen' => $rr['mailseen'],
'$count' => sprintf( tt('%d message', '%d messages', $rr['count']), $rr['count']),
));
@ -399,12 +400,17 @@ function message_content(&$a) {
require_once("include/bbcode.php");
$tpl = get_markup_template('msg-header.tpl');
$a->page['htmlhead'] .= replace_macros($tpl, array(
'$nickname' => $a->user['nickname'],
'$baseurl' => $a->get_baseurl(true)
));
$tpl = get_markup_template('msg-end.tpl');
$a->page['end'] .= replace_macros($tpl, array(
'$nickname' => $a->user['nickname'],
'$baseurl' => $a->get_baseurl(true)
));
$mails = array();
$seen = 0;
@ -438,6 +444,7 @@ function message_content(&$a) {
'delete' => t('Delete message'),
'to_name' => template_escape($message['name']),
'date' => datetime_convert('UTC',date_default_timezone_get(),$message['created'],'D, d M Y - g:i A'),
'ago' => relative_date($message['created']),
);
$seen = $message['seen'];

142
mod/mood.php Normal file
View file

@ -0,0 +1,142 @@
<?php
require_once('include/security.php');
require_once('include/bbcode.php');
require_once('include/items.php');
function mood_init(&$a) {
if(! local_user())
return;
$uid = local_user();
$verb = notags(trim($_GET['verb']));
if(! $verb)
return;
$verbs = get_mood_verbs();
if(! in_array($verb,$verbs))
return;
$activity = ACTIVITY_MOOD . '#' . urlencode($verb);
$parent = ((x($_GET,'parent')) ? intval($_GET['parent']) : 0);
logger('mood: verb ' . $verb, LOGGER_DEBUG);
if($parent) {
$r = q("select uri, private, allow_cid, allow_gid, deny_cid, deny_gid
from item where id = %d and parent = %d and uid = %d limit 1",
intval($parent),
intval($parent),
intval($uid)
);
if(count($r)) {
$parent_uri = $r[0]['uri'];
$private = $r[0]['private'];
$allow_cid = $r[0]['allow_cid'];
$allow_gid = $r[0]['allow_gid'];
$deny_cid = $r[0]['deny_cid'];
$deny_gid = $r[0]['deny_gid'];
}
}
else {
$private = 0;
$allow_cid = $a->user['allow_cid'];
$allow_gid = $a->user['allow_gid'];
$deny_cid = $a->user['deny_cid'];
$deny_gid = $a->user['deny_gid'];
}
$poster = $a->contact;
$uri = item_new_uri($a->get_hostname(),$uid);
$action = sprintf( t('%1$s is currently %2$s'), '[url=' . $poster['url'] . ']' . $poster['name'] . '[/url]' , $verbs[$verb]);
$arr = array();
$arr['uid'] = $uid;
$arr['uri'] = $uri;
$arr['parent-uri'] = (($parent_uri) ? $parent_uri : $uri);
$arr['type'] = 'activity';
$arr['wall'] = 1;
$arr['contact-id'] = $poster['id'];
$arr['owner-name'] = $poster['name'];
$arr['owner-link'] = $poster['url'];
$arr['owner-avatar'] = $poster['thumb'];
$arr['author-name'] = $poster['name'];
$arr['author-link'] = $poster['url'];
$arr['author-avatar'] = $poster['thumb'];
$arr['title'] = '';
$arr['allow_cid'] = $allow_cid;
$arr['allow_gid'] = $allow_gid;
$arr['deny_cid'] = $deny_cid;
$arr['deny_gid'] = $deny_gid;
$arr['last-child'] = 1;
$arr['visible'] = 1;
$arr['verb'] = $activity;
$arr['private'] = $private;
$arr['origin'] = 1;
$arr['body'] = $action;
$item_id = item_store($arr);
if($item_id) {
q("UPDATE `item` SET `plink` = '%s' WHERE `uid` = %d AND `id` = %d LIMIT 1",
dbesc($a->get_baseurl() . '/display/' . $poster['nickname'] . '/' . $item_id),
intval($uid),
intval($item_id)
);
proc_run('php',"include/notifier.php","tag","$item_id");
}
call_hooks('post_local_end', $arr);
proc_run('php',"include/notifier.php","like","$post_id");
return;
}
function mood_content(&$a) {
if(! local_user()) {
notice( t('Permission denied.') . EOL);
return;
}
$parent = ((x($_GET,'parent')) ? intval($_GET['parent']) : '0');
$verbs = get_mood_verbs();
$shortlist = array();
foreach($verbs as $k => $v)
if($v !== 'NOTRANSLATION')
$shortlist[] = array($k,$v);
$tpl = get_markup_template('mood_content.tpl');
$o = replace_macros($tpl,array(
'$title' => t('Mood'),
'$desc' => t('Set your current mood and tell your friends'),
'$verbs' => $shortlist,
'$parent' => $parent,
'$submit' => t('Submit'),
));
return $o;
}

View file

@ -18,13 +18,92 @@ function network_init(&$a) {
}
}
// convert query string to array and remove first element (wich is friendica args)
// convert query string to array and remove first element (which is friendica args)
$query_array = array();
parse_str($a->query_string, $query_array);
array_shift($query_array);
// fetch last used tab and redirect if needed
$sel_tabs = network_query_get_sel_tab($a);
// fetch last used network view and redirect if needed
if(! $is_a_date_query) {
$sel_tabs = network_query_get_sel_tab($a);
$sel_nets = network_query_get_sel_net();
$sel_groups = network_query_get_sel_group($a);
$last_sel_tabs = get_pconfig(local_user(), 'network.view','tab.selected');
$last_sel_nets = get_pconfig(local_user(), 'network.view', 'net.selected');
$last_sel_groups = get_pconfig(local_user(), 'network.view', 'group.selected');
$remember_tab = ($sel_tabs[0] === 'active' && is_array($last_sel_tabs) && $last_sel_tabs[0] !== 'active');
$remember_net = ($sel_nets === false && $last_sel_nets && $last_sel_nets !== 'all');
$remember_group = ($sel_groups === false && $last_sel_groups && $last_sel_groups != 0);
$net_baseurl = '/network';
$net_args = array();
if($remember_group) {
$net_baseurl .= '/' . $last_sel_groups; // Note that the group number must come before the "/new" tab selection
}
else if($sel_groups !== false) {
$net_baseurl .= '/' . $sel_groups;
}
if($remember_tab) {
// redirect if current selected tab is '/network' and
// last selected tab is _not_ '/network?f=&order=comment'.
// and this isn't a date query
$tab_baseurls = array(
'', //all
'', //postord
'', //conv
'/new', //new
'', //starred
'', //bookmarked
'', //spam
);
$tab_args = array(
'f=&order=comment', //all
'f=&order=post', //postord
'f=&conv=1', //conv
'', //new
'f=&star=1', //starred
'f=&bmark=1', //bookmarked
'f=&spam=1', //spam
);
$k = array_search('active', $last_sel_tabs);
$net_baseurl .= $tab_baseurls[$k];
// parse out tab queries
$dest_qa = array();
$dest_qs = $tab_args[$k];
parse_str( $dest_qs, $dest_qa);
$net_args = array_merge($net_args, $dest_qa);
}
else if($sel_tabs[4] === 'active') {
// The '/new' tab is selected
$net_baseurl .= '/new';
}
if($remember_net) {
$net_args['nets'] = $last_sel_nets;
}
if($remember_tab || $remember_net || $remember_group) {
$net_args = array_merge($query_array, $net_args);
$net_queries = build_querystring($net_args);
// groups filter is in form of "network/nnn". Add it to $dest_url, if it's possible
//if ($a->argc==2 && is_numeric($a->argv[1]) && strpos($net_baseurl, "/",1)===false){
// $net_baseurl .= "/".$a->argv[1];
//}
$redir_url = ($net_queries ? $net_baseurl."?".$net_queries : $net_baseurl);
goaway($a->get_baseurl() . $redir_url);
}
}
/* $sel_tabs = network_query_get_sel_tab($a);
$last_sel_tabs = get_pconfig(local_user(), 'network.view','tab.selected');
if (is_array($last_sel_tabs)){
$tab_urls = array(
@ -58,9 +137,14 @@ function network_init(&$a) {
goaway($a->get_baseurl() . $dest_url."?".$dest_qs);
}
}
}*/
if(x($_GET['nets']) && $_GET['nets'] === 'all')
unset($_GET['nets']);
$group_id = (($a->argc > 1 && intval($a->argv[1])) ? intval($a->argv[1]) : 0);
$group_id = (($a->argc > 1 && is_numeric($a->argv[1])) ? intval($a->argv[1]) : 0);
set_pconfig(local_user(), 'network.view', 'group.selected', $group_id);
require_once('include/group.php');
require_once('include/contact_widgets.php');
@ -97,7 +181,7 @@ function network_init(&$a) {
$a->page['content'] .= '<h2>' . t('Search Results For:') . ' ' . $search . '</h2>';
}
$a->page['aside'] .= group_side('network','network',true,$group_id);
$a->page['aside'] .= group_side('network/0','network',true,$group_id);
$a->page['aside'] .= posted_date_widget($a->get_baseurl() . '/network',local_user(),false);
$a->page['aside'] .= networks_widget($a->get_baseurl(true) . '/network',(x($_GET, 'nets') ? $_GET['nets'] : ''));
$a->page['aside'] .= saved_searches($search);
@ -225,6 +309,29 @@ function network_query_get_sel_tab($a) {
return array($no_active, $all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active, $spam_active);
}
/**
* Return selected network from query
*/
function network_query_get_sel_net() {
$network = false;
if(x($_GET,'nets')) {
$network = $_GET['nets'];
}
return $network;
}
function network_query_get_sel_group($a) {
$group = false;
if($a->argc >= 2 && is_numeric($a->argv[1])) {
$group = $a->argv[1];
}
return $group;
}
function network_content(&$a, $update = 0) {
@ -381,6 +488,7 @@ function network_content(&$a, $update = 0) {
if(strlen($str))
$def_acl = array('allow_cid' => $str);
}
set_pconfig(local_user(), 'network.view', 'net.selected', ($nets ? $nets : 'all'));
if(! $update) {
if($group) {
@ -471,36 +579,11 @@ function network_content(&$a, $update = 0) {
}
}
if((! $group) && (! $cid) && (! $update)) {
if((! $group) && (! $cid) && (! $update) && (! get_config('theme','hide_eventlist'))) {
$o .= get_birthdays();
$o .= get_events();
}
if(! $update) {
// The special div is needed for liveUpdate to kick in for this page.
// We only launch liveUpdate if you aren't filtering in some incompatible
// way and also you aren't writing a comment (discovered in javascript).
$o .= '<div id="live-network"></div>' . "\r\n";
$o .= "<script> var profile_uid = " . $_SESSION['uid']
. "; var netargs = '" . substr($a->cmd,8)
. '?f='
. ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '')
. ((x($_GET,'search')) ? '&search=' . $_GET['search'] : '')
. ((x($_GET,'star')) ? '&star=' . $_GET['star'] : '')
. ((x($_GET,'order')) ? '&order=' . $_GET['order'] : '')
. ((x($_GET,'bmark')) ? '&bmark=' . $_GET['bmark'] : '')
. ((x($_GET,'liked')) ? '&liked=' . $_GET['liked'] : '')
. ((x($_GET,'conv')) ? '&conv=' . $_GET['conv'] : '')
. ((x($_GET,'spam')) ? '&spam=' . $_GET['spam'] : '')
. ((x($_GET,'nets')) ? '&nets=' . $_GET['nets'] : '')
. ((x($_GET,'cmin')) ? '&cmin=' . $_GET['cmin'] : '')
. ((x($_GET,'cmax')) ? '&cmax=' . $_GET['cmax'] : '')
. ((x($_GET,'file')) ? '&file=' . $_GET['file'] : '')
. "'; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
}
$sql_extra3 = '';
if($datequery) {
@ -563,20 +646,27 @@ function network_content(&$a, $update = 0) {
}
else {
$r = q("SELECT COUNT(*) AS `total`
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
$sql_extra2 $sql_extra3
$sql_extra $sql_nets ",
intval($_SESSION['uid'])
);
if(! get_pconfig(local_user(),'system','alt_pager')) {
$r = q("SELECT COUNT(*) AS `total`
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
$sql_extra2 $sql_extra3
$sql_extra $sql_nets ",
intval($_SESSION['uid'])
);
if(count($r)) {
$a->set_pager_total($r[0]['total']);
$itemspage_network = get_pconfig(local_user(),'system','itemspage_network');
$a->set_pager_itemspage(((intval($itemspage_network)) ? $itemspage_network : 40));
if(count($r)) {
$a->set_pager_total($r[0]['total']);
}
}
$itemspage_network = get_pconfig(local_user(),'system','itemspage_network');
$itemspage_network = ((intval($itemspage_network)) ? $itemspage_network : 40);
if(($a->force_max_items > 0) && ($a->force_max_items < $itemspage_network))
$itemspage_network = $a->force_max_items;
$a->set_pager_itemspage($itemspage_network);
$pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage']));
}
@ -600,6 +690,7 @@ function network_content(&$a, $update = 0) {
intval($_SESSION['uid'])
);
$update_unseen = ' WHERE uid = ' . intval($_SESSION['uid']) . " AND unseen = 1 $sql_extra $sql_nets";
}
else {
@ -616,7 +707,8 @@ function network_content(&$a, $update = 0) {
if($update) {
$r = q("SELECT `parent` AS `item_id`, `contact`.`uid` AS `contact_uid`
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND
(`item`.`deleted` = 0 OR item.verb = '" . ACTIVITY_LIKE ."' OR item.verb = '" . ACTIVITY_DISLIKE . "')
and `item`.`moderated` = 0 and `item`.`unseen` = 1
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
$sql_extra3 $sql_extra $sql_nets ",
@ -665,6 +757,9 @@ function network_content(&$a, $update = 0) {
} else {
$items = array();
}
if($parents_str)
$update_unseen = ' WHERE uid = ' . intval(local_user()) . ' AND unseen = 1 AND parent IN ( ' . dbesc($parents_str) . ' )';
}
@ -672,6 +767,15 @@ function network_content(&$a, $update = 0) {
// level which items you've seen and which you haven't. If you're looking
// at the top level network page just mark everything seen.
// The $update_unseen is a bit unreliable if you have stuff coming into your stream from a new contact -
// and other feeds that bring in stuff from the past. One can't find it all.
// I'm reviving this block to mark everything seen on page 1 of the network as a temporary measure.
// The correct solution is to implement a network notifications box just like the system notifications popup
// with the ability in the popup to "mark all seen".
// Several people are complaining because there are unseen messages they can't find and as time goes
// on they just get buried deeper. It has happened to me a couple of times also.
if((! $group) && (! $cid) && (! $star)) {
$r = q("UPDATE `item` SET `unseen` = 0
WHERE `unseen` = 1 AND `uid` = %d",
@ -679,6 +783,9 @@ function network_content(&$a, $update = 0) {
);
}
// if($update_unseen)
// $r = q("UPDATE `item` SET `unseen` = 0 $update_unseen");
// Set this so that the conversation function can find out contact info for our wall-wall items
$a->page_contact = $a->contact;
@ -687,7 +794,12 @@ function network_content(&$a, $update = 0) {
$o .= conversation($a,$items,$mode,$update);
if(! $update) {
$o .= paginate($a);
if(! get_pconfig(local_user(),'system','alt_pager')) {
$o .= paginate($a);
}
else {
$o .= alt_pager($a,count($items));
}
}
return $o;

View file

@ -3,7 +3,7 @@
function newmember_content(&$a) {
$o = '<h3>' . t('Welcome to Friendica') . '</h3>';
$o = '<h1>' . t('Welcome to Friendica') . '</h1>';
$o .= '<h3>' . t('New Member Checklist') . '</h3>';
@ -11,39 +11,77 @@ function newmember_content(&$a) {
$o .= t('We would like to offer some tips and links to help make your experience enjoyable. Click any item to visit the relevant page. A link to this page will be visible from your home page for two weeks after your initial registration and then will quietly disappear.');
$o .= '<h4>' . t('Getting Started') . '</h4>';
$o .= '<ul>';
$o .= '<li>' . '<a target="newmember" href="help/guide">' . t('On your <em>Quick Start</em> page - find a brief introduction to your profile and network tabs, connect to Facebook, make some new connections, and find some groups to join.') . '</a></li>' . EOL;
$o .= '<li> ' . '<a target="newmember" href="help/guide">' . t('Friendica Walk-Through') . '</a><br />' . t('On your <em>Quick Start</em> page - find a brief introduction to your profile and network tabs, make some new connections, and find some groups to join.') . '</li>' . EOL;
$o .= '<li>' . '<a target="newmember" href="settings">' . t('On your <em>Settings</em> page - change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web.') . '</a></li>' . EOL;
$o .= '</ul>';
$o .= '<li>' . '<a target="newmember" href="settings">' . t('Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you.') . '</a></li>' . EOL;
$o .= '<h4>' . t('Settings') . '</h4>';
$o .= '<li>' . '<a target="newmember" href="profile_photo">' . t('Upload a profile photo if you have not done so already. Studies have shown that people with real photos of themselves are ten times more likely to make friends than people who do not.') . '</a></li>' . EOL;
$o .= '<ul>';
$o .= '<li>' . '<a target="newmember" href="settings">' . t('Go to Your Settings') . '</a><br />' . t('On your <em>Settings</em> page - change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web.') . '</li>' . EOL;
$o .= '<li>' . t('Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you.') . '</li>' . EOL;
$o .= '</ul>';
$o .= '<h4>' . t('Profile') . '</h4>';
$o .= '<ul>';
$o .= '<li>' . '<a target="newmember" href="profile_photo">' . t('Upload Profile Photo') . '</a><br />' . t('Upload a profile photo if you have not done so already. Studies have shown that people with real photos of themselves are ten times more likely to make friends than people who do not.') . '</li>' . EOL;
$o .= '<li>' . '<a target="newmember" href="profiles">' . t('Edit Your Profile') . '</a><br />' . t('Edit your <strong>default</strong> profile to your liking. Review the settings for hiding your list of friends and hiding the profile from unknown visitors.') . '</li>' . EOL;
$o .= '<li>' . '<a target="newmember" href="profiles">' . t('Profile Keywords') . '</a><br />' . t('Set some public keywords for your default profile which describe your interests. We may be able to find other people with similar interests and suggest friendships.') . '</li>' . EOL;
$o .= '</ul>';
$o .= '<h4>' . t('Connecting') . '</h4>';
$o .= '<ul>';
if(in_array('facebook', $a->plugins))
$o .= '<li>' . '<a target="newmember" href="facebook">' . t("Authorise the Facebook Connector if you currently have a Facebook account and we will \x28optionally\x29 import all your Facebook friends and conversations.") . '</a></li>' . EOL;
$o .= '<li>' . '<a target="newmember" href="facebook">' . t('Facebook') . '</a><br />' . t("Authorise the Facebook Connector if you currently have a Facebook account and we will \x28optionally\x29 import all your Facebook friends and conversations.") . '</li>' . EOL;
else
$o .= '<li>' . '<a target="newmember" href="help/Installing-Connectors">' . t("<em>If</em> this is your own personal server, installing the Facebook addon may ease your transition to the free social web.") . '</a></li>' . EOL;
$o .= '<li>' . '<a target="newmember" href="help/Installing-Connectors">' . t('Facebook') . '</a><br />' . t("<em>If</em> this is your own personal server, installing the Facebook addon may ease your transition to the free social web.") . '</li>' . EOL;
$mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1);
if(! $mail_disabled)
$o .= '<li>' . '<a target="newmember" href="settings/connectors">' . t('Enter your email access information on your Connector Settings page if you wish to import and interact with friends or mailing lists from your email INBOX') . '</a></li>' . EOL;
$o .= '<li>' . '<a target="newmember" href="settings/connectors">' . t('Importing Emails') . '</a><br />' . t('Enter your email access information on your Connector Settings page if you wish to import and interact with friends or mailing lists from your email INBOX') . '</li>' . EOL;
$o .= '<li>' . '<a target="newmember" href="profiles">' . t('Edit your <strong>default</strong> profile to your liking. Review the settings for hiding your list of friends and hiding the profile from unknown visitors.') . '</a></li>' . EOL;
$o .= '<li>' . '<a target="newmember" href="contacts">' . t('Go to Your Contacts Page') . '</a><br />' . t('Your Contacts page is your gateway to managing friendships and connecting with friends on other networks. Typically you enter their address or site URL in the <em>Add New Contact</em> dialog.') . '</li>' . EOL;
$o .= '<li>' . '<a target="newmember" href="profiles">' . t('Set some public keywords for your default profile which describe your interests. We may be able to find other people with similar interests and suggest friendships.') . '</a></li>' . EOL;
$o .= '<li>' . '<a target="newmember" href="directory">' . t("Go to Your Site's Directory") . '</a><br />' . t('The Directory page lets you find other people in this network or other federated sites. Look for a <em>Connect</em> or <em>Follow</em> link on their profile page. Provide your own Identity Address if requested.') . '</li>' . EOL;
$o .= '<li>' . '<a target="newmember" href="contacts">' . t('Your Contacts page is your gateway to managing friendships and connecting with friends on other networks. Typically you enter their address or site URL in the <em>Add New Contact</em> dialog.') . '</a></li>' . EOL;
$o .= '<li>' . '<a target="newmember" href="contacts">' . t('Finding New People') . '</a><br />' . t("On the side panel of the Contacts page are several tools to find new friends. We can match people by interest, look up people by name or interest, and provide suggestions based on network relationships. On a brand new site, friend suggestions will usually begin to be populated within 24 hours.") . '</li>' . EOL;
$o .= '<li>' . '<a target="newmember" href="directory">' . t('The Directory page lets you find other people in this network or other federated sites. Look for a <em>Connect</em> or <em>Follow</em> link on their profile page. Provide your own Identity Address if requested.') . '</a></li>' . EOL;
$o .= '</ul>';
$o .= '<li>' . '<a target="newmember" href="contacts">' . t("On the side panel of the Contacts page are several tools to find new friends. We can match people by interest, look up people by name or interest, and provide suggestions based on network relationships. On a brand new site, friend suggestions will usually begin to be populated within 24 hours.") . '</a></li>' . EOL;
$o .= '<h4>' . t('Groups') . '</h4>';
$o .= '<li>' . '<a target="newmember" href="contacts">' . t('Once you have made some friends, organize them into private conversation groups from the sidebar of your Contacts page and then you can interact with each group privately on your Network page.') . '</a></li>' . EOL;
$o .= '<ul>';
$o .= '<li>' . '<a target="newmember" href="help">' . t('Our <strong>help</strong> pages may be consulted for detail on other program features and resources.') . '</a></li>' . EOL;
$o .= '<li>' . '<a target="newmember" href="contacts">' . t('Group Your Contacts') . '</a><br />' . t('Once you have made some friends, organize them into private conversation groups from the sidebar of your Contacts page and then you can interact with each group privately on your Network page.') . '</li>' . EOL;
if(get_config('system', 'newuser_private')) {
$o .= '<li>' . '<a target="newmember" href="help/Groups-and-Privacy">' . t("Why Aren't My Posts Public?") . '</a><br />' . t("Friendica respects your privacy. By default, your posts will only show up to people you've added as friends. For more information, see the help section from the link above.") . '</li>' . EOL;
}
$o .= '</ul>';
$o .= '<h4>' . t('Getting Help') . '</h4>';
$o .= '<ul>';
$o .= '<li>' . '<a target="newmember" href="help">' . t('Go to the Help Section') . '</a><br />' . t('Our <strong>help</strong> pages may be consulted for detail on other program features and resources.') . '</li>' . EOL;
$o .= '</ul>';
$o .= '</div>';

View file

@ -66,10 +66,6 @@ function notes_content(&$a,$update = false) {
$o .= status_editor($a,$x,$a->contact['id']);
$o .= '<div id="live-notes"></div>' . "\r\n";
$o .= "<script> var profile_uid = " . local_user()
. "; var netargs = '/?f='; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
}
// Construct permissions
@ -129,9 +125,13 @@ function notes_content(&$a,$update = false) {
intval(local_user()),
dbesc($parents_str)
);
}
$o .= conversation($a,$r,'notes',$update);
if(count($r)) {
$items = conv_sort($r,"`commented`");
$o .= conversation($a,$items,'notes',$update);
}
}
$o .= paginate($a);

View file

@ -69,6 +69,9 @@ function notifications_content(&$a) {
nav_set_selected('notifications');
$json = (($a->argc > 1 && $a->argv[$a->argc - 1] === 'json') ? true : false);
$o = '';
$tabs = array(
array(
@ -211,7 +214,7 @@ function notifications_content(&$a) {
}
else
info( t('No introductions.') . EOL);
$o .= replace_macros($notif_tpl,array(
'$notif_header' => t('Notifications'),
'$tabs' => $tabs,
@ -229,7 +232,7 @@ function notifications_content(&$a) {
`item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object` as `object`,
`pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink`
FROM `item` INNER JOIN `item` as `pitem` ON `pitem`.`id`=`item`.`parent`
WHERE `item`.`unseen` = 1 AND `item`.`visible` = 1 AND
WHERE `item`.`unseen` = 1 AND `item`.`visible` = 1 AND `pitem`.`parent` != 0
`item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 0 ORDER BY `item`.`created` DESC" ,
intval(local_user())
);

View file

@ -1,7 +1,230 @@
<?php
/* To-Do
https://developers.google.com/+/plugins/snippet/
require_once('library/HTML5/Parser.php');
require_once('library/HTMLPurifier.auto.php');
<meta itemprop="name" content="Toller Titel">
<meta itemprop="description" content="Eine tolle Beschreibung">
<meta itemprop="image" content="http://maple.libertreeproject.org/images/tree-icon.png">
<body itemscope itemtype="http://schema.org/Product">
<h1 itemprop="name">Shiny Trinket</h1>
<img itemprop="image" src="{image-url}" />
<p itemprop="description">Shiny trinkets are shiny.</p>
</body>
*/
if(!function_exists('deletenode')) {
function deletenode(&$doc, $node)
{
$xpath = new DomXPath($doc);
$list = $xpath->query("//".$node);
foreach ($list as $child)
$child->parentNode->removeChild($child);
}
}
function completeurl($url, $scheme) {
$urlarr = parse_url($url);
if (isset($urlarr["scheme"]))
return($url);
$schemearr = parse_url($scheme);
$complete = $schemearr["scheme"]."://".$schemearr["host"];
if ($schemearr["port"] != "")
$complete .= ":".$schemearr["port"];
if(strpos($urlarr['path'],'/') !== 0)
$complete .= '/';
$complete .= $urlarr["path"];
if ($urlarr["query"] != "")
$complete .= "?".$urlarr["query"];
if ($urlarr["fragment"] != "")
$complete .= "#".$urlarr["fragment"];
return($complete);
}
function parseurl_getsiteinfo($url) {
$siteinfo = array();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_USERAGENT,'Opera/9.64(Windows NT 5.1; U; de) Presto/2.1.1');
$header = curl_exec($ch);
curl_close($ch);
// Fetch the first mentioned charset. Can be in body or header
if (preg_match('/charset=(.*?)['."'".'"\s\n]/', $header, $matches))
$charset = trim(array_pop($matches));
else
$charset = "utf-8";
$pos = strpos($header, "\r\n\r\n");
if ($pos)
$body = trim(substr($header, $pos));
else
$body = $header;
$body = mb_convert_encoding($body, "UTF-8", $charset);
$body = mb_convert_encoding($body, 'HTML-ENTITIES', "UTF-8");
$doc = new DOMDocument();
@$doc->loadHTML($body);
deletenode($doc, 'style');
deletenode($doc, 'script');
deletenode($doc, 'option');
deletenode($doc, 'h1');
deletenode($doc, 'h2');
deletenode($doc, 'h3');
deletenode($doc, 'h4');
deletenode($doc, 'h5');
deletenode($doc, 'h6');
deletenode($doc, 'ol');
deletenode($doc, 'ul');
$xpath = new DomXPath($doc);
//$list = $xpath->query("head/title");
$list = $xpath->query("//title");
foreach ($list as $node)
$siteinfo["title"] = html_entity_decode($node->nodeValue, ENT_QUOTES, "UTF-8");
//$list = $xpath->query("head/meta[@name]");
$list = $xpath->query("//meta[@name]");
foreach ($list as $node) {
$attr = array();
if ($node->attributes->length)
foreach ($node->attributes as $attribute)
$attr[$attribute->name] = $attribute->value;
$attr["content"] = html_entity_decode($attr["content"], ENT_QUOTES, "UTF-8");
switch (strtolower($attr["name"])) {
case "fulltitle":
$siteinfo["title"] = $attr["content"];
break;
case "description":
$siteinfo["text"] = $attr["content"];
break;
case "dc.title":
$siteinfo["title"] = $attr["content"];
break;
case "dc.description":
$siteinfo["text"] = $attr["content"];
break;
}
}
//$list = $xpath->query("head/meta[@property]");
$list = $xpath->query("//meta[@property]");
foreach ($list as $node) {
$attr = array();
if ($node->attributes->length)
foreach ($node->attributes as $attribute)
$attr[$attribute->name] = $attribute->value;
$attr["content"] = html_entity_decode($attr["content"], ENT_QUOTES, "UTF-8");
switch (strtolower($attr["property"])) {
case "og:image":
$siteinfo["image"] = $attr["content"];
break;
case "og:title":
$siteinfo["title"] = $attr["content"];
break;
case "og:description":
$siteinfo["text"] = $attr["content"];
break;
}
}
if ($siteinfo["image"] == "") {
$list = $xpath->query("//img[@src]");
foreach ($list as $node) {
$attr = array();
if ($node->attributes->length)
foreach ($node->attributes as $attribute)
$attr[$attribute->name] = $attribute->value;
$src = completeurl($attr["src"], $url);
$photodata = @getimagesize($src);
if (($photodata) && ($photodata[0] > 150) and ($photodata[1] > 150)) {
if ($photodata[0] > 300) {
$photodata[1] = round($photodata[1] * (300 / $photodata[0]));
$photodata[0] = 300;
}
if ($photodata[1] > 300) {
$photodata[0] = round($photodata[0] * (300 / $photodata[1]));
$photodata[1] = 300;
}
$siteinfo["images"][] = array("src"=>$src,
"width"=>$photodata[0],
"height"=>$photodata[1]);
}
}
} else {
$src = completeurl($siteinfo["image"], $url);
unset($siteinfo["image"]);
$photodata = @getimagesize($src);
if (($photodata) && ($photodata[0] > 10) and ($photodata[1] > 10))
$siteinfo["images"][] = array("src"=>$src,
"width"=>$photodata[0],
"height"=>$photodata[1]);
}
if ($siteinfo["text"] == "") {
$text = "";
$list = $xpath->query("//div[@class='article']");
foreach ($list as $node)
if (strlen($node->nodeValue) > 40)
$text .= " ".trim($node->nodeValue);
if ($text == "") {
$list = $xpath->query("//div[@class='content']");
foreach ($list as $node)
if (strlen($node->nodeValue) > 40)
$text .= " ".trim($node->nodeValue);
}
// If none text was found then take the paragraph content
if ($text == "") {
$list = $xpath->query("//p");
foreach ($list as $node)
if (strlen($node->nodeValue) > 40)
$text .= " ".trim($node->nodeValue);
}
if ($text != "") {
$text = trim(str_replace(array("\n", "\r"), array(" ", " "), $text));
while (strpos($text, " "))
$text = trim(str_replace(" ", " ", $text));
$siteinfo["text"] = html_entity_decode(substr($text,0,350), ENT_QUOTES, "UTF-8").'...';
}
}
return($siteinfo);
}
function arr_add_hashes(&$item,$k) {
$item = '#' . $item;
@ -16,8 +239,8 @@ function parse_url_content(&$a) {
if(local_user() && intval(get_pconfig(local_user(),'system','plaintext')))
$textmode = true;
if($textmode)
$br = (($textmode) ? "\n" : '<br /?');
//if($textmode)
$br = (($textmode) ? "\n" : '<br />');
if(x($_GET,'binurl'))
$url = trim(hex2bin($_GET['binurl']));
@ -40,13 +263,11 @@ function parse_url_content(&$a) {
logger('parse_url: ' . $url);
if($textmode)
$template = $br . '[bookmark=%s]%s[/bookmark]%s' . $br;
else
$template = "<br /><a class=\"bookmark\" href=\"%s\" >%s</a>%s<br />";
$arr = array('url' => $url, 'text' => '');
call_hooks('parse_link', $arr);
@ -60,208 +281,69 @@ function parse_url_content(&$a) {
if($url && $title && $text) {
if($textmode)
$text = $br . $br . '[quote]' . $text . '[/quote]' . $br;
$text = $br . '[quote]' . trim($text) . '[/quote]' . $br;
else
$text = '<br /><br /><blockquote>' . $text . '</blockquote><br />';
$text = '<br /><blockquote>' . trim($text) . '</blockquote><br />';
$title = str_replace(array("\r","\n"),array('',''),$title);
$result = sprintf($template,$url,($title) ? $title : $url,$text) . $str_tags;
logger('parse_url (unparsed): returns: ' . $result);
logger('parse_url (unparsed): returns: ' . $result);
echo $result;
killme();
}
$siteinfo = parseurl_getsiteinfo($url);
if($url) {
$s = fetch_url($url);
if($siteinfo["title"] == "") {
echo sprintf($template,$url,$url,'') . $str_tags;
killme();
} else {
echo '';
killme();
$text = $siteinfo["text"];
$title = $siteinfo["title"];
}
// logger('parse_url: data: ' . $s, LOGGER_DATA);
$image = "";
if(! $s) {
echo sprintf($template,$url,$url,'') . $str_tags;
killme();
}
if(sizeof($siteinfo["images"]) > 0){
/* Execute below code only if image is present in siteinfo */
$matches = '';
$c = preg_match('/\<head(.*?)\>(.*?)\<\/head\>/ism',$s,$matches);
if($c) {
// logger('parse_url: header: ' . $matches[2], LOGGER_DATA);
try {
$domhead = HTML5_Parser::parse($matches[2]);
} catch (DOMException $e) {
logger('scrape_dfrn: parse error: ' . $e);
}
if($domhead)
logger('parsed header');
}
$total_images = 0;
$max_images = get_config('system','max_bookmark_images');
if($max_images === false)
$max_images = 2;
else
$max_images = intval($max_images);
if(! $title) {
if(strpos($s,'<title>')) {
$title = substr($s,strpos($s,'<title>')+7,64);
if(strpos($title,'<') !== false)
$title = strip_tags(substr($title,0,strpos($title,'<')));
}
}
$config = HTMLPurifier_Config::createDefault();
$config->set('Cache.DefinitionImpl', null);
$purifier = new HTMLPurifier($config);
$s = $purifier->purify($s);
// logger('purify_output: ' . $s);
try {
$dom = HTML5_Parser::parse($s);
} catch (DOMException $e) {
logger('scrape_dfrn: parse error: ' . $e);
}
if(! $dom) {
echo sprintf($template,$url,$url,'') . $str_tags;
killme();
}
$items = $dom->getElementsByTagName('title');
if($items) {
foreach($items as $item) {
$title = trim($item->textContent);
break;
}
}
if(! $text) {
$divs = $dom->getElementsByTagName('div');
if($divs) {
foreach($divs as $div) {
$class = $div->getAttribute('class');
if($class && (stristr($class,'article') || stristr($class,'content'))) {
$items = $div->getElementsByTagName('p');
if($items) {
foreach($items as $item) {
$text = $item->textContent;
if(stristr($text,'<script')) {
$text = '';
continue;
}
$text = strip_tags($text);
if(strlen($text) < 100) {
$text = '';
continue;
}
$text = substr($text,0,250) . '...' ;
break;
}
}
}
if($text)
break;
}
}
if(! $text) {
$items = $dom->getElementsByTagName('p');
if($items) {
foreach($items as $item) {
$text = $item->textContent;
if(stristr($text,'<script'))
continue;
$text = strip_tags($text);
if(strlen($text) < 100) {
$text = '';
continue;
}
$text = substr($text,0,250) . '...' ;
break;
}
}
}
}
if(! $text) {
logger('parsing meta');
$items = (isset($domhead) && is_object($domhead) ? $domhead->getElementsByTagName('meta') : null);
if($items) {
foreach($items as $item) {
$property = $item->getAttribute('property');
if($property && (stristr($property,':description'))) {
$text = $item->getAttribute('content');
if(stristr($text,'<script')) {
$text = '';
continue;
}
$text = strip_tags($text);
$text = substr($text,0,250) . '...' ;
}
if($property && (stristr($property,':image'))) {
$image = $item->getAttribute('content');
if(stristr($text,'<script')) {
$image = '';
continue;
}
$image = strip_tags($image);
$i = fetch_url($image);
if($i) {
require_once('include/Photo.php');
// guess mimetype from headers or filename
$type = guess_image_type($image,true);
$ph = new Photo($i, $type);
if($ph->is_valid()) {
if($ph->getWidth() > 300 || $ph->getHeight() > 300) {
$ph->scaleImage(300);
$new_width = $ph->getWidth();
$new_height = $ph->getHeight();
if($textmode)
$image = $br . $br . '[img=' . $new_width . 'x' . $new_height . ']' . $image . '[/img]';
else
$image = '<br /><br /><img height="' . $new_height . '" width="' . $new_width . '" src="' .$image . '" alt="photo" />';
}
else {
if($textmode)
$image = $br . $br . '[img]' . $image . '[/img]';
else
$image = '<br /><br /><img src="' . $image . '" alt="photo" />';
}
}
else
$image = '';
}
}
}
}
foreach ($siteinfo["images"] as $imagedata) {
if($textmode)
$image .= '[img='.$imagedata["width"].'x'.$imagedata["height"].']'.$imagedata["src"].'[/img]' . "\n";
else
$image .= '<img height="'.$imagedata["height"].'" width="'.$imagedata["width"].'" src="'.$imagedata["src"].'" alt="photo" /><br />';
$total_images ++;
if($max_images && $max_images >= $total_images)
break;
}
}
if(strlen($text)) {
if($textmode)
$text = $br .$br . '[quote]' . $text . '[/quote]' . $br ;
$text = $br.'[quote]'.trim($text).'[/quote]'.$br ;
else
$text = '<br /><br /><blockquote>' . $text . '</blockquote><br />';
$text = '<br /><blockquote>'.trim($text).'</blockquote><br />';
}
if($image) {
$text = $image . $br . $text;
$text = $br.$br.$image.$text;
}
$title = str_replace(array("\r","\n"),array('',''),$title);
$result = sprintf($template,$url,($title) ? $title : $url,$text) . $str_tags;
logger('parse_url: returns: ' . $result);
logger('parse_url: returns: ' . $result);
echo $result;
echo trim($result);
killme();
}

View file

@ -4,14 +4,18 @@ require_once('include/items.php');
require_once('include/acl_selectors.php');
require_once('include/bbcode.php');
require_once('include/security.php');
require_once('include/redir.php');
function photos_init(&$a) {
if($a->argc > 1)
auto_redir($a, $a->argv[1]);
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
return;
}
$o = '';
if($a->argc > 1) {
@ -23,22 +27,22 @@ function photos_init(&$a) {
if(! count($r))
return;
$o .= '<div class="vcard">';
$o .= '<div class="fn">' . $a->data['user']['username'] . '</div>';
$o .= '<div id="profile-photo-wrapper"><img class="photo" style="width: 175px; height: 175px;" src="' . $a->get_cached_avatar_image($a->get_baseurl() . '/photo/profile/' . $a->data['user']['uid'] . '.jpg') . '" alt="' . $a->data['user']['username'] . '" /></div>';
$o .= '</div>';
$a->data['user'] = $r[0];
$sql_extra = permissions_sql($a->data['user']['uid']);
$albums = q("SELECT distinct(`album`) AS `album` FROM `photo` WHERE `uid` = %d $sql_extra ",
$albums = q("SELECT distinct(`album`) AS `album` FROM `photo` WHERE `uid` = %d $sql_extra order by created desc",
intval($a->data['user']['uid'])
);
if(count($albums)) {
$a->data['albums'] = $albums;
$o .= '<div class="vcard">';
$o .= '<div class="fn">' . $a->data['user']['username'] . '</div>';
$o .= '<div id="profile-photo-wrapper"><img class="photo" style="width: 175px; height: 175px;" src="' . $a->get_cached_avatar_image($a->get_baseurl() . '/photo/profile/' . $a->data['user']['uid'] . '.jpg') . '" alt="' . $a->data['user']['username'] . '" /></div>';
$o .= '</div>';
$albums_visible = ((intval($a->data['user']['hidewall']) && (! local_user()) && (! remote_user())) ? false : true);
if($albums_visible) {
@ -69,30 +73,11 @@ function photos_init(&$a) {
$a->page['aside'] .= $o;
$a->page['htmlhead'] .= "<script> var ispublic = '" . t('everybody') . "';" ;
$tpl = get_markup_template("photos_head.tpl");
$a->page['htmlhead'] .= replace_macros($tpl,array(
'$ispublic' => t('everybody')
));
$a->page['htmlhead'] .= <<< EOT
$(document).ready(function() {
$('#contact_allow, #contact_deny, #group_allow, #group_deny').change(function() {
var selstr;
$('#contact_allow option:selected, #contact_deny option:selected, #group_allow option:selected, #group_deny option:selected').each( function() {
selstr = $(this).text();
$('#jot-perms-icon').removeClass('unlock').addClass('lock');
$('#jot-public').hide();
});
if(selstr == null) {
$('#jot-perms-icon').removeClass('lock').addClass('unlock');
$('#jot-public').show();
}
}).trigger('change');
});
</script>
EOT;
}
return;
@ -120,13 +105,25 @@ function photos_post(&$a) {
$can_post = true;
else {
if($community_page && remote_user()) {
$r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
intval(remote_user()),
intval($page_owner_uid)
);
if(count($r)) {
$can_post = true;
$visitor = remote_user();
$cid = 0;
if(is_array($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $v) {
if($v['uid'] == $page_owner_uid) {
$cid = $v['cid'];
break;
}
}
}
if($cid) {
$r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
intval($cid),
intval($page_owner_uid)
);
if(count($r)) {
$can_post = true;
$visitor = $cid;
}
}
}
}
@ -488,7 +485,25 @@ function photos_post(&$a) {
intval($profile_uid)
);
}
elseif(strstr($name,'_') || strstr($name,' ')) {
else {
$newname = str_replace('_',' ',$name);
//select someone from this user's contacts by name
$r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1",
dbesc($newname),
intval($page_owner_uid)
);
if(! $r) {
//select someone by attag or nick and the name passed in
$r = q("SELECT * FROM `contact` WHERE `attag` = '%s' OR `nick` = '%s' AND `uid` = %d ORDER BY `attag` DESC LIMIT 1",
dbesc($name),
dbesc($name),
intval($page_owner_uid)
);
}
}
/* elseif(strstr($name,'_') || strstr($name,' ')) {
$newname = str_replace('_',' ',$name);
$r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1",
dbesc($newname),
@ -501,7 +516,7 @@ function photos_post(&$a) {
dbesc($name),
intval($page_owner_uid)
);
}
}*/
if(count($r)) {
$newname = $r[0]['name'];
$profile = $r[0]['url'];
@ -588,7 +603,7 @@ function photos_post(&$a) {
$arr['tag'] = $tagged[4];
$arr['inform'] = $tagged[2];
$arr['origin'] = 1;
$arr['body'] = '[url=' . $tagged[1] . ']' . $tagged[0] . '[/url]' . ' ' . t('was tagged in a') . ' ' . '[url=' . $a->get_baseurl() . '/photos/' . $owner_record['nickname'] . '/image/' . $p[0]['resource-id'] . ']' . t('photo') . '[/url]' . ' ' . t('by') . ' ' . '[url=' . $owner_record['url'] . ']' . $owner_record['name'] . '[/url]' ;
$arr['body'] = sprintf( t('%1$s was tagged in %2$s by %3$s'), '[url=' . $tagged[1] . ']' . $tagged[0] . '[/url]', '[url=' . $a->get_baseurl() . '/photos/' . $owner_record['nickname'] . '/image/' . $p[0]['resource-id'] . ']' . t('a photo') . '[/url]', '[url=' . $owner_record['url'] . ']' . $owner_record['name'] . '[/url]') ;
$arr['body'] .= "\n\n" . '[url=' . $a->get_baseurl() . '/photos/' . $owner_record['nickname'] . '/image/' . $p[0]['resource-id'] . ']' . '[img]' . $a->get_baseurl() . "/photo/" . $p[0]['resource-id'] . '-' . $best . '.' . $ext . '[/img][/url]' . "\n" ;
$arr['object'] = '<object><type>' . ACTIVITY_OBJ_PERSON . '</type><title>' . $tagged[0] . '</title><id>' . $tagged[1] . '/' . $tagged[0] . '</id>';
@ -890,6 +905,7 @@ function photos_content(&$a) {
$visitor = 0;
$contact = null;
$remote_contact = false;
$contact_id = 0;
$owner_uid = $a->data['user']['uid'];
@ -899,15 +915,26 @@ function photos_content(&$a) {
$can_post = true;
else {
if($community_page && remote_user()) {
$r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
intval(remote_user()),
intval($owner_uid)
);
if(count($r)) {
$can_post = true;
$contact = $r[0];
$remote_contact = true;
$visitor = remote_user();
if(is_array($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $v) {
if($v['uid'] == $owner_uid) {
$contact_id = $v['cid'];
break;
}
}
}
if($contact_id) {
$r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
intval($contact_id),
intval($owner_uid)
);
if(count($r)) {
$can_post = true;
$contact = $r[0];
$remote_contact = true;
$visitor = $cid;
}
}
}
}
@ -915,15 +942,25 @@ function photos_content(&$a) {
// perhaps they're visiting - but not a community page, so they wouldn't have write access
if(remote_user() && (! $visitor)) {
$contact_id = $_SESSION['visitor_id'];
$groups = init_groups_visitor($contact_id);
$r = q("SELECT * FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
intval(remote_user()),
intval($owner_uid)
);
if(count($r)) {
$contact = $r[0];
$remote_contact = true;
$contact_id = 0;
if(is_array($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $v) {
if($v['uid'] == $owner_uid) {
$contact_id = $v['cid'];
break;
}
}
}
if($contact_id) {
$groups = init_groups_visitor($contact_id);
$r = q("SELECT * FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
intval($contact_id),
intval($owner_uid)
);
if(count($r)) {
$contact = $r[0];
$remote_contact = true;
}
}
}
@ -962,7 +999,7 @@ function photos_content(&$a) {
$selname = (($datum) ? hex2bin($datum) : '');
$albumselect = '<select id="photos-upload-album-select" name="album" size="4">';
$albumselect = '';
$albumselect .= '<option value="" ' . ((! $selname) ? ' selected="selected" ' : '') . '>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>';
@ -977,8 +1014,6 @@ function photos_content(&$a) {
$celeb = ((($a->user['page-flags'] == PAGE_SOAPBOX) || ($a->user['page-flags'] == PAGE_COMMUNITY)) ? true : false);
$albumselect .= '</select>';
$uploader = '';
$ret = array('post_url' => $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'],
@ -988,7 +1023,7 @@ function photos_content(&$a) {
call_hooks('photo_upload_form',$ret);
$default_upload = '<input type="file" name="userfile" /> <div class="photos-upload-submit-wrapper" >
$default_upload = '<input id="photos-upload-choose" type="file" name="userfile" /> <div class="photos-upload-submit-wrapper" >
<input type="submit" name="submit" value="' . t('Submit') . '" id="photos-upload-submit" /> </div>';
@ -1041,8 +1076,13 @@ function photos_content(&$a) {
$a->set_pager_itemspage(20);
}
if($_GET['order'] === 'posted')
$order = 'ASC';
else
$order = 'DESC';
$r = q("SELECT `resource-id`, `id`, `filename`, type, max(`scale`) AS `scale`, `desc` FROM `photo` WHERE `uid` = %d AND `album` = '%s'
AND `scale` <= 4 $sql_extra GROUP BY `resource-id` ORDER BY `created` DESC LIMIT %d , %d",
AND `scale` <= 4 $sql_extra GROUP BY `resource-id` ORDER BY `created` $order LIMIT %d , %d",
intval($owner_uid),
dbesc($album),
intval($a->pager['start']),
@ -1076,10 +1116,17 @@ function photos_content(&$a) {
}
}
if($_GET['order'] === 'posted')
$o .= '<div class="photos-upload-link" ><a href="' . $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/album/' . bin2hex($album) . '" >' . t('Show Newest First') . '</a></div>';
else
$o .= '<div class="photos-upload-link" ><a href="' . $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/album/' . bin2hex($album) . '?f=&order=posted" >' . t('Show Oldest First') . '</a></div>';
if($can_post) {
$o .= '<div class="photos-upload-link" ><a href="' . $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/upload/' . bin2hex($album) . '" >' . t('Upload New Photos') . '</a></div>';
}
$tpl = get_markup_template('photo_album.tpl');
if(count($r))
$twist = 'rotright';
@ -1094,7 +1141,8 @@ function photos_content(&$a) {
$o .= replace_macros($tpl,array(
'$id' => $rr['id'],
'$twist' => ' ' . $twist . rand(2,4),
'$photolink' => $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/image/' . $rr['resource-id'],
'$photolink' => $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/image/' . $rr['resource-id']
. (($_GET['order'] === 'posted') ? '?f=&order=posted' : ''),
'$phototitle' => t('View Photo'),
'$imgsrc' => $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['scale'] . '.' .$ext,
'$imgalt' => template_escape($rr['filename']),
@ -1139,8 +1187,14 @@ function photos_content(&$a) {
$prevlink = '';
$nextlink = '';
if($_GET['order'] === 'posted')
$order = 'ASC';
else
$order = 'DESC';
$prvnxt = q("SELECT `resource-id` FROM `photo` WHERE `album` = '%s' AND `uid` = %d AND `scale` = 0
$sql_extra ORDER BY `created` DESC ",
$sql_extra ORDER BY `created` $order ",
dbesc($ph[0]['album']),
intval($owner_uid)
);
@ -1158,8 +1212,8 @@ function photos_content(&$a) {
}
}
$edit_suffix = ((($cmd === 'edit') && ($can_post)) ? '/edit' : '');
$prevlink = $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/image/' . $prvnxt[$prv]['resource-id'] . $edit_suffix;
$nextlink = $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/image/' . $prvnxt[$nxt]['resource-id'] . $edit_suffix;
$prevlink = $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/image/' . $prvnxt[$prv]['resource-id'] . $edit_suffix . (($_GET['order'] === 'posted') ? '?f=&order=posted' : '');
$nextlink = $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/image/' . $prvnxt[$nxt]['resource-id'] . $edit_suffix . (($_GET['order'] === 'posted') ? '?f=&order=posted' : '');
}
@ -1195,15 +1249,12 @@ function photos_content(&$a) {
}
if(! $cmd !== 'edit') {
$a->page['htmlhead'] .= '<script>
$(document).keydown(function(event) {' . "\n";
if($prevlink)
$a->page['htmlhead'] .= 'if(event.ctrlKey && event.keyCode == 37) { event.preventDefault(); window.location.href = \'' . $prevlink . '\'; }' . "\n";
if($nextlink)
$a->page['htmlhead'] .= 'if(event.ctrlKey && event.keyCode == 39) { event.preventDefault(); window.location.href = \'' . $nextlink . '\'; }' . "\n";
$a->page['htmlhead'] .= '});</script>';
if( $cmd === 'edit') {
$tpl = get_markup_template('photo_edit_head.tpl');
$a->page['htmlhead'] .= replace_macros($tpl,array(
'$prevlink' => $prevlink,
'$nextlink' => $nextlink
));
}
if($prevlink)
@ -1221,6 +1272,12 @@ function photos_content(&$a) {
// Do we have an item for this photo?
// FIXME! - replace following code to display the conversation with our normal
// conversation functions so that it works correctly and tracks changes
// in the evolving conversation code.
// The difference is that we won't be displaying the conversation head item
// as a "post" but displaying instead the photo it is linked to
$linked_items = q("SELECT * FROM `item` WHERE `resource-id` = '%s' $sql_extra LIMIT 1",
dbesc($datum)
);
@ -1348,7 +1405,9 @@ function photos_content(&$a) {
'$comment' => t('Comment'),
'$submit' => t('Submit'),
'$preview' => t('Preview'),
'$ww' => ''
'$sourceapp' => t($a->sourcename),
'$ww' => '',
'$rand_num' => random_digits(12)
));
}
}
@ -1360,6 +1419,8 @@ function photos_content(&$a) {
$like = '';
$dislike = '';
// display comments
if(count($r)) {
@ -1387,7 +1448,10 @@ function photos_content(&$a) {
'$myphoto' => $contact['thumb'],
'$comment' => t('Comment'),
'$submit' => t('Submit'),
'$ww' => ''
'$preview' => t('Preview'),
'$sourceapp' => t($a->sourcename),
'$ww' => '',
'$rand_num' => random_digits(12)
));
}
}
@ -1403,26 +1467,6 @@ function photos_content(&$a) {
$redirect_url = $a->get_baseurl() . '/redir/' . $item['cid'] ;
if($can_post || can_write_wall($a,$owner_uid)) {
if($item['last-child']) {
$comments .= replace_macros($cmnt_tpl,array(
'$return_path' => '',
'$jsreload' => $return_url,
'$type' => 'wall-comment',
'$id' => $item['item_id'],
'$parent' => $item['parent'],
'$profile_uid' => $owner_uid,
'$mylink' => $contact['url'],
'$mytitle' => t('This is you'),
'$myphoto' => $contact['thumb'],
'$comment' => t('Comment'),
'$submit' => t('Submit'),
'$ww' => ''
));
}
}
if(local_user() && ($item['contact-uid'] == local_user())
&& ($item['network'] == 'dfrn') && (! $item['self'] )) {
@ -1443,7 +1487,7 @@ function photos_content(&$a) {
$drop = '';
if(($item['contact-id'] == remote_user()) || ($item['uid'] == local_user()))
if(($item['contact-id'] == $contact_id) || ($item['uid'] == local_user()))
$drop = replace_macros(get_markup_template('photo_drop.tpl'), array('$id' => $item['id'], '$delete' => t('Delete')));
@ -1460,6 +1504,29 @@ function photos_content(&$a) {
'$drop' => $drop,
'$comment' => $comment
));
if($can_post || can_write_wall($a,$owner_uid)) {
if($item['last-child']) {
$comments .= replace_macros($cmnt_tpl,array(
'$return_path' => '',
'$jsreload' => $return_url,
'$type' => 'wall-comment',
'$id' => $item['item_id'],
'$parent' => $item['parent'],
'$profile_uid' => $owner_uid,
'$mylink' => $contact['url'],
'$mytitle' => t('This is you'),
'$myphoto' => $contact['thumb'],
'$comment' => t('Comment'),
'$submit' => t('Submit'),
'$preview' => t('Preview'),
'$sourceapp' => t($a->sourcename),
'$ww' => '',
'$rand_num' => random_digits(12)
));
}
}
}
}

View file

@ -55,21 +55,25 @@ function ping_init(&$a) {
$dislikes = array();
$friends = array();
$posts = array();
$home = 0;
$network = 0;
$r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`wall`, `item`.`author-name`,
`item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object`,
`item`.`contact-id`, `item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object`,
`pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink`
FROM `item` INNER JOIN `item` as `pitem` ON `pitem`.`id`=`item`.`parent`
WHERE `item`.`unseen` = 1 AND `item`.`visible` = 1 AND
`item`.`deleted` = 0 AND `item`.`uid` = %d
WHERE `item`.`unseen` = 1 AND `item`.`visible` = 1 AND
`item`.`deleted` = 0 AND `item`.`uid` = %d AND `pitem`.`parent` != 0
ORDER BY `item`.`created` DESC",
intval(local_user())
);
if(count($r)) {
$arr = array('items' => $r);
call_hooks('network_ping', $arr);
foreach ($r as $it) {
if($it['wall'])
@ -140,6 +144,48 @@ function ping_init(&$a) {
$register = "0";
}
$all_events = 0;
$all_events_today = 0;
$events = 0;
$events_today = 0;
$birthdays = 0;
$birthdays_today = 0;
$ev = q("SELECT count(`event`.`id`) as total, type, start, adjust FROM `event`
WHERE `event`.`uid` = %d AND `start` < '%s' AND `finish` > '%s' and `ignore` = 0
ORDER BY `start` ASC ",
intval(local_user()),
dbesc(datetime_convert('UTC','UTC','now + 7 days')),
dbesc(datetime_convert('UTC','UTC','now'))
);
if($ev && count($ev)) {
$all_events = intval($ev[0]['total']);
if($all_events) {
$str_now = datetime_convert('UTC',$a->timezone,'now','Y-m-d');
foreach($ev as $x) {
$bd = false;
if($x['type'] === 'birthday') {
$birthdays ++;
$bd = true;
}
else {
$events ++;
}
if(datetime_convert('UTC',((intval($x['adjust'])) ? $a->timezone : 'UTC'), $x['start'],'Y-m-d') === $str_now) {
$all_events_today ++;
if($bd)
$birthdays_today ++;
else
$events_today ++;
}
}
}
}
function xmlize($href, $name, $url, $photo, $date, $seen, $message){
$data = array('href' => &$href, 'name' => &$name, 'url'=>&$url, 'photo'=>&$photo, 'date'=>&$date, 'seen'=>&$seen, 'messsage'=>&$message);
@ -153,8 +199,15 @@ function ping_init(&$a) {
echo "<intro>$intro</intro>
<mail>$mail</mail>
<net>$network</net>
<home>$home</home>";
<home>$home</home>\r\n";
if ($register!=0) echo "<register>$register</register>";
echo "<all-events>$all_events</all-events>
<all-events-today>$all_events_today</all-events-today>
<events>$events</events>
<events-today>$events_today</events-today>
<birthdays>$birthdays</birthdays>
<birthdays-today>$birthdays_today</birthdays-today>\r\n";
$tot = $mail+$intro+$register+count($comments)+count($likes)+count($dislikes)+count($friends)+count($posts)+count($tags);

View file

@ -56,7 +56,7 @@ function poco_init(&$a) {
and uid in (select uid from pconfig where cat = 'system' and k = 'suggestme' and v = 1) ");
}
else {
$r = q("SELECT count(*) as `total` from `contact` where `uid` = %d and blocked = 0 and pending = 0 and hidden = 0
$r = q("SELECT count(*) as `total` from `contact` where `uid` = %d and blocked = 0 and pending = 0 and hidden = 0 and archive = 0
$sql_extra ",
intval($user['uid'])
);
@ -81,7 +81,7 @@ function poco_init(&$a) {
}
else {
$r = q("SELECT * from `contact` where `uid` = %d and blocked = 0 and pending = 0 and hidden = 0
$r = q("SELECT * from `contact` where `uid` = %d and blocked = 0 and pending = 0 and hidden = 0 and archive = 0
$sql_extra LIMIT %d, %d",
intval($user['uid']),
intval($startIndex),

206
mod/poke.php Normal file
View file

@ -0,0 +1,206 @@
<?php
require_once('include/security.php');
require_once('include/bbcode.php');
require_once('include/items.php');
function poke_init(&$a) {
if(! local_user())
return;
$uid = local_user();
$verb = notags(trim($_GET['verb']));
if(! $verb)
return;
$verbs = get_poke_verbs();
if(! array_key_exists($verb,$verbs))
return;
$activity = ACTIVITY_POKE . '#' . urlencode($verbs[$verb][0]);
$contact_id = intval($_GET['cid']);
if(! $contact_id)
return;
$parent = ((x($_GET,'parent')) ? intval($_GET['parent']) : 0);
logger('poke: verb ' . $verb . ' contact ' . $contact_id, LOGGER_DEBUG);
$r = q("SELECT * FROM `contact` WHERE `id` = %d and `uid` = %d LIMIT 1",
intval($contact_id),
intval($uid)
);
if(! count($r)) {
logger('poke: no contact ' . $contact_id);
return;
}
$target = $r[0];
if($parent) {
$r = q("select uri, private, allow_cid, allow_gid, deny_cid, deny_gid
from item where id = %d and parent = %d and uid = %d limit 1",
intval($parent),
intval($parent),
intval($uid)
);
if(count($r)) {
$parent_uri = $r[0]['uri'];
$private = $r[0]['private'];
$allow_cid = $r[0]['allow_cid'];
$allow_gid = $r[0]['allow_gid'];
$deny_cid = $r[0]['deny_cid'];
$deny_gid = $r[0]['deny_gid'];
}
}
else {
$private = ((x($_GET,'private')) ? intval($_GET['private']) : 0);
$allow_cid = (($private) ? '<' . $target['id']. '>' : $a->user['allow_cid']);
$allow_gid = (($private) ? '' : $a->user['allow_gid']);
$deny_cid = (($private) ? '' : $a->user['deny_cid']);
$deny_gid = (($private) ? '' : $a->user['deny_gid']);
}
$poster = $a->contact;
$uri = item_new_uri($a->get_hostname(),$uid);
$arr = array();
$arr['uid'] = $uid;
$arr['uri'] = $uri;
$arr['parent-uri'] = (($parent_uri) ? $parent_uri : $uri);
$arr['type'] = 'activity';
$arr['wall'] = 1;
$arr['contact-id'] = $poster['id'];
$arr['owner-name'] = $poster['name'];
$arr['owner-link'] = $poster['url'];
$arr['owner-avatar'] = $poster['thumb'];
$arr['author-name'] = $poster['name'];
$arr['author-link'] = $poster['url'];
$arr['author-avatar'] = $poster['thumb'];
$arr['title'] = '';
$arr['allow_cid'] = $allow_cid;
$arr['allow_gid'] = $allow_gid;
$arr['deny_cid'] = $deny_cid;
$arr['deny_gid'] = $deny_gid;
$arr['last-child'] = 1;
$arr['visible'] = 1;
$arr['verb'] = $activity;
$arr['private'] = $private;
$arr['object-type'] = ACTIVITY_OBJ_PERSON;
$arr['origin'] = 1;
$arr['body'] = '[url=' . $poster['url'] . ']' . $poster['name'] . '[/url]' . ' ' . t($verbs[$verb][0]) . ' ' . '[url=' . $target['url'] . ']' . $target['name'] . '[/url]';
$arr['object'] = '<object><type>' . ACTIVITY_OBJ_PERSON . '</type><title>' . $target['name'] . '</title><id>' . $a->get_baseurl() . '/contact/' . $target['id'] . '</id>';
$arr['object'] .= '<link>' . xmlify('<link rel="alternate" type="text/html" href="' . $target['url'] . '" />' . "\n");
$arr['object'] .= xmlify('<link rel="photo" type="image/jpeg" href="' . $target['photo'] . '" />' . "\n");
$arr['object'] .= '</link></object>' . "\n";
$item_id = item_store($arr);
if($item_id) {
q("UPDATE `item` SET `plink` = '%s' WHERE `uid` = %d AND `id` = %d LIMIT 1",
dbesc($a->get_baseurl() . '/display/' . $poster['nickname'] . '/' . $item_id),
intval($uid),
intval($item_id)
);
proc_run('php',"include/notifier.php","tag","$item_id");
}
call_hooks('post_local_end', $arr);
proc_run('php',"include/notifier.php","like","$post_id");
return;
}
function poke_content(&$a) {
if(! local_user()) {
notice( t('Permission denied.') . EOL);
return;
}
$name = '';
$id = '';
if(intval($_GET['c'])) {
$r = q("select id,name from contact where id = %d and uid = %d limit 1",
intval($_GET['c']),
intval(local_user())
);
if(count($r)) {
$name = $r[0]['name'];
$id = $r[0]['id'];
}
}
$base = $a->get_baseurl();
$a->page['htmlhead'] .= '<script src="' . $a->get_baseurl(true) . '/library/jquery_ac/friendica.complete.js" ></script>';
$a->page['htmlhead'] .= <<< EOT
<script>$(document).ready(function() {
var a;
a = $("#poke-recip").autocomplete({
serviceUrl: '$base/acl',
minChars: 2,
width: 350,
onSelect: function(value,data) {
$("#poke-recip-complete").val(data);
}
});
a.setOptions({ params: { type: 'a' }});
});
</script>
EOT;
$parent = ((x($_GET,'parent')) ? intval($_GET['parent']) : '0');
$verbs = get_poke_verbs();
$shortlist = array();
foreach($verbs as $k => $v)
if($v[1] !== 'NOTRANSLATION')
$shortlist[] = array($k,$v[1]);
$tpl = get_markup_template('poke_content.tpl');
$o = replace_macros($tpl,array(
'$title' => t('Poke/Prod'),
'$desc' => t('poke, prod or do other things to somebody'),
'$clabel' => t('Recipient'),
'$choice' => t('Choose what you wish to do to recipient'),
'$verbs' => $shortlist,
'$parent' => $parent,
'$prv_desc' => t('Make this post private'),
'$submit' => t('Submit'),
'$name' => $name,
'$id' => $id
));
return $o;
}

View file

@ -7,10 +7,16 @@ function pretheme_init(&$a) {
$info = get_theme_info($theme);
if($info) {
// unfortunately there will be no translation for this string
$desc = $info['description'] . ' ' . $info['version'];
$desc = $info['description'];
$version = $info['version'];
$credits = $info['credits'];
}
else $desc = '';
echo json_encode(array('img' => get_theme_screenshot($theme), 'desc' => $desc));
else {
$desc = '';
$version = '';
$credits = '';
}
echo json_encode(array('img' => get_theme_screenshot($theme), 'desc' => $desc, 'version' => $version, 'credits' => $credits));
}
killme();
}

View file

@ -1,14 +1,14 @@
<?php
require_once('include/contact_widgets.php');
require_once('include/redir.php');
function profile_init(&$a) {
require_once('include/contact_widgets.php');
if(! x($a->page,'aside'))
$a->page['aside'] = '';
$blocked = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false);
if($a->argc > 1)
$which = $a->argv[1];
else {
@ -29,9 +29,13 @@ function profile_init(&$a) {
$which = $a->user['nickname'];
$profile = $a->argv[1];
}
else {
auto_redir($a, $which);
}
profile_load($a,$which,$profile);
$blocked = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false);
$userblock = (($a->profile['hidewall'] && (! local_user()) && (! remote_user())) ? true : false);
if((x($a->profile,'page-flags')) && ($a->profile['page-flags'] == PAGE_COMMUNITY)) {
@ -115,8 +119,18 @@ function profile_content(&$a, $update = 0) {
$contact = null;
$remote_contact = false;
if(remote_user()) {
$contact_id = $_SESSION['visitor_id'];
$contact_id = 0;
if(is_array($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $v) {
if($v['uid'] == $a->profile['profile_uid']) {
$contact_id = $v['cid'];
break;
}
}
}
if($contact_id) {
$groups = init_groups_visitor($contact_id);
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($contact_id),
@ -204,7 +218,8 @@ function profile_content(&$a, $update = 0) {
$r = q("SELECT distinct(parent) AS `item_id`, `contact`.`uid` AS `contact-uid`
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND
(`item`.`deleted` = 0 OR item.verb = '" . ACTIVITY_LIKE ."' OR item.verb = '" . ACTIVITY_DISLIKE . "')
and `item`.`moderated` = 0 and `item`.`unseen` = 1
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
AND `item`.`wall` = 1
@ -227,21 +242,28 @@ function profile_content(&$a, $update = 0) {
$sql_extra2 .= protect_sprintf(sprintf(" AND item.created >= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery2))));
}
if(! get_pconfig($a->profile['profile_uid'],'system','alt_pager')) {
$r = q("SELECT COUNT(*) AS `total`
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
and `item`.`moderated` = 0 AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
AND `item`.`id` = `item`.`parent` AND `item`.`wall` = 1
$sql_extra $sql_extra2 ",
intval($a->profile['profile_uid'])
);
$r = q("SELECT COUNT(*) AS `total`
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
and `item`.`moderated` = 0 AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
AND `item`.`id` = `item`.`parent` AND `item`.`wall` = 1
$sql_extra $sql_extra2 ",
intval($a->profile['profile_uid'])
);
if(count($r)) {
$a->set_pager_total($r[0]['total']);
$a->set_pager_itemspage(40);
if(count($r)) {
$a->set_pager_total($r[0]['total']);
}
}
$itemspage_network = get_pconfig(local_user(),'system','itemspage_network');
$itemspage_network = ((intval($itemspage_network)) ? $itemspage_network : 40);
if(($a->force_max_items > 0) && ($a->force_max_items < $itemspage_network))
$itemspage_network = $a->force_max_items;
$a->set_pager_itemspage($itemspage_network);
$pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage']));
$r = q("SELECT `item`.`id` AS `item_id`, `contact`.`uid` AS `contact-uid`
@ -285,21 +307,11 @@ function profile_content(&$a, $update = 0) {
$items = array();
}
if($is_owner && ! $update) {
if($is_owner && (! $update) && (! get_config('theme','hide_eventlist'))) {
$o .= get_birthdays();
$o .= get_events();
}
if((! $update) && ($tab === 'posts')) {
// This is ugly, but we can't pass the profile_uid through the session to the ajax updater,
// because browser prefetching might change it on us. We have to deliver it with the page.
$o .= '<div id="live-profile"></div>' . "\r\n";
$o .= "<script> var profile_uid = " . $a->profile['profile_uid']
. "; var netargs = '?f='; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
}
if($is_owner) {
$r = q("UPDATE `item` SET `unseen` = 0
@ -311,7 +323,12 @@ function profile_content(&$a, $update = 0) {
$o .= conversation($a,$items,'profile',$update);
if(! $update) {
$o .= paginate($a);
if(! get_pconfig($a->profile['profile_uid'],'system','alt_pager')) {
$o .= paginate($a);
}
else {
$o .= alt_pager($a,count($items));
}
}
return $o;

View file

@ -24,6 +24,20 @@ function profile_photo_post(&$a) {
if((x($_POST,'cropfinal')) && ($_POST['cropfinal'] == 1)) {
// unless proven otherwise
$is_default_profile = 1;
if($_REQUEST['profile']) {
$r = q("select id, `is-default` from profile where id = %d and uid = %d limit 1",
intval($_REQUEST['profile']),
intval(local_user())
);
if(count($r) && (! intval($r[0]['is-default'])))
$is_default_profile = 0;
}
// phase 2 - we have finished cropping
if($a->argc != 2) {
@ -57,31 +71,44 @@ function profile_photo_post(&$a) {
if($im->is_valid()) {
$im->cropImage(175,$srcX,$srcY,$srcW,$srcH);
$r = $im->store(local_user(), 0, $base_image['resource-id'],$base_image['filename'], t('Profile Photos'), 4, 1);
$r = $im->store(local_user(), 0, $base_image['resource-id'],$base_image['filename'], t('Profile Photos'), 4, $is_default_profile);
if($r === false)
notice ( sprintf(t('Image size reduction [%s] failed.'),"175") . EOL );
$im->scaleImage(80);
$r = $im->store(local_user(), 0, $base_image['resource-id'],$base_image['filename'], t('Profile Photos'), 5, 1);
$r = $im->store(local_user(), 0, $base_image['resource-id'],$base_image['filename'], t('Profile Photos'), 5, $is_default_profile);
if($r === false)
notice( sprintf(t('Image size reduction [%s] failed.'),"80") . EOL );
$im->scaleImage(48);
$r = $im->store(local_user(), 0, $base_image['resource-id'],$base_image['filename'], t('Profile Photos'), 6, 1);
$r = $im->store(local_user(), 0, $base_image['resource-id'],$base_image['filename'], t('Profile Photos'), 6, $is_default_profile);
if($r === false)
notice( sprintf(t('Image size reduction [%s] failed.'),"48") . EOL );
// Unset the profile photo flag from any other photos I own
// If setting for the default profile, unset the profile photo flag from any other photos I own
$r = q("UPDATE `photo` SET `profile` = 0 WHERE `profile` = 1 AND `resource-id` != '%s' AND `uid` = %d",
dbesc($base_image['resource-id']),
intval(local_user())
);
if($is_default_profile) {
$r = q("UPDATE `photo` SET `profile` = 0 WHERE `profile` = 1 AND `resource-id` != '%s' AND `uid` = %d",
dbesc($base_image['resource-id']),
intval(local_user())
);
}
else {
$r = q("update profile set photo = '%s', thumb = '%s' where id = %d and uid = %d limit 1",
dbesc($a->get_baseurl() . '/photo/' . $base_image['resource-id'] . '-4'),
dbesc($a->get_baseurl() . '/photo/' . $base_image['resource-id'] . '-5'),
intval($_REQUEST['profile']),
intval(local_user())
);
}
// we'll set the updated profile-photo timestamp even if it isn't the default profile,
// so that browsers will do a cache update unconditionally
$r = q("UPDATE `contact` SET `avatar-date` = '%s' WHERE `self` = 1 AND `uid` = %d LIMIT 1",
dbesc(datetime_convert()),
@ -201,6 +228,11 @@ function profile_photo_content(&$a) {
// go ahead as we have jus uploaded a new photo to crop
}
$profiles = q("select `id`,`profile-name` as `name`,`is-default` as `default` from profile where uid = %d",
intval(local_user())
);
if(! x($a->config,'imagecrop')) {
$tpl = get_markup_template('profile_photo.tpl');
@ -208,8 +240,10 @@ function profile_photo_content(&$a) {
$o .= replace_macros($tpl,array(
'$user' => $a->user['nickname'],
'$lbl_upfile' => t('Upload File:'),
'$lbl_profiles' => t('Select a profile:'),
'$title' => t('Upload Profile Photo'),
'$submit' => t('Upload'),
'$profiles' => $profiles,
'$form_security_token' => get_form_security_token("profile_photo"),
'$select' => sprintf('%s %s', t('or'), ($newuser) ? '<a href="' . $a->get_baseurl() . '">' . t('skip this step') . '</a>' : '<a href="'. $a->get_baseurl() . '/photos/' . $a->user['nickname'] . '">' . t('select a photo from your photo albums') . '</a>')
));
@ -222,6 +256,7 @@ function profile_photo_content(&$a) {
$tpl = get_markup_template("cropbody.tpl");
$o .= replace_macros($tpl,array(
'$filename' => $filename,
'$profile' => intval($_REQUEST['profile']),
'$resource' => $a->config['imagecrop'] . '-' . $a->config['imagecrop_resolution'],
'$image_url' => $a->get_baseurl() . '/photo/' . $filename,
'$title' => t('Crop Image'),
@ -236,7 +271,7 @@ function profile_photo_content(&$a) {
}}
if(! function_exists('_crop_ui_head')) {
if(! function_exists('profile_photo_crop_ui_head')) {
function profile_photo_crop_ui_head(&$a, $ph){
$max_length = get_config('system','max_image_length');
if(! $max_length)
@ -279,6 +314,7 @@ function profile_photo_crop_ui_head(&$a, $ph){
$a->config['imagecrop_resolution'] = $smallest;
$a->config['imagecrop_ext'] = $ph->getExt();
$a->page['htmlhead'] .= get_markup_template("crophead.tpl");
$a->page['end'] .= get_markup_template("cropend.tpl");
return;
}}

View file

@ -48,10 +48,15 @@ function profiles_post(&$a) {
$name = notags(trim($_POST['name']));
if(! strlen($name)) {
$name = '[No Name]';
}
if($orig[0]['name'] != $name)
$namechanged = true;
$pdesc = notags(trim($_POST['pdesc']));
$gender = notags(trim($_POST['gender']));
$address = notags(trim($_POST['address']));
@ -96,7 +101,7 @@ function profiles_post(&$a) {
}
else {
$newname = $lookup;
if(strstr($lookup,' ')) {
/* if(strstr($lookup,' ')) {
$r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1",
dbesc($newname),
intval(local_user())
@ -107,6 +112,17 @@ function profiles_post(&$a) {
dbesc($lookup),
intval(local_user())
);
}*/
$r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1",
dbesc($newname),
intval(local_user())
);
if(! $r) {
$r = q("SELECT * FROM `contact` WHERE `nick` = '%s' AND `uid` = %d LIMIT 1",
dbesc($lookup),
intval(local_user())
);
}
if(count($r)) {
$prf = $r[0]['url'];
@ -385,9 +401,17 @@ function profile_activity($changed, $value) {
$arr['deny_gid'] = $a->user['deny_gid'];
$i = item_store($arr);
if($i)
if($i) {
// give it a permanent link
q("update item set plink = '%s' where id = %d limit 1",
dbesc($a->get_baseurl() . '/display/' . $a->user['nickname'] . '/' . $i),
intval($i)
);
proc_run('php',"include/notifier.php","activity","$i");
}
}
@ -538,6 +562,10 @@ function profiles_content(&$a) {
'$baseurl' => $a->get_baseurl(true),
'$editselect' => $editselect,
));
$a->page['end'] .= replace_macros(get_markup_template('profed_end.tpl'), array(
'$baseurl' => $a->get_baseurl(true),
'$editselect' => $editselect,
));
$opt_tpl = get_markup_template("profile-hide-friends.tpl");
@ -549,9 +577,6 @@ function profiles_content(&$a) {
'$no_selected' => (($r[0]['hide-friends'] == 0) ? " checked=\"checked\" " : "")
));
$a->page['htmlhead'] .= "<script type=\"text/javascript\" src=\"js/country.js\" ></script>";

View file

@ -12,7 +12,7 @@ function register_post(&$a) {
call_hooks('register_post', $arr);
$max_dailies = intval(get_config('system','max_daily_registrations'));
if($max_dailes) {
if($max_dailies) {
$r = q("select count(*) as total from user where register_date > UTC_TIMESTAMP - INTERVAL 1 day");
if($r && $r[0]['total'] >= $max_dailies) {
return;
@ -182,7 +182,7 @@ function register_content(&$a) {
}
$max_dailies = intval(get_config('system','max_daily_registrations'));
if($max_dailes) {
if($max_dailies) {
$r = q("select count(*) as total from user where register_date > UTC_TIMESTAMP - INTERVAL 1 day");
if($r && $r[0]['total'] >= $max_dailies) {
logger('max daily registrations exceeded.');
@ -193,6 +193,8 @@ function register_content(&$a) {
if(x($_SESSION,'theme'))
unset($_SESSION['theme']);
if(x($_SESSION,'mobile-theme'))
unset($_SESSION['mobile-theme']);
$username = ((x($_POST,'username')) ? $_POST['username'] : ((x($_GET,'username')) ? $_GET['username'] : ''));
@ -245,6 +247,8 @@ function register_content(&$a) {
call_hooks('register_form',$arr);
$o = $arr['template'];
$o = replace_macros($o, array(
'$oidhtml' => $oidhtml,
'$invitations' => get_config('system','invitation_only'),

View file

@ -7,8 +7,8 @@ function rsd_xml_content(&$a) {
echo '<?xml version="1.0" encoding="UTF-8"?>
<rsd version="1.0" xmlns="http://archipelago.phrasewise.com/rsd">
<service>
<engineName>Friendika</engineName>
<engineLink>http://friendika.com/</engineLink>
<engineName>Friendica</engineName>
<engineLink>http://friendica.com/</engineLink>
<apis>
<api name="Twitter" preferred="true" apiLink="'.$a->get_baseurl().'/api/" blogID="">
<settings>

View file

@ -9,13 +9,26 @@ function search_saved_searches() {
);
if(count($r)) {
$o .= '<div id="saved-search-list" class="widget">';
$o .= '<h3>' . t('Saved Searches') . '</h3>' . "\r\n";
$o .= '<ul id="saved-search-ul">' . "\r\n";
$saved = array();
foreach($r as $rr) {
$o .= '<li class="saved-search-li clear"><a href="search/?f=&remove=1&search=' . $rr['term'] . '" class="icon drophide savedsearchdrop" title="' . t('Remove term') . '" onclick="return confirmDelete();" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a> <a href="search/?f=&search=' . $rr['term'] . '" class="savedsearchterm" >' . $rr['term'] . '</a></li>' . "\r\n";
$saved[] = array(
'id' => $rr['id'],
'term' => $rr['term'],
'encodedterm' => urlencode($rr['term']),
'delete' => t('Remove term'),
'selected' => ($search==$rr['term']),
);
}
$o .= '</ul><div class="clear"></div></div>' . "\r\n";
$tpl = get_markup_template("saved_searches_aside.tpl");
$o .= replace_macros($tpl, array(
'$title' => t('Saved Searches'),
'$add' => '',
'$searchbox' => '',
'$saved' => $saved,
));
}
return $o;
@ -50,8 +63,10 @@ function search_init(&$a) {
$a->page['aside'] .= search_saved_searches();
}
else
else {
unset($_SESSION['theme']);
unset($_SESSION['mobile-theme']);
}
@ -78,9 +93,7 @@ function search_content(&$a) {
require_once('include/security.php');
require_once('include/conversation.php');
$o = '<div id="live-search"></div>' . "\r\n";
$o .= '<h3>' . t('Search') . '</h3>';
$o = '<h3>' . t('Search') . '</h3>';
if(x($a->data,'search'))
$search = notags(trim($a->data['search']));
@ -128,21 +141,24 @@ function search_content(&$a) {
// OR your own posts if you are a logged in member
// No items will be shown if the member has a blocked profile wall.
$r = q("SELECT distinct(`item`.`uri`) as `total`
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id` LEFT JOIN `user` ON `user`.`uid` = `item`.`uid`
WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
AND (( `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' AND `item`.`private` = 0 AND `user`.`hidewall` = 0)
OR `item`.`uid` = %d )
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
$sql_extra group by `item`.`uri` ",
intval(local_user())
);
if(! get_pconfig(local_user(),'system','alt_pager')) {
$r = q("SELECT distinct(`item`.`uri`) as `total`
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id` LEFT JOIN `user` ON `user`.`uid` = `item`.`uid`
WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
AND (( `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' AND `item`.`private` = 0 AND `user`.`hidewall` = 0)
OR `item`.`uid` = %d )
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
$sql_extra group by `item`.`uri` ",
intval(local_user())
);
if(count($r))
$a->set_pager_total(count($r));
if(! count($r)) {
info( t('No results.') . EOL);
return $o;
if(count($r))
$a->set_pager_total(count($r));
if(! count($r)) {
info( t('No results.') . EOL);
return $o;
}
}
$r = q("SELECT distinct(`item`.`uri`), `item`.*, `item`.`id` AS `item_id`,
@ -165,6 +181,12 @@ function search_content(&$a) {
);
if(! count($r)) {
info( t('No results.') . EOL);
return $o;
}
if($tag)
$o .= '<h2>Items tagged with: ' . $search . '</h2>';
else
@ -172,7 +194,12 @@ function search_content(&$a) {
$o .= conversation($a,$r,'search',false);
$o .= paginate($a);
if(! get_pconfig(local_user(),'system','alt_pager')) {
$o .= paginate($a);
}
else {
$o .= alt_pager($a,count($r));
}
return $o;
}

View file

@ -18,30 +18,10 @@ function settings_init(&$a) {
// These lines provide the javascript needed by the acl selector
$a->page['htmlhead'] .= "<script> var ispublic = '" . t('everybody') . "';" ;
$a->page['htmlhead'] .= <<< EOT
$(document).ready(function() {
$('#contact_allow, #contact_deny, #group_allow, #group_deny').change(function() {
var selstr;
$('#contact_allow option:selected, #contact_deny option:selected, #group_allow option:selected, #group_deny option:selected').each( function() {
selstr = $(this).text();
$('#jot-perms-icon').removeClass('unlock').addClass('lock');
$('#jot-public').hide();
});
if(selstr == null) {
$('#jot-perms-icon').removeClass('lock').addClass('unlock');
$('#jot-public').show();
}
}).trigger('change');
});
</script>
EOT;
$tpl = get_markup_template("settings-head.tpl");
$a->page['htmlhead'] .= replace_macros($tpl,array(
'$ispublic' => t('everybody')
));
@ -256,17 +236,22 @@ function settings_post(&$a) {
check_form_security_token_redirectOnErr('/settings/display', 'settings_display');
$theme = ((x($_POST,'theme')) ? notags(trim($_POST['theme'])) : $a->user['theme']);
$mobile_theme = ((x($_POST,'mobile_theme')) ? notags(trim($_POST['mobile_theme'])) : '');
$nosmile = ((x($_POST,'nosmile')) ? intval($_POST['nosmile']) : 0);
$browser_update = ((x($_POST,'browser_update')) ? intval($_POST['browser_update']) : 0);
$browser_update = $browser_update * 1000;
if($browser_update < 10000)
$browser_update = 40000;
$browser_update = 10000;
$itemspage_network = ((x($_POST,'itemspage_network')) ? intval($_POST['itemspage_network']) : 40);
if($itemspage_network > 100)
$itemspage_network = 40;
$itemspage_network = 100;
if($mobile_theme !== '') {
set_pconfig(local_user(),'system','mobile_theme',$mobile_theme);
}
set_pconfig(local_user(),'system','update_interval', $browser_update);
set_pconfig(local_user(),'system','itemspage_network', $itemspage_network);
set_pconfig(local_user(),'system','no_smilies',$nosmile);
@ -373,6 +358,8 @@ function settings_post(&$a) {
$notify += intval($_POST['notify6']);
if(x($_POST,'notify7'))
$notify += intval($_POST['notify7']);
if(x($_POST,'notify8'))
$notify += intval($_POST['notify8']);
$email_changed = false;
@ -515,10 +502,11 @@ function settings_post(&$a) {
require_once('include/profile_update.php');
profile_change();
$_SESSION['theme'] = $theme;
//$_SESSION['theme'] = $theme;
if($email_changed && $a->config['register_policy'] == REGISTER_VERIFY) {
// FIXME - set to un-verified, blocked and redirect to logout
// Why? Are we verifying people or email addresses?
}
@ -704,7 +692,7 @@ function settings_content(&$a) {
'$mail_pass' => array('mail_pass', t('Email password:'), '', ''),
'$mail_replyto' => array('mail_replyto', t('Reply-to address:'), '', 'Optional'),
'$mail_pubmail' => array('mail_pubmail', t('Send public posts to all email contacts:'), $mail_pubmail, ''),
'$mail_action' => array('mail_action', t('Action after import:'), $mail_action, '', array(0=>t('None'), 1=>t('Delete'), 2=>t('Mark as seen'), 3=>t('Move to folder'))),
'$mail_action' => array('mail_action', t('Action after import:'), $mail_action, '', array(0=>t('None'), /*1=>t('Delete'),*/ 2=>t('Mark as seen'), 3=>t('Move to folder'))),
'$mail_movetofolder' => array('mail_movetofolder', t('Move to folder:'), $mail_movetofolder, ''),
'$submit' => t('Submit'),
@ -722,6 +710,9 @@ function settings_content(&$a) {
$default_theme = get_config('system','theme');
if(! $default_theme)
$default_theme = 'default';
$default_mobile_theme = get_config('system','mobile-theme');
if(! $mobile_default_theme)
$mobile_default_theme = 'none';
$allowed_themes_str = get_config('system','allowed_themes');
$allowed_themes_raw = explode(',',$allowed_themes_str);
@ -733,19 +724,27 @@ function settings_content(&$a) {
$themes = array();
$mobile_themes = array("---" => t('No special theme for mobile devices'));
$files = glob('view/theme/*');
if($allowed_themes) {
foreach($allowed_themes as $th) {
$f = $th;
$is_experimental = file_exists('view/theme/' . $th . '/experimental');
$unsupported = file_exists('view/theme/' . $th . '/unsupported');
$is_mobile = file_exists('view/theme/' . $th . '/mobile');
if (!$is_experimental or ($is_experimental && (get_config('experimentals','exp_themes')==1 or get_config('experimentals','exp_themes')===false))){
$theme_name = (($is_experimental) ? sprintf("%s - \x28Experimental\x29", $f) : $f);
$themes[$f]=$theme_name;
if($is_mobile) {
$mobile_themes[$f]=$theme_name;
}
else {
$themes[$f]=$theme_name;
}
}
}
}
$theme_selected = (!x($_SESSION,'theme')? $default_theme : $_SESSION['theme']);
$mobile_theme_selected = (!x($_SESSION,'mobile-theme')? $default_mobile_theme : $_SESSION['mobile-theme']);
$browser_update = intval(get_pconfig(local_user(), 'system','update_interval'));
$browser_update = (($browser_update == 0) ? 40 : $browser_update / 1000); // default if not set: 40 seconds
@ -771,14 +770,20 @@ function settings_content(&$a) {
'$baseurl' => $a->get_baseurl(true),
'$uid' => local_user(),
'$theme' => array('theme', t('Display Theme:'), $theme_selected, '', $themes),
'$theme' => array('theme', t('Display Theme:'), $theme_selected, '', $themes, true),
'$mobile_theme' => array('mobile_theme', t('Mobile Theme:'), $mobile_theme_selected, '', $mobile_themes, false),
'$ajaxint' => array('browser_update', t("Update browser every xx seconds"), $browser_update, t('Minimum of 10 seconds, no maximum')),
'$itemspage_network' => array('itemspage_network', t("Number of items to display on the network page:"), $itemspage_network, t('Maximum of 100 items')),
'$itemspage_network' => array('itemspage_network', t("Number of items to display per page:"), $itemspage_network, t('Maximum of 100 items')),
'$nosmile' => array('nosmile', t("Don't show emoticons"), $nosmile, ''),
'$theme_config' => $theme_config,
));
$tpl = get_markup_template("settings_display_end.tpl");
$a->page['end'] .= replace_macros($tpl, array(
'$theme' => array('theme', t('Display Theme:'), $theme_selected, '', $themes)
));
return $o;
}
@ -1025,6 +1030,7 @@ function settings_content(&$a) {
'$notify5' => array('notify5', t('You receive a private message'), ($notify & NOTIFY_MAIL), NOTIFY_MAIL, ''),
'$notify6' => array('notify6', t('You receive a friend suggestion'), ($notify & NOTIFY_SUGGEST), NOTIFY_SUGGEST, ''),
'$notify7' => array('notify7', t('You are tagged in a post'), ($notify & NOTIFY_TAGSELF), NOTIFY_TAGSELF, ''),
'$notify8' => array('notify8', t('You are poked/prodded/etc. in a post'), ($notify & NOTIFY_POKE), NOTIFY_POKE, ''),
'$h_advn' => t('Advanced Account/Page Type Settings'),

160
mod/subthread.php Normal file
View file

@ -0,0 +1,160 @@
<?php
require_once('include/security.php');
require_once('include/bbcode.php');
require_once('include/items.php');
function subthread_content(&$a) {
if(! local_user() && ! remote_user()) {
return;
}
$activity = ACTIVITY_FOLLOW;
$item_id = (($a->argc > 1) ? notags(trim($a->argv[1])) : 0);
$r = q("SELECT * FROM `item` WHERE `parent` = '%s' OR `parent-uri` = '%s' and parent = id LIMIT 1",
dbesc($item_id),
dbesc($item_id)
);
if(! $item_id || (! count($r))) {
logger('subthread: no item ' . $item_id);
return;
}
$item = $r[0];
$owner_uid = $item['uid'];
if(! can_write_wall($a,$owner_uid)) {
return;
}
$remote_owner = null;
if(! $item['wall']) {
// The top level post may have been written by somebody on another system
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($item['contact-id']),
intval($item['uid'])
);
if(! count($r))
return;
if(! $r[0]['self'])
$remote_owner = $r[0];
}
// this represents the post owner on this system.
$r = q("SELECT `contact`.*, `user`.`nickname` FROM `contact` LEFT JOIN `user` ON `contact`.`uid` = `user`.`uid`
WHERE `contact`.`self` = 1 AND `contact`.`uid` = %d LIMIT 1",
intval($owner_uid)
);
if(count($r))
$owner = $r[0];
if(! $owner) {
logger('like: no owner');
return;
}
if(! $remote_owner)
$remote_owner = $owner;
// This represents the person posting
if((local_user()) && (local_user() == $owner_uid)) {
$contact = $owner;
}
else {
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($_SESSION['visitor_id']),
intval($owner_uid)
);
if(count($r))
$contact = $r[0];
}
if(! $contact) {
return;
}
$uri = item_new_uri($a->get_hostname(),$owner_uid);
$post_type = (($item['resource-id']) ? t('photo') : t('status'));
$objtype = (($item['resource-id']) ? ACTIVITY_OBJ_PHOTO : ACTIVITY_OBJ_NOTE );
$link = xmlify('<link rel="alternate" type="text/html" href="' . $a->get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['id'] . '" />' . "\n") ;
$body = $item['body'];
$obj = <<< EOT
<object>
<type>$objtype</type>
<local>1</local>
<id>{$item['uri']}</id>
<link>$link</link>
<title></title>
<content>$body</content>
</object>
EOT;
$bodyverb = t('%1$s is following %2$s\'s %3$s');
if(! isset($bodyverb))
return;
$arr = array();
$arr['uri'] = $uri;
$arr['uid'] = $owner_uid;
$arr['contact-id'] = $contact['id'];
$arr['type'] = 'activity';
$arr['wall'] = $item['wall'];
$arr['origin'] = 1;
$arr['gravity'] = GRAVITY_LIKE;
$arr['parent'] = $item['id'];
$arr['parent-uri'] = $item['uri'];
$arr['thr-parent'] = $item['uri'];
$arr['owner-name'] = $remote_owner['name'];
$arr['owner-link'] = $remote_owner['url'];
$arr['owner-avatar'] = $remote_owner['thumb'];
$arr['author-name'] = $contact['name'];
$arr['author-link'] = $contact['url'];
$arr['author-avatar'] = $contact['thumb'];
$ulink = '[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]';
$alink = '[url=' . $item['author-link'] . ']' . $item['author-name'] . '[/url]';
$plink = '[url=' . $a->get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['id'] . ']' . $post_type . '[/url]';
$arr['body'] = sprintf( $bodyverb, $ulink, $alink, $plink );
$arr['verb'] = $activity;
$arr['object-type'] = $objtype;
$arr['object'] = $obj;
$arr['allow_cid'] = $item['allow_cid'];
$arr['allow_gid'] = $item['allow_gid'];
$arr['deny_cid'] = $item['deny_cid'];
$arr['deny_gid'] = $item['deny_gid'];
$arr['visible'] = 1;
$arr['unseen'] = 1;
$arr['last-child'] = 0;
$post_id = item_store($arr);
if(! $item['visible']) {
$r = q("UPDATE `item` SET `visible` = 1 WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($item['id']),
intval($owner_uid)
);
}
$arr['id'] = $post_id;
call_hooks('post_local_end', $arr);
killme();
}

View file

@ -47,17 +47,9 @@ function tagger_content(&$a) {
if(local_user() != $owner_uid)
return;
if(remote_user()) {
$r = q("select * from contact where id = %d AND `uid` = %d limit 1",
intval(remote_user()),
intval($item['uid'])
);
}
else {
$r = q("select * from contact where self = 1 and uid = %d limit 1",
intval(local_user())
);
}
$r = q("select * from contact where self = 1 and uid = %d limit 1",
intval(local_user())
);
if(count($r))
$contact = $r[0];
else {

17
mod/toggle_mobile.php Normal file
View file

@ -0,0 +1,17 @@
<?php
function toggle_mobile_init(&$a) {
if(isset($_GET['off']))
$_SESSION['show-mobile'] = false;
else
$_SESSION['show-mobile'] = true;
if(isset($_GET['address']))
$address = $_GET['address'];
else
$address = $a->get_baseurl();
goaway($address);
}

38
mod/update_display.php Normal file
View file

@ -0,0 +1,38 @@
<?php
// See update_profile.php for documentation
require_once('mod/display.php');
require_once('include/group.php');
function update_display_content(&$a) {
$profile_uid = intval($_GET['p']);
header("Content-type: text/html");
echo "<!DOCTYPE html><html><body>\r\n";
echo (($_GET['msie'] == 1) ? '<div>' : '<section>');
$text = display_content($a,$profile_uid);
$pattern = "/<img([^>]*) src=\"([^\"]*)\"/";
$replace = "<img\${1} dst=\"\${2}\"";
$text = preg_replace($pattern, $replace, $text);
$replace = '<br />' . t('[Embedded content - reload page to view]') . '<br />';
$pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i";
$text = preg_replace($pattern, $replace, $text);
echo str_replace("\t",' ',$text);
echo (($_GET['msie'] == 1) ? '</div>' : '</section>');
echo "</body></html>\r\n";
killme();
}

View file

@ -14,25 +14,25 @@ function update_network_content(&$a) {
echo (($_GET['msie'] == 1) ? '<div>' : '<section>');
$text = network_content($a,$profile_uid);
$pattern = "/<img([^>]*) src=\"([^\"]*)\"/";
$replace = "<img\${1} dst=\"\${2}\"";
$text = preg_replace($pattern, $replace, $text);
$text = network_content($a,$profile_uid);
$pattern = "/<img([^>]*) src=\"([^\"]*)\"/";
$replace = "<img\${1} dst=\"\${2}\"";
$text = preg_replace($pattern, $replace, $text);
$replace = '<br />' . t('[Embedded content - reload page to view]') . '<br />';
$pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i";
$text = preg_replace($pattern, $replace, $text);
$replace = '<br />' . t('[Embedded content - reload page to view]') . '<br />';
$pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i";
$text = preg_replace($pattern, $replace, $text);
echo str_replace("\t",' ',$text);
echo str_replace("\t",' ',$text);
echo (($_GET['msie'] == 1) ? '</div>' : '</section>');
echo "</body></html>\r\n";
killme();
}
}

View file

@ -29,17 +29,28 @@ function wall_attach_post(&$a) {
$can_post = true;
else {
if($community_page && remote_user()) {
$r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
intval(remote_user()),
intval($page_owner_uid)
);
if(count($r)) {
$can_post = true;
$visitor = remote_user();
$cid = 0;
if(is_array($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $v) {
if($v['uid'] == $page_owner_uid) {
$cid = $v['cid'];
break;
}
}
}
if($cid) {
$r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
intval($cid),
intval($page_owner_uid)
);
if(count($r)) {
$can_post = true;
$visitor = $cid;
}
}
}
}
if(! $can_post) {
notice( t('Permission denied.') . EOL );
killme();

View file

@ -37,14 +37,25 @@ function wall_upload_post(&$a) {
$can_post = true;
else {
if($community_page && remote_user()) {
$r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
intval(remote_user()),
intval($page_owner_uid)
);
if(count($r)) {
$can_post = true;
$visitor = remote_user();
$default_cid = $visitor;
$cid = 0;
if(is_array($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $v) {
if($v['uid'] == $page_owner_uid) {
$cid = $v['cid'];
break;
}
}
}
if($cid) {
$r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
intval($cid),
intval($page_owner_uid)
);
if(count($r)) {
$can_post = true;
$visitor = $cid;
}
}
}
}

View file

@ -116,34 +116,41 @@ function wallmessage_content(&$a) {
$tpl = get_markup_template('wallmsg-header.tpl');
$a->page['htmlhead'] .= replace_macros($tpl, array(
'$baseurl' => $a->get_baseurl(true),
'$editselect' => '/(profile-jot-text|prvmail-text)/',
'$nickname' => $user['nickname'],
'$linkurl' => t('Please enter a link URL:')
));
$a->page['htmlhead'] .= replace_macros($tpl, array(
'$baseurl' => $a->get_baseurl(true),
'$editselect' => '/(profile-jot-text|prvmail-text)/',
'$nickname' => $user['nickname'],
'$linkurl' => t('Please enter a link URL:')
));
$tpl = get_markup_template('wallmsg-end.tpl');
$a->page['end'] .= replace_macros($tpl, array(
'$baseurl' => $a->get_baseurl(true),
'$editselect' => '/(profile-jot-text|prvmail-text)/',
'$nickname' => $user['nickname'],
'$linkurl' => t('Please enter a link URL:')
));
$tpl = get_markup_template('wallmessage.tpl');
$o .= replace_macros($tpl,array(
'$header' => t('Send Private Message'),
'$subheader' => sprintf( t('If you wish for %s to respond, please check that the privacy settings on your site allow private mail from unknown senders.'), $user['username']),
'$to' => t('To:'),
'$subject' => t('Subject:'),
'$recipname' => $user['username'],
'$nickname' => $user['nickname'],
'$subjtxt' => ((x($_REQUEST,'subject')) ? strip_tags($_REQUEST['subject']) : ''),
'$text' => ((x($_REQUEST,'body')) ? escape_tags(htmlspecialchars($_REQUEST['body'])) : ''),
'$readonly' => '',
'$yourmessage' => t('Your message:'),
'$select' => $select,
'$parent' => '',
'$upload' => t('Upload photo'),
'$insert' => t('Insert web link'),
'$wait' => t('Please wait')
));
$tpl = get_markup_template('wallmessage.tpl');
$o .= replace_macros($tpl,array(
'$header' => t('Send Private Message'),
'$subheader' => sprintf( t('If you wish for %s to respond, please check that the privacy settings on your site allow private mail from unknown senders.'), $user['username']),
'$to' => t('To:'),
'$subject' => t('Subject:'),
'$recipname' => $user['username'],
'$nickname' => $user['nickname'],
'$subjtxt' => ((x($_REQUEST,'subject')) ? strip_tags($_REQUEST['subject']) : ''),
'$text' => ((x($_REQUEST,'body')) ? escape_tags(htmlspecialchars($_REQUEST['body'])) : ''),
'$readonly' => '',
'$yourmessage' => t('Your message:'),
'$select' => $select,
'$parent' => '',
'$upload' => t('Upload photo'),
'$insert' => t('Insert web link'),
'$wait' => t('Please wait')
));
return $o;
}
return $o;
}

5
mods/readme.txt Normal file
View file

@ -0,0 +1,5 @@
Site speed can be improved when the following indexes are set. They cannot be set through the update script because on large sites they will block the site for several minutes.
CREATE INDEX `uid_commented` ON `item` (`uid`, `commented`);
CREATE INDEX `uid_created` ON `item` (`uid`, `created`);
CREATE INDEX `uid_unseen` ON `item` (`uid`, `unseen`);

37
object/BaseObject.php Normal file
View file

@ -0,0 +1,37 @@
<?php
if(class_exists('BaseObject'))
return;
require_once('boot.php');
/**
* Basic object
*
* Contains what is usefull to any object
*/
class BaseObject {
private static $app = null;
/**
* Get the app
*
* Same as get_app from boot.php
*/
public function get_app() {
if(self::$app)
return self::$app;
global $a;
self::$app = $a;
return self::$app;
}
/**
* Set the app
*/
public static function set_app($app) {
self::$app = $app;
}
}
?>

162
object/Conversation.php Normal file
View file

@ -0,0 +1,162 @@
<?php
if(class_exists('Conversation'))
return;
require_once('boot.php');
require_once('object/BaseObject.php');
require_once('object/Item.php');
require_once('include/text.php');
/**
* A list of threads
*
* We should think about making this a SPL Iterator
*/
class Conversation extends BaseObject {
private $threads = array();
private $mode = null;
private $writable = false;
private $profile_owner = 0;
private $preview = false;
public function __construct($mode, $preview) {
$this->set_mode($mode);
$this->preview = $preview;
}
/**
* Set the mode we'll be displayed on
*/
private function set_mode($mode) {
if($this->get_mode() == $mode)
return;
$a = $this->get_app();
switch($mode) {
case 'network':
case 'notes':
$this->profile_owner = local_user();
$this->writable = true;
break;
case 'profile':
$this->profile_owner = $a->profile['profile_uid'];
$this->writable = can_write_wall($a,$this->profile_owner);
break;
case 'display':
$this->profile_owner = $a->profile['uid'];
$this->writable = can_write_wall($a,$this->profile_owner);
break;
default:
logger('[ERROR] Conversation::set_mode : Unhandled mode ('. $mode .').', LOGGER_DEBUG);
return false;
break;
}
$this->mode = $mode;
}
/**
* Get mode
*/
public function get_mode() {
return $this->mode;
}
/**
* Check if page is writable
*/
public function is_writable() {
return $this->writable;
}
/**
* Check if page is a preview
*/
public function is_preview() {
return $this->preview;
}
/**
* Get profile owner
*/
public function get_profile_owner() {
return $this->profile_owner;
}
/**
* Add a thread to the conversation
*
* Returns:
* _ The inserted item on success
* _ false on failure
*/
public function add_thread($item) {
$item_id = $item->get_id();
if(!$item_id) {
logger('[ERROR] Conversation::add_thread : Item has no ID!!', LOGGER_DEBUG);
return false;
}
if($this->get_thread($item->get_id())) {
logger('[WARN] Conversation::add_thread : Thread already exists ('. $item->get_id() .').', LOGGER_DEBUG);
return false;
}
/*
* Only add will be displayed
*/
if($item->get_data_value('network') === NETWORK_MAIL && local_user() != $item->get_data_value('uid')) {
logger('[WARN] Conversation::add_thread : Thread is a mail ('. $item->get_id() .').', LOGGER_DEBUG);
return false;
}
if($item->get_data_value('verb') === ACTIVITY_LIKE || $item->get_data_value('verb') === ACTIVITY_DISLIKE) {
logger('[WARN] Conversation::add_thread : Thread is a (dis)like ('. $item->get_id() .').', LOGGER_DEBUG);
return false;
}
$item->set_conversation($this);
$this->threads[] = $item;
return end($this->threads);
}
/**
* Get data in a form usable by a conversation template
*
* We should find a way to avoid using those arguments (at least most of them)
*
* Returns:
* _ The data requested on success
* _ false on failure
*/
public function get_template_data($alike, $dlike) {
$result = array();
foreach($this->threads as $item) {
if($item->get_data_value('network') === NETWORK_MAIL && local_user() != $item->get_data_value('uid'))
continue;
$item_data = $item->get_template_data($alike, $dlike);
if(!$item_data) {
logger('[ERROR] Conversation::get_template_data : Failed to get item template data ('. $item->get_id() .').', LOGGER_DEBUG);
return false;
}
$result[] = $item_data;
}
return $result;
}
/**
* Get a thread based on its item id
*
* Returns:
* _ The found item on success
* _ false on failure
*/
private function get_thread($id) {
foreach($this->threads as $item) {
if($item->get_id() == $id)
return $item;
}
return false;
}
}
?>

668
object/Item.php Normal file
View file

@ -0,0 +1,668 @@
<?php
if(class_exists('Item'))
return;
require_once('object/BaseObject.php');
require_once('include/text.php');
require_once('boot.php');
/**
* An item
*/
class Item extends BaseObject {
private $data = array();
private $template = null;
private $available_templates = array(
'wall' => 'wall_thread.tpl',
'wall2wall' => 'wallwall_thread.tpl'
);
private $comment_box_template = 'comment_item.tpl';
private $toplevel = false;
private $writable = false;
private $children = array();
private $parent = null;
private $conversation = null;
private $redirect_url = null;
private $owner_url = '';
private $owner_photo = '';
private $owner_name = '';
private $wall_to_wall = false;
private $threaded = false;
private $visiting = false;
public function __construct($data) {
$a = $this->get_app();
$this->data = $data;
$this->set_template('wall');
$this->toplevel = ($this->get_id() == $this->get_data_value('parent'));
if(is_array($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $visitor) {
if($visitor['cid'] == $this->get_data_value('contact-id')) {
$this->visiting = true;
break;
}
}
}
$this->writable = ($this->get_data_value('writable') || $this->get_data_value('self'));
$ssl_state = ((local_user()) ? true : false);
$this->redirect_url = $a->get_baseurl($ssl_state) . '/redir/' . $this->get_data_value('cid') ;
if(get_config('system','thread_allow') && $a->theme_thread_allow && !$this->is_toplevel())
$this->threaded = true;
// Prepare the children
if(count($data['children'])) {
foreach($data['children'] as $item) {
/*
* Only add will be displayed
*/
if($item['network'] === NETWORK_MAIL && local_user() != $item['uid']) {
continue;
}
if(! visible_activity($item)) {
continue;
}
$child = new Item($item);
$this->add_child($child);
}
}
}
/**
* Get data in a form usable by a conversation template
*
* Returns:
* _ The data requested on success
* _ false on failure
*/
public function get_template_data($alike, $dlike, $thread_level=1) {
$result = array();
$a = $this->get_app();
$item = $this->get_data();
$commentww = '';
$sparkle = '';
$buttons = '';
$dropping = false;
$star = false;
$isstarred = "unstarred";
$indent = '';
$osparkle = '';
$total_children = $this->count_descendants();
$conv = $this->get_conversation();
$lock = ((($item['private'] == 1) || (($item['uid'] == local_user()) && (strlen($item['allow_cid']) || strlen($item['allow_gid'])
|| strlen($item['deny_cid']) || strlen($item['deny_gid']))))
? t('Private Message')
: false);
$shareable = ((($conv->get_profile_owner() == local_user()) && ($item['private'] != 1)) ? true : false);
if(local_user() && link_compare($a->contact['url'],$item['author-link']))
$edpost = array($a->get_baseurl($ssl_state)."/editpost/".$item['id'], t("Edit"));
else
$edpost = false;
if(($this->get_data_value('uid') == local_user()) || $this->is_visiting())
$dropping = true;
$drop = array(
'dropping' => $dropping,
'pagedrop' => $item['pagedrop'],
'select' => t('Select'),
'delete' => t('Delete'),
);
$filer = (($conv->get_profile_owner() == local_user()) ? t("save to folder") : false);
$diff_author = ((link_compare($item['url'],$item['author-link'])) ? false : true);
$profile_name = (((strlen($item['author-name'])) && $diff_author) ? $item['author-name'] : $item['name']);
if($item['author-link'] && (! $item['author-name']))
$profile_name = $item['author-link'];
$sp = false;
$profile_link = best_link_url($item,$sp);
if($profile_link === 'mailbox')
$profile_link = '';
if($sp)
$sparkle = ' sparkle';
else
$profile_link = zrl($profile_link);
$normalised = normalise_link((strlen($item['author-link'])) ? $item['author-link'] : $item['url']);
if(($normalised != 'mailbox') && (x($a->contacts,$normalised)))
$profile_avatar = $a->contacts[$normalised]['thumb'];
else
$profile_avatar = (((strlen($item['author-avatar'])) && $diff_author) ? $item['author-avatar'] : $a->get_cached_avatar_image($this->get_data_value('thumb')));
$locate = array('location' => $item['location'], 'coord' => $item['coord'], 'html' => '');
call_hooks('render_location',$locate);
$location = ((strlen($locate['html'])) ? $locate['html'] : render_location_google($locate));
$tags=array();
$hashtags = array();
$mentions = array();
foreach(explode(',',$item['tag']) as $tag){
$tag = trim($tag);
if ($tag!="") {
$t = bbcode($tag);
$tags[] = $t;
if($t[0] == '#')
$hashtags[] = $t;
elseif($t[0] == '@')
$mentions[] = $t;
}
}
$like = ((x($alike,$item['uri'])) ? format_like($alike[$item['uri']],$alike[$item['uri'] . '-l'],'like',$item['uri']) : '');
$dislike = ((x($dlike,$item['uri'])) ? format_like($dlike[$item['uri']],$dlike[$item['uri'] . '-l'],'dislike',$item['uri']) : '');
/*
* We should avoid doing this all the time, but it depends on the conversation mode
* And the conv mode may change when we change the conv, or it changes its mode
* Maybe we should establish a way to be notified about conversation changes
*/
$this->check_wall_to_wall();
if($this->is_wall_to_wall() && ($this->get_owner_url() == $this->get_redirect_url()))
$osparkle = ' sparkle';
if($this->is_toplevel()) {
if($conv->get_profile_owner() == local_user()) {
$isstarred = (($item['starred']) ? "starred" : "unstarred");
$star = array(
'do' => t("add star"),
'undo' => t("remove star"),
'toggle' => t("toggle star status"),
'classdo' => (($item['starred']) ? "hidden" : ""),
'classundo' => (($item['starred']) ? "" : "hidden"),
'starred' => t('starred'),
'tagger' => t("add tag"),
'classtagger' => "",
);
}
} else {
$indent = 'comment';
}
if($conv->is_writable()) {
$buttons = array(
'like' => array( t("I like this \x28toggle\x29"), t("like")),
'dislike' => array( t("I don't like this \x28toggle\x29"), t("dislike")),
);
if ($shareable) $buttons['share'] = array( t('Share this'), t('share'));
}
if(strcmp(datetime_convert('UTC','UTC',$item['created']),datetime_convert('UTC','UTC','now - 12 hours')) > 0)
$indent .= ' shiny';
localize_item($item);
$body = prepare_body($item,true);
list($categories, $folders) = get_cats_and_terms($item);
$tmp_item = array(
'template' => $this->get_template(),
'type' => implode("",array_slice(explode("/",$item['verb']),-1)),
'tags' => $tags,
'hashtags' => $hashtags,
'mentions' => $mentions,
'txt_cats' => t('Categories:'),
'txt_folders' => t('Filed under:'),
'has_cats' => ((count($categories)) ? 'true' : ''),
'has_folders' => ((count($folders)) ? 'true' : ''),
'categories' => $categories,
'folders' => $folders,
'body' => template_escape($body),
'text' => strip_tags(template_escape($body)),
'id' => $this->get_id(),
'linktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['author-link'])) ? $item['author-link'] : $item['url'])),
'olinktitle' => sprintf( t('View %s\'s profile @ %s'), $this->get_owner_name(), ((strlen($item['owner-link'])) ? $item['owner-link'] : $item['url'])),
'to' => t('to'),
'wall' => t('Wall-to-Wall'),
'vwall' => t('via Wall-To-Wall:'),
'profile_url' => $profile_link,
'item_photo_menu' => item_photo_menu($item),
'name' => template_escape($profile_name),
'thumb' => $profile_avatar,
'osparkle' => $osparkle,
'sparkle' => $sparkle,
'title' => template_escape($item['title']),
'localtime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'r'),
'ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])),
'lock' => $lock,
'location' => template_escape($location),
'indent' => $indent,
'owner_url' => $this->get_owner_url(),
'owner_photo' => $this->get_owner_photo(),
'owner_name' => template_escape($this->get_owner_name()),
'plink' => get_plink($item),
'edpost' => $edpost,
'isstarred' => $isstarred,
'star' => $star,
'filer' => $filer,
'drop' => $drop,
'vote' => $buttons,
'like' => $like,
'dislike' => $dislike,
'comment' => $this->get_comment_box($indent),
'previewing' => ($conv->is_preview() ? ' preview ' : ''),
'wait' => t('Please wait'),
'thread_level' => $thread_level
);
$arr = array('item' => $item, 'output' => $tmp_item);
call_hooks('display_item', $arr);
$result = $arr['output'];
$result['children'] = array();
$children = $this->get_children();
$nb_children = count($children);
if($nb_children > 0) {
foreach($children as $child) {
$result['children'][] = $child->get_template_data($alike, $dlike, $thread_level + 1);
}
// Collapse
if(($nb_children > 2) || ($thread_level > 1)) {
$result['children'][0]['comment_firstcollapsed'] = true;
$result['children'][0]['num_comments'] = sprintf( tt('%d comment','%d comments',$total_children),$total_children );
$result['children'][0]['hidden_comments_num'] = $total_children;
$result['children'][0]['hidden_comments_text'] = tt('comment', 'comments', $total_children);
$result['children'][0]['hide_text'] = t('show more');
if($thread_level > 1) {
$result['children'][$nb_children - 1]['comment_lastcollapsed'] = true;
}
else {
$result['children'][$nb_children - 3]['comment_lastcollapsed'] = true;
}
}
}
if ($this->is_toplevel()) {
$result['total_comments_num'] = "$total_children";
$result['total_comments_text'] = tt('comment', 'comments', $total_children);
}
$result['private'] = $item['private'];
$result['toplevel'] = ($this->is_toplevel() ? 'toplevel_item' : '');
if($this->is_threaded()) {
$result['flatten'] = false;
$result['threaded'] = true;
}
else {
$result['flatten'] = true;
$result['threaded'] = false;
}
return $result;
}
public function get_id() {
return $this->get_data_value('id');
}
public function is_threaded() {
return $this->threaded;
}
/**
* Add a child item
*/
public function add_child($item) {
$item_id = $item->get_id();
if(!$item_id) {
logger('[ERROR] Item::add_child : Item has no ID!!', LOGGER_DEBUG);
return false;
}
if($this->get_child($item->get_id())) {
logger('[WARN] Item::add_child : Item already exists ('. $item->get_id() .').', LOGGER_DEBUG);
return false;
}
/*
* Only add what will be displayed
*/
if($item->get_data_value('network') === NETWORK_MAIL && local_user() != $item->get_data_value('uid')) {
return false;
}
if(activity_match($item->get_data_value('verb'),ACTIVITY_LIKE) || activity_match($item->get_data_value('verb'),ACTIVITY_DISLIKE)) {
return false;
}
$item->set_parent($this);
$this->children[] = $item;
return end($this->children);
}
/**
* Get a child by its ID
*/
public function get_child($id) {
foreach($this->get_children() as $child) {
if($child->get_id() == $id)
return $child;
}
return null;
}
/**
* Get all ou children
*/
public function get_children() {
return $this->children;
}
/**
* Set our parent
*/
protected function set_parent($item) {
$parent = $this->get_parent();
if($parent) {
$parent->remove_child($this);
}
$this->parent = $item;
$this->set_conversation($item->get_conversation());
}
/**
* Remove our parent
*/
protected function remove_parent() {
$this->parent = null;
$this->conversation = null;
}
/**
* Remove a child
*/
public function remove_child($item) {
$id = $item->get_id();
foreach($this->get_children() as $key => $child) {
if($child->get_id() == $id) {
$child->remove_parent();
unset($this->children[$key]);
// Reindex the array, in order to make sure there won't be any trouble on loops using count()
$this->children = array_values($this->children);
return true;
}
}
logger('[WARN] Item::remove_child : Item is not a child ('. $id .').', LOGGER_DEBUG);
return false;
}
/**
* Get parent item
*/
protected function get_parent() {
return $this->parent;
}
/**
* set conversation
*/
public function set_conversation($conv) {
$previous_mode = ($this->conversation ? $this->conversation->get_mode() : '');
$this->conversation = $conv;
// Set it on our children too
foreach($this->get_children() as $child)
$child->set_conversation($conv);
}
/**
* get conversation
*/
public function get_conversation() {
return $this->conversation;
}
/**
* Get raw data
*
* We shouldn't need this
*/
public function get_data() {
return $this->data;
}
/**
* Get a data value
*
* Returns:
* _ value on success
* _ false on failure
*/
public function get_data_value($name) {
if(!isset($this->data[$name])) {
logger('[ERROR] Item::get_data_value : Item has no value name "'. $name .'".', LOGGER_DEBUG);
return false;
}
return $this->data[$name];
}
/**
* Set template
*/
private function set_template($name) {
if(!x($this->available_templates, $name)) {
logger('[ERROR] Item::set_template : Template not available ("'. $name .'").', LOGGER_DEBUG);
return false;
}
$this->template = $this->available_templates[$name];
}
/**
* Get template
*/
private function get_template() {
return $this->template;
}
/**
* Check if this is a toplevel post
*/
private function is_toplevel() {
return $this->toplevel;
}
/**
* Check if this is writable
*/
private function is_writable() {
$conv = $this->get_conversation();
if($conv) {
// This will allow us to comment on wall-to-wall items owned by our friends
// and community forums even if somebody else wrote the post.
return ($this->writable || ($this->is_visiting() && $conv->get_mode() == 'profile'));
}
return $this->writable;
}
/**
* Count the total of our descendants
*/
private function count_descendants() {
$children = $this->get_children();
$total = count($children);
if($total > 0) {
foreach($children as $child) {
$total += $child->count_descendants();
}
}
return $total;
}
/**
* Get the template for the comment box
*/
private function get_comment_box_template() {
return $this->comment_box_template;
}
/**
* Get the comment box
*
* Returns:
* _ The comment box string (empty if no comment box)
* _ false on failure
*/
private function get_comment_box($indent) {
$a = $this->get_app();
if(!$this->is_toplevel() && !(get_config('system','thread_allow') && $a->theme_thread_allow)) {
return '';
}
$comment_box = '';
$conv = $this->get_conversation();
$template = get_markup_template($this->get_comment_box_template());
$ww = '';
if( ($conv->get_mode() === 'network') && $this->is_wall_to_wall() )
$ww = 'ww';
if($conv->is_writable() && $this->is_writable()) {
$qc = $qcomment = null;
/*
* Hmmm, code depending on the presence of a particular plugin?
* This should be better if done by a hook
*/
if(in_array('qcomment',$a->plugins)) {
$qc = ((local_user()) ? get_pconfig(local_user(),'qcomment','words') : null);
$qcomment = (($qc) ? explode("\n",$qc) : null);
}
$comment_box = replace_macros($template,array(
'$return_path' => '',
'$threaded' => $this->is_threaded(),
// '$jsreload' => (($conv->get_mode() === 'display') ? $_SESSION['return_url'] : ''),
'$jsreload' => '',
'$type' => (($conv->get_mode() === 'profile') ? 'wall-comment' : 'net-comment'),
'$id' => $this->get_id(),
'$parent' => $this->get_id(),
'$qcomment' => $qcomment,
'$profile_uid' => $conv->get_profile_owner(),
'$mylink' => $a->contact['url'],
'$mytitle' => t('This is you'),
'$myphoto' => $a->contact['thumb'],
'$comment' => t('Comment'),
'$submit' => t('Submit'),
'$edbold' => t('Bold'),
'$editalic' => t('Italic'),
'$eduline' => t('Underline'),
'$edquote' => t('Quote'),
'$edcode' => t('Code'),
'$edimg' => t('Image'),
'$edurl' => t('Link'),
'$edvideo' => t('Video'),
'$preview' => t('Preview'),
'$indent' => $indent,
'$sourceapp' => t($a->sourcename),
'$ww' => (($conv->get_mode() === 'network') ? $ww : ''),
'$rand_num' => random_digits(12)
));
}
return $comment_box;
}
private function get_redirect_url() {
return $this->redirect_url;
}
/**
* Check if we are a wall to wall item and set the relevant properties
*/
protected function check_wall_to_wall() {
$a = $this->get_app();
$conv = $this->get_conversation();
$this->wall_to_wall = false;
if($this->is_toplevel()) {
if( (! $this->get_data_value('self')) && ($conv->get_mode() !== 'profile')) {
if($this->get_data_value('wall')) {
// On the network page, I am the owner. On the display page it will be the profile owner.
// This will have been stored in $a->page_contact by our calling page.
// Put this person as the wall owner of the wall-to-wall notice.
$this->owner_url = zrl($a->page_contact['url']);
$this->owner_photo = $a->page_contact['thumb'];
$this->owner_name = $a->page_contact['name'];
$this->wall_to_wall = true;
}
else if($this->get_data_value('owner-link')) {
$owner_linkmatch = (($this->get_data_value('owner-link')) && link_compare($this->get_data_value('owner-link'),$this->get_data_value('author-link')));
$alias_linkmatch = (($this->get_data_value('alias')) && link_compare($this->get_data_value('alias'),$this->get_data_value('author-link')));
$owner_namematch = (($this->get_data_value('owner-name')) && $this->get_data_value('owner-name') == $this->get_data_value('author-name'));
if((! $owner_linkmatch) && (! $alias_linkmatch) && (! $owner_namematch)) {
// The author url doesn't match the owner (typically the contact)
// and also doesn't match the contact alias.
// The name match is a hack to catch several weird cases where URLs are
// all over the park. It can be tricked, but this prevents you from
// seeing "Bob Smith to Bob Smith via Wall-to-wall" and you know darn
// well that it's the same Bob Smith.
// But it could be somebody else with the same name. It just isn't highly likely.
$this->owner_photo = $this->get_data_value('owner-avatar');
$this->owner_name = $this->get_data_value('owner-name');
$this->wall_to_wall = true;
// If it is our contact, use a friendly redirect link
if((link_compare($this->get_data_value('owner-link'),$this->get_data_value('url')))
&& ($this->get_data_value('network') === NETWORK_DFRN)) {
$this->owner_url = $this->get_redirect_url();
}
else
$this->owner_url = zrl($this->get_data_value('owner-link'));
}
}
}
}
if(!$this->wall_to_wall) {
$this->set_template('wall');
$this->owner_url = '';
$this->owner_photo = '';
$this->owner_name = '';
}
}
private function is_wall_to_wall() {
return $this->wall_to_wall;
}
private function get_owner_url() {
return $this->owner_url;
}
private function get_owner_photo() {
return $this->owner_photo;
}
private function get_owner_name() {
return $this->owner_name;
}
private function is_visiting() {
return $this->visiting;
}
}
?>

View file

@ -1,6 +1,6 @@
<?php
define( 'UPDATE_VERSION' , 1153 );
define( 'UPDATE_VERSION' , 1156 );
/**
*
@ -1337,3 +1337,28 @@ function update_1152() {
return UPDATE_SUCCESS;
}
function update_1153() {
$r = q("ALTER TABLE `hook` ADD `priority` INT(11) UNSIGNED NOT NULL DEFAULT '0'");
if(!$r) return UPDATE_FAILED;
return UPDATE_SUCCESS;
}
function update_1154() {
$r = q("ALTER TABLE `event` ADD `ignore` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0' AFTER `adjust` , ADD INDEX ( `ignore` )");
if(!$r) return UPDATE_FAILED;
return UPDATE_SUCCESS;
}
function update_1155() {
$r1 = q("ALTER TABLE `item_id` DROP PRIMARY KEY");
$r2 = q("ALTER TABLE `item_id` ADD `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST");
$r3 = q("ALTER TABLE `item_id` ADD INDEX ( `iid` ) ");
if($r1 && $r2 && $r3)
return UPDATE_SUCCESS;
return UPDATE_FAILED;
}

View file

@ -1,8 +1,8 @@
<?php
if (($_POST["friendika_acct_name"] != '') && ($_POST["friendika_password"] != '')) {
setcookie("username", $_POST["friendika_acct_name"], time()+60*60*24*300);
setcookie("password", $_POST["friendika_password"], time()+60*60*24*300);
if (($_POST["friendica_acct_name"] != '') && ($_POST["friendica_password"] != '')) {
setcookie("username", $_POST["friendica_acct_name"], time()+60*60*24*300);
setcookie("password", $_POST["friendica_password"], time()+60*60*24*300);
}
?>
@ -59,14 +59,14 @@ if ((isset($title)) && (isset($text)) && (isset($url))) {
if (isset($_POST['submit'])) {
if (($_POST["friendika_acct_name"] != '') && ($_POST["friendika_password"] != '')) {
$acctname = $_POST["friendika_acct_name"];
if (($_POST["friendica_acct_name"] != '') && ($_POST["friendica_password"] != '')) {
$acctname = $_POST["friendica_acct_name"];
$tmp_account_array = explode("@", $acctname);
if (isset($tmp_account_array[1])) {
$username = $tmp_account_array[0];
$hostname = $tmp_account_array[1];
}
$password = $_POST["friendika_password"];
$password = $_POST["friendica_password"];
$content = $_POST["content"];
$url = "http://" . $hostname . '/api/statuses/update';
@ -106,15 +106,15 @@ function showForm($error, $content) {
echo <<<EOF
<div class='wrap1'>
<h2><img class='logo' src='friendika-32.png' align='middle';/>
Friendika Bookmarklet</h2>
<h2><img class='logo' src='friendica-32.png' align='middle';/>
Friendica Bookmarklet</h2>
</div>
<div class="wrap2">
<form method="post" action="{$_SERVER['PHP_SELF']}">
Enter the email address of the Friendika Account that you want to cross-post to:(example: user@friendika.org)<br /><br />
Account ID: <input type="text" name="friendika_acct_name" value="{$username_cookie}" size="50"/><br />
Password: <input type="password" name="friendika_password" value="{$password_cookie}" size="50"/><br />
Enter the email address of the Friendica Account that you want to cross-post to:(example: user@friendica.org)<br /><br />
Account ID: <input type="text" name="friendica_acct_name" value="{$username_cookie}" size="50"/><br />
Password: <input type="password" name="friendica_password" value="{$password_cookie}" size="50"/><br />
<textarea name="content" id="content" rows="6" cols="70">{$content}</textarea><br />
<input type="submit" value="PostIt!" name="submit" />&nbsp;&nbsp;<span class='error'>$error</span>
</form>

View file

@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: 3.0.1398\n"
"Project-Id-Version: 3.0.1516\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-07-08 10:00-0700\n"
"POT-Creation-Date: 2012-11-03 15:31-0700\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"
@ -23,6 +23,7 @@ msgstr ""
#: ../../mod/update_notes.php:41 ../../mod/update_community.php:18
#: ../../mod/update_network.php:22 ../../mod/update_profile.php:41
#: ../../mod/update_display.php:22
msgid "[Embedded content - reload page to view]"
msgstr ""
@ -34,29 +35,35 @@ msgstr ""
msgid "Contact update failed."
msgstr ""
#: ../../mod/crepair.php:115 ../../mod/wall_attach.php:44
#: ../../mod/crepair.php:115 ../../mod/wall_attach.php:55
#: ../../mod/fsuggest.php:78 ../../mod/events.php:140 ../../mod/api.php:26
#: ../../mod/api.php:31 ../../mod/photos.php:135 ../../mod/photos.php:958
#: ../../mod/editpost.php:10 ../../mod/install.php:151
#: ../../mod/notifications.php:66 ../../mod/contacts.php:145
#: ../../mod/settings.php:106 ../../mod/settings.php:537
#: ../../mod/settings.php:542 ../../mod/manage.php:86 ../../mod/network.php:6
#: ../../mod/api.php:31 ../../mod/photos.php:132 ../../mod/photos.php:994
#: ../../mod/editpost.php:10 ../../mod/install.php:151 ../../mod/poke.php:135
#: ../../mod/notifications.php:66 ../../mod/contacts.php:146
#: ../../mod/settings.php:86 ../../mod/settings.php:525
#: ../../mod/settings.php:530 ../../mod/manage.php:90 ../../mod/network.php:6
#: ../../mod/notes.php:20 ../../mod/wallmessage.php:9
#: ../../mod/wallmessage.php:33 ../../mod/wallmessage.php:79
#: ../../mod/wallmessage.php:103 ../../mod/attach.php:33
#: ../../mod/group.php:19 ../../mod/viewcontacts.php:22
#: ../../mod/register.php:38 ../../mod/regmod.php:116 ../../mod/item.php:124
#: ../../mod/item.php:140 ../../mod/profile_photo.php:19
#: ../../mod/profile_photo.php:141 ../../mod/profile_photo.php:152
#: ../../mod/profile_photo.php:165 ../../mod/message.php:45
#: ../../mod/message.php:175 ../../mod/allfriends.php:9
#: ../../mod/nogroup.php:25 ../../mod/wall_upload.php:53
#: ../../mod/follow.php:9 ../../mod/display.php:138 ../../mod/profiles.php:7
#: ../../mod/profiles.php:400 ../../mod/delegate.php:6
#: ../../mod/register.php:38 ../../mod/regmod.php:116 ../../mod/item.php:139
#: ../../mod/item.php:155 ../../mod/mood.php:114
#: ../../mod/profile_photo.php:19 ../../mod/profile_photo.php:169
#: ../../mod/profile_photo.php:180 ../../mod/profile_photo.php:193
#: ../../mod/message.php:38 ../../mod/message.php:168
#: ../../mod/allfriends.php:9 ../../mod/nogroup.php:25
#: ../../mod/wall_upload.php:64 ../../mod/follow.php:9
#: ../../mod/display.php:165 ../../mod/profiles.php:7
#: ../../mod/profiles.php:424 ../../mod/delegate.php:6
#: ../../mod/suggest.php:28 ../../mod/invite.php:13 ../../mod/invite.php:81
#: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:510
#: ../../addon/facebook/facebook.php:516 ../../addon/dav/layout.fnk.php:353
#: ../../include/items.php:3585 ../../index.php:309
#: ../../addon/facebook/facebook.php:516 ../../addon/fbpost/fbpost.php:159
#: ../../addon/fbpost/fbpost.php:165
#: ../../addon/dav/friendica/layout.fnk.php:354 ../../include/items.php:3914
#: ../../index.php:319 ../../addon.old/facebook/facebook.php:510
#: ../../addon.old/facebook/facebook.php:516
#: ../../addon.old/fbpost/fbpost.php:159 ../../addon.old/fbpost/fbpost.php:165
#: ../../addon.old/dav/friendica/layout.fnk.php:354
msgid "Permission denied."
msgstr ""
@ -85,8 +92,8 @@ msgstr ""
msgid "Return to contact editor"
msgstr ""
#: ../../mod/crepair.php:148 ../../mod/settings.php:557
#: ../../mod/settings.php:583 ../../mod/admin.php:661 ../../mod/admin.php:670
#: ../../mod/crepair.php:148 ../../mod/settings.php:545
#: ../../mod/settings.php:571 ../../mod/admin.php:692 ../../mod/admin.php:702
msgid "Name"
msgstr ""
@ -123,53 +130,104 @@ msgid "New photo from this URL"
msgstr ""
#: ../../mod/crepair.php:166 ../../mod/fsuggest.php:107
#: ../../mod/events.php:436 ../../mod/photos.php:993 ../../mod/photos.php:1064
#: ../../mod/photos.php:1310 ../../mod/photos.php:1350
#: ../../mod/photos.php:1390 ../../mod/photos.php:1421
#: ../../mod/install.php:246 ../../mod/install.php:284
#: ../../mod/localtime.php:45 ../../mod/content.php:691
#: ../../mod/contacts.php:343 ../../mod/settings.php:555
#: ../../mod/settings.php:709 ../../mod/settings.php:770
#: ../../mod/settings.php:971 ../../mod/group.php:85 ../../mod/message.php:294
#: ../../mod/message.php:473 ../../mod/admin.php:422 ../../mod/admin.php:658
#: ../../mod/admin.php:794 ../../mod/admin.php:993 ../../mod/admin.php:1080
#: ../../mod/profiles.php:569 ../../mod/invite.php:119
#: ../../mod/events.php:455 ../../mod/photos.php:1027
#: ../../mod/photos.php:1103 ../../mod/photos.php:1366
#: ../../mod/photos.php:1406 ../../mod/photos.php:1450
#: ../../mod/photos.php:1522 ../../mod/install.php:246
#: ../../mod/install.php:284 ../../mod/localtime.php:45 ../../mod/poke.php:199
#: ../../mod/content.php:693 ../../mod/contacts.php:348
#: ../../mod/settings.php:543 ../../mod/settings.php:697
#: ../../mod/settings.php:769 ../../mod/settings.php:976
#: ../../mod/group.php:85 ../../mod/mood.php:137 ../../mod/message.php:294
#: ../../mod/message.php:480 ../../mod/admin.php:443 ../../mod/admin.php:689
#: ../../mod/admin.php:826 ../../mod/admin.php:1025 ../../mod/admin.php:1112
#: ../../mod/profiles.php:594 ../../mod/invite.php:119
#: ../../addon/fromgplus/fromgplus.php:40
#: ../../addon/facebook/facebook.php:619
#: ../../addon/snautofollow/snautofollow.php:64
#: ../../addon/yourls/yourls.php:76 ../../addon/ljpost/ljpost.php:93
#: ../../addon/nsfw/nsfw.php:57 ../../addon/page/page.php:210
#: ../../addon/planets/planets.php:158
#: ../../addon/fbpost/fbpost.php:226 ../../addon/yourls/yourls.php:76
#: ../../addon/ljpost/ljpost.php:93 ../../addon/nsfw/nsfw.php:88
#: ../../addon/page/page.php:211 ../../addon/planets/planets.php:158
#: ../../addon/uhremotestorage/uhremotestorage.php:89
#: ../../addon/randplace/randplace.php:177 ../../addon/dwpost/dwpost.php:93
#: ../../addon/drpost/drpost.php:110 ../../addon/startpage/startpage.php:92
#: ../../addon/geonames/geonames.php:187 ../../addon/oembed.old/oembed.php:41
#: ../../addon/impressum/impressum.php:82
#: ../../addon/remote_permissions/remote_permissions.php:47
#: ../../addon/remote_permissions/remote_permissions.php:195
#: ../../addon/startpage/startpage.php:92
#: ../../addon/geonames/geonames.php:187
#: ../../addon/forumlist/forumlist.php:175
#: ../../addon/impressum/impressum.php:83
#: ../../addon/notimeline/notimeline.php:64 ../../addon/blockem/blockem.php:57
#: ../../addon/qcomment/qcomment.php:61
#: ../../addon/openstreetmap/openstreetmap.php:70
#: ../../addon/libertree/libertree.php:90 ../../addon/mathjax/mathjax.php:42
#: ../../addon/editplain/editplain.php:84 ../../addon/blackout/blackout.php:98
#: ../../addon/gravatar/gravatar.php:86
#: ../../addon/group_text/group_text.php:84
#: ../../addon/libravatar/libravatar.php:99
#: ../../addon/libertree/libertree.php:90 ../../addon/altpager/altpager.php:87
#: ../../addon/mathjax/mathjax.php:42 ../../addon/editplain/editplain.php:84
#: ../../addon/blackout/blackout.php:98 ../../addon/gravatar/gravatar.php:95
#: ../../addon/pageheader/pageheader.php:55 ../../addon/ijpost/ijpost.php:93
#: ../../addon/jappixmini/jappixmini.php:302
#: ../../addon/jappixmini/jappixmini.php:307
#: ../../addon/statusnet/statusnet.php:278
#: ../../addon/statusnet/statusnet.php:292
#: ../../addon/statusnet/statusnet.php:318
#: ../../addon/statusnet/statusnet.php:325
#: ../../addon/statusnet/statusnet.php:353
#: ../../addon/statusnet/statusnet.php:567 ../../addon/tumblr/tumblr.php:90
#: ../../addon/statusnet/statusnet.php:576 ../../addon/tumblr/tumblr.php:90
#: ../../addon/numfriends/numfriends.php:85 ../../addon/gnot/gnot.php:88
#: ../../addon/wppost/wppost.php:110 ../../addon/showmore/showmore.php:48
#: ../../addon/piwik/piwik.php:89 ../../addon/twitter/twitter.php:180
#: ../../addon/twitter/twitter.php:209 ../../addon/twitter/twitter.php:387
#: ../../addon/irc/irc.php:55 ../../addon/blogger/blogger.php:102
#: ../../addon/posterous/posterous.php:103
#: ../../addon/twitter/twitter.php:209 ../../addon/twitter/twitter.php:394
#: ../../addon/irc/irc.php:55 ../../addon/fromapp/fromapp.php:77
#: ../../addon/blogger/blogger.php:102 ../../addon/posterous/posterous.php:103
#: ../../view/theme/cleanzero/config.php:80
#: ../../view/theme/diabook/theme.php:757
#: ../../view/theme/diabook/config.php:190
#: ../../view/theme/quattro/config.php:52 ../../view/theme/dispy/config.php:70
#: ../../include/conversation.php:642
#: ../../view/theme/diabook/theme.php:599
#: ../../view/theme/diabook/config.php:152
#: ../../view/theme/quattro/config.php:64 ../../view/theme/dispy/config.php:70
#: ../../object/Item.php:559 ../../addon.old/fromgplus/fromgplus.php:40
#: ../../addon.old/facebook/facebook.php:619
#: ../../addon.old/snautofollow/snautofollow.php:64
#: ../../addon.old/bg/bg.php:90 ../../addon.old/fbpost/fbpost.php:226
#: ../../addon.old/yourls/yourls.php:76 ../../addon.old/ljpost/ljpost.php:93
#: ../../addon.old/nsfw/nsfw.php:88 ../../addon.old/page/page.php:211
#: ../../addon.old/planets/planets.php:158
#: ../../addon.old/uhremotestorage/uhremotestorage.php:89
#: ../../addon.old/randplace/randplace.php:177
#: ../../addon.old/dwpost/dwpost.php:93 ../../addon.old/drpost/drpost.php:110
#: ../../addon.old/startpage/startpage.php:92
#: ../../addon.old/geonames/geonames.php:187
#: ../../addon.old/oembed.old/oembed.php:41
#: ../../addon.old/forumlist/forumlist.php:175
#: ../../addon.old/impressum/impressum.php:83
#: ../../addon.old/notimeline/notimeline.php:64
#: ../../addon.old/blockem/blockem.php:57
#: ../../addon.old/qcomment/qcomment.php:61
#: ../../addon.old/openstreetmap/openstreetmap.php:70
#: ../../addon.old/group_text/group_text.php:84
#: ../../addon.old/libravatar/libravatar.php:99
#: ../../addon.old/libertree/libertree.php:90
#: ../../addon.old/altpager/altpager.php:87
#: ../../addon.old/mathjax/mathjax.php:42
#: ../../addon.old/editplain/editplain.php:84
#: ../../addon.old/blackout/blackout.php:98
#: ../../addon.old/gravatar/gravatar.php:95
#: ../../addon.old/pageheader/pageheader.php:55
#: ../../addon.old/ijpost/ijpost.php:93
#: ../../addon.old/jappixmini/jappixmini.php:307
#: ../../addon.old/statusnet/statusnet.php:278
#: ../../addon.old/statusnet/statusnet.php:292
#: ../../addon.old/statusnet/statusnet.php:318
#: ../../addon.old/statusnet/statusnet.php:325
#: ../../addon.old/statusnet/statusnet.php:353
#: ../../addon.old/statusnet/statusnet.php:576
#: ../../addon.old/tumblr/tumblr.php:90
#: ../../addon.old/numfriends/numfriends.php:85
#: ../../addon.old/gnot/gnot.php:88 ../../addon.old/wppost/wppost.php:110
#: ../../addon.old/showmore/showmore.php:48 ../../addon.old/piwik/piwik.php:89
#: ../../addon.old/twitter/twitter.php:180
#: ../../addon.old/twitter/twitter.php:209
#: ../../addon.old/twitter/twitter.php:394 ../../addon.old/irc/irc.php:55
#: ../../addon.old/fromapp/fromapp.php:77
#: ../../addon.old/blogger/blogger.php:102
#: ../../addon.old/posterous/posterous.php:103
msgid "Submit"
msgstr ""
@ -177,25 +235,25 @@ msgstr ""
msgid "Help:"
msgstr ""
#: ../../mod/help.php:34 ../../addon/dav/layout.fnk.php:116
#: ../../include/nav.php:86
#: ../../mod/help.php:34 ../../addon/dav/friendica/layout.fnk.php:225
#: ../../include/nav.php:86 ../../addon.old/dav/friendica/layout.fnk.php:225
msgid "Help"
msgstr ""
#: ../../mod/help.php:38 ../../index.php:218
#: ../../mod/help.php:38 ../../index.php:228
msgid "Not Found"
msgstr ""
#: ../../mod/help.php:41 ../../index.php:221
#: ../../mod/help.php:41 ../../index.php:231
msgid "Page not found."
msgstr ""
#: ../../mod/wall_attach.php:58
#: ../../mod/wall_attach.php:69
#, php-format
msgid "File exceeds size limit of %d"
msgstr ""
#: ../../mod/wall_attach.php:99 ../../mod/wall_attach.php:110
#: ../../mod/wall_attach.php:110 ../../mod/wall_attach.php:121
msgid "File upload failed."
msgstr ""
@ -216,90 +274,94 @@ msgstr ""
msgid "Event title and start time are required."
msgstr ""
#: ../../mod/events.php:260
#: ../../mod/events.php:279
msgid "l, F j"
msgstr ""
#: ../../mod/events.php:282
#: ../../mod/events.php:301
msgid "Edit event"
msgstr ""
#: ../../mod/events.php:304 ../../include/text.php:1069
#: ../../mod/events.php:323 ../../include/text.php:1185
msgid "link to source"
msgstr ""
#: ../../mod/events.php:328 ../../view/theme/diabook/theme.php:131
#: ../../include/nav.php:52 ../../boot.php:1595
#: ../../mod/events.php:347 ../../view/theme/diabook/theme.php:90
#: ../../include/nav.php:52 ../../boot.php:1701
msgid "Events"
msgstr ""
#: ../../mod/events.php:329
#: ../../mod/events.php:348
msgid "Create New Event"
msgstr ""
#: ../../mod/events.php:330 ../../addon/dav/layout.fnk.php:154
#: ../../mod/events.php:349 ../../addon/dav/friendica/layout.fnk.php:263
#: ../../addon.old/dav/friendica/layout.fnk.php:263
msgid "Previous"
msgstr ""
#: ../../mod/events.php:331 ../../mod/install.php:205
#: ../../addon/dav/layout.fnk.php:157
#: ../../mod/events.php:350 ../../mod/install.php:205
#: ../../addon/dav/friendica/layout.fnk.php:266
#: ../../addon.old/dav/friendica/layout.fnk.php:266
msgid "Next"
msgstr ""
#: ../../mod/events.php:404
#: ../../mod/events.php:423
msgid "hour:minute"
msgstr ""
#: ../../mod/events.php:414
#: ../../mod/events.php:433
msgid "Event details"
msgstr ""
#: ../../mod/events.php:415
#: ../../mod/events.php:434
#, php-format
msgid "Format is %s %s. Starting date and Title are required."
msgstr ""
#: ../../mod/events.php:417
#: ../../mod/events.php:436
msgid "Event Starts:"
msgstr ""
#: ../../mod/events.php:417 ../../mod/events.php:431
#: ../../mod/events.php:436 ../../mod/events.php:450
msgid "Required"
msgstr ""
#: ../../mod/events.php:420
#: ../../mod/events.php:439
msgid "Finish date/time is not known or not relevant"
msgstr ""
#: ../../mod/events.php:422
#: ../../mod/events.php:441
msgid "Event Finishes:"
msgstr ""
#: ../../mod/events.php:425
#: ../../mod/events.php:444
msgid "Adjust for viewer timezone"
msgstr ""
#: ../../mod/events.php:427
#: ../../mod/events.php:446
msgid "Description:"
msgstr ""
#: ../../mod/events.php:429 ../../mod/directory.php:132
#: ../../include/event.php:40 ../../include/bb2diaspora.php:409
#: ../../boot.php:1172
#: ../../mod/events.php:448 ../../mod/directory.php:134
#: ../../include/event.php:40 ../../include/bb2diaspora.php:412
#: ../../boot.php:1237
msgid "Location:"
msgstr ""
#: ../../mod/events.php:431
#: ../../mod/events.php:450
msgid "Title:"
msgstr ""
#: ../../mod/events.php:433
#: ../../mod/events.php:452
msgid "Share this event"
msgstr ""
#: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94
#: ../../mod/dfrn_request.php:845 ../../mod/settings.php:556
#: ../../mod/settings.php:582 ../../addon/js_upload/js_upload.php:45
#: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94 ../../mod/editpost.php:142
#: ../../mod/dfrn_request.php:847 ../../mod/settings.php:544
#: ../../mod/settings.php:570 ../../addon/js_upload/js_upload.php:45
#: ../../include/conversation.php:1001
#: ../../addon.old/js_upload/js_upload.php:45
msgid "Cancel"
msgstr ""
@ -316,12 +378,14 @@ msgid "Select a tag to remove: "
msgstr ""
#: ../../mod/tagrm.php:93 ../../mod/delegate.php:130
#: ../../addon/dav/common/wdcal_edit.inc.php:468
#: ../../addon.old/dav/common/wdcal_edit.inc.php:468
msgid "Remove"
msgstr ""
#: ../../mod/dfrn_poll.php:94 ../../mod/dfrn_poll.php:522
#: ../../mod/dfrn_poll.php:99 ../../mod/dfrn_poll.php:530
#, php-format
msgid "%s welcomes %s"
msgid "%1$s welcomes %2$s"
msgstr ""
#: ../../mod/api.php:76 ../../mod/api.php:102
@ -342,289 +406,295 @@ msgid ""
"and/or create new posts for you?"
msgstr ""
#: ../../mod/api.php:105 ../../mod/dfrn_request.php:833
#: ../../mod/settings.php:887 ../../mod/settings.php:893
#: ../../mod/settings.php:901 ../../mod/settings.php:905
#: ../../mod/settings.php:910 ../../mod/settings.php:916
#: ../../mod/settings.php:922 ../../mod/settings.php:928
#: ../../mod/settings.php:958 ../../mod/settings.php:959
#: ../../mod/settings.php:960 ../../mod/settings.php:961
#: ../../mod/settings.php:962 ../../mod/register.php:234
#: ../../mod/profiles.php:546
#: ../../mod/api.php:105 ../../mod/dfrn_request.php:835
#: ../../mod/settings.php:892 ../../mod/settings.php:898
#: ../../mod/settings.php:906 ../../mod/settings.php:910
#: ../../mod/settings.php:915 ../../mod/settings.php:921
#: ../../mod/settings.php:927 ../../mod/settings.php:933
#: ../../mod/settings.php:963 ../../mod/settings.php:964
#: ../../mod/settings.php:965 ../../mod/settings.php:966
#: ../../mod/settings.php:967 ../../mod/register.php:236
#: ../../mod/profiles.php:574
msgid "Yes"
msgstr ""
#: ../../mod/api.php:106 ../../mod/dfrn_request.php:834
#: ../../mod/settings.php:887 ../../mod/settings.php:893
#: ../../mod/settings.php:901 ../../mod/settings.php:905
#: ../../mod/settings.php:910 ../../mod/settings.php:916
#: ../../mod/settings.php:922 ../../mod/settings.php:928
#: ../../mod/settings.php:958 ../../mod/settings.php:959
#: ../../mod/settings.php:960 ../../mod/settings.php:961
#: ../../mod/settings.php:962 ../../mod/register.php:235
#: ../../mod/profiles.php:547
#: ../../mod/api.php:106 ../../mod/dfrn_request.php:836
#: ../../mod/settings.php:892 ../../mod/settings.php:898
#: ../../mod/settings.php:906 ../../mod/settings.php:910
#: ../../mod/settings.php:915 ../../mod/settings.php:921
#: ../../mod/settings.php:927 ../../mod/settings.php:933
#: ../../mod/settings.php:963 ../../mod/settings.php:964
#: ../../mod/settings.php:965 ../../mod/settings.php:966
#: ../../mod/settings.php:967 ../../mod/register.php:237
#: ../../mod/profiles.php:575
msgid "No"
msgstr ""
#: ../../mod/photos.php:46 ../../boot.php:1589
#: ../../mod/photos.php:50 ../../boot.php:1694
msgid "Photo Albums"
msgstr ""
#: ../../mod/photos.php:54 ../../mod/photos.php:156 ../../mod/photos.php:972
#: ../../mod/photos.php:1056 ../../mod/photos.php:1071
#: ../../mod/photos.php:1499 ../../mod/photos.php:1511
#: ../../mod/photos.php:58 ../../mod/photos.php:153 ../../mod/photos.php:1008
#: ../../mod/photos.php:1095 ../../mod/photos.php:1110
#: ../../mod/photos.php:1565 ../../mod/photos.php:1577
#: ../../addon/communityhome/communityhome.php:110
#: ../../view/theme/diabook/theme.php:598
#: ../../view/theme/diabook/theme.php:485
#: ../../addon.old/communityhome/communityhome.php:110
msgid "Contact Photos"
msgstr ""
#: ../../mod/photos.php:61 ../../mod/photos.php:1081 ../../mod/photos.php:1549
#: ../../mod/photos.php:65 ../../mod/photos.php:1126 ../../mod/photos.php:1615
msgid "Upload New Photos"
msgstr ""
#: ../../mod/photos.php:72 ../../mod/settings.php:21
#: ../../mod/photos.php:78 ../../mod/settings.php:23
msgid "everybody"
msgstr ""
#: ../../mod/photos.php:145
#: ../../mod/photos.php:142
msgid "Contact information unavailable"
msgstr ""
#: ../../mod/photos.php:156 ../../mod/photos.php:660 ../../mod/photos.php:1056
#: ../../mod/photos.php:1071 ../../mod/profile_photo.php:60
#: ../../mod/profile_photo.php:67 ../../mod/profile_photo.php:74
#: ../../mod/profile_photo.php:176 ../../mod/profile_photo.php:254
#: ../../mod/profile_photo.php:263
#: ../../mod/photos.php:153 ../../mod/photos.php:675 ../../mod/photos.php:1095
#: ../../mod/photos.php:1110 ../../mod/profile_photo.php:74
#: ../../mod/profile_photo.php:81 ../../mod/profile_photo.php:88
#: ../../mod/profile_photo.php:204 ../../mod/profile_photo.php:296
#: ../../mod/profile_photo.php:305
#: ../../addon/communityhome/communityhome.php:111
#: ../../view/theme/diabook/theme.php:599 ../../include/user.php:304
#: ../../include/user.php:311 ../../include/user.php:318
#: ../../view/theme/diabook/theme.php:486 ../../include/user.php:324
#: ../../include/user.php:331 ../../include/user.php:338
#: ../../addon.old/communityhome/communityhome.php:111
msgid "Profile Photos"
msgstr ""
#: ../../mod/photos.php:166
#: ../../mod/photos.php:163
msgid "Album not found."
msgstr ""
#: ../../mod/photos.php:184 ../../mod/photos.php:1065
#: ../../mod/photos.php:181 ../../mod/photos.php:1104
msgid "Delete Album"
msgstr ""
#: ../../mod/photos.php:247 ../../mod/photos.php:1311
#: ../../mod/photos.php:244 ../../mod/photos.php:1367
msgid "Delete Photo"
msgstr ""
#: ../../mod/photos.php:591
msgid "was tagged in a"
#: ../../mod/photos.php:606
#, php-format
msgid "%1$s was tagged in %2$s by %3$s"
msgstr ""
#: ../../mod/photos.php:591 ../../mod/like.php:144 ../../mod/tagger.php:70
#: ../../addon/communityhome/communityhome.php:163
#: ../../view/theme/diabook/theme.php:570 ../../include/text.php:1321
#: ../../include/diaspora.php:1777 ../../include/conversation.php:115
#: ../../include/conversation.php:188
msgid "photo"
#: ../../mod/photos.php:606
msgid "a photo"
msgstr ""
#: ../../mod/photos.php:591
msgid "by"
msgstr ""
#: ../../mod/photos.php:696 ../../addon/js_upload/js_upload.php:315
#: ../../mod/photos.php:711 ../../addon/js_upload/js_upload.php:315
#: ../../addon.old/js_upload/js_upload.php:315
msgid "Image exceeds size limit of "
msgstr ""
#: ../../mod/photos.php:704
#: ../../mod/photos.php:719
msgid "Image file is empty."
msgstr ""
#: ../../mod/photos.php:736 ../../mod/profile_photo.php:126
#: ../../mod/wall_upload.php:99
#: ../../mod/photos.php:751 ../../mod/profile_photo.php:153
#: ../../mod/wall_upload.php:110
msgid "Unable to process image."
msgstr ""
#: ../../mod/photos.php:764 ../../mod/profile_photo.php:259
#: ../../mod/wall_upload.php:118
#: ../../mod/photos.php:778 ../../mod/profile_photo.php:301
#: ../../mod/wall_upload.php:136
msgid "Image upload failed."
msgstr ""
#: ../../mod/photos.php:850 ../../mod/community.php:16
#: ../../mod/dfrn_request.php:759 ../../mod/viewcontacts.php:17
#: ../../mod/display.php:7 ../../mod/search.php:71 ../../mod/directory.php:29
#: ../../mod/photos.php:864 ../../mod/community.php:18
#: ../../mod/dfrn_request.php:760 ../../mod/viewcontacts.php:17
#: ../../mod/display.php:7 ../../mod/search.php:86 ../../mod/directory.php:31
msgid "Public access denied."
msgstr ""
#: ../../mod/photos.php:860
#: ../../mod/photos.php:874
msgid "No photos selected"
msgstr ""
#: ../../mod/photos.php:939
#: ../../mod/photos.php:975
msgid "Access to this item is restricted."
msgstr ""
#: ../../mod/photos.php:1003
#: ../../mod/photos.php:1037
#, php-format
msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."
msgstr ""
#: ../../mod/photos.php:1006
#: ../../mod/photos.php:1040
#, php-format
msgid "You have used %1$.2f Mbytes of photo storage."
msgstr ""
#: ../../mod/photos.php:1012
#: ../../mod/photos.php:1046
msgid "Upload Photos"
msgstr ""
#: ../../mod/photos.php:1016 ../../mod/photos.php:1060
#: ../../mod/photos.php:1050 ../../mod/photos.php:1099
msgid "New album name: "
msgstr ""
#: ../../mod/photos.php:1017
#: ../../mod/photos.php:1051
msgid "or existing album name: "
msgstr ""
#: ../../mod/photos.php:1018
#: ../../mod/photos.php:1052
msgid "Do not show a status post for this upload"
msgstr ""
#: ../../mod/photos.php:1020 ../../mod/photos.php:1306
#: ../../mod/photos.php:1054 ../../mod/photos.php:1362
msgid "Permissions"
msgstr ""
#: ../../mod/photos.php:1075
#: ../../mod/photos.php:1114
msgid "Edit Album"
msgstr ""
#: ../../mod/photos.php:1099 ../../mod/photos.php:1532
#: ../../mod/photos.php:1120
msgid "Show Newest First"
msgstr ""
#: ../../mod/photos.php:1122
msgid "Show Oldest First"
msgstr ""
#: ../../mod/photos.php:1146 ../../mod/photos.php:1598
msgid "View Photo"
msgstr ""
#: ../../mod/photos.php:1134
#: ../../mod/photos.php:1181
msgid "Permission denied. Access to this item may be restricted."
msgstr ""
#: ../../mod/photos.php:1136
#: ../../mod/photos.php:1183
msgid "Photo not available"
msgstr ""
#: ../../mod/photos.php:1186
#: ../../mod/photos.php:1239
msgid "View photo"
msgstr ""
#: ../../mod/photos.php:1186
#: ../../mod/photos.php:1239
msgid "Edit photo"
msgstr ""
#: ../../mod/photos.php:1187
#: ../../mod/photos.php:1240
msgid "Use as profile photo"
msgstr ""
#: ../../mod/photos.php:1193 ../../mod/content.php:601
#: ../../include/conversation.php:552
#: ../../mod/photos.php:1246 ../../mod/content.php:603
#: ../../object/Item.php:103
msgid "Private Message"
msgstr ""
#: ../../mod/photos.php:1215
#: ../../mod/photos.php:1265
msgid "View Full Size"
msgstr ""
#: ../../mod/photos.php:1283
#: ../../mod/photos.php:1339
msgid "Tags: "
msgstr ""
#: ../../mod/photos.php:1286
#: ../../mod/photos.php:1342
msgid "[Remove any tag]"
msgstr ""
#: ../../mod/photos.php:1296
#: ../../mod/photos.php:1352
msgid "Rotate CW (right)"
msgstr ""
#: ../../mod/photos.php:1297
#: ../../mod/photos.php:1353
msgid "Rotate CCW (left)"
msgstr ""
#: ../../mod/photos.php:1299
#: ../../mod/photos.php:1355
msgid "New album name"
msgstr ""
#: ../../mod/photos.php:1302
#: ../../mod/photos.php:1358
msgid "Caption"
msgstr ""
#: ../../mod/photos.php:1304
#: ../../mod/photos.php:1360
msgid "Add a Tag"
msgstr ""
#: ../../mod/photos.php:1308
#: ../../mod/photos.php:1364
msgid "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
msgstr ""
#: ../../mod/photos.php:1328 ../../mod/content.php:665
#: ../../include/conversation.php:616
#: ../../mod/photos.php:1384 ../../mod/content.php:667
#: ../../object/Item.php:196
msgid "I like this (toggle)"
msgstr ""
#: ../../mod/photos.php:1329 ../../mod/content.php:666
#: ../../include/conversation.php:617
#: ../../mod/photos.php:1385 ../../mod/content.php:668
#: ../../object/Item.php:197
msgid "I don't like this (toggle)"
msgstr ""
#: ../../mod/photos.php:1330 ../../include/conversation.php:1055
#: ../../mod/photos.php:1386 ../../include/conversation.php:962
msgid "Share"
msgstr ""
#: ../../mod/photos.php:1331 ../../mod/editpost.php:104
#: ../../mod/content.php:482 ../../mod/content.php:842
#: ../../mod/wallmessage.php:145 ../../mod/message.php:293
#: ../../mod/message.php:474 ../../include/conversation.php:433
#: ../../include/conversation.php:793 ../../include/conversation.php:1074
#: ../../mod/photos.php:1387 ../../mod/editpost.php:118
#: ../../mod/content.php:482 ../../mod/content.php:846
#: ../../mod/wallmessage.php:152 ../../mod/message.php:293
#: ../../mod/message.php:481 ../../include/conversation.php:624
#: ../../include/conversation.php:981 ../../object/Item.php:258
msgid "Please wait"
msgstr ""
#: ../../mod/photos.php:1347 ../../mod/photos.php:1387
#: ../../mod/photos.php:1418 ../../mod/content.php:688
#: ../../include/conversation.php:639
#: ../../mod/photos.php:1403 ../../mod/photos.php:1447
#: ../../mod/photos.php:1519 ../../mod/content.php:690
#: ../../object/Item.php:556
msgid "This is you"
msgstr ""
#: ../../mod/photos.php:1349 ../../mod/photos.php:1389
#: ../../mod/photos.php:1420 ../../mod/content.php:690
#: ../../include/conversation.php:641 ../../boot.php:564
#: ../../mod/photos.php:1405 ../../mod/photos.php:1449
#: ../../mod/photos.php:1521 ../../mod/content.php:692 ../../boot.php:585
#: ../../object/Item.php:558
msgid "Comment"
msgstr ""
#: ../../mod/photos.php:1351 ../../mod/editpost.php:125
#: ../../mod/content.php:700 ../../include/conversation.php:651
#: ../../include/conversation.php:1092
#: ../../mod/photos.php:1407 ../../mod/photos.php:1451
#: ../../mod/photos.php:1523 ../../mod/editpost.php:139
#: ../../mod/content.php:702 ../../include/conversation.php:999
#: ../../object/Item.php:568
msgid "Preview"
msgstr ""
#: ../../mod/photos.php:1448 ../../mod/content.php:439
#: ../../mod/content.php:720 ../../mod/settings.php:618
#: ../../mod/settings.php:707 ../../mod/group.php:168 ../../mod/admin.php:665
#: ../../include/conversation.php:390 ../../include/conversation.php:671
#: ../../mod/photos.php:1491 ../../mod/content.php:439
#: ../../mod/content.php:724 ../../mod/settings.php:606
#: ../../mod/group.php:168 ../../mod/admin.php:696
#: ../../include/conversation.php:569 ../../object/Item.php:117
msgid "Delete"
msgstr ""
#: ../../mod/photos.php:1538
#: ../../mod/photos.php:1604
msgid "View Album"
msgstr ""
#: ../../mod/photos.php:1547
#: ../../mod/photos.php:1613
msgid "Recent Photos"
msgstr ""
#: ../../mod/community.php:21
#: ../../mod/community.php:23
msgid "Not available."
msgstr ""
#: ../../mod/community.php:30 ../../view/theme/diabook/theme.php:133
#: ../../mod/community.php:32 ../../view/theme/diabook/theme.php:92
#: ../../include/nav.php:101
msgid "Community"
msgstr ""
#: ../../mod/community.php:61 ../../mod/search.php:144
#: ../../mod/community.php:61 ../../mod/community.php:86
#: ../../mod/search.php:159 ../../mod/search.php:185
msgid "No results."
msgstr ""
@ -668,72 +738,96 @@ msgstr ""
msgid "Edit post"
msgstr ""
#: ../../mod/editpost.php:80 ../../include/conversation.php:1041
#: ../../mod/editpost.php:88 ../../include/conversation.php:948
msgid "Post to Email"
msgstr ""
#: ../../mod/editpost.php:95 ../../mod/content.php:707
#: ../../mod/settings.php:617 ../../include/conversation.php:658
#: ../../mod/editpost.php:103 ../../mod/content.php:711
#: ../../mod/settings.php:605 ../../object/Item.php:107
msgid "Edit"
msgstr ""
#: ../../mod/editpost.php:96 ../../mod/wallmessage.php:143
#: ../../mod/message.php:291 ../../mod/message.php:471
#: ../../include/conversation.php:1056
#: ../../mod/editpost.php:104 ../../mod/wallmessage.php:150
#: ../../mod/message.php:291 ../../mod/message.php:478
#: ../../include/conversation.php:963
msgid "Upload photo"
msgstr ""
#: ../../mod/editpost.php:97 ../../include/conversation.php:1058
#: ../../mod/editpost.php:105 ../../include/conversation.php:964
msgid "upload photo"
msgstr ""
#: ../../mod/editpost.php:106 ../../include/conversation.php:965
msgid "Attach file"
msgstr ""
#: ../../mod/editpost.php:98 ../../mod/wallmessage.php:144
#: ../../mod/message.php:292 ../../mod/message.php:472
#: ../../include/conversation.php:1060
#: ../../mod/editpost.php:107 ../../include/conversation.php:966
msgid "attach file"
msgstr ""
#: ../../mod/editpost.php:108 ../../mod/wallmessage.php:151
#: ../../mod/message.php:292 ../../mod/message.php:479
#: ../../include/conversation.php:967
msgid "Insert web link"
msgstr ""
#: ../../mod/editpost.php:99
msgid "Insert YouTube video"
#: ../../mod/editpost.php:109 ../../include/conversation.php:968
msgid "web link"
msgstr ""
#: ../../mod/editpost.php:100
msgid "Insert Vorbis [.ogg] video"
#: ../../mod/editpost.php:110 ../../include/conversation.php:969
msgid "Insert video link"
msgstr ""
#: ../../mod/editpost.php:101
msgid "Insert Vorbis [.ogg] audio"
#: ../../mod/editpost.php:111 ../../include/conversation.php:970
msgid "video link"
msgstr ""
#: ../../mod/editpost.php:102 ../../include/conversation.php:1066
#: ../../mod/editpost.php:112 ../../include/conversation.php:971
msgid "Insert audio link"
msgstr ""
#: ../../mod/editpost.php:113 ../../include/conversation.php:972
msgid "audio link"
msgstr ""
#: ../../mod/editpost.php:114 ../../include/conversation.php:973
msgid "Set your location"
msgstr ""
#: ../../mod/editpost.php:103 ../../include/conversation.php:1068
#: ../../mod/editpost.php:115 ../../include/conversation.php:974
msgid "set location"
msgstr ""
#: ../../mod/editpost.php:116 ../../include/conversation.php:975
msgid "Clear browser location"
msgstr ""
#: ../../mod/editpost.php:105 ../../include/conversation.php:1075
#: ../../mod/editpost.php:117 ../../include/conversation.php:976
msgid "clear location"
msgstr ""
#: ../../mod/editpost.php:119 ../../include/conversation.php:982
msgid "Permission settings"
msgstr ""
#: ../../mod/editpost.php:113 ../../include/conversation.php:1084
#: ../../mod/editpost.php:127 ../../include/conversation.php:991
msgid "CC: email addresses"
msgstr ""
#: ../../mod/editpost.php:114 ../../include/conversation.php:1085
#: ../../mod/editpost.php:128 ../../include/conversation.php:992
msgid "Public post"
msgstr ""
#: ../../mod/editpost.php:117 ../../include/conversation.php:1071
#: ../../mod/editpost.php:131 ../../include/conversation.php:978
msgid "Set title"
msgstr ""
#: ../../mod/editpost.php:119 ../../include/conversation.php:1073
#: ../../mod/editpost.php:133 ../../include/conversation.php:980
msgid "Categories (comma-separated list)"
msgstr ""
#: ../../mod/editpost.php:120 ../../include/conversation.php:1087
#: ../../mod/editpost.php:134 ../../include/conversation.php:994
msgid "Example: bob@example.com, mary@example.com"
msgstr ""
@ -818,7 +912,7 @@ msgstr ""
msgid "Disallowed profile URL."
msgstr ""
#: ../../mod/dfrn_request.php:570 ../../mod/contacts.php:122
#: ../../mod/dfrn_request.php:570 ../../mod/contacts.php:123
msgid "Failed to update contact record."
msgstr ""
@ -854,75 +948,75 @@ msgstr ""
msgid "Confirm"
msgstr ""
#: ../../mod/dfrn_request.php:715 ../../include/items.php:2976
#: ../../mod/dfrn_request.php:715 ../../include/items.php:3293
msgid "[Name Withheld]"
msgstr ""
#: ../../mod/dfrn_request.php:808
#: ../../mod/dfrn_request.php:810
msgid ""
"Please enter your 'Identity Address' from one of the following supported "
"communications networks:"
msgstr ""
#: ../../mod/dfrn_request.php:824
#: ../../mod/dfrn_request.php:826
msgid "<strike>Connect as an email follower</strike> (Coming soon)"
msgstr ""
#: ../../mod/dfrn_request.php:826
#: ../../mod/dfrn_request.php:828
msgid ""
"If you are not yet a member of the free social web, <a href=\"http://dir."
"friendica.com/siteinfo\">follow this link to find a public Friendica site "
"and join us today</a>."
msgstr ""
#: ../../mod/dfrn_request.php:829
#: ../../mod/dfrn_request.php:831
msgid "Friend/Connection Request"
msgstr ""
#: ../../mod/dfrn_request.php:830
#: ../../mod/dfrn_request.php:832
msgid ""
"Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, "
"testuser@identi.ca"
msgstr ""
#: ../../mod/dfrn_request.php:831
#: ../../mod/dfrn_request.php:833
msgid "Please answer the following:"
msgstr ""
#: ../../mod/dfrn_request.php:832
#: ../../mod/dfrn_request.php:834
#, php-format
msgid "Does %s know you?"
msgstr ""
#: ../../mod/dfrn_request.php:835
#: ../../mod/dfrn_request.php:837
msgid "Add a personal note:"
msgstr ""
#: ../../mod/dfrn_request.php:837 ../../include/contact_selectors.php:76
#: ../../mod/dfrn_request.php:839 ../../include/contact_selectors.php:76
msgid "Friendica"
msgstr ""
#: ../../mod/dfrn_request.php:838
#: ../../mod/dfrn_request.php:840
msgid "StatusNet/Federated Social Web"
msgstr ""
#: ../../mod/dfrn_request.php:839 ../../mod/settings.php:652
#: ../../mod/dfrn_request.php:841 ../../mod/settings.php:640
#: ../../include/contact_selectors.php:80
msgid "Diaspora"
msgstr ""
#: ../../mod/dfrn_request.php:840
#: ../../mod/dfrn_request.php:842
#, php-format
msgid ""
" - please do not use this form. Instead, enter %s into your Diaspora search "
"bar."
msgstr ""
#: ../../mod/dfrn_request.php:841
#: ../../mod/dfrn_request.php:843
msgid "Your Identity Address:"
msgstr ""
#: ../../mod/dfrn_request.php:844
#: ../../mod/dfrn_request.php:846
msgid "Submit Request"
msgstr ""
@ -949,7 +1043,7 @@ msgid ""
msgstr ""
#: ../../mod/install.php:139 ../../mod/install.php:204
#: ../../mod/install.php:489
#: ../../mod/install.php:488
msgid "Please see the file \"INSTALL.txt\"."
msgstr ""
@ -1166,21 +1260,21 @@ msgid ""
"server root."
msgstr ""
#: ../../mod/install.php:476
#: ../../mod/install.php:475
msgid "Errors encountered creating database tables."
msgstr ""
#: ../../mod/install.php:487
#: ../../mod/install.php:486
msgid "<h1>What next</h1>"
msgstr ""
#: ../../mod/install.php:488
#: ../../mod/install.php:487
msgid ""
"IMPORTANT: You will need to [manually] setup a scheduled task for the poller."
msgstr ""
#: ../../mod/localtime.php:12 ../../include/event.php:11
#: ../../include/bb2diaspora.php:387
#: ../../include/bb2diaspora.php:390
msgid "l F d, Y \\@ g:i A"
msgstr ""
@ -1190,7 +1284,7 @@ msgstr ""
#: ../../mod/localtime.php:26
msgid ""
"Friendika provides this service for sharing events with other networks and "
"Friendica provides this service for sharing events with other networks and "
"friends in unknown timezones."
msgstr ""
@ -1213,6 +1307,26 @@ msgstr ""
msgid "Please select your timezone:"
msgstr ""
#: ../../mod/poke.php:192
msgid "Poke/Prod"
msgstr ""
#: ../../mod/poke.php:193
msgid "poke, prod or do other things to somebody"
msgstr ""
#: ../../mod/poke.php:194
msgid "Recipient"
msgstr ""
#: ../../mod/poke.php:195
msgid "Choose what you wish to do to recipient"
msgstr ""
#: ../../mod/poke.php:198
msgid "Make this post private"
msgstr ""
#: ../../mod/match.php:12
msgid "Profile Match"
msgstr ""
@ -1226,7 +1340,7 @@ msgid "is interested in:"
msgstr ""
#: ../../mod/match.php:58 ../../mod/suggest.php:59
#: ../../include/contact_widgets.php:9 ../../boot.php:1116
#: ../../include/contact_widgets.php:9 ../../boot.php:1175
msgid "Connect"
msgstr ""
@ -1234,147 +1348,157 @@ msgstr ""
msgid "No matches"
msgstr ""
#: ../../mod/lockview.php:39
#: ../../mod/lockview.php:31 ../../mod/lockview.php:39
msgid "Remote privacy information not available."
msgstr ""
#: ../../mod/lockview.php:43
#: ../../mod/lockview.php:48
#: ../../addon/remote_permissions/remote_permissions.php:123
msgid "Visible to:"
msgstr ""
#: ../../mod/content.php:119 ../../mod/network.php:436
#: ../../mod/content.php:119 ../../mod/network.php:544
msgid "No such group"
msgstr ""
#: ../../mod/content.php:130 ../../mod/network.php:447
#: ../../mod/content.php:130 ../../mod/network.php:555
msgid "Group is empty"
msgstr ""
#: ../../mod/content.php:134 ../../mod/network.php:451
#: ../../mod/content.php:134 ../../mod/network.php:559
msgid "Group: "
msgstr ""
#: ../../mod/content.php:438 ../../mod/content.php:719
#: ../../include/conversation.php:389 ../../include/conversation.php:670
#: ../../mod/content.php:438 ../../mod/content.php:723
#: ../../include/conversation.php:568 ../../object/Item.php:116
msgid "Select"
msgstr ""
#: ../../mod/content.php:455 ../../mod/content.php:812
#: ../../mod/content.php:813 ../../include/conversation.php:406
#: ../../include/conversation.php:763 ../../include/conversation.php:764
#: ../../mod/content.php:455 ../../mod/content.php:816
#: ../../mod/content.php:817 ../../include/conversation.php:587
#: ../../object/Item.php:227 ../../object/Item.php:228
#, php-format
msgid "View %s's profile @ %s"
msgstr ""
#: ../../mod/content.php:465 ../../mod/content.php:824
#: ../../include/conversation.php:416 ../../include/conversation.php:775
#: ../../mod/content.php:465 ../../mod/content.php:828
#: ../../include/conversation.php:607 ../../object/Item.php:240
#, php-format
msgid "%s from %s"
msgstr ""
#: ../../mod/content.php:480 ../../include/conversation.php:431
#: ../../mod/content.php:480 ../../include/conversation.php:622
msgid "View in context"
msgstr ""
#: ../../mod/content.php:586 ../../include/conversation.php:537
#: ../../mod/content.php:586 ../../object/Item.php:277
#, php-format
msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
#: ../../mod/content.php:587 ../../addon/page/page.php:76
#: ../../addon/page/page.php:110 ../../addon/showmore/showmore.php:87
#: ../../include/contact_widgets.php:188 ../../include/conversation.php:538
#: ../../boot.php:565
#: ../../mod/content.php:588 ../../include/text.php:1441
#: ../../object/Item.php:279 ../../object/Item.php:292
msgid "comment"
msgid_plural "comments"
msgstr[0] ""
msgstr[1] ""
#: ../../mod/content.php:589 ../../addon/page/page.php:77
#: ../../addon/page/page.php:111 ../../addon/showmore/showmore.php:119
#: ../../include/contact_widgets.php:195 ../../boot.php:586
#: ../../object/Item.php:280 ../../addon.old/page/page.php:77
#: ../../addon.old/page/page.php:111 ../../addon.old/showmore/showmore.php:119
msgid "show more"
msgstr ""
#: ../../mod/content.php:665 ../../include/conversation.php:616
#: ../../mod/content.php:667 ../../object/Item.php:196
msgid "like"
msgstr ""
#: ../../mod/content.php:666 ../../include/conversation.php:617
#: ../../mod/content.php:668 ../../object/Item.php:197
msgid "dislike"
msgstr ""
#: ../../mod/content.php:668 ../../include/conversation.php:619
#: ../../mod/content.php:670 ../../object/Item.php:199
msgid "Share this"
msgstr ""
#: ../../mod/content.php:668 ../../include/conversation.php:619
#: ../../mod/content.php:670 ../../object/Item.php:199
msgid "share"
msgstr ""
#: ../../mod/content.php:692 ../../include/conversation.php:643
#: ../../mod/content.php:694 ../../object/Item.php:560
msgid "Bold"
msgstr ""
#: ../../mod/content.php:693 ../../include/conversation.php:644
#: ../../mod/content.php:695 ../../object/Item.php:561
msgid "Italic"
msgstr ""
#: ../../mod/content.php:694 ../../include/conversation.php:645
#: ../../mod/content.php:696 ../../object/Item.php:562
msgid "Underline"
msgstr ""
#: ../../mod/content.php:695 ../../include/conversation.php:646
#: ../../mod/content.php:697 ../../object/Item.php:563
msgid "Quote"
msgstr ""
#: ../../mod/content.php:696 ../../include/conversation.php:647
#: ../../mod/content.php:698 ../../object/Item.php:564
msgid "Code"
msgstr ""
#: ../../mod/content.php:697 ../../include/conversation.php:648
#: ../../mod/content.php:699 ../../object/Item.php:565
msgid "Image"
msgstr ""
#: ../../mod/content.php:698 ../../include/conversation.php:649
#: ../../mod/content.php:700 ../../object/Item.php:566
msgid "Link"
msgstr ""
#: ../../mod/content.php:699 ../../include/conversation.php:650
#: ../../mod/content.php:701 ../../object/Item.php:567
msgid "Video"
msgstr ""
#: ../../mod/content.php:732 ../../include/conversation.php:683
#: ../../mod/content.php:736 ../../object/Item.php:180
msgid "add star"
msgstr ""
#: ../../mod/content.php:733 ../../include/conversation.php:684
#: ../../mod/content.php:737 ../../object/Item.php:181
msgid "remove star"
msgstr ""
#: ../../mod/content.php:734 ../../include/conversation.php:685
#: ../../mod/content.php:738 ../../object/Item.php:182
msgid "toggle star status"
msgstr ""
#: ../../mod/content.php:737 ../../include/conversation.php:688
#: ../../mod/content.php:741 ../../object/Item.php:185
msgid "starred"
msgstr ""
#: ../../mod/content.php:738 ../../include/conversation.php:689
#: ../../mod/content.php:742 ../../object/Item.php:186
msgid "add tag"
msgstr ""
#: ../../mod/content.php:742 ../../include/conversation.php:693
#: ../../mod/content.php:746 ../../object/Item.php:120
msgid "save to folder"
msgstr ""
#: ../../mod/content.php:814 ../../include/conversation.php:765
#: ../../mod/content.php:818 ../../object/Item.php:229
msgid "to"
msgstr ""
#: ../../mod/content.php:815 ../../include/conversation.php:766
#: ../../mod/content.php:819 ../../object/Item.php:230
msgid "Wall-to-Wall"
msgstr ""
#: ../../mod/content.php:816 ../../include/conversation.php:767
#: ../../mod/content.php:820 ../../object/Item.php:231
msgid "via Wall-To-Wall:"
msgstr ""
#: ../../mod/home.php:26 ../../addon/communityhome/communityhome.php:179
#: ../../mod/home.php:28 ../../addon/communityhome/communityhome.php:179
#: ../../addon.old/communityhome/communityhome.php:179
#, php-format
msgid "Welcome to %s"
msgstr ""
@ -1383,488 +1507,488 @@ msgstr ""
msgid "Invalid request identifier."
msgstr ""
#: ../../mod/notifications.php:35 ../../mod/notifications.php:161
#: ../../mod/notifications.php:207
#: ../../mod/notifications.php:35 ../../mod/notifications.php:164
#: ../../mod/notifications.php:210
msgid "Discard"
msgstr ""
#: ../../mod/notifications.php:51 ../../mod/notifications.php:160
#: ../../mod/notifications.php:206 ../../mod/contacts.php:316
#: ../../mod/contacts.php:370
#: ../../mod/notifications.php:51 ../../mod/notifications.php:163
#: ../../mod/notifications.php:209 ../../mod/contacts.php:321
#: ../../mod/contacts.php:375
msgid "Ignore"
msgstr ""
#: ../../mod/notifications.php:75
#: ../../mod/notifications.php:78
msgid "System"
msgstr ""
#: ../../mod/notifications.php:80 ../../include/nav.php:113
#: ../../mod/notifications.php:83 ../../include/nav.php:113
msgid "Network"
msgstr ""
#: ../../mod/notifications.php:85 ../../mod/network.php:300
#: ../../mod/notifications.php:88 ../../mod/network.php:407
msgid "Personal"
msgstr ""
#: ../../mod/notifications.php:90 ../../view/theme/diabook/theme.php:127
#: ../../mod/notifications.php:93 ../../view/theme/diabook/theme.php:86
#: ../../include/nav.php:77 ../../include/nav.php:115
msgid "Home"
msgstr ""
#: ../../mod/notifications.php:95 ../../include/nav.php:121
#: ../../mod/notifications.php:98 ../../include/nav.php:121
msgid "Introductions"
msgstr ""
#: ../../mod/notifications.php:100 ../../mod/message.php:183
#: ../../mod/notifications.php:103 ../../mod/message.php:176
#: ../../include/nav.php:128
msgid "Messages"
msgstr ""
#: ../../mod/notifications.php:119
#: ../../mod/notifications.php:122
msgid "Show Ignored Requests"
msgstr ""
#: ../../mod/notifications.php:119
#: ../../mod/notifications.php:122
msgid "Hide Ignored Requests"
msgstr ""
#: ../../mod/notifications.php:145 ../../mod/notifications.php:191
#: ../../mod/notifications.php:148 ../../mod/notifications.php:194
msgid "Notification type: "
msgstr ""
#: ../../mod/notifications.php:146
#: ../../mod/notifications.php:149
msgid "Friend Suggestion"
msgstr ""
#: ../../mod/notifications.php:148
#: ../../mod/notifications.php:151
#, php-format
msgid "suggested by %s"
msgstr ""
#: ../../mod/notifications.php:153 ../../mod/notifications.php:200
#: ../../mod/contacts.php:376
#: ../../mod/notifications.php:156 ../../mod/notifications.php:203
#: ../../mod/contacts.php:381
msgid "Hide this contact from others"
msgstr ""
#: ../../mod/notifications.php:154 ../../mod/notifications.php:201
#: ../../mod/notifications.php:157 ../../mod/notifications.php:204
msgid "Post a new friend activity"
msgstr ""
#: ../../mod/notifications.php:154 ../../mod/notifications.php:201
#: ../../mod/notifications.php:157 ../../mod/notifications.php:204
msgid "if applicable"
msgstr ""
#: ../../mod/notifications.php:157 ../../mod/notifications.php:204
#: ../../mod/admin.php:663
#: ../../mod/notifications.php:160 ../../mod/notifications.php:207
#: ../../mod/admin.php:694
msgid "Approve"
msgstr ""
#: ../../mod/notifications.php:177
#: ../../mod/notifications.php:180
msgid "Claims to be known to you: "
msgstr ""
#: ../../mod/notifications.php:177
#: ../../mod/notifications.php:180
msgid "yes"
msgstr ""
#: ../../mod/notifications.php:177
#: ../../mod/notifications.php:180
msgid "no"
msgstr ""
#: ../../mod/notifications.php:184
#: ../../mod/notifications.php:187
msgid "Approve as: "
msgstr ""
#: ../../mod/notifications.php:185
#: ../../mod/notifications.php:188
msgid "Friend"
msgstr ""
#: ../../mod/notifications.php:186
#: ../../mod/notifications.php:189
msgid "Sharer"
msgstr ""
#: ../../mod/notifications.php:186
#: ../../mod/notifications.php:189
msgid "Fan/Admirer"
msgstr ""
#: ../../mod/notifications.php:192
#: ../../mod/notifications.php:195
msgid "Friend/Connect Request"
msgstr ""
#: ../../mod/notifications.php:192
#: ../../mod/notifications.php:195
msgid "New Follower"
msgstr ""
#: ../../mod/notifications.php:213
#: ../../mod/notifications.php:216
msgid "No introductions."
msgstr ""
#: ../../mod/notifications.php:216 ../../include/nav.php:122
#: ../../mod/notifications.php:219 ../../include/nav.php:122
msgid "Notifications"
msgstr ""
#: ../../mod/notifications.php:253 ../../mod/notifications.php:378
#: ../../mod/notifications.php:465
#: ../../mod/notifications.php:256 ../../mod/notifications.php:381
#: ../../mod/notifications.php:468
#, php-format
msgid "%s liked %s's post"
msgstr ""
#: ../../mod/notifications.php:262 ../../mod/notifications.php:387
#: ../../mod/notifications.php:474
#: ../../mod/notifications.php:265 ../../mod/notifications.php:390
#: ../../mod/notifications.php:477
#, php-format
msgid "%s disliked %s's post"
msgstr ""
#: ../../mod/notifications.php:276 ../../mod/notifications.php:401
#: ../../mod/notifications.php:488
#: ../../mod/notifications.php:279 ../../mod/notifications.php:404
#: ../../mod/notifications.php:491
#, php-format
msgid "%s is now friends with %s"
msgstr ""
#: ../../mod/notifications.php:283 ../../mod/notifications.php:408
#: ../../mod/notifications.php:286 ../../mod/notifications.php:411
#, php-format
msgid "%s created a new post"
msgstr ""
#: ../../mod/notifications.php:284 ../../mod/notifications.php:409
#: ../../mod/notifications.php:497
#: ../../mod/notifications.php:287 ../../mod/notifications.php:412
#: ../../mod/notifications.php:500
#, php-format
msgid "%s commented on %s's post"
msgstr ""
#: ../../mod/notifications.php:298
#: ../../mod/notifications.php:301
msgid "No more network notifications."
msgstr ""
#: ../../mod/notifications.php:302
#: ../../mod/notifications.php:305
msgid "Network Notifications"
msgstr ""
#: ../../mod/notifications.php:328 ../../mod/notify.php:61
#: ../../mod/notifications.php:331 ../../mod/notify.php:61
msgid "No more system notifications."
msgstr ""
#: ../../mod/notifications.php:332 ../../mod/notify.php:65
#: ../../mod/notifications.php:335 ../../mod/notify.php:65
msgid "System Notifications"
msgstr ""
#: ../../mod/notifications.php:423
#: ../../mod/notifications.php:426
msgid "No more personal notifications."
msgstr ""
#: ../../mod/notifications.php:427
#: ../../mod/notifications.php:430
msgid "Personal Notifications"
msgstr ""
#: ../../mod/notifications.php:504
#: ../../mod/notifications.php:507
msgid "No more home notifications."
msgstr ""
#: ../../mod/notifications.php:508
#: ../../mod/notifications.php:511
msgid "Home Notifications"
msgstr ""
#: ../../mod/contacts.php:83 ../../mod/contacts.php:163
#: ../../mod/contacts.php:84 ../../mod/contacts.php:164
msgid "Could not access contact record."
msgstr ""
#: ../../mod/contacts.php:97
#: ../../mod/contacts.php:98
msgid "Could not locate selected profile."
msgstr ""
#: ../../mod/contacts.php:120
#: ../../mod/contacts.php:121
msgid "Contact updated."
msgstr ""
#: ../../mod/contacts.php:185
#: ../../mod/contacts.php:186
msgid "Contact has been blocked"
msgstr ""
#: ../../mod/contacts.php:185
#: ../../mod/contacts.php:186
msgid "Contact has been unblocked"
msgstr ""
#: ../../mod/contacts.php:199
#: ../../mod/contacts.php:200
msgid "Contact has been ignored"
msgstr ""
#: ../../mod/contacts.php:199
#: ../../mod/contacts.php:200
msgid "Contact has been unignored"
msgstr ""
#: ../../mod/contacts.php:215
#: ../../mod/contacts.php:216
msgid "Contact has been archived"
msgstr ""
#: ../../mod/contacts.php:215
#: ../../mod/contacts.php:216
msgid "Contact has been unarchived"
msgstr ""
#: ../../mod/contacts.php:228
#: ../../mod/contacts.php:229
msgid "Contact has been removed."
msgstr ""
#: ../../mod/contacts.php:258
#: ../../mod/contacts.php:263
#, php-format
msgid "You are mutual friends with %s"
msgstr ""
#: ../../mod/contacts.php:262
#: ../../mod/contacts.php:267
#, php-format
msgid "You are sharing with %s"
msgstr ""
#: ../../mod/contacts.php:267
#: ../../mod/contacts.php:272
#, php-format
msgid "%s is sharing with you"
msgstr ""
#: ../../mod/contacts.php:284
#: ../../mod/contacts.php:289
msgid "Private communications are not available for this contact."
msgstr ""
#: ../../mod/contacts.php:287
#: ../../mod/contacts.php:292
msgid "Never"
msgstr ""
#: ../../mod/contacts.php:291
#: ../../mod/contacts.php:296
msgid "(Update was successful)"
msgstr ""
#: ../../mod/contacts.php:291
#: ../../mod/contacts.php:296
msgid "(Update was not successful)"
msgstr ""
#: ../../mod/contacts.php:293
#: ../../mod/contacts.php:298
msgid "Suggest friends"
msgstr ""
#: ../../mod/contacts.php:297
#: ../../mod/contacts.php:302
#, php-format
msgid "Network type: %s"
msgstr ""
#: ../../mod/contacts.php:300 ../../include/contact_widgets.php:183
#: ../../mod/contacts.php:305 ../../include/contact_widgets.php:190
#, php-format
msgid "%d contact in common"
msgid_plural "%d contacts in common"
msgstr[0] ""
msgstr[1] ""
#: ../../mod/contacts.php:305
#: ../../mod/contacts.php:310
msgid "View all contacts"
msgstr ""
#: ../../mod/contacts.php:310 ../../mod/contacts.php:369
#: ../../mod/admin.php:667
#: ../../mod/contacts.php:315 ../../mod/contacts.php:374
#: ../../mod/admin.php:698
msgid "Unblock"
msgstr ""
#: ../../mod/contacts.php:310 ../../mod/contacts.php:369
#: ../../mod/admin.php:666
#: ../../mod/contacts.php:315 ../../mod/contacts.php:374
#: ../../mod/admin.php:697
msgid "Block"
msgstr ""
#: ../../mod/contacts.php:313
#: ../../mod/contacts.php:318
msgid "Toggle Blocked status"
msgstr ""
#: ../../mod/contacts.php:316 ../../mod/contacts.php:370
#: ../../mod/contacts.php:321 ../../mod/contacts.php:375
msgid "Unignore"
msgstr ""
#: ../../mod/contacts.php:319
#: ../../mod/contacts.php:324
msgid "Toggle Ignored status"
msgstr ""
#: ../../mod/contacts.php:323
#: ../../mod/contacts.php:328
msgid "Unarchive"
msgstr ""
#: ../../mod/contacts.php:323
#: ../../mod/contacts.php:328
msgid "Archive"
msgstr ""
#: ../../mod/contacts.php:326
#: ../../mod/contacts.php:331
msgid "Toggle Archive status"
msgstr ""
#: ../../mod/contacts.php:329
#: ../../mod/contacts.php:334
msgid "Repair"
msgstr ""
#: ../../mod/contacts.php:332
#: ../../mod/contacts.php:337
msgid "Advanced Contact Settings"
msgstr ""
#: ../../mod/contacts.php:338
#: ../../mod/contacts.php:343
msgid "Communications lost with this contact!"
msgstr ""
#: ../../mod/contacts.php:341
#: ../../mod/contacts.php:346
msgid "Contact Editor"
msgstr ""
#: ../../mod/contacts.php:344
#: ../../mod/contacts.php:349
msgid "Profile Visibility"
msgstr ""
#: ../../mod/contacts.php:345
#: ../../mod/contacts.php:350
#, php-format
msgid ""
"Please choose the profile you would like to display to %s when viewing your "
"profile securely."
msgstr ""
#: ../../mod/contacts.php:346
#: ../../mod/contacts.php:351
msgid "Contact Information / Notes"
msgstr ""
#: ../../mod/contacts.php:347
#: ../../mod/contacts.php:352
msgid "Edit contact notes"
msgstr ""
#: ../../mod/contacts.php:352 ../../mod/contacts.php:544
#: ../../mod/contacts.php:357 ../../mod/contacts.php:549
#: ../../mod/viewcontacts.php:62 ../../mod/nogroup.php:40
#, php-format
msgid "Visit %s's profile [%s]"
msgstr ""
#: ../../mod/contacts.php:353
#: ../../mod/contacts.php:358
msgid "Block/Unblock contact"
msgstr ""
#: ../../mod/contacts.php:354
#: ../../mod/contacts.php:359
msgid "Ignore contact"
msgstr ""
#: ../../mod/contacts.php:355
#: ../../mod/contacts.php:360
msgid "Repair URL settings"
msgstr ""
#: ../../mod/contacts.php:356
#: ../../mod/contacts.php:361
msgid "View conversations"
msgstr ""
#: ../../mod/contacts.php:358
#: ../../mod/contacts.php:363
msgid "Delete contact"
msgstr ""
#: ../../mod/contacts.php:362
#: ../../mod/contacts.php:367
msgid "Last update:"
msgstr ""
#: ../../mod/contacts.php:364
#: ../../mod/contacts.php:369
msgid "Update public posts"
msgstr ""
#: ../../mod/contacts.php:366 ../../mod/admin.php:1138
#: ../../mod/contacts.php:371 ../../mod/admin.php:1170
msgid "Update now"
msgstr ""
#: ../../mod/contacts.php:373
#: ../../mod/contacts.php:378
msgid "Currently blocked"
msgstr ""
#: ../../mod/contacts.php:374
#: ../../mod/contacts.php:379
msgid "Currently ignored"
msgstr ""
#: ../../mod/contacts.php:375
#: ../../mod/contacts.php:380
msgid "Currently archived"
msgstr ""
#: ../../mod/contacts.php:376
#: ../../mod/contacts.php:381
msgid ""
"Replies/likes to your public posts <strong>may</strong> still be visible"
msgstr ""
#: ../../mod/contacts.php:429
#: ../../mod/contacts.php:434
msgid "Suggestions"
msgstr ""
#: ../../mod/contacts.php:432
#: ../../mod/contacts.php:437
msgid "Suggest potential friends"
msgstr ""
#: ../../mod/contacts.php:435 ../../mod/group.php:191
#: ../../mod/contacts.php:440 ../../mod/group.php:191
msgid "All Contacts"
msgstr ""
#: ../../mod/contacts.php:438
#: ../../mod/contacts.php:443
msgid "Show all contacts"
msgstr ""
#: ../../mod/contacts.php:441
#: ../../mod/contacts.php:446
msgid "Unblocked"
msgstr ""
#: ../../mod/contacts.php:444
#: ../../mod/contacts.php:449
msgid "Only show unblocked contacts"
msgstr ""
#: ../../mod/contacts.php:448
#: ../../mod/contacts.php:453
msgid "Blocked"
msgstr ""
#: ../../mod/contacts.php:451
#: ../../mod/contacts.php:456
msgid "Only show blocked contacts"
msgstr ""
#: ../../mod/contacts.php:455
#: ../../mod/contacts.php:460
msgid "Ignored"
msgstr ""
#: ../../mod/contacts.php:458
#: ../../mod/contacts.php:463
msgid "Only show ignored contacts"
msgstr ""
#: ../../mod/contacts.php:462
#: ../../mod/contacts.php:467
msgid "Archived"
msgstr ""
#: ../../mod/contacts.php:465
#: ../../mod/contacts.php:470
msgid "Only show archived contacts"
msgstr ""
#: ../../mod/contacts.php:469
#: ../../mod/contacts.php:474
msgid "Hidden"
msgstr ""
#: ../../mod/contacts.php:472
#: ../../mod/contacts.php:477
msgid "Only show hidden contacts"
msgstr ""
#: ../../mod/contacts.php:520
#: ../../mod/contacts.php:525
msgid "Mutual Friendship"
msgstr ""
#: ../../mod/contacts.php:524
#: ../../mod/contacts.php:529
msgid "is a fan of yours"
msgstr ""
#: ../../mod/contacts.php:528
#: ../../mod/contacts.php:533
msgid "you are a fan of"
msgstr ""
#: ../../mod/contacts.php:545 ../../mod/nogroup.php:41
#: ../../mod/contacts.php:550 ../../mod/nogroup.php:41
msgid "Edit contact"
msgstr ""
#: ../../mod/contacts.php:566 ../../view/theme/diabook/theme.php:129
#: ../../mod/contacts.php:571 ../../view/theme/diabook/theme.php:88
#: ../../include/nav.php:139
msgid "Contacts"
msgstr ""
#: ../../mod/contacts.php:570
#: ../../mod/contacts.php:575
msgid "Search your contacts"
msgstr ""
#: ../../mod/contacts.php:571 ../../mod/directory.php:57
#: ../../mod/contacts.php:576 ../../mod/directory.php:59
msgid "Finding: "
msgstr ""
#: ../../mod/contacts.php:572 ../../mod/directory.php:59
#: ../../mod/contacts.php:577 ../../mod/directory.php:61
#: ../../include/contact_widgets.php:33
msgid "Find"
msgstr ""
@ -1886,10 +2010,14 @@ msgstr ""
#: ../../mod/register.php:90 ../../mod/register.php:144
#: ../../mod/regmod.php:54 ../../mod/dfrn_confirm.php:752
#: ../../addon/facebook/facebook.php:702
#: ../../addon/facebook/facebook.php:1192
#: ../../addon/facebook/facebook.php:1200 ../../addon/fbpost/fbpost.php:661
#: ../../addon/public_server/public_server.php:62
#: ../../addon/testdrive/testdrive.php:67 ../../include/items.php:2985
#: ../../boot.php:766
#: ../../addon/testdrive/testdrive.php:67 ../../include/items.php:3302
#: ../../boot.php:799 ../../addon.old/facebook/facebook.php:702
#: ../../addon.old/facebook/facebook.php:1200
#: ../../addon.old/fbpost/fbpost.php:661
#: ../../addon.old/public_server/public_server.php:62
#: ../../addon.old/testdrive/testdrive.php:67
msgid "Administrator"
msgstr ""
@ -1899,7 +2027,7 @@ msgid ""
"Password reset failed."
msgstr ""
#: ../../mod/lostpass.php:83 ../../boot.php:898
#: ../../mod/lostpass.php:83 ../../boot.php:936
msgid "Password Reset"
msgstr ""
@ -1943,251 +2071,274 @@ msgstr ""
msgid "Reset"
msgstr ""
#: ../../mod/settings.php:50 ../../include/nav.php:137
#: ../../mod/settings.php:30 ../../include/nav.php:137
msgid "Account settings"
msgstr ""
#: ../../mod/settings.php:55
#: ../../mod/settings.php:35
msgid "Display settings"
msgstr ""
#: ../../mod/settings.php:61
#: ../../mod/settings.php:41
msgid "Connector settings"
msgstr ""
#: ../../mod/settings.php:66
#: ../../mod/settings.php:46
msgid "Plugin settings"
msgstr ""
#: ../../mod/settings.php:71
#: ../../mod/settings.php:51
msgid "Connected apps"
msgstr ""
#: ../../mod/settings.php:76
#: ../../mod/settings.php:56
msgid "Export personal data"
msgstr ""
#: ../../mod/settings.php:81
#: ../../mod/settings.php:61
msgid "Remove account"
msgstr ""
#: ../../mod/settings.php:89 ../../mod/admin.php:753 ../../mod/admin.php:958
#: ../../addon/dav/layout.fnk.php:116 ../../addon/mathjax/mathjax.php:36
#: ../../view/theme/diabook/theme.php:643
#: ../../view/theme/diabook/theme.php:773 ../../include/nav.php:137
#: ../../mod/settings.php:69 ../../mod/newmember.php:22
#: ../../mod/admin.php:785 ../../mod/admin.php:990
#: ../../addon/dav/friendica/layout.fnk.php:225
#: ../../addon/mathjax/mathjax.php:36 ../../view/theme/diabook/theme.php:614
#: ../../include/nav.php:137 ../../addon.old/dav/friendica/layout.fnk.php:225
#: ../../addon.old/mathjax/mathjax.php:36
msgid "Settings"
msgstr ""
#: ../../mod/settings.php:133
#: ../../mod/settings.php:113
msgid "Missing some important data!"
msgstr ""
#: ../../mod/settings.php:136 ../../mod/settings.php:581
#: ../../mod/settings.php:116 ../../mod/settings.php:569
msgid "Update"
msgstr ""
#: ../../mod/settings.php:241
#: ../../mod/settings.php:221
msgid "Failed to connect with email account using the settings provided."
msgstr ""
#: ../../mod/settings.php:246
#: ../../mod/settings.php:226
msgid "Email settings updated."
msgstr ""
#: ../../mod/settings.php:305
#: ../../mod/settings.php:290
msgid "Passwords do not match. Password unchanged."
msgstr ""
#: ../../mod/settings.php:310
#: ../../mod/settings.php:295
msgid "Empty passwords are not allowed. Password unchanged."
msgstr ""
#: ../../mod/settings.php:321
#: ../../mod/settings.php:306
msgid "Password changed."
msgstr ""
#: ../../mod/settings.php:323
#: ../../mod/settings.php:308
msgid "Password update failed. Please try again."
msgstr ""
#: ../../mod/settings.php:386
#: ../../mod/settings.php:373
msgid " Please use a shorter name."
msgstr ""
#: ../../mod/settings.php:388
#: ../../mod/settings.php:375
msgid " Name too short."
msgstr ""
#: ../../mod/settings.php:394
#: ../../mod/settings.php:381
msgid " Not valid email."
msgstr ""
#: ../../mod/settings.php:396
#: ../../mod/settings.php:383
msgid " Cannot change to that email."
msgstr ""
#: ../../mod/settings.php:450
#: ../../mod/settings.php:437
msgid "Private forum has no privacy permissions. Using default privacy group."
msgstr ""
#: ../../mod/settings.php:454
#: ../../mod/settings.php:441
msgid "Private forum has no privacy permissions and no default privacy group."
msgstr ""
#: ../../mod/settings.php:484 ../../addon/facebook/facebook.php:495
#: ../../addon/impressum/impressum.php:77
#: ../../mod/settings.php:471 ../../addon/facebook/facebook.php:495
#: ../../addon/fbpost/fbpost.php:144
#: ../../addon/remote_permissions/remote_permissions.php:204
#: ../../addon/impressum/impressum.php:78
#: ../../addon/openstreetmap/openstreetmap.php:80
#: ../../addon/mathjax/mathjax.php:66 ../../addon/piwik/piwik.php:105
#: ../../addon/twitter/twitter.php:382
#: ../../addon/twitter/twitter.php:389
#: ../../addon.old/facebook/facebook.php:495
#: ../../addon.old/fbpost/fbpost.php:144
#: ../../addon.old/impressum/impressum.php:78
#: ../../addon.old/openstreetmap/openstreetmap.php:80
#: ../../addon.old/mathjax/mathjax.php:66 ../../addon.old/piwik/piwik.php:105
#: ../../addon.old/twitter/twitter.php:389
msgid "Settings updated."
msgstr ""
#: ../../mod/settings.php:554 ../../mod/settings.php:580
#: ../../mod/settings.php:616
#: ../../mod/settings.php:542 ../../mod/settings.php:568
#: ../../mod/settings.php:604
msgid "Add application"
msgstr ""
#: ../../mod/settings.php:558 ../../mod/settings.php:584
#: ../../addon/statusnet/statusnet.php:561
#: ../../mod/settings.php:546 ../../mod/settings.php:572
#: ../../addon/statusnet/statusnet.php:570
#: ../../addon.old/statusnet/statusnet.php:570
msgid "Consumer Key"
msgstr ""
#: ../../mod/settings.php:559 ../../mod/settings.php:585
#: ../../addon/statusnet/statusnet.php:560
#: ../../mod/settings.php:547 ../../mod/settings.php:573
#: ../../addon/statusnet/statusnet.php:569
#: ../../addon.old/statusnet/statusnet.php:569
msgid "Consumer Secret"
msgstr ""
#: ../../mod/settings.php:560 ../../mod/settings.php:586
#: ../../mod/settings.php:548 ../../mod/settings.php:574
msgid "Redirect"
msgstr ""
#: ../../mod/settings.php:561 ../../mod/settings.php:587
#: ../../mod/settings.php:549 ../../mod/settings.php:575
msgid "Icon url"
msgstr ""
#: ../../mod/settings.php:572
#: ../../mod/settings.php:560
msgid "You can't edit this application."
msgstr ""
#: ../../mod/settings.php:615
#: ../../mod/settings.php:603
msgid "Connected Apps"
msgstr ""
#: ../../mod/settings.php:619
#: ../../mod/settings.php:607
msgid "Client key starts with"
msgstr ""
#: ../../mod/settings.php:620
#: ../../mod/settings.php:608
msgid "No name"
msgstr ""
#: ../../mod/settings.php:621
#: ../../mod/settings.php:609
msgid "Remove authorization"
msgstr ""
#: ../../mod/settings.php:632
#: ../../mod/settings.php:620
msgid "No Plugin settings configured"
msgstr ""
#: ../../mod/settings.php:640 ../../addon/widgets/widgets.php:123
#: ../../mod/settings.php:628 ../../addon/widgets/widgets.php:123
#: ../../addon.old/widgets/widgets.php:123
msgid "Plugin Settings"
msgstr ""
#: ../../mod/settings.php:652 ../../mod/settings.php:653
#: ../../mod/settings.php:640 ../../mod/settings.php:641
#, php-format
msgid "Built-in support for %s connectivity is %s"
msgstr ""
#: ../../mod/settings.php:652 ../../mod/settings.php:653
#: ../../mod/settings.php:640 ../../mod/settings.php:641
msgid "enabled"
msgstr ""
#: ../../mod/settings.php:652 ../../mod/settings.php:653
#: ../../mod/settings.php:640 ../../mod/settings.php:641
msgid "disabled"
msgstr ""
#: ../../mod/settings.php:653
#: ../../mod/settings.php:641
msgid "StatusNet"
msgstr ""
#: ../../mod/settings.php:685
#: ../../mod/settings.php:673
msgid "Email access is disabled on this site."
msgstr ""
#: ../../mod/settings.php:691
#: ../../mod/settings.php:679
msgid "Connector Settings"
msgstr ""
#: ../../mod/settings.php:696
#: ../../mod/settings.php:684
msgid "Email/Mailbox Setup"
msgstr ""
#: ../../mod/settings.php:697
#: ../../mod/settings.php:685
msgid ""
"If you wish to communicate with email contacts using this service "
"(optional), please specify how to connect to your mailbox."
msgstr ""
#: ../../mod/settings.php:698
#: ../../mod/settings.php:686
msgid "Last successful email check:"
msgstr ""
#: ../../mod/settings.php:700
#: ../../mod/settings.php:688
msgid "IMAP server name:"
msgstr ""
#: ../../mod/settings.php:701
#: ../../mod/settings.php:689
msgid "IMAP port:"
msgstr ""
#: ../../mod/settings.php:702
#: ../../mod/settings.php:690
msgid "Security:"
msgstr ""
#: ../../mod/settings.php:702 ../../mod/settings.php:707
#: ../../mod/settings.php:690 ../../mod/settings.php:695
#: ../../addon/dav/common/wdcal_edit.inc.php:191
#: ../../addon.old/dav/common/wdcal_edit.inc.php:191
msgid "None"
msgstr ""
#: ../../mod/settings.php:703
#: ../../mod/settings.php:691
msgid "Email login name:"
msgstr ""
#: ../../mod/settings.php:704
#: ../../mod/settings.php:692
msgid "Email password:"
msgstr ""
#: ../../mod/settings.php:705
#: ../../mod/settings.php:693
msgid "Reply-to address:"
msgstr ""
#: ../../mod/settings.php:706
#: ../../mod/settings.php:694
msgid "Send public posts to all email contacts:"
msgstr ""
#: ../../mod/settings.php:707
#: ../../mod/settings.php:695
msgid "Action after import:"
msgstr ""
#: ../../mod/settings.php:707
#: ../../mod/settings.php:695
msgid "Mark as seen"
msgstr ""
#: ../../mod/settings.php:707
#: ../../mod/settings.php:695
msgid "Move to folder"
msgstr ""
#: ../../mod/settings.php:708
#: ../../mod/settings.php:696
msgid "Move to folder:"
msgstr ""
#: ../../mod/settings.php:768
#: ../../mod/settings.php:727 ../../mod/admin.php:402
msgid "No special theme for mobile devices"
msgstr ""
#: ../../mod/settings.php:767
msgid "Display Settings"
msgstr ""
#: ../../mod/settings.php:774
#: ../../mod/settings.php:773 ../../mod/settings.php:784
msgid "Display Theme:"
msgstr ""
#: ../../mod/settings.php:774
msgid "Mobile Theme:"
msgstr ""
#: ../../mod/settings.php:775
msgid "Update browser every xx seconds"
msgstr ""
@ -2197,7 +2348,7 @@ msgid "Minimum of 10 seconds, no maximum"
msgstr ""
#: ../../mod/settings.php:776
msgid "Number of items to display on the network page:"
msgid "Number of items to display per page:"
msgstr ""
#: ../../mod/settings.php:776
@ -2208,337 +2359,341 @@ msgstr ""
msgid "Don't show emoticons"
msgstr ""
#: ../../mod/settings.php:848
#: ../../mod/settings.php:853
msgid "Normal Account Page"
msgstr ""
#: ../../mod/settings.php:849
#: ../../mod/settings.php:854
msgid "This account is a normal personal profile"
msgstr ""
#: ../../mod/settings.php:852
#: ../../mod/settings.php:857
msgid "Soapbox Page"
msgstr ""
#: ../../mod/settings.php:853
#: ../../mod/settings.php:858
msgid "Automatically approve all connection/friend requests as read-only fans"
msgstr ""
#: ../../mod/settings.php:856
#: ../../mod/settings.php:861
msgid "Community Forum/Celebrity Account"
msgstr ""
#: ../../mod/settings.php:857
#: ../../mod/settings.php:862
msgid "Automatically approve all connection/friend requests as read-write fans"
msgstr ""
#: ../../mod/settings.php:860
#: ../../mod/settings.php:865
msgid "Automatic Friend Page"
msgstr ""
#: ../../mod/settings.php:861
#: ../../mod/settings.php:866
msgid "Automatically approve all connection/friend requests as friends"
msgstr ""
#: ../../mod/settings.php:864
#: ../../mod/settings.php:869
msgid "Private Forum [Experimental]"
msgstr ""
#: ../../mod/settings.php:865
#: ../../mod/settings.php:870
msgid "Private forum - approved members only"
msgstr ""
#: ../../mod/settings.php:877
#: ../../mod/settings.php:882
msgid "OpenID:"
msgstr ""
#: ../../mod/settings.php:877
#: ../../mod/settings.php:882
msgid "(Optional) Allow this OpenID to login to this account."
msgstr ""
#: ../../mod/settings.php:887
#: ../../mod/settings.php:892
msgid "Publish your default profile in your local site directory?"
msgstr ""
#: ../../mod/settings.php:893
#: ../../mod/settings.php:898
msgid "Publish your default profile in the global social directory?"
msgstr ""
#: ../../mod/settings.php:901
#: ../../mod/settings.php:906
msgid "Hide your contact/friend list from viewers of your default profile?"
msgstr ""
#: ../../mod/settings.php:905
#: ../../mod/settings.php:910
msgid "Hide your profile details from unknown viewers?"
msgstr ""
#: ../../mod/settings.php:910
#: ../../mod/settings.php:915
msgid "Allow friends to post to your profile page?"
msgstr ""
#: ../../mod/settings.php:916
#: ../../mod/settings.php:921
msgid "Allow friends to tag your posts?"
msgstr ""
#: ../../mod/settings.php:922
#: ../../mod/settings.php:927
msgid "Allow us to suggest you as a potential friend to new members?"
msgstr ""
#: ../../mod/settings.php:928
#: ../../mod/settings.php:933
msgid "Permit unknown people to send you private mail?"
msgstr ""
#: ../../mod/settings.php:936
#: ../../mod/settings.php:941
msgid "Profile is <strong>not published</strong>."
msgstr ""
#: ../../mod/settings.php:939 ../../mod/profile_photo.php:213
#: ../../mod/settings.php:944 ../../mod/profile_photo.php:248
msgid "or"
msgstr ""
#: ../../mod/settings.php:944
#: ../../mod/settings.php:949
msgid "Your Identity Address is"
msgstr ""
#: ../../mod/settings.php:955
#: ../../mod/settings.php:960
msgid "Automatically expire posts after this many days:"
msgstr ""
#: ../../mod/settings.php:955
#: ../../mod/settings.php:960
msgid "If empty, posts will not expire. Expired posts will be deleted"
msgstr ""
#: ../../mod/settings.php:956
#: ../../mod/settings.php:961
msgid "Advanced expiration settings"
msgstr ""
#: ../../mod/settings.php:957
#: ../../mod/settings.php:962
msgid "Advanced Expiration"
msgstr ""
#: ../../mod/settings.php:958
#: ../../mod/settings.php:963
msgid "Expire posts:"
msgstr ""
#: ../../mod/settings.php:959
#: ../../mod/settings.php:964
msgid "Expire personal notes:"
msgstr ""
#: ../../mod/settings.php:960
#: ../../mod/settings.php:965
msgid "Expire starred posts:"
msgstr ""
#: ../../mod/settings.php:961
#: ../../mod/settings.php:966
msgid "Expire photos:"
msgstr ""
#: ../../mod/settings.php:962
#: ../../mod/settings.php:967
msgid "Only expire posts by others:"
msgstr ""
#: ../../mod/settings.php:969
#: ../../mod/settings.php:974
msgid "Account Settings"
msgstr ""
#: ../../mod/settings.php:977
#: ../../mod/settings.php:982
msgid "Password Settings"
msgstr ""
#: ../../mod/settings.php:978
#: ../../mod/settings.php:983
msgid "New Password:"
msgstr ""
#: ../../mod/settings.php:979
#: ../../mod/settings.php:984
msgid "Confirm:"
msgstr ""
#: ../../mod/settings.php:979
#: ../../mod/settings.php:984
msgid "Leave password fields blank unless changing"
msgstr ""
#: ../../mod/settings.php:983
#: ../../mod/settings.php:988
msgid "Basic Settings"
msgstr ""
#: ../../mod/settings.php:984 ../../include/profile_advanced.php:15
#: ../../mod/settings.php:989 ../../include/profile_advanced.php:15
msgid "Full Name:"
msgstr ""
#: ../../mod/settings.php:985
#: ../../mod/settings.php:990
msgid "Email Address:"
msgstr ""
#: ../../mod/settings.php:986
#: ../../mod/settings.php:991
msgid "Your Timezone:"
msgstr ""
#: ../../mod/settings.php:987
#: ../../mod/settings.php:992
msgid "Default Post Location:"
msgstr ""
#: ../../mod/settings.php:988
#: ../../mod/settings.php:993
msgid "Use Browser Location:"
msgstr ""
#: ../../mod/settings.php:991
#: ../../mod/settings.php:996
msgid "Security and Privacy Settings"
msgstr ""
#: ../../mod/settings.php:993
#: ../../mod/settings.php:998
msgid "Maximum Friend Requests/Day:"
msgstr ""
#: ../../mod/settings.php:993 ../../mod/settings.php:1012
#: ../../mod/settings.php:998 ../../mod/settings.php:1017
msgid "(to prevent spam abuse)"
msgstr ""
#: ../../mod/settings.php:994
#: ../../mod/settings.php:999
msgid "Default Post Permissions"
msgstr ""
#: ../../mod/settings.php:995
#: ../../mod/settings.php:1000
msgid "(click to open/close)"
msgstr ""
#: ../../mod/settings.php:1012
#: ../../mod/settings.php:1017
msgid "Maximum private messages per day from unknown people:"
msgstr ""
#: ../../mod/settings.php:1015
#: ../../mod/settings.php:1020
msgid "Notification Settings"
msgstr ""
#: ../../mod/settings.php:1016
#: ../../mod/settings.php:1021
msgid "By default post a status message when:"
msgstr ""
#: ../../mod/settings.php:1017
#: ../../mod/settings.php:1022
msgid "accepting a friend request"
msgstr ""
#: ../../mod/settings.php:1018
#: ../../mod/settings.php:1023
msgid "joining a forum/community"
msgstr ""
#: ../../mod/settings.php:1019
#: ../../mod/settings.php:1024
msgid "making an <em>interesting</em> profile change"
msgstr ""
#: ../../mod/settings.php:1020
#: ../../mod/settings.php:1025
msgid "Send a notification email when:"
msgstr ""
#: ../../mod/settings.php:1021
#: ../../mod/settings.php:1026
msgid "You receive an introduction"
msgstr ""
#: ../../mod/settings.php:1022
#: ../../mod/settings.php:1027
msgid "Your introductions are confirmed"
msgstr ""
#: ../../mod/settings.php:1023
#: ../../mod/settings.php:1028
msgid "Someone writes on your profile wall"
msgstr ""
#: ../../mod/settings.php:1024
#: ../../mod/settings.php:1029
msgid "Someone writes a followup comment"
msgstr ""
#: ../../mod/settings.php:1025
#: ../../mod/settings.php:1030
msgid "You receive a private message"
msgstr ""
#: ../../mod/settings.php:1026
#: ../../mod/settings.php:1031
msgid "You receive a friend suggestion"
msgstr ""
#: ../../mod/settings.php:1027
#: ../../mod/settings.php:1032
msgid "You are tagged in a post"
msgstr ""
#: ../../mod/settings.php:1030
#: ../../mod/settings.php:1033
msgid "You are poked/prodded/etc. in a post"
msgstr ""
#: ../../mod/settings.php:1036
msgid "Advanced Account/Page Type Settings"
msgstr ""
#: ../../mod/settings.php:1031
#: ../../mod/settings.php:1037
msgid "Change the behaviour of this account for special situations"
msgstr ""
#: ../../mod/manage.php:90
#: ../../mod/manage.php:94
msgid "Manage Identities and/or Pages"
msgstr ""
#: ../../mod/manage.php:93
#: ../../mod/manage.php:97
msgid ""
"Toggle between different identities or community/group pages which share "
"your account details or which you have been granted \"manage\" permissions"
msgstr ""
#: ../../mod/manage.php:95
#: ../../mod/manage.php:99
msgid "Select an identity to manage: "
msgstr ""
#: ../../mod/network.php:97
#: ../../mod/network.php:181
msgid "Search Results For:"
msgstr ""
#: ../../mod/network.php:137 ../../mod/search.php:16
#: ../../mod/network.php:221 ../../mod/search.php:18
msgid "Remove term"
msgstr ""
#: ../../mod/network.php:146 ../../mod/search.php:13
#: ../../mod/network.php:230 ../../mod/search.php:27
msgid "Saved Searches"
msgstr ""
#: ../../mod/network.php:147 ../../include/group.php:244
#: ../../mod/network.php:231 ../../include/group.php:275
msgid "add"
msgstr ""
#: ../../mod/network.php:287
#: ../../mod/network.php:394
msgid "Commented Order"
msgstr ""
#: ../../mod/network.php:290
#: ../../mod/network.php:397
msgid "Sort by Comment Date"
msgstr ""
#: ../../mod/network.php:293
#: ../../mod/network.php:400
msgid "Posted Order"
msgstr ""
#: ../../mod/network.php:296
#: ../../mod/network.php:403
msgid "Sort by Post Date"
msgstr ""
#: ../../mod/network.php:303
#: ../../mod/network.php:410
msgid "Posts that mention or involve you"
msgstr ""
#: ../../mod/network.php:306
#: ../../mod/network.php:413
msgid "New"
msgstr ""
#: ../../mod/network.php:309
#: ../../mod/network.php:416
msgid "Activity Stream - by date"
msgstr ""
#: ../../mod/network.php:312
#: ../../mod/network.php:419
msgid "Starred"
msgstr ""
#: ../../mod/network.php:315
#: ../../mod/network.php:422
msgid "Favourite Posts"
msgstr ""
#: ../../mod/network.php:318
#: ../../mod/network.php:425
msgid "Shared Links"
msgstr ""
#: ../../mod/network.php:321
#: ../../mod/network.php:428
msgid "Interesting Links"
msgstr ""
#: ../../mod/network.php:388
#: ../../mod/network.php:496
#, php-format
msgid "Warning: This group contains %s member from an insecure network."
msgid_plural ""
@ -2546,30 +2701,37 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
#: ../../mod/network.php:391
#: ../../mod/network.php:499
msgid "Private messages to this group are at risk of public disclosure."
msgstr ""
#: ../../mod/network.php:461
#: ../../mod/network.php:569
msgid "Contact: "
msgstr ""
#: ../../mod/network.php:463
#: ../../mod/network.php:571
msgid "Private messages to this person are at risk of public disclosure."
msgstr ""
#: ../../mod/network.php:468
#: ../../mod/network.php:576
msgid "Invalid contact."
msgstr ""
#: ../../mod/notes.php:44 ../../boot.php:1601
#: ../../mod/notes.php:44 ../../boot.php:1708
msgid "Personal Notes"
msgstr ""
#: ../../mod/notes.php:63 ../../mod/filer.php:30
#: ../../addon/facebook/facebook.php:770
#: ../../addon/privacy_image_cache/privacy_image_cache.php:187
#: ../../addon/dav/layout.fnk.php:384 ../../include/text.php:652
#: ../../addon/privacy_image_cache/privacy_image_cache.php:263
#: ../../addon/fbpost/fbpost.php:267
#: ../../addon/dav/friendica/layout.fnk.php:441
#: ../../addon/dav/friendica/layout.fnk.php:488 ../../include/text.php:681
#: ../../addon.old/facebook/facebook.php:770
#: ../../addon.old/privacy_image_cache/privacy_image_cache.php:263
#: ../../addon.old/fbpost/fbpost.php:267
#: ../../addon.old/dav/friendica/layout.fnk.php:441
#: ../../addon.old/dav/friendica/layout.fnk.php:488
msgid "Save"
msgstr ""
@ -2578,7 +2740,7 @@ msgstr ""
msgid "Number of daily wall messages for %s exceeded. Message failed."
msgstr ""
#: ../../mod/wallmessage.php:56 ../../mod/message.php:66
#: ../../mod/wallmessage.php:56 ../../mod/message.php:59
msgid "No recipient selected."
msgstr ""
@ -2586,15 +2748,15 @@ msgstr ""
msgid "Unable to check your home location."
msgstr ""
#: ../../mod/wallmessage.php:62 ../../mod/message.php:73
#: ../../mod/wallmessage.php:62 ../../mod/message.php:66
msgid "Message could not be sent."
msgstr ""
#: ../../mod/wallmessage.php:65 ../../mod/message.php:76
#: ../../mod/wallmessage.php:65 ../../mod/message.php:69
msgid "Message collection failure."
msgstr ""
#: ../../mod/wallmessage.php:68 ../../mod/message.php:79
#: ../../mod/wallmessage.php:68 ../../mod/message.php:72
msgid "Message sent."
msgstr ""
@ -2602,34 +2764,35 @@ msgstr ""
msgid "No recipient."
msgstr ""
#: ../../mod/wallmessage.php:124 ../../mod/message.php:250
#: ../../include/conversation.php:1009
#: ../../mod/wallmessage.php:123 ../../mod/wallmessage.php:131
#: ../../mod/message.php:242 ../../mod/message.php:250
#: ../../include/conversation.php:898 ../../include/conversation.php:916
msgid "Please enter a link URL:"
msgstr ""
#: ../../mod/wallmessage.php:131 ../../mod/message.php:278
#: ../../mod/wallmessage.php:138 ../../mod/message.php:278
msgid "Send Private Message"
msgstr ""
#: ../../mod/wallmessage.php:132
#: ../../mod/wallmessage.php:139
#, php-format
msgid ""
"If you wish for %s to respond, please check that the privacy settings on "
"your site allow private mail from unknown senders."
msgstr ""
#: ../../mod/wallmessage.php:133 ../../mod/message.php:279
#: ../../mod/message.php:462
#: ../../mod/wallmessage.php:140 ../../mod/message.php:279
#: ../../mod/message.php:469
msgid "To:"
msgstr ""
#: ../../mod/wallmessage.php:134 ../../mod/message.php:284
#: ../../mod/message.php:464
#: ../../mod/wallmessage.php:141 ../../mod/message.php:284
#: ../../mod/message.php:471
msgid "Subject:"
msgstr ""
#: ../../mod/wallmessage.php:140 ../../mod/message.php:288
#: ../../mod/message.php:467 ../../mod/invite.php:113
#: ../../mod/wallmessage.php:147 ../../mod/message.php:288
#: ../../mod/message.php:474 ../../mod/invite.php:113
msgid "Your message:"
msgstr ""
@ -2649,21 +2812,33 @@ msgid ""
"registration and then will quietly disappear."
msgstr ""
#: ../../mod/newmember.php:16
msgid ""
"On your <em>Quick Start</em> page - find a brief introduction to your "
"profile and network tabs, connect to Facebook, make some new connections, "
"and find some groups to join."
#: ../../mod/newmember.php:14
msgid "Getting Started"
msgstr ""
#: ../../mod/newmember.php:18
msgid "Friendica Walk-Through"
msgstr ""
#: ../../mod/newmember.php:18
msgid ""
"On your <em>Quick Start</em> page - find a brief introduction to your "
"profile and network tabs, make some new connections, and find some groups to "
"join."
msgstr ""
#: ../../mod/newmember.php:26
msgid "Go to Your Settings"
msgstr ""
#: ../../mod/newmember.php:26
msgid ""
"On your <em>Settings</em> page - change your initial password. Also make a "
"note of your Identity Address. This looks just like an email address - and "
"will be useful in making friends on the free social web."
msgstr ""
#: ../../mod/newmember.php:20
#: ../../mod/newmember.php:28
msgid ""
"Review the other settings, particularly the privacy settings. An unpublished "
"directory listing is like having an unlisted phone number. In general, you "
@ -2671,61 +2846,108 @@ msgid ""
"potential friends know exactly how to find you."
msgstr ""
#: ../../mod/newmember.php:22
#: ../../mod/newmember.php:32 ../../mod/profperm.php:103
#: ../../view/theme/diabook/theme.php:87 ../../include/profile_advanced.php:7
#: ../../include/profile_advanced.php:84 ../../include/nav.php:50
#: ../../boot.php:1684
msgid "Profile"
msgstr ""
#: ../../mod/newmember.php:36 ../../mod/profile_photo.php:244
msgid "Upload Profile Photo"
msgstr ""
#: ../../mod/newmember.php:36
msgid ""
"Upload a profile photo if you have not done so already. Studies have shown "
"that people with real photos of themselves are ten times more likely to make "
"friends than people who do not."
msgstr ""
#: ../../mod/newmember.php:25
msgid ""
"Authorise the Facebook Connector if you currently have a Facebook account "
"and we will (optionally) import all your Facebook friends and conversations."
#: ../../mod/newmember.php:38
msgid "Edit Your Profile"
msgstr ""
#: ../../mod/newmember.php:27
msgid ""
"<em>If</em> this is your own personal server, installing the Facebook addon "
"may ease your transition to the free social web."
msgstr ""
#: ../../mod/newmember.php:32
msgid ""
"Enter your email access information on your Connector Settings page if you "
"wish to import and interact with friends or mailing lists from your email "
"INBOX"
msgstr ""
#: ../../mod/newmember.php:34
#: ../../mod/newmember.php:38
msgid ""
"Edit your <strong>default</strong> profile to your liking. Review the "
"settings for hiding your list of friends and hiding the profile from unknown "
"visitors."
msgstr ""
#: ../../mod/newmember.php:36
#: ../../mod/newmember.php:40
msgid "Profile Keywords"
msgstr ""
#: ../../mod/newmember.php:40
msgid ""
"Set some public keywords for your default profile which describe your "
"interests. We may be able to find other people with similar interests and "
"suggest friendships."
msgstr ""
#: ../../mod/newmember.php:38
#: ../../mod/newmember.php:44
msgid "Connecting"
msgstr ""
#: ../../mod/newmember.php:49 ../../mod/newmember.php:51
#: ../../addon/facebook/facebook.php:728 ../../addon/fbpost/fbpost.php:239
#: ../../include/contact_selectors.php:81
#: ../../addon.old/facebook/facebook.php:728
#: ../../addon.old/fbpost/fbpost.php:239
msgid "Facebook"
msgstr ""
#: ../../mod/newmember.php:49
msgid ""
"Authorise the Facebook Connector if you currently have a Facebook account "
"and we will (optionally) import all your Facebook friends and conversations."
msgstr ""
#: ../../mod/newmember.php:51
msgid ""
"<em>If</em> this is your own personal server, installing the Facebook addon "
"may ease your transition to the free social web."
msgstr ""
#: ../../mod/newmember.php:56
msgid "Importing Emails"
msgstr ""
#: ../../mod/newmember.php:56
msgid ""
"Enter your email access information on your Connector Settings page if you "
"wish to import and interact with friends or mailing lists from your email "
"INBOX"
msgstr ""
#: ../../mod/newmember.php:58
msgid "Go to Your Contacts Page"
msgstr ""
#: ../../mod/newmember.php:58
msgid ""
"Your Contacts page is your gateway to managing friendships and connecting "
"with friends on other networks. Typically you enter their address or site "
"URL in the <em>Add New Contact</em> dialog."
msgstr ""
#: ../../mod/newmember.php:40
#: ../../mod/newmember.php:60
msgid "Go to Your Site's Directory"
msgstr ""
#: ../../mod/newmember.php:60
msgid ""
"The Directory page lets you find other people in this network or other "
"federated sites. Look for a <em>Connect</em> or <em>Follow</em> link on "
"their profile page. Provide your own Identity Address if requested."
msgstr ""
#: ../../mod/newmember.php:42
#: ../../mod/newmember.php:62
msgid "Finding New People"
msgstr ""
#: ../../mod/newmember.php:62
msgid ""
"On the side panel of the Contacts page are several tools to find new "
"friends. We can match people by interest, look up people by name or "
@ -2734,14 +2956,41 @@ msgid ""
"hours."
msgstr ""
#: ../../mod/newmember.php:44
#: ../../mod/newmember.php:66 ../../include/group.php:270
msgid "Groups"
msgstr ""
#: ../../mod/newmember.php:70
msgid "Group Your Contacts"
msgstr ""
#: ../../mod/newmember.php:70
msgid ""
"Once you have made some friends, organize them into private conversation "
"groups from the sidebar of your Contacts page and then you can interact with "
"each group privately on your Network page."
msgstr ""
#: ../../mod/newmember.php:46
#: ../../mod/newmember.php:73
msgid "Why Aren't My Posts Public?"
msgstr ""
#: ../../mod/newmember.php:73
msgid ""
"Friendica respects your privacy. By default, your posts will only show up to "
"people you've added as friends. For more information, see the help section "
"from the link above."
msgstr ""
#: ../../mod/newmember.php:78
msgid "Getting Help"
msgstr ""
#: ../../mod/newmember.php:82
msgid "Go to the Help Section"
msgstr ""
#: ../../mod/newmember.php:82
msgid ""
"Our <strong>help</strong> pages may be consulted for detail on other program "
"features and resources."
@ -2771,7 +3020,7 @@ msgstr ""
msgid "Group name changed."
msgstr ""
#: ../../mod/group.php:72 ../../mod/profperm.php:19 ../../index.php:308
#: ../../mod/group.php:72 ../../mod/profperm.php:19 ../../index.php:318
msgid "Permission denied"
msgstr ""
@ -2811,12 +3060,6 @@ msgstr ""
msgid "Profile Visibility Editor"
msgstr ""
#: ../../mod/profperm.php:103 ../../view/theme/diabook/theme.php:128
#: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:84
#: ../../include/nav.php:50 ../../boot.php:1580
msgid "Profile"
msgstr ""
#: ../../mod/profperm.php:114
msgid "Visible To"
msgstr ""
@ -2829,7 +3072,7 @@ msgstr ""
msgid "No contacts."
msgstr ""
#: ../../mod/viewcontacts.php:76 ../../include/text.php:589
#: ../../mod/viewcontacts.php:76 ../../include/text.php:618
msgid "View Contacts"
msgstr ""
@ -2866,58 +3109,58 @@ msgid ""
"Please try again tomorrow."
msgstr ""
#: ../../mod/register.php:215
#: ../../mod/register.php:217
msgid ""
"You may (optionally) fill in this form via OpenID by supplying your OpenID "
"and clicking 'Register'."
msgstr ""
#: ../../mod/register.php:216
#: ../../mod/register.php:218
msgid ""
"If you are not familiar with OpenID, please leave that field blank and fill "
"in the rest of the items."
msgstr ""
#: ../../mod/register.php:217
#: ../../mod/register.php:219
msgid "Your OpenID (optional): "
msgstr ""
#: ../../mod/register.php:231
#: ../../mod/register.php:233
msgid "Include your profile in member directory?"
msgstr ""
#: ../../mod/register.php:251
#: ../../mod/register.php:255
msgid "Membership on this site is by invitation only."
msgstr ""
#: ../../mod/register.php:252
#: ../../mod/register.php:256
msgid "Your invitation ID: "
msgstr ""
#: ../../mod/register.php:255 ../../mod/admin.php:423
#: ../../mod/register.php:259 ../../mod/admin.php:444
msgid "Registration"
msgstr ""
#: ../../mod/register.php:263
#: ../../mod/register.php:267
msgid "Your Full Name (e.g. Joe Smith): "
msgstr ""
#: ../../mod/register.php:264
#: ../../mod/register.php:268
msgid "Your Email Address: "
msgstr ""
#: ../../mod/register.php:265
#: ../../mod/register.php:269
msgid ""
"Choose a profile nickname. This must begin with a text character. Your "
"profile address on this site will then be '<strong>nickname@$sitename</"
"strong>'."
msgstr ""
#: ../../mod/register.php:266
#: ../../mod/register.php:270
msgid "Choose a nickname: "
msgstr ""
#: ../../mod/register.php:269 ../../include/nav.php:81 ../../boot.php:864
#: ../../mod/register.php:273 ../../include/nav.php:81 ../../boot.php:898
msgid "Register"
msgstr ""
@ -2925,33 +3168,47 @@ msgstr ""
msgid "People Search"
msgstr ""
#: ../../mod/like.php:144 ../../mod/like.php:301 ../../mod/tagger.php:70
#: ../../addon/facebook/facebook.php:1586
#: ../../mod/like.php:145 ../../mod/subthread.php:87 ../../mod/tagger.php:62
#: ../../addon/communityhome/communityhome.php:163
#: ../../view/theme/diabook/theme.php:457 ../../include/text.php:1437
#: ../../include/diaspora.php:1835 ../../include/conversation.php:125
#: ../../include/conversation.php:253
#: ../../addon.old/communityhome/communityhome.php:163
msgid "photo"
msgstr ""
#: ../../mod/like.php:145 ../../mod/like.php:298 ../../mod/subthread.php:87
#: ../../mod/tagger.php:62 ../../addon/facebook/facebook.php:1598
#: ../../addon/communityhome/communityhome.php:158
#: ../../addon/communityhome/communityhome.php:167
#: ../../view/theme/diabook/theme.php:565
#: ../../view/theme/diabook/theme.php:574 ../../include/diaspora.php:1777
#: ../../include/conversation.php:110 ../../include/conversation.php:119
#: ../../include/conversation.php:183 ../../include/conversation.php:192
#: ../../view/theme/diabook/theme.php:452
#: ../../view/theme/diabook/theme.php:461 ../../include/diaspora.php:1835
#: ../../include/conversation.php:120 ../../include/conversation.php:129
#: ../../include/conversation.php:248 ../../include/conversation.php:257
#: ../../addon.old/facebook/facebook.php:1598
#: ../../addon.old/communityhome/communityhome.php:158
#: ../../addon.old/communityhome/communityhome.php:167
msgid "status"
msgstr ""
#: ../../mod/like.php:161 ../../addon/facebook/facebook.php:1590
#: ../../mod/like.php:162 ../../addon/facebook/facebook.php:1602
#: ../../addon/communityhome/communityhome.php:172
#: ../../view/theme/diabook/theme.php:579 ../../include/diaspora.php:1793
#: ../../include/conversation.php:127
#: ../../view/theme/diabook/theme.php:466 ../../include/diaspora.php:1851
#: ../../include/conversation.php:136
#: ../../addon.old/facebook/facebook.php:1602
#: ../../addon.old/communityhome/communityhome.php:172
#, php-format
msgid "%1$s likes %2$s's %3$s"
msgstr ""
#: ../../mod/like.php:163 ../../include/conversation.php:130
#: ../../mod/like.php:164 ../../include/conversation.php:139
#, php-format
msgid "%1$s doesn't like %2$s's %3$s"
msgstr ""
#: ../../mod/notice.php:15 ../../mod/viewsrc.php:15 ../../mod/admin.php:159
#: ../../mod/admin.php:702 ../../mod/admin.php:901 ../../mod/display.php:37
#: ../../mod/display.php:142 ../../include/items.php:3464
#: ../../mod/admin.php:734 ../../mod/admin.php:933 ../../mod/display.php:39
#: ../../mod/display.php:169 ../../include/items.php:3780
msgid "Item not found."
msgstr ""
@ -2959,8 +3216,8 @@ msgstr ""
msgid "Access denied."
msgstr ""
#: ../../mod/fbrowser.php:25 ../../view/theme/diabook/theme.php:130
#: ../../include/nav.php:51 ../../boot.php:1586
#: ../../mod/fbrowser.php:25 ../../view/theme/diabook/theme.php:89
#: ../../include/nav.php:51 ../../boot.php:1691
msgid "Photos"
msgstr ""
@ -2981,104 +3238,119 @@ msgstr ""
msgid "Please login."
msgstr ""
#: ../../mod/item.php:89
#: ../../mod/item.php:104
msgid "Unable to locate original post."
msgstr ""
#: ../../mod/item.php:258
#: ../../mod/item.php:288
msgid "Empty post discarded."
msgstr ""
#: ../../mod/item.php:379 ../../mod/wall_upload.php:115
#: ../../mod/wall_upload.php:124 ../../mod/wall_upload.php:131
#: ../../mod/item.php:420 ../../mod/wall_upload.php:133
#: ../../mod/wall_upload.php:142 ../../mod/wall_upload.php:149
#: ../../include/message.php:144
msgid "Wall Photos"
msgstr ""
#: ../../mod/item.php:784
#: ../../mod/item.php:833
msgid "System error. Post not saved."
msgstr ""
#: ../../mod/item.php:809
#: ../../mod/item.php:858
#, php-format
msgid ""
"This message was sent to you by %s, a member of the Friendica social network."
msgstr ""
#: ../../mod/item.php:811
#: ../../mod/item.php:860
#, php-format
msgid "You may visit them online at %s"
msgstr ""
#: ../../mod/item.php:812
#: ../../mod/item.php:861
msgid ""
"Please contact the sender by replying to this post if you do not wish to "
"receive these messages."
msgstr ""
#: ../../mod/item.php:814
#: ../../mod/item.php:863
#, php-format
msgid "%s posted an update."
msgstr ""
#: ../../mod/profile_photo.php:30
#: ../../mod/mood.php:62 ../../include/conversation.php:226
#, php-format
msgid "%1$s is currently %2$s"
msgstr ""
#: ../../mod/mood.php:133
msgid "Mood"
msgstr ""
#: ../../mod/mood.php:134
msgid "Set your current mood and tell your friends"
msgstr ""
#: ../../mod/profile_photo.php:44
msgid "Image uploaded but image cropping failed."
msgstr ""
#: ../../mod/profile_photo.php:63 ../../mod/profile_photo.php:70
#: ../../mod/profile_photo.php:77 ../../mod/profile_photo.php:266
#: ../../mod/profile_photo.php:77 ../../mod/profile_photo.php:84
#: ../../mod/profile_photo.php:91 ../../mod/profile_photo.php:308
#, php-format
msgid "Image size reduction [%s] failed."
msgstr ""
#: ../../mod/profile_photo.php:91
#: ../../mod/profile_photo.php:118
msgid ""
"Shift-reload the page or clear browser cache if the new photo does not "
"display immediately."
msgstr ""
#: ../../mod/profile_photo.php:101
#: ../../mod/profile_photo.php:128
msgid "Unable to process image"
msgstr ""
#: ../../mod/profile_photo.php:117 ../../mod/wall_upload.php:77
#: ../../mod/profile_photo.php:144 ../../mod/wall_upload.php:88
#, php-format
msgid "Image exceeds size limit of %d"
msgstr ""
#: ../../mod/profile_photo.php:209
#: ../../mod/profile_photo.php:242
msgid "Upload File:"
msgstr ""
#: ../../mod/profile_photo.php:210
msgid "Upload Profile Photo"
#: ../../mod/profile_photo.php:243
msgid "Select a profile:"
msgstr ""
#: ../../mod/profile_photo.php:211
#: ../../mod/profile_photo.php:245
#: ../../addon/dav/friendica/layout.fnk.php:152
#: ../../addon.old/dav/friendica/layout.fnk.php:152
msgid "Upload"
msgstr ""
#: ../../mod/profile_photo.php:213
#: ../../mod/profile_photo.php:248
msgid "skip this step"
msgstr ""
#: ../../mod/profile_photo.php:213
#: ../../mod/profile_photo.php:248
msgid "select a photo from your photo albums"
msgstr ""
#: ../../mod/profile_photo.php:226
#: ../../mod/profile_photo.php:262
msgid "Crop Image"
msgstr ""
#: ../../mod/profile_photo.php:227
#: ../../mod/profile_photo.php:263
msgid "Please adjust the image cropping for optimum viewing."
msgstr ""
#: ../../mod/profile_photo.php:229
#: ../../mod/profile_photo.php:265
msgid "Done Editing"
msgstr ""
#: ../../mod/profile_photo.php:257
#: ../../mod/profile_photo.php:299
msgid "Image uploaded successfully."
msgstr ""
@ -3104,15 +3376,15 @@ msgstr ""
msgid "New Message"
msgstr ""
#: ../../mod/message.php:70
#: ../../mod/message.php:63
msgid "Unable to locate contact information."
msgstr ""
#: ../../mod/message.php:198
#: ../../mod/message.php:191
msgid "Message deleted."
msgstr ""
#: ../../mod/message.php:228
#: ../../mod/message.php:221
msgid "Conversation removed."
msgstr ""
@ -3135,7 +3407,7 @@ msgstr ""
msgid "%s and You"
msgstr ""
#: ../../mod/message.php:350 ../../mod/message.php:455
#: ../../mod/message.php:350 ../../mod/message.php:462
msgid "Delete conversation"
msgstr ""
@ -3143,28 +3415,28 @@ msgstr ""
msgid "D, d M Y - g:i A"
msgstr ""
#: ../../mod/message.php:355
#: ../../mod/message.php:356
#, php-format
msgid "%d message"
msgid_plural "%d messages"
msgstr[0] ""
msgstr[1] ""
#: ../../mod/message.php:390
#: ../../mod/message.php:391
msgid "Message not available."
msgstr ""
#: ../../mod/message.php:438
#: ../../mod/message.php:444
msgid "Delete message"
msgstr ""
#: ../../mod/message.php:457
#: ../../mod/message.php:464
msgid ""
"No secure communications available. You <strong>may</strong> be able to "
"respond from the sender's profile page."
msgstr ""
#: ../../mod/message.php:461
#: ../../mod/message.php:468
msgid "Send Reply"
msgstr ""
@ -3181,19 +3453,19 @@ msgstr ""
msgid "Theme settings updated."
msgstr ""
#: ../../mod/admin.php:96 ../../mod/admin.php:421
#: ../../mod/admin.php:96 ../../mod/admin.php:442
msgid "Site"
msgstr ""
#: ../../mod/admin.php:97 ../../mod/admin.php:657 ../../mod/admin.php:669
#: ../../mod/admin.php:97 ../../mod/admin.php:688 ../../mod/admin.php:701
msgid "Users"
msgstr ""
#: ../../mod/admin.php:98 ../../mod/admin.php:751 ../../mod/admin.php:793
#: ../../mod/admin.php:98 ../../mod/admin.php:783 ../../mod/admin.php:825
msgid "Plugins"
msgstr ""
#: ../../mod/admin.php:99 ../../mod/admin.php:956 ../../mod/admin.php:992
#: ../../mod/admin.php:99 ../../mod/admin.php:988 ../../mod/admin.php:1024
msgid "Themes"
msgstr ""
@ -3201,7 +3473,7 @@ msgstr ""
msgid "DB updates"
msgstr ""
#: ../../mod/admin.php:115 ../../mod/admin.php:122 ../../mod/admin.php:1079
#: ../../mod/admin.php:115 ../../mod/admin.php:122 ../../mod/admin.php:1111
msgid "Logs"
msgstr ""
@ -3217,19 +3489,19 @@ msgstr ""
msgid "User registrations waiting for confirmation"
msgstr ""
#: ../../mod/admin.php:183 ../../mod/admin.php:639
#: ../../mod/admin.php:183 ../../mod/admin.php:669
msgid "Normal Account"
msgstr ""
#: ../../mod/admin.php:184 ../../mod/admin.php:640
#: ../../mod/admin.php:184 ../../mod/admin.php:670
msgid "Soapbox Account"
msgstr ""
#: ../../mod/admin.php:185 ../../mod/admin.php:641
#: ../../mod/admin.php:185 ../../mod/admin.php:671
msgid "Community/Celebrity Account"
msgstr ""
#: ../../mod/admin.php:186 ../../mod/admin.php:642
#: ../../mod/admin.php:186 ../../mod/admin.php:672
msgid "Automatic Friend Account"
msgstr ""
@ -3245,9 +3517,9 @@ msgstr ""
msgid "Message queues"
msgstr ""
#: ../../mod/admin.php:212 ../../mod/admin.php:420 ../../mod/admin.php:656
#: ../../mod/admin.php:750 ../../mod/admin.php:792 ../../mod/admin.php:955
#: ../../mod/admin.php:991 ../../mod/admin.php:1078
#: ../../mod/admin.php:212 ../../mod/admin.php:441 ../../mod/admin.php:687
#: ../../mod/admin.php:782 ../../mod/admin.php:824 ../../mod/admin.php:987
#: ../../mod/admin.php:1023 ../../mod/admin.php:1110
msgid "Administration"
msgstr ""
@ -3271,560 +3543,611 @@ msgstr ""
msgid "Active plugins"
msgstr ""
#: ../../mod/admin.php:359
#: ../../mod/admin.php:373
msgid "Site settings updated."
msgstr ""
#: ../../mod/admin.php:407
#: ../../mod/admin.php:428
msgid "Closed"
msgstr ""
#: ../../mod/admin.php:408
#: ../../mod/admin.php:429
msgid "Requires approval"
msgstr ""
#: ../../mod/admin.php:409
#: ../../mod/admin.php:430
msgid "Open"
msgstr ""
#: ../../mod/admin.php:413
#: ../../mod/admin.php:434
msgid "No SSL policy, links will track page SSL state"
msgstr ""
#: ../../mod/admin.php:414
#: ../../mod/admin.php:435
msgid "Force all links to use SSL"
msgstr ""
#: ../../mod/admin.php:415
#: ../../mod/admin.php:436
msgid "Self-signed certificate, use SSL for local links only (discouraged)"
msgstr ""
#: ../../mod/admin.php:424
#: ../../mod/admin.php:445
msgid "File upload"
msgstr ""
#: ../../mod/admin.php:425
#: ../../mod/admin.php:446
msgid "Policies"
msgstr ""
#: ../../mod/admin.php:426
#: ../../mod/admin.php:447
msgid "Advanced"
msgstr ""
#: ../../mod/admin.php:430 ../../addon/statusnet/statusnet.php:558
#: ../../mod/admin.php:451 ../../addon/statusnet/statusnet.php:567
#: ../../addon.old/statusnet/statusnet.php:567
msgid "Site name"
msgstr ""
#: ../../mod/admin.php:431
#: ../../mod/admin.php:452
msgid "Banner/Logo"
msgstr ""
#: ../../mod/admin.php:432
#: ../../mod/admin.php:453
msgid "System language"
msgstr ""
#: ../../mod/admin.php:433
#: ../../mod/admin.php:454
msgid "System theme"
msgstr ""
#: ../../mod/admin.php:433
#: ../../mod/admin.php:454
msgid ""
"Default system theme - may be over-ridden by user profiles - <a href='#' "
"id='cnftheme'>change theme settings</a>"
msgstr ""
#: ../../mod/admin.php:434
#: ../../mod/admin.php:455
msgid "Mobile system theme"
msgstr ""
#: ../../mod/admin.php:455
msgid "Theme for mobile devices"
msgstr ""
#: ../../mod/admin.php:456
msgid "SSL link policy"
msgstr ""
#: ../../mod/admin.php:434
#: ../../mod/admin.php:456
msgid "Determines whether generated links should be forced to use SSL"
msgstr ""
#: ../../mod/admin.php:435
#: ../../mod/admin.php:457
msgid "Maximum image size"
msgstr ""
#: ../../mod/admin.php:435
#: ../../mod/admin.php:457
msgid ""
"Maximum size in bytes of uploaded images. Default is 0, which means no "
"limits."
msgstr ""
#: ../../mod/admin.php:437
#: ../../mod/admin.php:458
msgid "Maximum image length"
msgstr ""
#: ../../mod/admin.php:458
msgid ""
"Maximum length in pixels of the longest side of uploaded images. Default is -"
"1, which means no limits."
msgstr ""
#: ../../mod/admin.php:459
msgid "JPEG image quality"
msgstr ""
#: ../../mod/admin.php:459
msgid ""
"Uploaded JPEGS will be saved at this quality setting [0-100]. Default is "
"100, which is full quality."
msgstr ""
#: ../../mod/admin.php:461
msgid "Register policy"
msgstr ""
#: ../../mod/admin.php:438
#: ../../mod/admin.php:462
msgid "Register text"
msgstr ""
#: ../../mod/admin.php:438
#: ../../mod/admin.php:462
msgid "Will be displayed prominently on the registration page."
msgstr ""
#: ../../mod/admin.php:439
#: ../../mod/admin.php:463
msgid "Accounts abandoned after x days"
msgstr ""
#: ../../mod/admin.php:439
#: ../../mod/admin.php:463
msgid ""
"Will not waste system resources polling external sites for abandonded "
"accounts. Enter 0 for no time limit."
msgstr ""
#: ../../mod/admin.php:440
#: ../../mod/admin.php:464
msgid "Allowed friend domains"
msgstr ""
#: ../../mod/admin.php:440
#: ../../mod/admin.php:464
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:441
#: ../../mod/admin.php:465
msgid "Allowed email domains"
msgstr ""
#: ../../mod/admin.php:441
#: ../../mod/admin.php:465
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:442
#: ../../mod/admin.php:466
msgid "Block public"
msgstr ""
#: ../../mod/admin.php:442
#: ../../mod/admin.php:466
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:443
#: ../../mod/admin.php:467
msgid "Force publish"
msgstr ""
#: ../../mod/admin.php:443
#: ../../mod/admin.php:467
msgid ""
"Check to force all profiles on this site to be listed in the site directory."
msgstr ""
#: ../../mod/admin.php:444
#: ../../mod/admin.php:468
msgid "Global directory update URL"
msgstr ""
#: ../../mod/admin.php:444
#: ../../mod/admin.php:468
msgid ""
"URL to update the global directory. If this is not set, the global directory "
"is completely unavailable to the application."
msgstr ""
#: ../../mod/admin.php:446
#: ../../mod/admin.php:469
msgid "Allow threaded items"
msgstr ""
#: ../../mod/admin.php:469
msgid "Allow infinite level threading for items on this site."
msgstr ""
#: ../../mod/admin.php:470
msgid "Private posts by default for new users"
msgstr ""
#: ../../mod/admin.php:470
msgid ""
"Set default post permissions for all new members to the default privacy "
"group rather than public."
msgstr ""
#: ../../mod/admin.php:472
msgid "Block multiple registrations"
msgstr ""
#: ../../mod/admin.php:446
#: ../../mod/admin.php:472
msgid "Disallow users to register additional accounts for use as pages."
msgstr ""
#: ../../mod/admin.php:447
#: ../../mod/admin.php:473
msgid "OpenID support"
msgstr ""
#: ../../mod/admin.php:447
#: ../../mod/admin.php:473
msgid "OpenID support for registration and logins."
msgstr ""
#: ../../mod/admin.php:448
#: ../../mod/admin.php:474
msgid "Fullname check"
msgstr ""
#: ../../mod/admin.php:448
#: ../../mod/admin.php:474
msgid ""
"Force users to register with a space between firstname and lastname in Full "
"name, as an antispam measure"
msgstr ""
#: ../../mod/admin.php:449
#: ../../mod/admin.php:475
msgid "UTF-8 Regular expressions"
msgstr ""
#: ../../mod/admin.php:449
#: ../../mod/admin.php:475
msgid "Use PHP UTF8 regular expressions"
msgstr ""
#: ../../mod/admin.php:450
#: ../../mod/admin.php:476
msgid "Show Community Page"
msgstr ""
#: ../../mod/admin.php:450
#: ../../mod/admin.php:476
msgid ""
"Display a Community page showing all recent public postings on this site."
msgstr ""
#: ../../mod/admin.php:451
#: ../../mod/admin.php:477
msgid "Enable OStatus support"
msgstr ""
#: ../../mod/admin.php:451
#: ../../mod/admin.php:477
msgid ""
"Provide built-in OStatus (identi.ca, status.net, etc.) compatibility. All "
"communications in OStatus are public, so privacy warnings will be "
"occasionally displayed."
msgstr ""
#: ../../mod/admin.php:452
#: ../../mod/admin.php:478
msgid "Enable Diaspora support"
msgstr ""
#: ../../mod/admin.php:452
#: ../../mod/admin.php:478
msgid "Provide built-in Diaspora network compatibility."
msgstr ""
#: ../../mod/admin.php:453
#: ../../mod/admin.php:479
msgid "Only allow Friendica contacts"
msgstr ""
#: ../../mod/admin.php:453
#: ../../mod/admin.php:479
msgid ""
"All contacts must use Friendica protocols. All other built-in communication "
"protocols disabled."
msgstr ""
#: ../../mod/admin.php:454
#: ../../mod/admin.php:480
msgid "Verify SSL"
msgstr ""
#: ../../mod/admin.php:454
#: ../../mod/admin.php:480
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:455
#: ../../mod/admin.php:481
msgid "Proxy user"
msgstr ""
#: ../../mod/admin.php:456
#: ../../mod/admin.php:482
msgid "Proxy URL"
msgstr ""
#: ../../mod/admin.php:457
#: ../../mod/admin.php:483
msgid "Network timeout"
msgstr ""
#: ../../mod/admin.php:457
#: ../../mod/admin.php:483
msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
msgstr ""
#: ../../mod/admin.php:458
#: ../../mod/admin.php:484
msgid "Delivery interval"
msgstr ""
#: ../../mod/admin.php:458
#: ../../mod/admin.php:484
msgid ""
"Delay background delivery processes by this many seconds to reduce system "
"load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 "
"for large dedicated servers."
msgstr ""
#: ../../mod/admin.php:459
#: ../../mod/admin.php:485
msgid "Poll interval"
msgstr ""
#: ../../mod/admin.php:459
#: ../../mod/admin.php:485
msgid ""
"Delay background polling processes by this many seconds to reduce system "
"load. If 0, use delivery interval."
msgstr ""
#: ../../mod/admin.php:460
#: ../../mod/admin.php:486
msgid "Maximum Load Average"
msgstr ""
#: ../../mod/admin.php:460
#: ../../mod/admin.php:486
msgid ""
"Maximum system load before delivery and poll processes are deferred - "
"default 50."
msgstr ""
#: ../../mod/admin.php:474
#: ../../mod/admin.php:503
msgid "Update has been marked successful"
msgstr ""
#: ../../mod/admin.php:484
#: ../../mod/admin.php:513
#, php-format
msgid "Executing %s failed. Check system logs."
msgstr ""
#: ../../mod/admin.php:487
#: ../../mod/admin.php:516
#, php-format
msgid "Update %s was successfully applied."
msgstr ""
#: ../../mod/admin.php:491
#: ../../mod/admin.php:520
#, php-format
msgid "Update %s did not return a status. Unknown if it succeeded."
msgstr ""
#: ../../mod/admin.php:494
#: ../../mod/admin.php:523
#, php-format
msgid "Update function %s could not be found."
msgstr ""
#: ../../mod/admin.php:509
#: ../../mod/admin.php:538
msgid "No failed updates."
msgstr ""
#: ../../mod/admin.php:513
#: ../../mod/admin.php:542
msgid "Failed Updates"
msgstr ""
#: ../../mod/admin.php:514
#: ../../mod/admin.php:543
msgid ""
"This does not include updates prior to 1139, which did not return a status."
msgstr ""
#: ../../mod/admin.php:515
#: ../../mod/admin.php:544
msgid "Mark success (if update was manually applied)"
msgstr ""
#: ../../mod/admin.php:516
#: ../../mod/admin.php:545
msgid "Attempt to execute this update step automatically"
msgstr ""
#: ../../mod/admin.php:541
#: ../../mod/admin.php:570
#, php-format
msgid "%s user blocked/unblocked"
msgid_plural "%s users blocked/unblocked"
msgstr[0] ""
msgstr[1] ""
#: ../../mod/admin.php:548
#: ../../mod/admin.php:577
#, php-format
msgid "%s user deleted"
msgid_plural "%s users deleted"
msgstr[0] ""
msgstr[1] ""
#: ../../mod/admin.php:587
#: ../../mod/admin.php:616
#, php-format
msgid "User '%s' deleted"
msgstr ""
#: ../../mod/admin.php:595
#: ../../mod/admin.php:624
#, php-format
msgid "User '%s' unblocked"
msgstr ""
#: ../../mod/admin.php:595
#: ../../mod/admin.php:624
#, php-format
msgid "User '%s' blocked"
msgstr ""
#: ../../mod/admin.php:659
#: ../../mod/admin.php:690
msgid "select all"
msgstr ""
#: ../../mod/admin.php:660
#: ../../mod/admin.php:691
msgid "User registrations waiting for confirm"
msgstr ""
#: ../../mod/admin.php:661
#: ../../mod/admin.php:692
msgid "Request date"
msgstr ""
#: ../../mod/admin.php:661 ../../mod/admin.php:670
#: ../../mod/admin.php:692 ../../mod/admin.php:702
#: ../../include/contact_selectors.php:79
msgid "Email"
msgstr ""
#: ../../mod/admin.php:662
#: ../../mod/admin.php:693
msgid "No registrations."
msgstr ""
#: ../../mod/admin.php:664
#: ../../mod/admin.php:695
msgid "Deny"
msgstr ""
#: ../../mod/admin.php:670
#: ../../mod/admin.php:699
msgid "Site admin"
msgstr ""
#: ../../mod/admin.php:702
msgid "Register date"
msgstr ""
#: ../../mod/admin.php:670
#: ../../mod/admin.php:702
msgid "Last login"
msgstr ""
#: ../../mod/admin.php:670
#: ../../mod/admin.php:702
msgid "Last item"
msgstr ""
#: ../../mod/admin.php:670
#: ../../mod/admin.php:702
msgid "Account"
msgstr ""
#: ../../mod/admin.php:672
#: ../../mod/admin.php:704
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:673
#: ../../mod/admin.php:705
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:714
#: ../../mod/admin.php:746
#, php-format
msgid "Plugin %s disabled."
msgstr ""
#: ../../mod/admin.php:718
#: ../../mod/admin.php:750
#, php-format
msgid "Plugin %s enabled."
msgstr ""
#: ../../mod/admin.php:728 ../../mod/admin.php:926
#: ../../mod/admin.php:760 ../../mod/admin.php:958
msgid "Disable"
msgstr ""
#: ../../mod/admin.php:730 ../../mod/admin.php:928
#: ../../mod/admin.php:762 ../../mod/admin.php:960
msgid "Enable"
msgstr ""
#: ../../mod/admin.php:752 ../../mod/admin.php:957
#: ../../mod/admin.php:784 ../../mod/admin.php:989
msgid "Toggle"
msgstr ""
#: ../../mod/admin.php:760 ../../mod/admin.php:967
#: ../../mod/admin.php:792 ../../mod/admin.php:999
msgid "Author: "
msgstr ""
#: ../../mod/admin.php:761 ../../mod/admin.php:968
#: ../../mod/admin.php:793 ../../mod/admin.php:1000
msgid "Maintainer: "
msgstr ""
#: ../../mod/admin.php:890
#: ../../mod/admin.php:922
msgid "No themes found."
msgstr ""
#: ../../mod/admin.php:949
#: ../../mod/admin.php:981
msgid "Screenshot"
msgstr ""
#: ../../mod/admin.php:997
#: ../../mod/admin.php:1029
msgid "[Experimental]"
msgstr ""
#: ../../mod/admin.php:998
#: ../../mod/admin.php:1030
msgid "[Unsupported]"
msgstr ""
#: ../../mod/admin.php:1025
#: ../../mod/admin.php:1057
msgid "Log settings updated."
msgstr ""
#: ../../mod/admin.php:1081
#: ../../mod/admin.php:1113
msgid "Clear"
msgstr ""
#: ../../mod/admin.php:1087
#: ../../mod/admin.php:1119
msgid "Debugging"
msgstr ""
#: ../../mod/admin.php:1088
#: ../../mod/admin.php:1120
msgid "Log file"
msgstr ""
#: ../../mod/admin.php:1088
#: ../../mod/admin.php:1120
msgid ""
"Must be writable by web server. Relative to your Friendica top-level "
"directory."
msgstr ""
#: ../../mod/admin.php:1089
#: ../../mod/admin.php:1121
msgid "Log level"
msgstr ""
#: ../../mod/admin.php:1139
#: ../../mod/admin.php:1171
msgid "Close"
msgstr ""
#: ../../mod/admin.php:1145
#: ../../mod/admin.php:1177
msgid "FTP Host"
msgstr ""
#: ../../mod/admin.php:1146
#: ../../mod/admin.php:1178
msgid "FTP Path"
msgstr ""
#: ../../mod/admin.php:1147
#: ../../mod/admin.php:1179
msgid "FTP User"
msgstr ""
#: ../../mod/admin.php:1148
#: ../../mod/admin.php:1180
msgid "FTP Password"
msgstr ""
#: ../../mod/profile.php:21 ../../boot.php:1029
#: ../../mod/profile.php:21 ../../boot.php:1085
msgid "Requested profile is not available."
msgstr ""
#: ../../mod/profile.php:141 ../../mod/display.php:75
#: ../../mod/profile.php:155 ../../mod/display.php:87
msgid "Access to this profile has been restricted."
msgstr ""
#: ../../mod/profile.php:166
#: ../../mod/profile.php:180
msgid "Tips for New Members"
msgstr ""
#: ../../mod/ping.php:185
#: ../../mod/ping.php:238
msgid "{0} wants to be your friend"
msgstr ""
#: ../../mod/ping.php:190
#: ../../mod/ping.php:243
msgid "{0} sent you a message"
msgstr ""
#: ../../mod/ping.php:195
#: ../../mod/ping.php:248
msgid "{0} requested registration"
msgstr ""
#: ../../mod/ping.php:201
#: ../../mod/ping.php:254
#, php-format
msgid "{0} commented %s's post"
msgstr ""
#: ../../mod/ping.php:206
#: ../../mod/ping.php:259
#, php-format
msgid "{0} liked %s's post"
msgstr ""
#: ../../mod/ping.php:211
#: ../../mod/ping.php:264
#, php-format
msgid "{0} disliked %s's post"
msgstr ""
#: ../../mod/ping.php:216
#: ../../mod/ping.php:269
#, php-format
msgid "{0} is now friends with %s"
msgstr ""
#: ../../mod/ping.php:221
#: ../../mod/ping.php:274
msgid "{0} posted"
msgstr ""
#: ../../mod/ping.php:226
#: ../../mod/ping.php:279
#, php-format
msgid "{0} tagged %s's post with #%s"
msgstr ""
#: ../../mod/ping.php:232
#: ../../mod/ping.php:285
msgid "{0} mentioned you in a post"
msgstr ""
@ -3841,8 +4164,8 @@ msgid ""
"Account not found and OpenID registration is not permitted on this site."
msgstr ""
#: ../../mod/openid.php:93 ../../include/auth.php:99
#: ../../include/auth.php:162
#: ../../mod/openid.php:93 ../../include/auth.php:98
#: ../../include/auth.php:161
msgid "Login failed."
msgstr ""
@ -3858,11 +4181,16 @@ msgstr ""
msgid "No contacts in common."
msgstr ""
#: ../../mod/share.php:28 ../../include/bb2diaspora.php:226
#: ../../mod/subthread.php:103
#, php-format
msgid "%1$s is following %2$s's %3$s"
msgstr ""
#: ../../mod/share.php:28
msgid "link"
msgstr ""
#: ../../mod/display.php:135
#: ../../mod/display.php:162
msgid "Item has been removed."
msgstr ""
@ -3874,13 +4202,13 @@ msgstr ""
msgid "No installed applications."
msgstr ""
#: ../../mod/search.php:83 ../../include/text.php:649
#: ../../include/text.php:650 ../../include/nav.php:91
#: ../../mod/search.php:96 ../../include/text.php:678
#: ../../include/text.php:679 ../../include/nav.php:91
msgid "Search"
msgstr ""
#: ../../mod/profiles.php:21 ../../mod/profiles.php:410
#: ../../mod/profiles.php:524 ../../mod/dfrn_confirm.php:62
#: ../../mod/profiles.php:21 ../../mod/profiles.php:434
#: ../../mod/profiles.php:548 ../../mod/dfrn_confirm.php:62
msgid "Profile not found."
msgstr ""
@ -3888,305 +4216,307 @@ msgstr ""
msgid "Profile Name is required."
msgstr ""
#: ../../mod/profiles.php:155
#: ../../mod/profiles.php:171
msgid "Marital Status"
msgstr ""
#: ../../mod/profiles.php:159
#: ../../mod/profiles.php:175
msgid "Romantic Partner"
msgstr ""
#: ../../mod/profiles.php:163
#: ../../mod/profiles.php:179
msgid "Likes"
msgstr ""
#: ../../mod/profiles.php:167
#: ../../mod/profiles.php:183
msgid "Dislikes"
msgstr ""
#: ../../mod/profiles.php:171
#: ../../mod/profiles.php:187
msgid "Work/Employment"
msgstr ""
#: ../../mod/profiles.php:174
#: ../../mod/profiles.php:190
msgid "Religion"
msgstr ""
#: ../../mod/profiles.php:178
#: ../../mod/profiles.php:194
msgid "Political Views"
msgstr ""
#: ../../mod/profiles.php:182
#: ../../mod/profiles.php:198
msgid "Gender"
msgstr ""
#: ../../mod/profiles.php:186
#: ../../mod/profiles.php:202
msgid "Sexual Preference"
msgstr ""
#: ../../mod/profiles.php:190
#: ../../mod/profiles.php:206
msgid "Homepage"
msgstr ""
#: ../../mod/profiles.php:194
#: ../../mod/profiles.php:210
msgid "Interests"
msgstr ""
#: ../../mod/profiles.php:198
#: ../../mod/profiles.php:214
msgid "Address"
msgstr ""
#: ../../mod/profiles.php:205 ../../addon/dav/layout.fnk.php:310
#: ../../mod/profiles.php:221 ../../addon/dav/common/wdcal_edit.inc.php:183
#: ../../addon.old/dav/common/wdcal_edit.inc.php:183
msgid "Location"
msgstr ""
#: ../../mod/profiles.php:288
#: ../../mod/profiles.php:304
msgid "Profile updated."
msgstr ""
#: ../../mod/profiles.php:355
#: ../../mod/profiles.php:371
msgid " and "
msgstr ""
#: ../../mod/profiles.php:363
#: ../../mod/profiles.php:379
msgid "public profile"
msgstr ""
#: ../../mod/profiles.php:366
#: ../../mod/profiles.php:382
#, php-format
msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
msgstr ""
#: ../../mod/profiles.php:367
#: ../../mod/profiles.php:383
#, php-format
msgid " - Visit %1$s's %2$s"
msgstr ""
#: ../../mod/profiles.php:370
#: ../../mod/profiles.php:386
#, php-format
msgid "%1$s has an updated %2$s, changing %3$s."
msgstr ""
#: ../../mod/profiles.php:429
#: ../../mod/profiles.php:453
msgid "Profile deleted."
msgstr ""
#: ../../mod/profiles.php:447 ../../mod/profiles.php:481
#: ../../mod/profiles.php:471 ../../mod/profiles.php:505
msgid "Profile-"
msgstr ""
#: ../../mod/profiles.php:466 ../../mod/profiles.php:508
#: ../../mod/profiles.php:490 ../../mod/profiles.php:532
msgid "New profile created."
msgstr ""
#: ../../mod/profiles.php:487
#: ../../mod/profiles.php:511
msgid "Profile unavailable to clone."
msgstr ""
#: ../../mod/profiles.php:545
#: ../../mod/profiles.php:573
msgid "Hide your contact/friend list from viewers of this profile?"
msgstr ""
#: ../../mod/profiles.php:568
#: ../../mod/profiles.php:593
msgid "Edit Profile Details"
msgstr ""
#: ../../mod/profiles.php:570
#: ../../mod/profiles.php:595
msgid "View this profile"
msgstr ""
#: ../../mod/profiles.php:571
#: ../../mod/profiles.php:596
msgid "Create a new profile using these settings"
msgstr ""
#: ../../mod/profiles.php:572
#: ../../mod/profiles.php:597
msgid "Clone this profile"
msgstr ""
#: ../../mod/profiles.php:573
#: ../../mod/profiles.php:598
msgid "Delete this profile"
msgstr ""
#: ../../mod/profiles.php:574
#: ../../mod/profiles.php:599
msgid "Profile Name:"
msgstr ""
#: ../../mod/profiles.php:575
#: ../../mod/profiles.php:600
msgid "Your Full Name:"
msgstr ""
#: ../../mod/profiles.php:576
#: ../../mod/profiles.php:601
msgid "Title/Description:"
msgstr ""
#: ../../mod/profiles.php:577
#: ../../mod/profiles.php:602
msgid "Your Gender:"
msgstr ""
#: ../../mod/profiles.php:578
#: ../../mod/profiles.php:603
#, php-format
msgid "Birthday (%s):"
msgstr ""
#: ../../mod/profiles.php:579
#: ../../mod/profiles.php:604
msgid "Street Address:"
msgstr ""
#: ../../mod/profiles.php:580
#: ../../mod/profiles.php:605
msgid "Locality/City:"
msgstr ""
#: ../../mod/profiles.php:581
#: ../../mod/profiles.php:606
msgid "Postal/Zip Code:"
msgstr ""
#: ../../mod/profiles.php:582
#: ../../mod/profiles.php:607
msgid "Country:"
msgstr ""
#: ../../mod/profiles.php:583
#: ../../mod/profiles.php:608
msgid "Region/State:"
msgstr ""
#: ../../mod/profiles.php:584
#: ../../mod/profiles.php:609
msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
msgstr ""
#: ../../mod/profiles.php:585
#: ../../mod/profiles.php:610
msgid "Who: (if applicable)"
msgstr ""
#: ../../mod/profiles.php:586
#: ../../mod/profiles.php:611
msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
msgstr ""
#: ../../mod/profiles.php:587
#: ../../mod/profiles.php:612
msgid "Since [date]:"
msgstr ""
#: ../../mod/profiles.php:588 ../../include/profile_advanced.php:46
#: ../../mod/profiles.php:613 ../../include/profile_advanced.php:46
msgid "Sexual Preference:"
msgstr ""
#: ../../mod/profiles.php:589
#: ../../mod/profiles.php:614
msgid "Homepage URL:"
msgstr ""
#: ../../mod/profiles.php:590 ../../include/profile_advanced.php:50
#: ../../mod/profiles.php:615 ../../include/profile_advanced.php:50
msgid "Hometown:"
msgstr ""
#: ../../mod/profiles.php:591 ../../include/profile_advanced.php:54
#: ../../mod/profiles.php:616 ../../include/profile_advanced.php:54
msgid "Political Views:"
msgstr ""
#: ../../mod/profiles.php:592
#: ../../mod/profiles.php:617
msgid "Religious Views:"
msgstr ""
#: ../../mod/profiles.php:593
#: ../../mod/profiles.php:618
msgid "Public Keywords:"
msgstr ""
#: ../../mod/profiles.php:594
#: ../../mod/profiles.php:619
msgid "Private Keywords:"
msgstr ""
#: ../../mod/profiles.php:595 ../../include/profile_advanced.php:62
#: ../../mod/profiles.php:620 ../../include/profile_advanced.php:62
msgid "Likes:"
msgstr ""
#: ../../mod/profiles.php:596 ../../include/profile_advanced.php:64
#: ../../mod/profiles.php:621 ../../include/profile_advanced.php:64
msgid "Dislikes:"
msgstr ""
#: ../../mod/profiles.php:597
#: ../../mod/profiles.php:622
msgid "Example: fishing photography software"
msgstr ""
#: ../../mod/profiles.php:598
#: ../../mod/profiles.php:623
msgid "(Used for suggesting potential friends, can be seen by others)"
msgstr ""
#: ../../mod/profiles.php:599
#: ../../mod/profiles.php:624
msgid "(Used for searching profiles, never shown to others)"
msgstr ""
#: ../../mod/profiles.php:600
#: ../../mod/profiles.php:625
msgid "Tell us about yourself..."
msgstr ""
#: ../../mod/profiles.php:601
#: ../../mod/profiles.php:626
msgid "Hobbies/Interests"
msgstr ""
#: ../../mod/profiles.php:602
#: ../../mod/profiles.php:627
msgid "Contact information and Social Networks"
msgstr ""
#: ../../mod/profiles.php:603
#: ../../mod/profiles.php:628
msgid "Musical interests"
msgstr ""
#: ../../mod/profiles.php:604
#: ../../mod/profiles.php:629
msgid "Books, literature"
msgstr ""
#: ../../mod/profiles.php:605
#: ../../mod/profiles.php:630
msgid "Television"
msgstr ""
#: ../../mod/profiles.php:606
#: ../../mod/profiles.php:631
msgid "Film/dance/culture/entertainment"
msgstr ""
#: ../../mod/profiles.php:607
#: ../../mod/profiles.php:632
msgid "Love/romance"
msgstr ""
#: ../../mod/profiles.php:608
#: ../../mod/profiles.php:633
msgid "Work/employment"
msgstr ""
#: ../../mod/profiles.php:609
#: ../../mod/profiles.php:634
msgid "School/education"
msgstr ""
#: ../../mod/profiles.php:614
#: ../../mod/profiles.php:639
msgid ""
"This is your <strong>public</strong> profile.<br />It <strong>may</strong> "
"be visible to anybody using the internet."
msgstr ""
#: ../../mod/profiles.php:624 ../../mod/directory.php:109
#: ../../mod/profiles.php:649 ../../mod/directory.php:111
msgid "Age: "
msgstr ""
#: ../../mod/profiles.php:663
#: ../../mod/profiles.php:688
msgid "Edit/Manage Profiles"
msgstr ""
#: ../../mod/profiles.php:664 ../../boot.php:1138
#: ../../mod/profiles.php:689 ../../boot.php:1203
msgid "Change profile photo"
msgstr ""
#: ../../mod/profiles.php:665 ../../boot.php:1139
#: ../../mod/profiles.php:690 ../../boot.php:1204
msgid "Create New Profile"
msgstr ""
#: ../../mod/profiles.php:676 ../../boot.php:1149
#: ../../mod/profiles.php:701 ../../boot.php:1214
msgid "Profile Image"
msgstr ""
#: ../../mod/profiles.php:678 ../../boot.php:1152
#: ../../mod/profiles.php:703 ../../boot.php:1217
msgid "visible to everybody"
msgstr ""
#: ../../mod/profiles.php:679 ../../boot.php:1153
#: ../../mod/profiles.php:704 ../../boot.php:1218
msgid "Edit visibility"
msgstr ""
#: ../../mod/filer.php:29 ../../include/conversation.php:1013
#: ../../mod/filer.php:29 ../../include/conversation.php:902
#: ../../include/conversation.php:920
msgid "Save to Folder:"
msgstr ""
@ -4194,7 +4524,7 @@ msgstr ""
msgid "- select -"
msgstr ""
#: ../../mod/tagger.php:103 ../../include/conversation.php:200
#: ../../mod/tagger.php:95 ../../include/conversation.php:265
#, php-format
msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr ""
@ -4238,35 +4568,47 @@ msgstr ""
msgid "Source (bbcode) text:"
msgstr ""
#: ../../mod/babel.php:25
#: ../../mod/babel.php:23
msgid "Source (Diaspora) text to convert to BBcode:"
msgstr ""
#: ../../mod/babel.php:31
msgid "Source input: "
msgstr ""
#: ../../mod/babel.php:29
#: ../../mod/babel.php:35
msgid "bb2html: "
msgstr ""
#: ../../mod/babel.php:33
#: ../../mod/babel.php:39
msgid "bb2html2bb: "
msgstr ""
#: ../../mod/babel.php:37
#: ../../mod/babel.php:43
msgid "bb2md: "
msgstr ""
#: ../../mod/babel.php:41
#: ../../mod/babel.php:47
msgid "bb2md2html: "
msgstr ""
#: ../../mod/babel.php:45
#: ../../mod/babel.php:51
msgid "bb2dia2bb: "
msgstr ""
#: ../../mod/babel.php:49
#: ../../mod/babel.php:55
msgid "bb2md2html2bb: "
msgstr ""
#: ../../mod/suggest.php:38 ../../view/theme/diabook/theme.php:626
#: ../../mod/babel.php:65
msgid "Source input (Diaspora format): "
msgstr ""
#: ../../mod/babel.php:70
msgid "diaspora2bb: "
msgstr ""
#: ../../mod/suggest.php:38 ../../view/theme/diabook/theme.php:513
#: ../../include/contact_widgets.php:34
msgid "Friend Suggestions"
msgstr ""
@ -4281,42 +4623,42 @@ msgstr ""
msgid "Ignore/Hide"
msgstr ""
#: ../../mod/directory.php:47 ../../view/theme/diabook/theme.php:624
#: ../../mod/directory.php:49 ../../view/theme/diabook/theme.php:511
msgid "Global Directory"
msgstr ""
#: ../../mod/directory.php:55
#: ../../mod/directory.php:57
msgid "Find on this site"
msgstr ""
#: ../../mod/directory.php:58
#: ../../mod/directory.php:60
msgid "Site Directory"
msgstr ""
#: ../../mod/directory.php:112
#: ../../mod/directory.php:114
msgid "Gender: "
msgstr ""
#: ../../mod/directory.php:134 ../../include/profile_advanced.php:17
#: ../../boot.php:1174
#: ../../mod/directory.php:136 ../../include/profile_advanced.php:17
#: ../../boot.php:1239
msgid "Gender:"
msgstr ""
#: ../../mod/directory.php:136 ../../include/profile_advanced.php:37
#: ../../boot.php:1177
#: ../../mod/directory.php:138 ../../include/profile_advanced.php:37
#: ../../boot.php:1242
msgid "Status:"
msgstr ""
#: ../../mod/directory.php:138 ../../include/profile_advanced.php:48
#: ../../boot.php:1179
#: ../../mod/directory.php:140 ../../include/profile_advanced.php:48
#: ../../boot.php:1244
msgid "Homepage:"
msgstr ""
#: ../../mod/directory.php:140 ../../include/profile_advanced.php:58
#: ../../mod/directory.php:142 ../../include/profile_advanced.php:58
msgid "About:"
msgstr ""
#: ../../mod/directory.php:178
#: ../../mod/directory.php:180
msgid "No entries (some entries may be hidden)."
msgstr ""
@ -4439,8 +4781,8 @@ msgstr ""
msgid "Unable to set contact photo."
msgstr ""
#: ../../mod/dfrn_confirm.php:477 ../../include/diaspora.php:577
#: ../../include/conversation.php:163
#: ../../mod/dfrn_confirm.php:477 ../../include/diaspora.php:619
#: ../../include/conversation.php:171
#, php-format
msgid "%1$s is now friends with %2$s"
msgstr ""
@ -4492,98 +4834,122 @@ msgid "%1$s has joined %2$s"
msgstr ""
#: ../../addon/fromgplus/fromgplus.php:29
#: ../../addon.old/fromgplus/fromgplus.php:29
msgid "Google+ Import Settings"
msgstr ""
#: ../../addon/fromgplus/fromgplus.php:32
#: ../../addon.old/fromgplus/fromgplus.php:32
msgid "Enable Google+ Import"
msgstr ""
#: ../../addon/fromgplus/fromgplus.php:35
#: ../../addon.old/fromgplus/fromgplus.php:35
msgid "Google Account ID"
msgstr ""
#: ../../addon/fromgplus/fromgplus.php:55
#: ../../addon.old/fromgplus/fromgplus.php:55
msgid "Google+ Import Settings saved."
msgstr ""
#: ../../addon/facebook/facebook.php:523
#: ../../addon.old/facebook/facebook.php:523
msgid "Facebook disabled"
msgstr ""
#: ../../addon/facebook/facebook.php:528
#: ../../addon.old/facebook/facebook.php:528
msgid "Updating contacts"
msgstr ""
#: ../../addon/facebook/facebook.php:551
#: ../../addon/facebook/facebook.php:551 ../../addon/fbpost/fbpost.php:192
#: ../../addon.old/facebook/facebook.php:551
#: ../../addon.old/fbpost/fbpost.php:192
msgid "Facebook API key is missing."
msgstr ""
#: ../../addon/facebook/facebook.php:558
#: ../../addon.old/facebook/facebook.php:558
msgid "Facebook Connect"
msgstr ""
#: ../../addon/facebook/facebook.php:564
#: ../../addon.old/facebook/facebook.php:564
msgid "Install Facebook connector for this account."
msgstr ""
#: ../../addon/facebook/facebook.php:571
#: ../../addon.old/facebook/facebook.php:571
msgid "Remove Facebook connector"
msgstr ""
#: ../../addon/facebook/facebook.php:576
#: ../../addon/facebook/facebook.php:576 ../../addon/fbpost/fbpost.php:217
#: ../../addon.old/facebook/facebook.php:576
#: ../../addon.old/fbpost/fbpost.php:217
msgid ""
"Re-authenticate [This is necessary whenever your Facebook password is "
"changed.]"
msgstr ""
#: ../../addon/facebook/facebook.php:583
#: ../../addon/facebook/facebook.php:583 ../../addon/fbpost/fbpost.php:224
#: ../../addon.old/facebook/facebook.php:583
#: ../../addon.old/fbpost/fbpost.php:224
msgid "Post to Facebook by default"
msgstr ""
#: ../../addon/facebook/facebook.php:589
#: ../../addon.old/facebook/facebook.php:589
msgid ""
"Facebook friend linking has been disabled on this site. The following "
"settings will have no effect."
msgstr ""
#: ../../addon/facebook/facebook.php:593
#: ../../addon.old/facebook/facebook.php:593
msgid ""
"Facebook friend linking has been disabled on this site. If you disable it, "
"you will be unable to re-enable it."
msgstr ""
#: ../../addon/facebook/facebook.php:596
#: ../../addon.old/facebook/facebook.php:596
msgid "Link all your Facebook friends and conversations on this website"
msgstr ""
#: ../../addon/facebook/facebook.php:598
#: ../../addon.old/facebook/facebook.php:598
msgid ""
"Facebook conversations consist of your <em>profile wall</em> and your friend "
"<em>stream</em>."
msgstr ""
#: ../../addon/facebook/facebook.php:599
#: ../../addon.old/facebook/facebook.php:599
msgid "On this website, your Facebook friend stream is only visible to you."
msgstr ""
#: ../../addon/facebook/facebook.php:600
#: ../../addon.old/facebook/facebook.php:600
msgid ""
"The following settings determine the privacy of your Facebook profile wall "
"on this website."
msgstr ""
#: ../../addon/facebook/facebook.php:604
#: ../../addon.old/facebook/facebook.php:604
msgid ""
"On this website your Facebook profile wall conversations will only be "
"visible to you"
msgstr ""
#: ../../addon/facebook/facebook.php:609
#: ../../addon.old/facebook/facebook.php:609
msgid "Do not import your Facebook profile wall conversations"
msgstr ""
#: ../../addon/facebook/facebook.php:611
#: ../../addon.old/facebook/facebook.php:611
msgid ""
"If you choose to link conversations and leave both of these boxes unchecked, "
"your Facebook profile wall will be merged with your profile wall on this "
@ -4592,27 +4958,29 @@ msgid ""
msgstr ""
#: ../../addon/facebook/facebook.php:616
#: ../../addon.old/facebook/facebook.php:616
msgid "Comma separated applications to ignore"
msgstr ""
#: ../../addon/facebook/facebook.php:700
#: ../../addon.old/facebook/facebook.php:700
msgid "Problems with Facebook Real-Time Updates"
msgstr ""
#: ../../addon/facebook/facebook.php:728
#: ../../include/contact_selectors.php:81
msgid "Facebook"
msgstr ""
#: ../../addon/facebook/facebook.php:729
#: ../../addon.old/facebook/facebook.php:729
msgid "Facebook Connector Settings"
msgstr ""
#: ../../addon/facebook/facebook.php:744
#: ../../addon/facebook/facebook.php:744 ../../addon/fbpost/fbpost.php:255
#: ../../addon.old/facebook/facebook.php:744
#: ../../addon.old/fbpost/fbpost.php:255
msgid "Facebook API Key"
msgstr ""
#: ../../addon/facebook/facebook.php:754
#: ../../addon/facebook/facebook.php:754 ../../addon/fbpost/fbpost.php:262
#: ../../addon.old/facebook/facebook.php:754
#: ../../addon.old/fbpost/fbpost.php:262
msgid ""
"Error: it appears that you have specified the App-ID and -Secret in your ."
"htconfig.php file. As long as they are specified there, they cannot be set "
@ -4620,91 +4988,123 @@ msgid ""
msgstr ""
#: ../../addon/facebook/facebook.php:759
#: ../../addon.old/facebook/facebook.php:759
msgid ""
"Error: the given API Key seems to be incorrect (the application access token "
"could not be retrieved)."
msgstr ""
#: ../../addon/facebook/facebook.php:761
#: ../../addon.old/facebook/facebook.php:761
msgid "The given API Key seems to work correctly."
msgstr ""
#: ../../addon/facebook/facebook.php:763
#: ../../addon.old/facebook/facebook.php:763
msgid ""
"The correctness of the API Key could not be detected. Something strange's "
"going on."
msgstr ""
#: ../../addon/facebook/facebook.php:766
#: ../../addon/facebook/facebook.php:766 ../../addon/fbpost/fbpost.php:264
#: ../../addon.old/facebook/facebook.php:766
#: ../../addon.old/fbpost/fbpost.php:264
msgid "App-ID / API-Key"
msgstr ""
#: ../../addon/facebook/facebook.php:767
#: ../../addon/facebook/facebook.php:767 ../../addon/fbpost/fbpost.php:265
#: ../../addon.old/facebook/facebook.php:767
#: ../../addon.old/fbpost/fbpost.php:265
msgid "Application secret"
msgstr ""
#: ../../addon/facebook/facebook.php:768
#: ../../addon.old/facebook/facebook.php:768
#, php-format
msgid "Polling Interval in minutes (minimum %1$s minutes)"
msgstr ""
#: ../../addon/facebook/facebook.php:769
#: ../../addon.old/facebook/facebook.php:769
msgid ""
"Synchronize comments (no comments on Facebook are missed, at the cost of "
"increased system load)"
msgstr ""
#: ../../addon/facebook/facebook.php:773
#: ../../addon.old/facebook/facebook.php:773
msgid "Real-Time Updates"
msgstr ""
#: ../../addon/facebook/facebook.php:777
#: ../../addon.old/facebook/facebook.php:777
msgid "Real-Time Updates are activated."
msgstr ""
#: ../../addon/facebook/facebook.php:778
#: ../../addon.old/facebook/facebook.php:778
msgid "Deactivate Real-Time Updates"
msgstr ""
#: ../../addon/facebook/facebook.php:780
#: ../../addon.old/facebook/facebook.php:780
msgid "Real-Time Updates not activated."
msgstr ""
#: ../../addon/facebook/facebook.php:780
#: ../../addon.old/facebook/facebook.php:780
msgid "Activate Real-Time Updates"
msgstr ""
#: ../../addon/facebook/facebook.php:799 ../../addon/dav/layout.fnk.php:360
#: ../../addon/facebook/facebook.php:799 ../../addon/fbpost/fbpost.php:282
#: ../../addon/dav/friendica/layout.fnk.php:361
#: ../../addon.old/facebook/facebook.php:799
#: ../../addon.old/fbpost/fbpost.php:282
#: ../../addon.old/dav/friendica/layout.fnk.php:361
msgid "The new values have been saved."
msgstr ""
#: ../../addon/facebook/facebook.php:823
#: ../../addon/facebook/facebook.php:823 ../../addon/fbpost/fbpost.php:301
#: ../../addon.old/facebook/facebook.php:823
#: ../../addon.old/fbpost/fbpost.php:301
msgid "Post to Facebook"
msgstr ""
#: ../../addon/facebook/facebook.php:921
#: ../../addon/facebook/facebook.php:921 ../../addon/fbpost/fbpost.php:399
#: ../../addon.old/facebook/facebook.php:921
#: ../../addon.old/fbpost/fbpost.php:399
msgid ""
"Post to Facebook cancelled because of multi-network access permission "
"conflict."
msgstr ""
#: ../../addon/facebook/facebook.php:1141
#: ../../addon/facebook/facebook.php:1149 ../../addon/fbpost/fbpost.php:610
#: ../../addon.old/facebook/facebook.php:1149
#: ../../addon.old/fbpost/fbpost.php:610
msgid "View on Friendica"
msgstr ""
#: ../../addon/facebook/facebook.php:1174
#: ../../addon/facebook/facebook.php:1182 ../../addon/fbpost/fbpost.php:643
#: ../../addon.old/facebook/facebook.php:1182
#: ../../addon.old/fbpost/fbpost.php:643
msgid "Facebook post failed. Queued for retry."
msgstr ""
#: ../../addon/facebook/facebook.php:1214
#: ../../addon/facebook/facebook.php:1222 ../../addon/fbpost/fbpost.php:683
#: ../../addon.old/facebook/facebook.php:1222
#: ../../addon.old/fbpost/fbpost.php:683
msgid "Your Facebook connection became invalid. Please Re-authenticate."
msgstr ""
#: ../../addon/facebook/facebook.php:1215
#: ../../addon/facebook/facebook.php:1223 ../../addon/fbpost/fbpost.php:684
#: ../../addon.old/facebook/facebook.php:1223
#: ../../addon.old/fbpost/fbpost.php:684
msgid "Facebook connection became invalid"
msgstr ""
#: ../../addon/facebook/facebook.php:1216
#: ../../addon/facebook/facebook.php:1224 ../../addon/fbpost/fbpost.php:685
#: ../../addon.old/facebook/facebook.php:1224
#: ../../addon.old/fbpost/fbpost.php:685
#, php-format
msgid ""
"Hi %1$s,\n"
@ -4715,38 +5115,67 @@ msgid ""
msgstr ""
#: ../../addon/snautofollow/snautofollow.php:32
#: ../../addon.old/snautofollow/snautofollow.php:32
msgid "StatusNet AutoFollow settings updated."
msgstr ""
#: ../../addon/snautofollow/snautofollow.php:56
#: ../../addon.old/snautofollow/snautofollow.php:56
msgid "StatusNet AutoFollow Settings"
msgstr ""
#: ../../addon/snautofollow/snautofollow.php:58
#: ../../addon.old/snautofollow/snautofollow.php:58
msgid "Automatically follow any StatusNet followers/mentioners"
msgstr ""
#: ../../addon/privacy_image_cache/privacy_image_cache.php:184
#: ../../addon/privacy_image_cache/privacy_image_cache.php:260
#: ../../addon.old/privacy_image_cache/privacy_image_cache.php:260
msgid "Lifetime of the cache (in hours)"
msgstr ""
#: ../../addon/privacy_image_cache/privacy_image_cache.php:189
#: ../../addon/privacy_image_cache/privacy_image_cache.php:265
#: ../../addon.old/privacy_image_cache/privacy_image_cache.php:265
msgid "Cache Statistics"
msgstr ""
#: ../../addon/privacy_image_cache/privacy_image_cache.php:192
#: ../../addon/privacy_image_cache/privacy_image_cache.php:268
#: ../../addon.old/privacy_image_cache/privacy_image_cache.php:268
msgid "Number of items"
msgstr ""
#: ../../addon/privacy_image_cache/privacy_image_cache.php:194
#: ../../addon/privacy_image_cache/privacy_image_cache.php:270
#: ../../addon.old/privacy_image_cache/privacy_image_cache.php:270
msgid "Size of the cache"
msgstr ""
#: ../../addon/privacy_image_cache/privacy_image_cache.php:196
#: ../../addon/privacy_image_cache/privacy_image_cache.php:272
#: ../../addon.old/privacy_image_cache/privacy_image_cache.php:272
msgid "Delete the whole cache"
msgstr ""
#: ../../addon/fbpost/fbpost.php:172 ../../addon.old/fbpost/fbpost.php:172
msgid "Facebook Post disabled"
msgstr ""
#: ../../addon/fbpost/fbpost.php:199 ../../addon.old/fbpost/fbpost.php:199
msgid "Facebook Post"
msgstr ""
#: ../../addon/fbpost/fbpost.php:205 ../../addon.old/fbpost/fbpost.php:205
msgid "Install Facebook Post connector for this account."
msgstr ""
#: ../../addon/fbpost/fbpost.php:212 ../../addon.old/fbpost/fbpost.php:212
msgid "Remove Facebook Post connector"
msgstr ""
#: ../../addon/fbpost/fbpost.php:240 ../../addon.old/fbpost/fbpost.php:240
msgid "Facebook Post Settings"
msgstr ""
#: ../../addon/widgets/widget_like.php:58
#: ../../addon.old/widgets/widget_like.php:58
#, php-format
msgid "%d person likes this"
msgid_plural "%d people like this"
@ -4754,6 +5183,7 @@ msgstr[0] ""
msgstr[1] ""
#: ../../addon/widgets/widget_like.php:61
#: ../../addon.old/widgets/widget_like.php:61
#, php-format
msgid "%d person doesn't like this"
msgid_plural "%d people don't like this"
@ -4761,78 +5191,262 @@ msgstr[0] ""
msgstr[1] ""
#: ../../addon/widgets/widget_friendheader.php:40
#: ../../addon.old/widgets/widget_friendheader.php:40
msgid "Get added to this list!"
msgstr ""
#: ../../addon/widgets/widgets.php:56
#: ../../addon/widgets/widgets.php:56 ../../addon.old/widgets/widgets.php:56
msgid "Generate new key"
msgstr ""
#: ../../addon/widgets/widgets.php:59
#: ../../addon/widgets/widgets.php:59 ../../addon.old/widgets/widgets.php:59
msgid "Widgets key"
msgstr ""
#: ../../addon/widgets/widgets.php:61
#: ../../addon/widgets/widgets.php:61 ../../addon.old/widgets/widgets.php:61
msgid "Widgets available"
msgstr ""
#: ../../addon/widgets/widget_friends.php:40
#: ../../addon.old/widgets/widget_friends.php:40
msgid "Connect on Friendica!"
msgstr ""
#: ../../addon/yourls/yourls.php:55
#: ../../addon/morepokes/morepokes.php:19
#: ../../addon.old/morepokes/morepokes.php:19
msgid "bitchslap"
msgstr ""
#: ../../addon/morepokes/morepokes.php:19
#: ../../addon.old/morepokes/morepokes.php:19
msgid "bitchslapped"
msgstr ""
#: ../../addon/morepokes/morepokes.php:20
#: ../../addon.old/morepokes/morepokes.php:20
msgid "shag"
msgstr ""
#: ../../addon/morepokes/morepokes.php:20
#: ../../addon.old/morepokes/morepokes.php:20
msgid "shagged"
msgstr ""
#: ../../addon/morepokes/morepokes.php:21
#: ../../addon.old/morepokes/morepokes.php:21
msgid "do something obscenely biological to"
msgstr ""
#: ../../addon/morepokes/morepokes.php:21
#: ../../addon.old/morepokes/morepokes.php:21
msgid "did something obscenely biological to"
msgstr ""
#: ../../addon/morepokes/morepokes.php:22
#: ../../addon.old/morepokes/morepokes.php:22
msgid "point out the poke feature to"
msgstr ""
#: ../../addon/morepokes/morepokes.php:22
#: ../../addon.old/morepokes/morepokes.php:22
msgid "pointed out the poke feature to"
msgstr ""
#: ../../addon/morepokes/morepokes.php:23
#: ../../addon.old/morepokes/morepokes.php:23
msgid "declare undying love for"
msgstr ""
#: ../../addon/morepokes/morepokes.php:23
#: ../../addon.old/morepokes/morepokes.php:23
msgid "declared undying love for"
msgstr ""
#: ../../addon/morepokes/morepokes.php:24
#: ../../addon.old/morepokes/morepokes.php:24
msgid "patent"
msgstr ""
#: ../../addon/morepokes/morepokes.php:24
#: ../../addon.old/morepokes/morepokes.php:24
msgid "patented"
msgstr ""
#: ../../addon/morepokes/morepokes.php:25
#: ../../addon.old/morepokes/morepokes.php:25
msgid "stroke beard"
msgstr ""
#: ../../addon/morepokes/morepokes.php:25
#: ../../addon.old/morepokes/morepokes.php:25
msgid "stroked their beard at"
msgstr ""
#: ../../addon/morepokes/morepokes.php:26
#: ../../addon.old/morepokes/morepokes.php:26
msgid ""
"bemoan the declining standards of modern secondary and tertiary education to"
msgstr ""
#: ../../addon/morepokes/morepokes.php:26
#: ../../addon.old/morepokes/morepokes.php:26
msgid ""
"bemoans the declining standards of modern secondary and tertiary education to"
msgstr ""
#: ../../addon/morepokes/morepokes.php:27
#: ../../addon.old/morepokes/morepokes.php:27
msgid "hug"
msgstr ""
#: ../../addon/morepokes/morepokes.php:27
#: ../../addon.old/morepokes/morepokes.php:27
msgid "hugged"
msgstr ""
#: ../../addon/morepokes/morepokes.php:28
#: ../../addon.old/morepokes/morepokes.php:28
msgid "kiss"
msgstr ""
#: ../../addon/morepokes/morepokes.php:28
#: ../../addon.old/morepokes/morepokes.php:28
msgid "kissed"
msgstr ""
#: ../../addon/morepokes/morepokes.php:29
#: ../../addon.old/morepokes/morepokes.php:29
msgid "raise eyebrows at"
msgstr ""
#: ../../addon/morepokes/morepokes.php:29
#: ../../addon.old/morepokes/morepokes.php:29
msgid "raised their eyebrows at"
msgstr ""
#: ../../addon/morepokes/morepokes.php:30
#: ../../addon.old/morepokes/morepokes.php:30
msgid "insult"
msgstr ""
#: ../../addon/morepokes/morepokes.php:30
#: ../../addon.old/morepokes/morepokes.php:30
msgid "insulted"
msgstr ""
#: ../../addon/morepokes/morepokes.php:31
#: ../../addon.old/morepokes/morepokes.php:31
msgid "praise"
msgstr ""
#: ../../addon/morepokes/morepokes.php:31
#: ../../addon.old/morepokes/morepokes.php:31
msgid "praised"
msgstr ""
#: ../../addon/morepokes/morepokes.php:32
#: ../../addon.old/morepokes/morepokes.php:32
msgid "be dubious of"
msgstr ""
#: ../../addon/morepokes/morepokes.php:32
#: ../../addon.old/morepokes/morepokes.php:32
msgid "was dubious of"
msgstr ""
#: ../../addon/morepokes/morepokes.php:33
#: ../../addon.old/morepokes/morepokes.php:33
msgid "eat"
msgstr ""
#: ../../addon/morepokes/morepokes.php:33
#: ../../addon.old/morepokes/morepokes.php:33
msgid "ate"
msgstr ""
#: ../../addon/morepokes/morepokes.php:34
#: ../../addon.old/morepokes/morepokes.php:34
msgid "giggle and fawn at"
msgstr ""
#: ../../addon/morepokes/morepokes.php:34
#: ../../addon.old/morepokes/morepokes.php:34
msgid "giggled and fawned at"
msgstr ""
#: ../../addon/morepokes/morepokes.php:35
#: ../../addon.old/morepokes/morepokes.php:35
msgid "doubt"
msgstr ""
#: ../../addon/morepokes/morepokes.php:35
#: ../../addon.old/morepokes/morepokes.php:35
msgid "doubted"
msgstr ""
#: ../../addon/morepokes/morepokes.php:36
#: ../../addon.old/morepokes/morepokes.php:36
msgid "glare"
msgstr ""
#: ../../addon/morepokes/morepokes.php:36
#: ../../addon.old/morepokes/morepokes.php:36
msgid "glared at"
msgstr ""
#: ../../addon/yourls/yourls.php:55 ../../addon.old/yourls/yourls.php:55
msgid "YourLS Settings"
msgstr ""
#: ../../addon/yourls/yourls.php:57
#: ../../addon/yourls/yourls.php:57 ../../addon.old/yourls/yourls.php:57
msgid "URL: http://"
msgstr ""
#: ../../addon/yourls/yourls.php:62
#: ../../addon/yourls/yourls.php:62 ../../addon.old/yourls/yourls.php:62
msgid "Username:"
msgstr ""
#: ../../addon/yourls/yourls.php:67
#: ../../addon/yourls/yourls.php:67 ../../addon.old/yourls/yourls.php:67
msgid "Password:"
msgstr ""
#: ../../addon/yourls/yourls.php:72
#: ../../addon/yourls/yourls.php:72 ../../addon.old/yourls/yourls.php:72
msgid "Use SSL "
msgstr ""
#: ../../addon/yourls/yourls.php:92
#: ../../addon/yourls/yourls.php:92 ../../addon.old/yourls/yourls.php:92
msgid "yourls Settings saved."
msgstr ""
#: ../../addon/ljpost/ljpost.php:39
#: ../../addon/ljpost/ljpost.php:39 ../../addon.old/ljpost/ljpost.php:39
msgid "Post to LiveJournal"
msgstr ""
#: ../../addon/ljpost/ljpost.php:70
#: ../../addon/ljpost/ljpost.php:70 ../../addon.old/ljpost/ljpost.php:70
msgid "LiveJournal Post Settings"
msgstr ""
#: ../../addon/ljpost/ljpost.php:72
#: ../../addon/ljpost/ljpost.php:72 ../../addon.old/ljpost/ljpost.php:72
msgid "Enable LiveJournal Post Plugin"
msgstr ""
#: ../../addon/ljpost/ljpost.php:77
#: ../../addon/ljpost/ljpost.php:77 ../../addon.old/ljpost/ljpost.php:77
msgid "LiveJournal username"
msgstr ""
#: ../../addon/ljpost/ljpost.php:82
#: ../../addon/ljpost/ljpost.php:82 ../../addon.old/ljpost/ljpost.php:82
msgid "LiveJournal password"
msgstr ""
#: ../../addon/ljpost/ljpost.php:87
#: ../../addon/ljpost/ljpost.php:87 ../../addon.old/ljpost/ljpost.php:87
msgid "Post to LiveJournal by default"
msgstr ""
#: ../../addon/nsfw/nsfw.php:47
#: ../../addon/nsfw/nsfw.php:78 ../../addon.old/nsfw/nsfw.php:78
msgid "Not Safe For Work (General Purpose Content Filter) settings"
msgstr ""
#: ../../addon/nsfw/nsfw.php:49
#: ../../addon/nsfw/nsfw.php:80 ../../addon.old/nsfw/nsfw.php:80
msgid ""
"This plugin looks in posts for the words/text you specify below, and "
"collapses any content containing those keywords so it is not displayed at "
@ -4842,60 +5456,64 @@ msgid ""
"can thereby be used as a general purpose content filter."
msgstr ""
#: ../../addon/nsfw/nsfw.php:50
#: ../../addon/nsfw/nsfw.php:81 ../../addon.old/nsfw/nsfw.php:81
msgid "Enable Content filter"
msgstr ""
#: ../../addon/nsfw/nsfw.php:53
#: ../../addon/nsfw/nsfw.php:84 ../../addon.old/nsfw/nsfw.php:84
msgid "Comma separated list of keywords to hide"
msgstr ""
#: ../../addon/nsfw/nsfw.php:58
#: ../../addon/nsfw/nsfw.php:89 ../../addon.old/nsfw/nsfw.php:89
msgid "Use /expression/ to provide regular expressions"
msgstr ""
#: ../../addon/nsfw/nsfw.php:74
#: ../../addon/nsfw/nsfw.php:105 ../../addon.old/nsfw/nsfw.php:105
msgid "NSFW Settings saved."
msgstr ""
#: ../../addon/nsfw/nsfw.php:121
#: ../../addon/nsfw/nsfw.php:157 ../../addon.old/nsfw/nsfw.php:157
#, php-format
msgid "%s - Click to open/close"
msgstr ""
#: ../../addon/page/page.php:61 ../../addon/page/page.php:91
#: ../../addon/page/page.php:62 ../../addon/page/page.php:92
#: ../../addon/forumlist/forumlist.php:60 ../../addon.old/page/page.php:62
#: ../../addon.old/page/page.php:92 ../../addon.old/forumlist/forumlist.php:60
msgid "Forums"
msgstr ""
#: ../../addon/page/page.php:129
#: ../../addon/page/page.php:130 ../../addon/forumlist/forumlist.php:94
#: ../../addon.old/page/page.php:130
#: ../../addon.old/forumlist/forumlist.php:94
msgid "Forums:"
msgstr ""
#: ../../addon/page/page.php:165
#: ../../addon/page/page.php:166 ../../addon.old/page/page.php:166
msgid "Page settings updated."
msgstr ""
#: ../../addon/page/page.php:194
#: ../../addon/page/page.php:195 ../../addon.old/page/page.php:195
msgid "Page Settings"
msgstr ""
#: ../../addon/page/page.php:196
#: ../../addon/page/page.php:197 ../../addon.old/page/page.php:197
msgid "How many forums to display on sidebar without paging"
msgstr ""
#: ../../addon/page/page.php:199
#: ../../addon/page/page.php:200 ../../addon.old/page/page.php:200
msgid "Randomise Page/Forum list"
msgstr ""
#: ../../addon/page/page.php:202
#: ../../addon/page/page.php:203 ../../addon.old/page/page.php:203
msgid "Show pages/forums on profile page"
msgstr ""
#: ../../addon/planets/planets.php:150
#: ../../addon/planets/planets.php:150 ../../addon.old/planets/planets.php:150
msgid "Planets Settings"
msgstr ""
#: ../../addon/planets/planets.php:152
#: ../../addon/planets/planets.php:152 ../../addon.old/planets/planets.php:152
msgid "Enable Planets Plugin"
msgstr ""
@ -4903,237 +5521,747 @@ msgstr ""
#: ../../addon/communityhome/communityhome.php:34
#: ../../addon/communityhome/twillingham/communityhome.php:28
#: ../../addon/communityhome/twillingham/communityhome.php:34
#: ../../include/nav.php:64 ../../boot.php:885
#: ../../include/nav.php:64 ../../boot.php:923
#: ../../addon.old/communityhome/communityhome.php:28
#: ../../addon.old/communityhome/communityhome.php:34
#: ../../addon.old/communityhome/twillingham/communityhome.php:28
#: ../../addon.old/communityhome/twillingham/communityhome.php:34
msgid "Login"
msgstr ""
#: ../../addon/communityhome/communityhome.php:29
#: ../../addon/communityhome/twillingham/communityhome.php:29
#: ../../addon.old/communityhome/communityhome.php:29
#: ../../addon.old/communityhome/twillingham/communityhome.php:29
msgid "OpenID"
msgstr ""
#: ../../addon/communityhome/communityhome.php:38
#: ../../addon/communityhome/twillingham/communityhome.php:38
#: ../../addon.old/communityhome/communityhome.php:38
#: ../../addon.old/communityhome/twillingham/communityhome.php:38
msgid "Latest users"
msgstr ""
#: ../../addon/communityhome/communityhome.php:81
#: ../../addon/communityhome/twillingham/communityhome.php:81
#: ../../addon.old/communityhome/communityhome.php:81
#: ../../addon.old/communityhome/twillingham/communityhome.php:81
msgid "Most active users"
msgstr ""
#: ../../addon/communityhome/communityhome.php:98
#: ../../addon.old/communityhome/communityhome.php:98
msgid "Latest photos"
msgstr ""
#: ../../addon/communityhome/communityhome.php:133
#: ../../addon.old/communityhome/communityhome.php:133
msgid "Latest likes"
msgstr ""
#: ../../addon/communityhome/communityhome.php:155
#: ../../view/theme/diabook/theme.php:562 ../../include/text.php:1319
#: ../../include/conversation.php:107 ../../include/conversation.php:180
#: ../../view/theme/diabook/theme.php:449 ../../include/text.php:1435
#: ../../include/conversation.php:117 ../../include/conversation.php:245
#: ../../addon.old/communityhome/communityhome.php:155
msgid "event"
msgstr ""
#: ../../addon/dav/common/wdcal_configuration.php:126
msgid "U.S. Time Format (mm/dd/YYYY)"
msgstr ""
#: ../../addon/dav/common/wdcal_configuration.php:205
msgid "German Time Format (dd.mm.YYYY)"
msgstr ""
#: ../../addon/dav/common/calendar.fnk.php:517
#: ../../addon/dav/common/calendar.fnk.php:533
#: ../../addon/dav/layout.fnk.php:200
msgid "Error"
msgstr ""
#: ../../addon/dav/common/calendar.fnk.php:568
#: ../../addon/dav/common/calendar.fnk.php:637
#: ../../addon/dav/common/calendar.fnk.php:664
#: ../../addon/dav/layout.fnk.php:231
#: ../../addon/dav/common/wdcal_backend.inc.php:92
#: ../../addon/dav/common/wdcal_backend.inc.php:166
#: ../../addon/dav/common/wdcal_backend.inc.php:178
#: ../../addon/dav/common/wdcal_backend.inc.php:206
#: ../../addon/dav/common/wdcal_backend.inc.php:214
#: ../../addon/dav/common/wdcal_backend.inc.php:229
#: ../../addon.old/dav/common/wdcal_backend.inc.php:92
#: ../../addon.old/dav/common/wdcal_backend.inc.php:166
#: ../../addon.old/dav/common/wdcal_backend.inc.php:178
#: ../../addon.old/dav/common/wdcal_backend.inc.php:206
#: ../../addon.old/dav/common/wdcal_backend.inc.php:214
#: ../../addon.old/dav/common/wdcal_backend.inc.php:229
msgid "No access"
msgstr ""
#: ../../addon/dav/layout.fnk.php:119
msgid "New event"
#: ../../addon/dav/common/wdcal_edit.inc.php:30
#: ../../addon/dav/common/wdcal_edit.inc.php:738
#: ../../addon.old/dav/common/wdcal_edit.inc.php:30
#: ../../addon.old/dav/common/wdcal_edit.inc.php:738
msgid "Could not open component for editing"
msgstr ""
#: ../../addon/dav/layout.fnk.php:123
msgid "Today"
msgstr ""
#: ../../addon/dav/layout.fnk.php:132
msgid "Day"
msgstr ""
#: ../../addon/dav/layout.fnk.php:139
msgid "Week"
msgstr ""
#: ../../addon/dav/layout.fnk.php:146
msgid "Month"
msgstr ""
#: ../../addon/dav/layout.fnk.php:151
msgid "Reload"
msgstr ""
#: ../../addon/dav/layout.fnk.php:162
msgid "Date"
msgstr ""
#: ../../addon/dav/layout.fnk.php:224
msgid "Not found"
msgstr ""
#: ../../addon/dav/layout.fnk.php:292 ../../addon/dav/layout.fnk.php:365
#: ../../addon/dav/common/wdcal_edit.inc.php:140
#: ../../addon/dav/friendica/layout.fnk.php:143
#: ../../addon/dav/friendica/layout.fnk.php:422
#: ../../addon.old/dav/common/wdcal_edit.inc.php:140
#: ../../addon.old/dav/friendica/layout.fnk.php:143
#: ../../addon.old/dav/friendica/layout.fnk.php:422
msgid "Go back to the calendar"
msgstr ""
#: ../../addon/dav/layout.fnk.php:300
msgid "Starts"
#: ../../addon/dav/common/wdcal_edit.inc.php:144
#: ../../addon.old/dav/common/wdcal_edit.inc.php:144
msgid "Event data"
msgstr ""
#: ../../addon/dav/layout.fnk.php:305
msgid "Ends"
msgstr ""
#: ../../addon/dav/layout.fnk.php:312
msgid "Description"
msgstr ""
#: ../../addon/dav/layout.fnk.php:315
msgid "Notification"
msgstr ""
#: ../../addon/dav/layout.fnk.php:324
msgid "Minutes"
msgstr ""
#: ../../addon/dav/layout.fnk.php:327
msgid "Hours"
msgstr ""
#: ../../addon/dav/layout.fnk.php:330
msgid "Days"
msgstr ""
#: ../../addon/dav/layout.fnk.php:331
msgid "before"
msgstr ""
#: ../../addon/dav/layout.fnk.php:367
msgid "Calendar Settings"
msgstr ""
#: ../../addon/dav/layout.fnk.php:373
msgid "Date format"
msgstr ""
#: ../../addon/dav/layout.fnk.php:382
msgid "Time zone"
msgstr ""
#: ../../addon/dav/layout.fnk.php:387
msgid "Limitations"
msgstr ""
#: ../../addon/dav/layout.fnk.php:391
msgid "Warning"
msgstr ""
#: ../../addon/dav/layout.fnk.php:395
msgid "Synchronization (iPhone, Thunderbird Lightning, Android, ...)"
msgstr ""
#: ../../addon/dav/layout.fnk.php:402
msgid "Synchronizing this calendar with the iPhone"
msgstr ""
#: ../../addon/dav/layout.fnk.php:413
msgid "Synchronizing your Friendica-Contacts with the iPhone"
msgstr ""
#: ../../addon/dav/dav_carddav_backend_friendica_community.inc.php:37
msgid "Friendica-Contacts"
msgstr ""
#: ../../addon/dav/dav_carddav_backend_friendica_community.inc.php:38
msgid "Your Friendica-Contacts"
msgstr ""
#: ../../addon/dav/main.php:244
#: ../../addon/dav/common/wdcal_edit.inc.php:146
#: ../../addon/dav/friendica/main.php:239
#: ../../addon.old/dav/common/wdcal_edit.inc.php:146
#: ../../addon.old/dav/friendica/main.php:239
msgid "Calendar"
msgstr ""
#: ../../addon/dav/main.php:247
#: ../../addon/dav/common/wdcal_edit.inc.php:163
#: ../../addon.old/dav/common/wdcal_edit.inc.php:163
msgid "Special color"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:169
#: ../../addon.old/dav/common/wdcal_edit.inc.php:169
msgid "Subject"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:173
#: ../../addon.old/dav/common/wdcal_edit.inc.php:173
msgid "Starts"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:178
#: ../../addon.old/dav/common/wdcal_edit.inc.php:178
msgid "Ends"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:185
#: ../../addon.old/dav/common/wdcal_edit.inc.php:185
msgid "Description"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:188
#: ../../addon.old/dav/common/wdcal_edit.inc.php:188
msgid "Recurrence"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:190
#: ../../addon.old/dav/common/wdcal_edit.inc.php:190
msgid "Frequency"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:194
#: ../../include/contact_selectors.php:59
#: ../../addon.old/dav/common/wdcal_edit.inc.php:194
msgid "Daily"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:197
#: ../../include/contact_selectors.php:60
#: ../../addon.old/dav/common/wdcal_edit.inc.php:197
msgid "Weekly"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:200
#: ../../include/contact_selectors.php:61
#: ../../addon.old/dav/common/wdcal_edit.inc.php:200
msgid "Monthly"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:203
#: ../../addon.old/dav/common/wdcal_edit.inc.php:203
msgid "Yearly"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:214
#: ../../include/datetime.php:288
#: ../../addon.old/dav/common/wdcal_edit.inc.php:214
msgid "days"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:215
#: ../../include/datetime.php:287
#: ../../addon.old/dav/common/wdcal_edit.inc.php:215
msgid "weeks"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:216
#: ../../include/datetime.php:286
#: ../../addon.old/dav/common/wdcal_edit.inc.php:216
msgid "months"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:217
#: ../../include/datetime.php:285
#: ../../addon.old/dav/common/wdcal_edit.inc.php:217
msgid "years"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:218
#: ../../addon.old/dav/common/wdcal_edit.inc.php:218
msgid "Interval"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:218
#: ../../addon.old/dav/common/wdcal_edit.inc.php:218
msgid "All %select% %time%"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:222
#: ../../addon/dav/common/wdcal_edit.inc.php:260
#: ../../addon/dav/common/wdcal_edit.inc.php:481
#: ../../addon.old/dav/common/wdcal_edit.inc.php:222
#: ../../addon.old/dav/common/wdcal_edit.inc.php:260
#: ../../addon.old/dav/common/wdcal_edit.inc.php:481
msgid "Days"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:231
#: ../../addon/dav/common/wdcal_edit.inc.php:254
#: ../../addon/dav/common/wdcal_edit.inc.php:270
#: ../../addon/dav/common/wdcal_edit.inc.php:293
#: ../../addon/dav/common/wdcal_edit.inc.php:305 ../../include/text.php:915
#: ../../addon.old/dav/common/wdcal_edit.inc.php:231
#: ../../addon.old/dav/common/wdcal_edit.inc.php:254
#: ../../addon.old/dav/common/wdcal_edit.inc.php:270
#: ../../addon.old/dav/common/wdcal_edit.inc.php:293
#: ../../addon.old/dav/common/wdcal_edit.inc.php:305
msgid "Sunday"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:235
#: ../../addon/dav/common/wdcal_edit.inc.php:274
#: ../../addon/dav/common/wdcal_edit.inc.php:308 ../../include/text.php:915
#: ../../addon.old/dav/common/wdcal_edit.inc.php:235
#: ../../addon.old/dav/common/wdcal_edit.inc.php:274
#: ../../addon.old/dav/common/wdcal_edit.inc.php:308
msgid "Monday"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:238
#: ../../addon/dav/common/wdcal_edit.inc.php:277 ../../include/text.php:915
#: ../../addon.old/dav/common/wdcal_edit.inc.php:238
#: ../../addon.old/dav/common/wdcal_edit.inc.php:277
msgid "Tuesday"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:241
#: ../../addon/dav/common/wdcal_edit.inc.php:280 ../../include/text.php:915
#: ../../addon.old/dav/common/wdcal_edit.inc.php:241
#: ../../addon.old/dav/common/wdcal_edit.inc.php:280
msgid "Wednesday"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:244
#: ../../addon/dav/common/wdcal_edit.inc.php:283 ../../include/text.php:915
#: ../../addon.old/dav/common/wdcal_edit.inc.php:244
#: ../../addon.old/dav/common/wdcal_edit.inc.php:283
msgid "Thursday"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:247
#: ../../addon/dav/common/wdcal_edit.inc.php:286 ../../include/text.php:915
#: ../../addon.old/dav/common/wdcal_edit.inc.php:247
#: ../../addon.old/dav/common/wdcal_edit.inc.php:286
msgid "Friday"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:250
#: ../../addon/dav/common/wdcal_edit.inc.php:289 ../../include/text.php:915
#: ../../addon.old/dav/common/wdcal_edit.inc.php:250
#: ../../addon.old/dav/common/wdcal_edit.inc.php:289
msgid "Saturday"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:297
#: ../../addon.old/dav/common/wdcal_edit.inc.php:297
msgid "First day of week:"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:350
#: ../../addon/dav/common/wdcal_edit.inc.php:373
#: ../../addon.old/dav/common/wdcal_edit.inc.php:350
#: ../../addon.old/dav/common/wdcal_edit.inc.php:373
msgid "Day of month"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:354
#: ../../addon.old/dav/common/wdcal_edit.inc.php:354
msgid "#num#th of each month"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:357
#: ../../addon.old/dav/common/wdcal_edit.inc.php:357
msgid "#num#th-last of each month"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:360
#: ../../addon.old/dav/common/wdcal_edit.inc.php:360
msgid "#num#th #wkday# of each month"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:363
#: ../../addon.old/dav/common/wdcal_edit.inc.php:363
msgid "#num#th-last #wkday# of each month"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:372
#: ../../addon/dav/friendica/layout.fnk.php:255
#: ../../addon.old/dav/common/wdcal_edit.inc.php:372
#: ../../addon.old/dav/friendica/layout.fnk.php:255
msgid "Month"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:377
#: ../../addon.old/dav/common/wdcal_edit.inc.php:377
msgid "#num#th of the given month"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:380
#: ../../addon.old/dav/common/wdcal_edit.inc.php:380
msgid "#num#th-last of the given month"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:383
#: ../../addon.old/dav/common/wdcal_edit.inc.php:383
msgid "#num#th #wkday# of the given month"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:386
#: ../../addon.old/dav/common/wdcal_edit.inc.php:386
msgid "#num#th-last #wkday# of the given month"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:413
#: ../../addon.old/dav/common/wdcal_edit.inc.php:413
msgid "Repeat until"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:417
#: ../../addon.old/dav/common/wdcal_edit.inc.php:417
msgid "Infinite"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:420
#: ../../addon.old/dav/common/wdcal_edit.inc.php:420
msgid "Until the following date"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:423
#: ../../addon.old/dav/common/wdcal_edit.inc.php:423
msgid "Number of times"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:429
#: ../../addon.old/dav/common/wdcal_edit.inc.php:429
msgid "Exceptions"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:432
#: ../../addon.old/dav/common/wdcal_edit.inc.php:432
msgid "none"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:449
#: ../../addon.old/dav/common/wdcal_edit.inc.php:449
msgid "Notification"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:466
#: ../../addon.old/dav/common/wdcal_edit.inc.php:466
msgid "Notify by"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:469
#: ../../addon.old/dav/common/wdcal_edit.inc.php:469
msgid "E-Mail"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:470
#: ../../addon.old/dav/common/wdcal_edit.inc.php:470
msgid "On Friendica / Display"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:474
#: ../../addon.old/dav/common/wdcal_edit.inc.php:474
msgid "Time"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:478
#: ../../addon.old/dav/common/wdcal_edit.inc.php:478
msgid "Hours"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:479
#: ../../addon.old/dav/common/wdcal_edit.inc.php:479
msgid "Minutes"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:480
#: ../../addon.old/dav/common/wdcal_edit.inc.php:480
msgid "Seconds"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:482
#: ../../addon.old/dav/common/wdcal_edit.inc.php:482
msgid "Weeks"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:485
#: ../../addon.old/dav/common/wdcal_edit.inc.php:485
msgid "before the"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:486
#: ../../addon.old/dav/common/wdcal_edit.inc.php:486
msgid "start of the event"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:487
#: ../../addon.old/dav/common/wdcal_edit.inc.php:487
msgid "end of the event"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:492
#: ../../addon.old/dav/common/wdcal_edit.inc.php:492
msgid "Add a notification"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:687
#: ../../addon.old/dav/common/wdcal_edit.inc.php:687
msgid "The event #name# will start at #date"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:696
#: ../../addon.old/dav/common/wdcal_edit.inc.php:696
msgid "#name# is about to begin."
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:769
#: ../../addon.old/dav/common/wdcal_edit.inc.php:769
msgid "Saved"
msgstr ""
#: ../../addon/dav/common/wdcal_configuration.php:148
#: ../../addon.old/dav/common/wdcal_configuration.php:148
msgid "U.S. Time Format (mm/dd/YYYY)"
msgstr ""
#: ../../addon/dav/common/wdcal_configuration.php:243
#: ../../addon.old/dav/common/wdcal_configuration.php:243
msgid "German Time Format (dd.mm.YYYY)"
msgstr ""
#: ../../addon/dav/common/dav_caldav_backend_private.inc.php:39
#: ../../addon.old/dav/common/dav_caldav_backend_private.inc.php:39
msgid "Private Events"
msgstr ""
#: ../../addon/dav/common/dav_carddav_backend_private.inc.php:46
#: ../../addon.old/dav/common/dav_carddav_backend_private.inc.php:46
msgid "Private Addressbooks"
msgstr ""
#: ../../addon/dav/friendica/dav_caldav_backend_virtual_friendica.inc.php:36
#: ../../addon.old/dav/friendica/dav_caldav_backend_virtual_friendica.inc.php:36
msgid "Friendica-Native events"
msgstr ""
#: ../../addon/dav/friendica/dav_carddav_backend_virtual_friendica.inc.php:36
#: ../../addon/dav/friendica/dav_carddav_backend_virtual_friendica.inc.php:59
#: ../../addon.old/dav/friendica/dav_carddav_backend_virtual_friendica.inc.php:36
#: ../../addon.old/dav/friendica/dav_carddav_backend_virtual_friendica.inc.php:59
msgid "Friendica-Contacts"
msgstr ""
#: ../../addon/dav/friendica/dav_carddav_backend_virtual_friendica.inc.php:60
#: ../../addon.old/dav/friendica/dav_carddav_backend_virtual_friendica.inc.php:60
msgid "Your Friendica-Contacts"
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:99
#: ../../addon/dav/friendica/layout.fnk.php:136
#: ../../addon.old/dav/friendica/layout.fnk.php:99
#: ../../addon.old/dav/friendica/layout.fnk.php:136
msgid ""
"Something went wrong when trying to import the file. Sorry. Maybe some "
"events were imported anyway."
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:131
#: ../../addon.old/dav/friendica/layout.fnk.php:131
msgid "Something went wrong when trying to import the file. Sorry."
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:134
#: ../../addon.old/dav/friendica/layout.fnk.php:134
msgid "The ICS-File has been imported."
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:138
#: ../../addon.old/dav/friendica/layout.fnk.php:138
msgid "No file was uploaded."
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:147
#: ../../addon.old/dav/friendica/layout.fnk.php:147
msgid "Import a ICS-file"
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:150
#: ../../addon.old/dav/friendica/layout.fnk.php:150
msgid "ICS-File"
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:151
#: ../../addon.old/dav/friendica/layout.fnk.php:151
msgid "Overwrite all #num# existing events"
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:228
#: ../../addon.old/dav/friendica/layout.fnk.php:228
msgid "New event"
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:232
#: ../../addon.old/dav/friendica/layout.fnk.php:232
msgid "Today"
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:241
#: ../../addon.old/dav/friendica/layout.fnk.php:241
msgid "Day"
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:248
#: ../../addon.old/dav/friendica/layout.fnk.php:248
msgid "Week"
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:260
#: ../../addon.old/dav/friendica/layout.fnk.php:260
msgid "Reload"
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:271
#: ../../addon.old/dav/friendica/layout.fnk.php:271
msgid "Date"
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:313
#: ../../addon.old/dav/friendica/layout.fnk.php:313
msgid "Error"
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:380
#: ../../addon.old/dav/friendica/layout.fnk.php:380
msgid "The calendar has been updated."
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:393
#: ../../addon.old/dav/friendica/layout.fnk.php:393
msgid "The new calendar has been created."
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:417
#: ../../addon.old/dav/friendica/layout.fnk.php:417
msgid "The calendar has been deleted."
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:424
#: ../../addon.old/dav/friendica/layout.fnk.php:424
msgid "Calendar Settings"
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:430
#: ../../addon.old/dav/friendica/layout.fnk.php:430
msgid "Date format"
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:439
#: ../../addon.old/dav/friendica/layout.fnk.php:439
msgid "Time zone"
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:445
#: ../../addon.old/dav/friendica/layout.fnk.php:445
msgid "Calendars"
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:487
#: ../../addon.old/dav/friendica/layout.fnk.php:487
msgid "Create a new calendar"
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:496
#: ../../addon.old/dav/friendica/layout.fnk.php:496
msgid "Limitations"
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:500
#: ../../addon/libravatar/libravatar.php:82
#: ../../addon.old/dav/friendica/layout.fnk.php:500
#: ../../addon.old/libravatar/libravatar.php:82
msgid "Warning"
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:504
#: ../../addon.old/dav/friendica/layout.fnk.php:504
msgid "Synchronization (iPhone, Thunderbird Lightning, Android, ...)"
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:511
#: ../../addon.old/dav/friendica/layout.fnk.php:511
msgid "Synchronizing this calendar with the iPhone"
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:522
#: ../../addon.old/dav/friendica/layout.fnk.php:522
msgid "Synchronizing your Friendica-Contacts with the iPhone"
msgstr ""
#: ../../addon/dav/friendica/main.php:202
#: ../../addon.old/dav/friendica/main.php:202
msgid ""
"The current version of this plugin has not been set up correctly. Please "
"contact the system administrator of your installation of friendica to fix "
"this."
msgstr ""
#: ../../addon/dav/friendica/main.php:242
#: ../../addon.old/dav/friendica/main.php:242
msgid "Extended calendar with CalDAV-support"
msgstr ""
#: ../../addon/dav/main.php:263
#: ../../addon/dav/friendica/main.php:279
#: ../../addon/dav/friendica/main.php:280 ../../include/delivery.php:464
#: ../../include/enotify.php:28 ../../include/notifier.php:710
#: ../../addon.old/dav/friendica/main.php:279
#: ../../addon.old/dav/friendica/main.php:280
msgid "noreply"
msgstr ""
#: ../../addon/dav/friendica/main.php:282
#: ../../addon.old/dav/friendica/main.php:282
msgid "Notification: "
msgstr ""
#: ../../addon/dav/friendica/main.php:309
#: ../../addon.old/dav/friendica/main.php:309
msgid "The database tables have been installed."
msgstr ""
#: ../../addon/dav/main.php:264
#: ../../addon/dav/friendica/main.php:310
#: ../../addon.old/dav/friendica/main.php:310
msgid "An error occurred during the installation."
msgstr ""
#: ../../addon/dav/main.php:280
#: ../../addon/dav/friendica/main.php:316
#: ../../addon.old/dav/friendica/main.php:316
msgid "The database tables have been updated."
msgstr ""
#: ../../addon/dav/friendica/main.php:317
#: ../../addon.old/dav/friendica/main.php:317
msgid "An error occurred during the update."
msgstr ""
#: ../../addon/dav/friendica/main.php:333
#: ../../addon.old/dav/friendica/main.php:333
msgid "No system-wide settings yet."
msgstr ""
#: ../../addon/dav/main.php:283
#: ../../addon/dav/friendica/main.php:336
#: ../../addon.old/dav/friendica/main.php:336
msgid "Database status"
msgstr ""
#: ../../addon/dav/main.php:286
#: ../../addon/dav/friendica/main.php:339
#: ../../addon.old/dav/friendica/main.php:339
msgid "Installed"
msgstr ""
#: ../../addon/dav/main.php:289
#: ../../addon/dav/friendica/main.php:343
#: ../../addon.old/dav/friendica/main.php:343
msgid "Upgrade needed"
msgstr ""
#: ../../addon/dav/main.php:289
#: ../../addon/dav/friendica/main.php:343
#: ../../addon.old/dav/friendica/main.php:343
msgid ""
"Please back up all calendar data (the tables beginning with dav_*) before "
"proceeding. While all calendar events <i>should</i> be converted to the new "
"database structure, it's always safe to have a backup. Below, you can have a "
"look at the database-queries that will be made when pressing the 'update'-"
"button."
msgstr ""
#: ../../addon/dav/friendica/main.php:343
#: ../../addon.old/dav/friendica/main.php:343
msgid "Upgrade"
msgstr ""
#: ../../addon/dav/main.php:292
#: ../../addon/dav/friendica/main.php:346
#: ../../addon.old/dav/friendica/main.php:346
msgid "Not installed"
msgstr ""
#: ../../addon/dav/main.php:292
#: ../../addon/dav/friendica/main.php:346
#: ../../addon.old/dav/friendica/main.php:346
msgid "Install"
msgstr ""
#: ../../addon/dav/main.php:297
#: ../../addon/dav/friendica/main.php:350
#: ../../addon.old/dav/friendica/main.php:350
msgid "Unknown"
msgstr ""
#: ../../addon/dav/friendica/main.php:350
#: ../../addon.old/dav/friendica/main.php:350
msgid ""
"Something really went wrong. I cannot recover from this state automatically, "
"sorry. Please go to the database backend, back up the data, and delete all "
"tables beginning with 'dav_' manually. Afterwards, this installation routine "
"should be able to reinitialize the tables automatically."
msgstr ""
#: ../../addon/dav/friendica/main.php:355
#: ../../addon.old/dav/friendica/main.php:355
msgid "Troubleshooting"
msgstr ""
#: ../../addon/dav/main.php:298
#: ../../addon/dav/friendica/main.php:356
#: ../../addon.old/dav/friendica/main.php:356
msgid "Manual creation of the database tables:"
msgstr ""
#: ../../addon/dav/main.php:299
#: ../../addon/dav/friendica/main.php:357
#: ../../addon.old/dav/friendica/main.php:357
msgid "Show SQL-statements"
msgstr ""
#: ../../addon/dav/calendar.friendica.fnk.php:151
#: ../../addon/dav/friendica/calendar.friendica.fnk.php:206
#: ../../addon.old/dav/friendica/calendar.friendica.fnk.php:206
msgid "Private Calendar"
msgstr ""
#: ../../addon/dav/calendar.friendica.fnk.php:158
#: ../../addon/dav/friendica/calendar.friendica.fnk.php:207
#: ../../addon.old/dav/friendica/calendar.friendica.fnk.php:207
msgid "Friendica Events: Mine"
msgstr ""
#: ../../addon/dav/calendar.friendica.fnk.php:161
#: ../../addon/dav/friendica/calendar.friendica.fnk.php:208
#: ../../addon.old/dav/friendica/calendar.friendica.fnk.php:208
msgid "Friendica Events: Contacts"
msgstr ""
#: ../../addon/dav/friendica/calendar.friendica.fnk.php:248
#: ../../addon.old/dav/friendica/calendar.friendica.fnk.php:248
msgid "Private Addresses"
msgstr ""
#: ../../addon/dav/friendica/calendar.friendica.fnk.php:249
#: ../../addon.old/dav/friendica/calendar.friendica.fnk.php:249
msgid "Friendica Contacts"
msgstr ""
#: ../../addon/uhremotestorage/uhremotestorage.php:84
#: ../../addon.old/uhremotestorage/uhremotestorage.php:84
#, php-format
msgid ""
"Allow to use your friendica id (%s) to connecto to external unhosted-enabled "
@ -5142,183 +6270,197 @@ msgid ""
msgstr ""
#: ../../addon/uhremotestorage/uhremotestorage.php:85
#: ../../addon.old/uhremotestorage/uhremotestorage.php:85
msgid "Template URL (with {category})"
msgstr ""
#: ../../addon/uhremotestorage/uhremotestorage.php:86
#: ../../addon.old/uhremotestorage/uhremotestorage.php:86
msgid "OAuth end-point"
msgstr ""
#: ../../addon/uhremotestorage/uhremotestorage.php:87
#: ../../addon.old/uhremotestorage/uhremotestorage.php:87
msgid "Api"
msgstr ""
#: ../../addon/membersince/membersince.php:18
#: ../../addon.old/membersince/membersince.php:18
msgid "Member since:"
msgstr ""
#: ../../addon/tictac/tictac.php:20
#: ../../addon/tictac/tictac.php:20 ../../addon.old/tictac/tictac.php:20
msgid "Three Dimensional Tic-Tac-Toe"
msgstr ""
#: ../../addon/tictac/tictac.php:53
#: ../../addon/tictac/tictac.php:53 ../../addon.old/tictac/tictac.php:53
msgid "3D Tic-Tac-Toe"
msgstr ""
#: ../../addon/tictac/tictac.php:58
#: ../../addon/tictac/tictac.php:58 ../../addon.old/tictac/tictac.php:58
msgid "New game"
msgstr ""
#: ../../addon/tictac/tictac.php:59
#: ../../addon/tictac/tictac.php:59 ../../addon.old/tictac/tictac.php:59
msgid "New game with handicap"
msgstr ""
#: ../../addon/tictac/tictac.php:60
#: ../../addon/tictac/tictac.php:60 ../../addon.old/tictac/tictac.php:60
msgid ""
"Three dimensional tic-tac-toe is just like the traditional game except that "
"it is played on multiple levels simultaneously. "
msgstr ""
#: ../../addon/tictac/tictac.php:61
#: ../../addon/tictac/tictac.php:61 ../../addon.old/tictac/tictac.php:61
msgid ""
"In this case there are three levels. You win by getting three in a row on "
"any level, as well as up, down, and diagonally across the different levels."
msgstr ""
#: ../../addon/tictac/tictac.php:63
#: ../../addon/tictac/tictac.php:63 ../../addon.old/tictac/tictac.php:63
msgid ""
"The handicap game disables the center position on the middle level because "
"the player claiming this square often has an unfair advantage."
msgstr ""
#: ../../addon/tictac/tictac.php:182
#: ../../addon/tictac/tictac.php:182 ../../addon.old/tictac/tictac.php:182
msgid "You go first..."
msgstr ""
#: ../../addon/tictac/tictac.php:187
#: ../../addon/tictac/tictac.php:187 ../../addon.old/tictac/tictac.php:187
msgid "I'm going first this time..."
msgstr ""
#: ../../addon/tictac/tictac.php:193
#: ../../addon/tictac/tictac.php:193 ../../addon.old/tictac/tictac.php:193
msgid "You won!"
msgstr ""
#: ../../addon/tictac/tictac.php:199 ../../addon/tictac/tictac.php:224
#: ../../addon.old/tictac/tictac.php:199 ../../addon.old/tictac/tictac.php:224
msgid "\"Cat\" game!"
msgstr ""
#: ../../addon/tictac/tictac.php:222
#: ../../addon/tictac/tictac.php:222 ../../addon.old/tictac/tictac.php:222
msgid "I won!"
msgstr ""
#: ../../addon/randplace/randplace.php:169
#: ../../addon.old/randplace/randplace.php:169
msgid "Randplace Settings"
msgstr ""
#: ../../addon/randplace/randplace.php:171
#: ../../addon.old/randplace/randplace.php:171
msgid "Enable Randplace Plugin"
msgstr ""
#: ../../addon/dwpost/dwpost.php:39
#: ../../addon/dwpost/dwpost.php:39 ../../addon.old/dwpost/dwpost.php:39
msgid "Post to Dreamwidth"
msgstr ""
#: ../../addon/dwpost/dwpost.php:70
#: ../../addon/dwpost/dwpost.php:70 ../../addon.old/dwpost/dwpost.php:70
msgid "Dreamwidth Post Settings"
msgstr ""
#: ../../addon/dwpost/dwpost.php:72
#: ../../addon/dwpost/dwpost.php:72 ../../addon.old/dwpost/dwpost.php:72
msgid "Enable dreamwidth Post Plugin"
msgstr ""
#: ../../addon/dwpost/dwpost.php:77
#: ../../addon/dwpost/dwpost.php:77 ../../addon.old/dwpost/dwpost.php:77
msgid "dreamwidth username"
msgstr ""
#: ../../addon/dwpost/dwpost.php:82
#: ../../addon/dwpost/dwpost.php:82 ../../addon.old/dwpost/dwpost.php:82
msgid "dreamwidth password"
msgstr ""
#: ../../addon/dwpost/dwpost.php:87
#: ../../addon/dwpost/dwpost.php:87 ../../addon.old/dwpost/dwpost.php:87
msgid "Post to dreamwidth by default"
msgstr ""
#: ../../addon/drpost/drpost.php:35
msgid "Post to Drupal"
#: ../../addon/remote_permissions/remote_permissions.php:44
msgid "Remote Permissions Settings"
msgstr ""
#: ../../addon/drpost/drpost.php:72
msgid "Drupal Post Settings"
#: ../../addon/remote_permissions/remote_permissions.php:45
msgid ""
"Allow recipients of your private posts to see the other recipients of the "
"posts"
msgstr ""
#: ../../addon/drpost/drpost.php:74
msgid "Enable Drupal Post Plugin"
#: ../../addon/remote_permissions/remote_permissions.php:57
msgid "Remote Permissions settings updated."
msgstr ""
#: ../../addon/drpost/drpost.php:79
msgid "Drupal username"
#: ../../addon/remote_permissions/remote_permissions.php:177
msgid "Visible to"
msgstr ""
#: ../../addon/drpost/drpost.php:84
msgid "Drupal password"
#: ../../addon/remote_permissions/remote_permissions.php:177
msgid "may only be a partial list"
msgstr ""
#: ../../addon/drpost/drpost.php:89
msgid "Post Type - article,page,or blog"
#: ../../addon/remote_permissions/remote_permissions.php:196
msgid "Global"
msgstr ""
#: ../../addon/drpost/drpost.php:94
msgid "Drupal site URL"
#: ../../addon/remote_permissions/remote_permissions.php:196
msgid "The posts of every user on this server show the post recipients"
msgstr ""
#: ../../addon/drpost/drpost.php:99
msgid "Drupal site uses clean URLS"
#: ../../addon/remote_permissions/remote_permissions.php:197
msgid "Individual"
msgstr ""
#: ../../addon/drpost/drpost.php:104
msgid "Post to Drupal by default"
msgstr ""
#: ../../addon/drpost/drpost.php:184 ../../addon/wppost/wppost.php:201
#: ../../addon/blogger/blogger.php:172 ../../addon/posterous/posterous.php:189
msgid "Post from Friendica"
#: ../../addon/remote_permissions/remote_permissions.php:197
msgid "Each user chooses whether his/her posts show the post recipients"
msgstr ""
#: ../../addon/startpage/startpage.php:83
#: ../../addon.old/startpage/startpage.php:83
msgid "Startpage Settings"
msgstr ""
#: ../../addon/startpage/startpage.php:85
#: ../../addon.old/startpage/startpage.php:85
msgid "Home page to load after login - leave blank for profile wall"
msgstr ""
#: ../../addon/startpage/startpage.php:88
#: ../../addon.old/startpage/startpage.php:88
msgid "Examples: &quot;network&quot; or &quot;notifications/system&quot;"
msgstr ""
#: ../../addon/geonames/geonames.php:143
#: ../../addon.old/geonames/geonames.php:143
msgid "Geonames settings updated."
msgstr ""
#: ../../addon/geonames/geonames.php:179
#: ../../addon.old/geonames/geonames.php:179
msgid "Geonames Settings"
msgstr ""
#: ../../addon/geonames/geonames.php:181
#: ../../addon.old/geonames/geonames.php:181
msgid "Enable Geonames Plugin"
msgstr ""
#: ../../addon/public_server/public_server.php:126
#: ../../addon/testdrive/testdrive.php:94
#: ../../addon.old/public_server/public_server.php:126
#: ../../addon.old/testdrive/testdrive.php:94
#, php-format
msgid "Your account on %s will expire in a few days."
msgstr ""
#: ../../addon/public_server/public_server.php:127
#: ../../addon.old/public_server/public_server.php:127
msgid "Your Friendica account is about to expire."
msgstr ""
#: ../../addon/public_server/public_server.php:128
#: ../../addon.old/public_server/public_server.php:128
#, php-format
msgid ""
"Hi %1$s,\n"
@ -5328,305 +6470,476 @@ msgid ""
msgstr ""
#: ../../addon/js_upload/js_upload.php:43
#: ../../addon.old/js_upload/js_upload.php:43
msgid "Upload a file"
msgstr ""
#: ../../addon/js_upload/js_upload.php:44
#: ../../addon.old/js_upload/js_upload.php:44
msgid "Drop files here to upload"
msgstr ""
#: ../../addon/js_upload/js_upload.php:46
#: ../../addon.old/js_upload/js_upload.php:46
msgid "Failed"
msgstr ""
#: ../../addon/js_upload/js_upload.php:297
#: ../../addon.old/js_upload/js_upload.php:297
msgid "No files were uploaded."
msgstr ""
#: ../../addon/js_upload/js_upload.php:303
#: ../../addon.old/js_upload/js_upload.php:303
msgid "Uploaded file is empty"
msgstr ""
#: ../../addon/js_upload/js_upload.php:326
#: ../../addon.old/js_upload/js_upload.php:326
msgid "File has an invalid extension, it should be one of "
msgstr ""
#: ../../addon/js_upload/js_upload.php:337
#: ../../addon.old/js_upload/js_upload.php:337
msgid "Upload was cancelled, or server error encountered"
msgstr ""
#: ../../addon/oembed.old/oembed.php:30
msgid "OEmbed settings updated"
#: ../../addon/forumlist/forumlist.php:63
#: ../../addon.old/forumlist/forumlist.php:63
msgid "show/hide"
msgstr ""
#: ../../addon/oembed.old/oembed.php:43
msgid "Use OEmbed for YouTube videos"
#: ../../addon/forumlist/forumlist.php:77
#: ../../addon.old/forumlist/forumlist.php:77
msgid "No forum subscriptions"
msgstr ""
#: ../../addon/oembed.old/oembed.php:71
msgid "URL to embed:"
#: ../../addon/forumlist/forumlist.php:131
#: ../../addon.old/forumlist/forumlist.php:131
msgid "Forumlist settings updated."
msgstr ""
#: ../../addon/impressum/impressum.php:36
#: ../../addon/forumlist/forumlist.php:159
#: ../../addon.old/forumlist/forumlist.php:159
msgid "Forumlist Settings"
msgstr ""
#: ../../addon/forumlist/forumlist.php:161
#: ../../addon.old/forumlist/forumlist.php:161
msgid "Randomise forum list"
msgstr ""
#: ../../addon/forumlist/forumlist.php:164
#: ../../addon.old/forumlist/forumlist.php:164
msgid "Show forums on profile page"
msgstr ""
#: ../../addon/forumlist/forumlist.php:167
#: ../../addon.old/forumlist/forumlist.php:167
msgid "Show forums on network page"
msgstr ""
#: ../../addon/impressum/impressum.php:37
#: ../../addon.old/impressum/impressum.php:37
msgid "Impressum"
msgstr ""
#: ../../addon/impressum/impressum.php:49
#: ../../addon/impressum/impressum.php:51
#: ../../addon/impressum/impressum.php:83
#: ../../addon/impressum/impressum.php:50
#: ../../addon/impressum/impressum.php:52
#: ../../addon/impressum/impressum.php:84
#: ../../addon.old/impressum/impressum.php:50
#: ../../addon.old/impressum/impressum.php:52
#: ../../addon.old/impressum/impressum.php:84
msgid "Site Owner"
msgstr ""
#: ../../addon/impressum/impressum.php:49
#: ../../addon/impressum/impressum.php:87
#: ../../addon/impressum/impressum.php:50
#: ../../addon/impressum/impressum.php:88
#: ../../addon.old/impressum/impressum.php:50
#: ../../addon.old/impressum/impressum.php:88
msgid "Email Address"
msgstr ""
#: ../../addon/impressum/impressum.php:54
#: ../../addon/impressum/impressum.php:85
#: ../../addon/impressum/impressum.php:55
#: ../../addon/impressum/impressum.php:86
#: ../../addon.old/impressum/impressum.php:55
#: ../../addon.old/impressum/impressum.php:86
msgid "Postal Address"
msgstr ""
#: ../../addon/impressum/impressum.php:60
#: ../../addon/impressum/impressum.php:61
#: ../../addon.old/impressum/impressum.php:61
msgid ""
"The impressum addon needs to be configured!<br />Please add at least the "
"<tt>owner</tt> variable to your config file. For other variables please "
"refer to the README file of the addon."
msgstr ""
#: ../../addon/impressum/impressum.php:83
#: ../../addon/impressum/impressum.php:84
#: ../../addon.old/impressum/impressum.php:84
msgid "The page operators name."
msgstr ""
#: ../../addon/impressum/impressum.php:84
#: ../../addon/impressum/impressum.php:85
#: ../../addon.old/impressum/impressum.php:85
msgid "Site Owners Profile"
msgstr ""
#: ../../addon/impressum/impressum.php:84
#: ../../addon/impressum/impressum.php:85
#: ../../addon.old/impressum/impressum.php:85
msgid "Profile address of the operator."
msgstr ""
#: ../../addon/impressum/impressum.php:85
#: ../../addon/impressum/impressum.php:86
#: ../../addon.old/impressum/impressum.php:86
msgid "How to contact the operator via snail mail. You can use BBCode here."
msgstr ""
#: ../../addon/impressum/impressum.php:86
#: ../../addon/impressum/impressum.php:87
#: ../../addon.old/impressum/impressum.php:87
msgid "Notes"
msgstr ""
#: ../../addon/impressum/impressum.php:86
#: ../../addon/impressum/impressum.php:87
#: ../../addon.old/impressum/impressum.php:87
msgid ""
"Additional notes that are displayed beneath the contact information. You can "
"use BBCode here."
msgstr ""
#: ../../addon/impressum/impressum.php:87
#: ../../addon/impressum/impressum.php:88
#: ../../addon.old/impressum/impressum.php:88
msgid "How to contact the operator via email. (will be displayed obfuscated)"
msgstr ""
#: ../../addon/impressum/impressum.php:88
#: ../../addon/impressum/impressum.php:89
#: ../../addon.old/impressum/impressum.php:89
msgid "Footer note"
msgstr ""
#: ../../addon/impressum/impressum.php:88
#: ../../addon/impressum/impressum.php:89
#: ../../addon.old/impressum/impressum.php:89
msgid "Text for the footer. You can use BBCode here."
msgstr ""
#: ../../addon/buglink/buglink.php:15
#: ../../addon/buglink/buglink.php:15 ../../addon.old/buglink/buglink.php:15
msgid "Report Bug"
msgstr ""
#: ../../addon/notimeline/notimeline.php:32
#: ../../addon.old/notimeline/notimeline.php:32
msgid "No Timeline settings updated."
msgstr ""
#: ../../addon/notimeline/notimeline.php:56
#: ../../addon.old/notimeline/notimeline.php:56
msgid "No Timeline Settings"
msgstr ""
#: ../../addon/notimeline/notimeline.php:58
#: ../../addon.old/notimeline/notimeline.php:58
msgid "Disable Archive selector on profile wall"
msgstr ""
#: ../../addon/blockem/blockem.php:51
#: ../../addon/blockem/blockem.php:51 ../../addon.old/blockem/blockem.php:51
msgid "\"Blockem\" Settings"
msgstr ""
#: ../../addon/blockem/blockem.php:53
#: ../../addon/blockem/blockem.php:53 ../../addon.old/blockem/blockem.php:53
msgid "Comma separated profile URLS to block"
msgstr ""
#: ../../addon/blockem/blockem.php:70
#: ../../addon/blockem/blockem.php:70 ../../addon.old/blockem/blockem.php:70
msgid "BLOCKEM Settings saved."
msgstr ""
#: ../../addon/blockem/blockem.php:105
#: ../../addon/blockem/blockem.php:105 ../../addon.old/blockem/blockem.php:105
#, php-format
msgid "Blocked %s - Click to open/close"
msgstr ""
#: ../../addon/blockem/blockem.php:160
#: ../../addon/blockem/blockem.php:160 ../../addon.old/blockem/blockem.php:160
msgid "Unblock Author"
msgstr ""
#: ../../addon/blockem/blockem.php:162
#: ../../addon/blockem/blockem.php:162 ../../addon.old/blockem/blockem.php:162
msgid "Block Author"
msgstr ""
#: ../../addon/blockem/blockem.php:194
#: ../../addon/blockem/blockem.php:194 ../../addon.old/blockem/blockem.php:194
msgid "blockem settings updated"
msgstr ""
#: ../../addon/qcomment/qcomment.php:51
#: ../../addon.old/qcomment/qcomment.php:51
msgid ":-)"
msgstr ""
#: ../../addon/qcomment/qcomment.php:51
#: ../../addon.old/qcomment/qcomment.php:51
msgid ":-("
msgstr ""
#: ../../addon/qcomment/qcomment.php:51
#: ../../addon.old/qcomment/qcomment.php:51
msgid "lol"
msgstr ""
#: ../../addon/qcomment/qcomment.php:54
#: ../../addon.old/qcomment/qcomment.php:54
msgid "Quick Comment Settings"
msgstr ""
#: ../../addon/qcomment/qcomment.php:56
#: ../../addon.old/qcomment/qcomment.php:56
msgid ""
"Quick comments are found near comment boxes, sometimes hidden. Click them to "
"provide simple replies."
msgstr ""
#: ../../addon/qcomment/qcomment.php:57
#: ../../addon.old/qcomment/qcomment.php:57
msgid "Enter quick comments, one per line"
msgstr ""
#: ../../addon/qcomment/qcomment.php:75
#: ../../addon.old/qcomment/qcomment.php:75
msgid "Quick Comment settings saved."
msgstr ""
#: ../../addon/openstreetmap/openstreetmap.php:71
#: ../../addon.old/openstreetmap/openstreetmap.php:71
msgid "Tile Server URL"
msgstr ""
#: ../../addon/openstreetmap/openstreetmap.php:71
#: ../../addon.old/openstreetmap/openstreetmap.php:71
msgid ""
"A list of <a href=\"http://wiki.openstreetmap.org/wiki/TMS\" target=\"_blank"
"\">public tile servers</a>"
msgstr ""
#: ../../addon/openstreetmap/openstreetmap.php:72
#: ../../addon.old/openstreetmap/openstreetmap.php:72
msgid "Default zoom"
msgstr ""
#: ../../addon/openstreetmap/openstreetmap.php:72
#: ../../addon.old/openstreetmap/openstreetmap.php:72
msgid "The default zoom level. (1:world, 18:highest)"
msgstr ""
#: ../../addon/group_text/group_text.php:46
#: ../../addon/editplain/editplain.php:46
#: ../../addon.old/group_text/group_text.php:46
#: ../../addon.old/editplain/editplain.php:46
msgid "Editplain settings updated."
msgstr ""
#: ../../addon/group_text/group_text.php:76
#: ../../addon.old/group_text/group_text.php:76
msgid "Group Text"
msgstr ""
#: ../../addon/group_text/group_text.php:78
#: ../../addon.old/group_text/group_text.php:78
msgid "Use a text only (non-image) group selector in the \"group edit\" menu"
msgstr ""
#: ../../addon/libravatar/libravatar.php:14
#: ../../addon.old/libravatar/libravatar.php:14
msgid "Could NOT install Libravatar successfully.<br>It requires PHP >= 5.3"
msgstr ""
#: ../../addon/libravatar/libravatar.php:73
#: ../../addon/gravatar/gravatar.php:71
#: ../../addon.old/libravatar/libravatar.php:73
#: ../../addon.old/gravatar/gravatar.php:71
msgid "generic profile image"
msgstr ""
#: ../../addon/libravatar/libravatar.php:74
#: ../../addon/gravatar/gravatar.php:72
#: ../../addon.old/libravatar/libravatar.php:74
#: ../../addon.old/gravatar/gravatar.php:72
msgid "random geometric pattern"
msgstr ""
#: ../../addon/libravatar/libravatar.php:75
#: ../../addon/gravatar/gravatar.php:73
#: ../../addon.old/libravatar/libravatar.php:75
#: ../../addon.old/gravatar/gravatar.php:73
msgid "monster face"
msgstr ""
#: ../../addon/libravatar/libravatar.php:76
#: ../../addon/gravatar/gravatar.php:74
#: ../../addon.old/libravatar/libravatar.php:76
#: ../../addon.old/gravatar/gravatar.php:74
msgid "computer generated face"
msgstr ""
#: ../../addon/libravatar/libravatar.php:77
#: ../../addon/gravatar/gravatar.php:75
#: ../../addon.old/libravatar/libravatar.php:77
#: ../../addon.old/gravatar/gravatar.php:75
msgid "retro arcade style face"
msgstr ""
#: ../../addon/libravatar/libravatar.php:83
#: ../../addon.old/libravatar/libravatar.php:83
#, php-format
msgid "Your PHP version %s is lower than the required PHP >= 5.3."
msgstr ""
#: ../../addon/libravatar/libravatar.php:84
#: ../../addon.old/libravatar/libravatar.php:84
msgid "This addon is not functional on your server."
msgstr ""
#: ../../addon/libravatar/libravatar.php:93
#: ../../addon/gravatar/gravatar.php:89
#: ../../addon.old/libravatar/libravatar.php:93
#: ../../addon.old/gravatar/gravatar.php:89
msgid "Information"
msgstr ""
#: ../../addon/libravatar/libravatar.php:93
#: ../../addon.old/libravatar/libravatar.php:93
msgid ""
"Gravatar addon is installed. Please disable the Gravatar addon.<br>The "
"Libravatar addon will fall back to Gravatar if nothing was found at "
"Libravatar."
msgstr ""
#: ../../addon/libravatar/libravatar.php:100
#: ../../addon/gravatar/gravatar.php:96
#: ../../addon.old/libravatar/libravatar.php:100
#: ../../addon.old/gravatar/gravatar.php:96
msgid "Default avatar image"
msgstr ""
#: ../../addon/libravatar/libravatar.php:100
#: ../../addon.old/libravatar/libravatar.php:100
msgid "Select default avatar image if none was found. See README"
msgstr ""
#: ../../addon/libravatar/libravatar.php:112
#: ../../addon.old/libravatar/libravatar.php:112
msgid "Libravatar settings updated."
msgstr ""
#: ../../addon/libertree/libertree.php:36
#: ../../addon.old/libertree/libertree.php:36
msgid "Post to libertree"
msgstr ""
#: ../../addon/libertree/libertree.php:67
#: ../../addon.old/libertree/libertree.php:67
msgid "libertree Post Settings"
msgstr ""
#: ../../addon/libertree/libertree.php:69
#: ../../addon.old/libertree/libertree.php:69
msgid "Enable Libertree Post Plugin"
msgstr ""
#: ../../addon/libertree/libertree.php:74
#: ../../addon.old/libertree/libertree.php:74
msgid "Libertree API token"
msgstr ""
#: ../../addon/libertree/libertree.php:79
#: ../../addon.old/libertree/libertree.php:79
msgid "Libertree site URL"
msgstr ""
#: ../../addon/libertree/libertree.php:84
#: ../../addon.old/libertree/libertree.php:84
msgid "Post to Libertree by default"
msgstr ""
#: ../../addon/mathjax/mathjax.php:37
#: ../../addon/altpager/altpager.php:46
#: ../../addon.old/altpager/altpager.php:46
msgid "Altpager settings updated."
msgstr ""
#: ../../addon/altpager/altpager.php:79
#: ../../addon.old/altpager/altpager.php:79
msgid "Alternate Pagination Setting"
msgstr ""
#: ../../addon/altpager/altpager.php:81
#: ../../addon.old/altpager/altpager.php:81
msgid "Use links to \"newer\" and \"older\" pages in place of page numbers?"
msgstr ""
#: ../../addon/mathjax/mathjax.php:37 ../../addon.old/mathjax/mathjax.php:37
msgid ""
"The MathJax addon renders mathematical formulae written using the LaTeX "
"syntax surrounded by the usual $$ or an eqnarray block in the postings of "
"your wall,network tab and private mail."
msgstr ""
#: ../../addon/mathjax/mathjax.php:38
#: ../../addon/mathjax/mathjax.php:38 ../../addon.old/mathjax/mathjax.php:38
msgid "Use the MathJax renderer"
msgstr ""
#: ../../addon/mathjax/mathjax.php:74
#: ../../addon/mathjax/mathjax.php:74 ../../addon.old/mathjax/mathjax.php:74
msgid "MathJax Base URL"
msgstr ""
#: ../../addon/mathjax/mathjax.php:74
#: ../../addon/mathjax/mathjax.php:74 ../../addon.old/mathjax/mathjax.php:74
msgid ""
"The URL for the javascript file that should be included to use MathJax. Can "
"be either the MathJax CDN or another installation of MathJax."
msgstr ""
#: ../../addon/editplain/editplain.php:46
msgid "Editplain settings updated."
msgstr ""
#: ../../addon/editplain/editplain.php:76
#: ../../addon.old/editplain/editplain.php:76
msgid "Editplain Settings"
msgstr ""
#: ../../addon/editplain/editplain.php:78
#: ../../addon.old/editplain/editplain.php:78
msgid "Disable richtext status editor"
msgstr ""
#: ../../addon/gravatar/gravatar.php:71
msgid "generic profile image"
#: ../../addon/gravatar/gravatar.php:89
#: ../../addon.old/gravatar/gravatar.php:89
msgid ""
"Libravatar addon is installed, too. Please disable Libravatar addon or this "
"Gravatar addon.<br>The Libravatar addon will fall back to Gravatar if "
"nothing was found at Libravatar."
msgstr ""
#: ../../addon/gravatar/gravatar.php:72
msgid "random geometric pattern"
msgstr ""
#: ../../addon/gravatar/gravatar.php:73
msgid "monster face"
msgstr ""
#: ../../addon/gravatar/gravatar.php:74
msgid "computer generated face"
msgstr ""
#: ../../addon/gravatar/gravatar.php:75
msgid "retro arcade style face"
msgstr ""
#: ../../addon/gravatar/gravatar.php:87
msgid "Default avatar image"
msgstr ""
#: ../../addon/gravatar/gravatar.php:87
#: ../../addon/gravatar/gravatar.php:96
#: ../../addon.old/gravatar/gravatar.php:96
msgid "Select default avatar image if none was found at Gravatar. See README"
msgstr ""
#: ../../addon/gravatar/gravatar.php:88
#: ../../addon/gravatar/gravatar.php:97
#: ../../addon.old/gravatar/gravatar.php:97
msgid "Rating of images"
msgstr ""
#: ../../addon/gravatar/gravatar.php:88
#: ../../addon/gravatar/gravatar.php:97
#: ../../addon.old/gravatar/gravatar.php:97
msgid "Select the appropriate avatar rating for your site. See README"
msgstr ""
#: ../../addon/gravatar/gravatar.php:102
#: ../../addon/gravatar/gravatar.php:111
#: ../../addon.old/gravatar/gravatar.php:111
msgid "Gravatar settings updated."
msgstr ""
#: ../../addon/testdrive/testdrive.php:95
#: ../../addon.old/testdrive/testdrive.php:95
msgid "Your Friendica test account is about to expire."
msgstr ""
#: ../../addon/testdrive/testdrive.php:96
#: ../../addon.old/testdrive/testdrive.php:96
#, php-format
msgid ""
"Hi %1$s,\n"
@ -5640,68 +6953,142 @@ msgid ""
msgstr ""
#: ../../addon/pageheader/pageheader.php:50
#: ../../addon.old/pageheader/pageheader.php:50
msgid "\"pageheader\" Settings"
msgstr ""
#: ../../addon/pageheader/pageheader.php:68
#: ../../addon.old/pageheader/pageheader.php:68
msgid "pageheader Settings saved."
msgstr ""
#: ../../addon/ijpost/ijpost.php:39
#: ../../addon/ijpost/ijpost.php:39 ../../addon.old/ijpost/ijpost.php:39
msgid "Post to Insanejournal"
msgstr ""
#: ../../addon/ijpost/ijpost.php:70
#: ../../addon/ijpost/ijpost.php:70 ../../addon.old/ijpost/ijpost.php:70
msgid "InsaneJournal Post Settings"
msgstr ""
#: ../../addon/ijpost/ijpost.php:72
#: ../../addon/ijpost/ijpost.php:72 ../../addon.old/ijpost/ijpost.php:72
msgid "Enable InsaneJournal Post Plugin"
msgstr ""
#: ../../addon/ijpost/ijpost.php:77
#: ../../addon/ijpost/ijpost.php:77 ../../addon.old/ijpost/ijpost.php:77
msgid "InsaneJournal username"
msgstr ""
#: ../../addon/ijpost/ijpost.php:82
#: ../../addon/ijpost/ijpost.php:82 ../../addon.old/ijpost/ijpost.php:82
msgid "InsaneJournal password"
msgstr ""
#: ../../addon/ijpost/ijpost.php:87
#: ../../addon/ijpost/ijpost.php:87 ../../addon.old/ijpost/ijpost.php:87
msgid "Post to InsaneJournal by default"
msgstr ""
#: ../../addon/viewsrc/viewsrc.php:37
#: ../../addon/jappixmini/jappixmini.php:266
#: ../../addon.old/jappixmini/jappixmini.php:266
msgid "Jappix Mini addon settings"
msgstr ""
#: ../../addon/jappixmini/jappixmini.php:268
#: ../../addon.old/jappixmini/jappixmini.php:268
msgid "Activate addon"
msgstr ""
#: ../../addon/jappixmini/jappixmini.php:271
#: ../../addon.old/jappixmini/jappixmini.php:271
msgid "Do <em>not</em> insert the Jappixmini Chat-Widget into the webinterface"
msgstr ""
#: ../../addon/jappixmini/jappixmini.php:274
#: ../../addon.old/jappixmini/jappixmini.php:274
msgid "Jabber username"
msgstr ""
#: ../../addon/jappixmini/jappixmini.php:277
#: ../../addon.old/jappixmini/jappixmini.php:277
msgid "Jabber server"
msgstr ""
#: ../../addon/jappixmini/jappixmini.php:281
#: ../../addon.old/jappixmini/jappixmini.php:281
msgid "Jabber BOSH host"
msgstr ""
#: ../../addon/jappixmini/jappixmini.php:285
#: ../../addon.old/jappixmini/jappixmini.php:285
msgid "Jabber password"
msgstr ""
#: ../../addon/jappixmini/jappixmini.php:290
#: ../../addon.old/jappixmini/jappixmini.php:290
msgid "Encrypt Jabber password with Friendica password (recommended)"
msgstr ""
#: ../../addon/jappixmini/jappixmini.php:293
#: ../../addon.old/jappixmini/jappixmini.php:293
msgid "Friendica password"
msgstr ""
#: ../../addon/jappixmini/jappixmini.php:296
#: ../../addon.old/jappixmini/jappixmini.php:296
msgid "Approve subscription requests from Friendica contacts automatically"
msgstr ""
#: ../../addon/jappixmini/jappixmini.php:299
#: ../../addon.old/jappixmini/jappixmini.php:299
msgid "Subscribe to Friendica contacts automatically"
msgstr ""
#: ../../addon/jappixmini/jappixmini.php:302
#: ../../addon.old/jappixmini/jappixmini.php:302
msgid "Purge internal list of jabber addresses of contacts"
msgstr ""
#: ../../addon/jappixmini/jappixmini.php:308
#: ../../addon.old/jappixmini/jappixmini.php:308
msgid "Add contact"
msgstr ""
#: ../../addon/viewsrc/viewsrc.php:37 ../../addon.old/viewsrc/viewsrc.php:37
msgid "View Source"
msgstr ""
#: ../../addon/statusnet/statusnet.php:134
#: ../../addon.old/statusnet/statusnet.php:134
msgid "Post to StatusNet"
msgstr ""
#: ../../addon/statusnet/statusnet.php:176
#: ../../addon.old/statusnet/statusnet.php:176
msgid ""
"Please contact your site administrator.<br />The provided API URL is not "
"valid."
msgstr ""
#: ../../addon/statusnet/statusnet.php:204
#: ../../addon.old/statusnet/statusnet.php:204
msgid "We could not contact the StatusNet API with the Path you entered."
msgstr ""
#: ../../addon/statusnet/statusnet.php:232
#: ../../addon.old/statusnet/statusnet.php:232
msgid "StatusNet settings updated."
msgstr ""
#: ../../addon/statusnet/statusnet.php:257
#: ../../addon.old/statusnet/statusnet.php:257
msgid "StatusNet Posting Settings"
msgstr ""
#: ../../addon/statusnet/statusnet.php:271
#: ../../addon.old/statusnet/statusnet.php:271
msgid "Globally Available StatusNet OAuthKeys"
msgstr ""
#: ../../addon/statusnet/statusnet.php:272
#: ../../addon.old/statusnet/statusnet.php:272
msgid ""
"There are preconfigured OAuth key pairs for some StatusNet servers "
"available. If you are useing one of them, please use these credentials. If "
@ -5709,10 +7096,12 @@ msgid ""
msgstr ""
#: ../../addon/statusnet/statusnet.php:280
#: ../../addon.old/statusnet/statusnet.php:280
msgid "Provide your own OAuth Credentials"
msgstr ""
#: ../../addon/statusnet/statusnet.php:281
#: ../../addon.old/statusnet/statusnet.php:281
msgid ""
"No consumer key pair for StatusNet found. Register your Friendica Account as "
"an desktop client on your StatusNet account, copy the consumer key pair here "
@ -5722,18 +7111,22 @@ msgid ""
msgstr ""
#: ../../addon/statusnet/statusnet.php:283
#: ../../addon.old/statusnet/statusnet.php:283
msgid "OAuth Consumer Key"
msgstr ""
#: ../../addon/statusnet/statusnet.php:286
#: ../../addon.old/statusnet/statusnet.php:286
msgid "OAuth Consumer Secret"
msgstr ""
#: ../../addon/statusnet/statusnet.php:289
#: ../../addon.old/statusnet/statusnet.php:289
msgid "Base API Path (remember the trailing /)"
msgstr ""
#: ../../addon/statusnet/statusnet.php:310
#: ../../addon.old/statusnet/statusnet.php:310
msgid ""
"To connect to your StatusNet account click the button below to get a "
"security code from StatusNet which you have to copy into the input box below "
@ -5742,30 +7135,38 @@ msgid ""
msgstr ""
#: ../../addon/statusnet/statusnet.php:311
#: ../../addon.old/statusnet/statusnet.php:311
msgid "Log in with StatusNet"
msgstr ""
#: ../../addon/statusnet/statusnet.php:313
#: ../../addon.old/statusnet/statusnet.php:313
msgid "Copy the security code from StatusNet here"
msgstr ""
#: ../../addon/statusnet/statusnet.php:319
#: ../../addon.old/statusnet/statusnet.php:319
msgid "Cancel Connection Process"
msgstr ""
#: ../../addon/statusnet/statusnet.php:321
#: ../../addon.old/statusnet/statusnet.php:321
msgid "Current StatusNet API is"
msgstr ""
#: ../../addon/statusnet/statusnet.php:322
#: ../../addon.old/statusnet/statusnet.php:322
msgid "Cancel StatusNet Connection"
msgstr ""
#: ../../addon/statusnet/statusnet.php:333 ../../addon/twitter/twitter.php:189
#: ../../addon.old/statusnet/statusnet.php:333
#: ../../addon.old/twitter/twitter.php:189
msgid "Currently connected to: "
msgstr ""
#: ../../addon/statusnet/statusnet.php:334
#: ../../addon.old/statusnet/statusnet.php:334
msgid ""
"If enabled all your <strong>public</strong> postings can be posted to the "
"associated StatusNet account. You can choose to do so by default (here) or "
@ -5773,6 +7174,7 @@ msgid ""
msgstr ""
#: ../../addon/statusnet/statusnet.php:336
#: ../../addon.old/statusnet/statusnet.php:336
msgid ""
"<strong>Note</strong>: Due your privacy settings (<em>Hide your profile "
"details from unknown viewers?</em>) the link potentially included in public "
@ -5781,147 +7183,169 @@ msgid ""
msgstr ""
#: ../../addon/statusnet/statusnet.php:339
#: ../../addon.old/statusnet/statusnet.php:339
msgid "Allow posting to StatusNet"
msgstr ""
#: ../../addon/statusnet/statusnet.php:342
#: ../../addon.old/statusnet/statusnet.php:342
msgid "Send public postings to StatusNet by default"
msgstr ""
#: ../../addon/statusnet/statusnet.php:345
#: ../../addon.old/statusnet/statusnet.php:345
msgid "Send linked #-tags and @-names to StatusNet"
msgstr ""
#: ../../addon/statusnet/statusnet.php:350 ../../addon/twitter/twitter.php:206
#: ../../addon.old/statusnet/statusnet.php:350
#: ../../addon.old/twitter/twitter.php:206
msgid "Clear OAuth configuration"
msgstr ""
#: ../../addon/statusnet/statusnet.php:559
#: ../../addon/statusnet/statusnet.php:568
#: ../../addon.old/statusnet/statusnet.php:568
msgid "API URL"
msgstr ""
#: ../../addon/infiniteimprobabilitydrive/infiniteimprobabilitydrive.php:19
#: ../../addon.old/infiniteimprobabilitydrive/infiniteimprobabilitydrive.php:19
msgid "Infinite Improbability Drive"
msgstr ""
#: ../../addon/tumblr/tumblr.php:36
#: ../../addon/tumblr/tumblr.php:36 ../../addon.old/tumblr/tumblr.php:36
msgid "Post to Tumblr"
msgstr ""
#: ../../addon/tumblr/tumblr.php:67
#: ../../addon/tumblr/tumblr.php:67 ../../addon.old/tumblr/tumblr.php:67
msgid "Tumblr Post Settings"
msgstr ""
#: ../../addon/tumblr/tumblr.php:69
#: ../../addon/tumblr/tumblr.php:69 ../../addon.old/tumblr/tumblr.php:69
msgid "Enable Tumblr Post Plugin"
msgstr ""
#: ../../addon/tumblr/tumblr.php:74
#: ../../addon/tumblr/tumblr.php:74 ../../addon.old/tumblr/tumblr.php:74
msgid "Tumblr login"
msgstr ""
#: ../../addon/tumblr/tumblr.php:79
#: ../../addon/tumblr/tumblr.php:79 ../../addon.old/tumblr/tumblr.php:79
msgid "Tumblr password"
msgstr ""
#: ../../addon/tumblr/tumblr.php:84
#: ../../addon/tumblr/tumblr.php:84 ../../addon.old/tumblr/tumblr.php:84
msgid "Post to Tumblr by default"
msgstr ""
#: ../../addon/numfriends/numfriends.php:46
#: ../../addon.old/numfriends/numfriends.php:46
msgid "Numfriends settings updated."
msgstr ""
#: ../../addon/numfriends/numfriends.php:77
#: ../../addon.old/numfriends/numfriends.php:77
msgid "Numfriends Settings"
msgstr ""
#: ../../addon/numfriends/numfriends.php:79
#: ../../addon/numfriends/numfriends.php:79 ../../addon.old/bg/bg.php:84
#: ../../addon.old/numfriends/numfriends.php:79
msgid "How many contacts to display on profile sidebar"
msgstr ""
#: ../../addon/gnot/gnot.php:48
#: ../../addon/gnot/gnot.php:48 ../../addon.old/gnot/gnot.php:48
msgid "Gnot settings updated."
msgstr ""
#: ../../addon/gnot/gnot.php:79
#: ../../addon/gnot/gnot.php:79 ../../addon.old/gnot/gnot.php:79
msgid "Gnot Settings"
msgstr ""
#: ../../addon/gnot/gnot.php:81
#: ../../addon/gnot/gnot.php:81 ../../addon.old/gnot/gnot.php:81
msgid ""
"Allows threading of email comment notifications on Gmail and anonymising the "
"subject line."
msgstr ""
#: ../../addon/gnot/gnot.php:82
#: ../../addon/gnot/gnot.php:82 ../../addon.old/gnot/gnot.php:82
msgid "Enable this plugin/addon?"
msgstr ""
#: ../../addon/gnot/gnot.php:97
#: ../../addon/gnot/gnot.php:97 ../../addon.old/gnot/gnot.php:97
#, php-format
msgid "[Friendica:Notify] Comment to conversation #%d"
msgstr ""
#: ../../addon/wppost/wppost.php:42
#: ../../addon/wppost/wppost.php:42 ../../addon.old/wppost/wppost.php:42
msgid "Post to Wordpress"
msgstr ""
#: ../../addon/wppost/wppost.php:76
#: ../../addon/wppost/wppost.php:76 ../../addon.old/wppost/wppost.php:76
msgid "WordPress Post Settings"
msgstr ""
#: ../../addon/wppost/wppost.php:78
#: ../../addon/wppost/wppost.php:78 ../../addon.old/wppost/wppost.php:78
msgid "Enable WordPress Post Plugin"
msgstr ""
#: ../../addon/wppost/wppost.php:83
#: ../../addon/wppost/wppost.php:83 ../../addon.old/wppost/wppost.php:83
msgid "WordPress username"
msgstr ""
#: ../../addon/wppost/wppost.php:88
#: ../../addon/wppost/wppost.php:88 ../../addon.old/wppost/wppost.php:88
msgid "WordPress password"
msgstr ""
#: ../../addon/wppost/wppost.php:93
#: ../../addon/wppost/wppost.php:93 ../../addon.old/wppost/wppost.php:93
msgid "WordPress API URL"
msgstr ""
#: ../../addon/wppost/wppost.php:98
#: ../../addon/wppost/wppost.php:98 ../../addon.old/wppost/wppost.php:98
msgid "Post to WordPress by default"
msgstr ""
#: ../../addon/wppost/wppost.php:103
#: ../../addon/wppost/wppost.php:103 ../../addon.old/wppost/wppost.php:103
msgid "Provide a backlink to the Friendica post"
msgstr ""
#: ../../addon/wppost/wppost.php:207
#: ../../addon/wppost/wppost.php:201 ../../addon/blogger/blogger.php:172
#: ../../addon/posterous/posterous.php:189
#: ../../addon.old/drpost/drpost.php:184 ../../addon.old/wppost/wppost.php:201
#: ../../addon.old/blogger/blogger.php:172
#: ../../addon.old/posterous/posterous.php:189
msgid "Post from Friendica"
msgstr ""
#: ../../addon/wppost/wppost.php:207 ../../addon.old/wppost/wppost.php:207
msgid "Read the original post and comment stream on Friendica"
msgstr ""
#: ../../addon/showmore/showmore.php:38
#: ../../addon.old/showmore/showmore.php:38
msgid "\"Show more\" Settings"
msgstr ""
#: ../../addon/showmore/showmore.php:41
#: ../../addon.old/showmore/showmore.php:41
msgid "Enable Show More"
msgstr ""
#: ../../addon/showmore/showmore.php:44
#: ../../addon.old/showmore/showmore.php:44
msgid "Cutting posts after how much characters"
msgstr ""
#: ../../addon/showmore/showmore.php:65
#: ../../addon.old/showmore/showmore.php:65
msgid "Show More Settings saved."
msgstr ""
#: ../../addon/piwik/piwik.php:79
#: ../../addon/piwik/piwik.php:79 ../../addon.old/piwik/piwik.php:79
msgid ""
"This website is tracked using the <a href='http://www.piwik.org'>Piwik</a> "
"analytics tool."
msgstr ""
#: ../../addon/piwik/piwik.php:82
#: ../../addon/piwik/piwik.php:82 ../../addon.old/piwik/piwik.php:82
#, php-format
msgid ""
"If you do not want that your visits are logged this way you <a href='%s'>can "
@ -5929,47 +7353,47 @@ msgid ""
"(opt-out)."
msgstr ""
#: ../../addon/piwik/piwik.php:90
#: ../../addon/piwik/piwik.php:90 ../../addon.old/piwik/piwik.php:90
msgid "Piwik Base URL"
msgstr ""
#: ../../addon/piwik/piwik.php:90
#: ../../addon/piwik/piwik.php:90 ../../addon.old/piwik/piwik.php:90
msgid ""
"Absolute path to your Piwik installation. (without protocol (http/s), with "
"trailing slash)"
msgstr ""
#: ../../addon/piwik/piwik.php:91
#: ../../addon/piwik/piwik.php:91 ../../addon.old/piwik/piwik.php:91
msgid "Site ID"
msgstr ""
#: ../../addon/piwik/piwik.php:92
#: ../../addon/piwik/piwik.php:92 ../../addon.old/piwik/piwik.php:92
msgid "Show opt-out cookie link?"
msgstr ""
#: ../../addon/piwik/piwik.php:93
#: ../../addon/piwik/piwik.php:93 ../../addon.old/piwik/piwik.php:93
msgid "Asynchronous tracking"
msgstr ""
#: ../../addon/twitter/twitter.php:73
#: ../../addon/twitter/twitter.php:73 ../../addon.old/twitter/twitter.php:73
msgid "Post to Twitter"
msgstr ""
#: ../../addon/twitter/twitter.php:122
#: ../../addon/twitter/twitter.php:122 ../../addon.old/twitter/twitter.php:122
msgid "Twitter settings updated."
msgstr ""
#: ../../addon/twitter/twitter.php:146
#: ../../addon/twitter/twitter.php:146 ../../addon.old/twitter/twitter.php:146
msgid "Twitter Posting Settings"
msgstr ""
#: ../../addon/twitter/twitter.php:153
#: ../../addon/twitter/twitter.php:153 ../../addon.old/twitter/twitter.php:153
msgid ""
"No consumer key pair for Twitter found. Please contact your site "
"administrator."
msgstr ""
#: ../../addon/twitter/twitter.php:172
#: ../../addon/twitter/twitter.php:172 ../../addon.old/twitter/twitter.php:172
msgid ""
"At this Friendica instance the Twitter plugin was enabled but you have not "
"yet connected your account to your Twitter account. To do so click the "
@ -5978,22 +7402,22 @@ msgid ""
"be posted to Twitter."
msgstr ""
#: ../../addon/twitter/twitter.php:173
#: ../../addon/twitter/twitter.php:173 ../../addon.old/twitter/twitter.php:173
msgid "Log in with Twitter"
msgstr ""
#: ../../addon/twitter/twitter.php:175
#: ../../addon/twitter/twitter.php:175 ../../addon.old/twitter/twitter.php:175
msgid "Copy the PIN from Twitter here"
msgstr ""
#: ../../addon/twitter/twitter.php:190
#: ../../addon/twitter/twitter.php:190 ../../addon.old/twitter/twitter.php:190
msgid ""
"If enabled all your <strong>public</strong> postings can be posted to the "
"associated Twitter account. You can choose to do so by default (here) or for "
"every posting separately in the posting options when writing the entry."
msgstr ""
#: ../../addon/twitter/twitter.php:192
#: ../../addon/twitter/twitter.php:192 ../../addon.old/twitter/twitter.php:192
msgid ""
"<strong>Note</strong>: Due your privacy settings (<em>Hide your profile "
"details from unknown viewers?</em>) the link potentially included in public "
@ -6001,113 +7425,138 @@ msgid ""
"the visitor that the access to your profile has been restricted."
msgstr ""
#: ../../addon/twitter/twitter.php:195
#: ../../addon/twitter/twitter.php:195 ../../addon.old/twitter/twitter.php:195
msgid "Allow posting to Twitter"
msgstr ""
#: ../../addon/twitter/twitter.php:198
#: ../../addon/twitter/twitter.php:198 ../../addon.old/twitter/twitter.php:198
msgid "Send public postings to Twitter by default"
msgstr ""
#: ../../addon/twitter/twitter.php:201
#: ../../addon/twitter/twitter.php:201 ../../addon.old/twitter/twitter.php:201
msgid "Send linked #-tags and @-names to Twitter"
msgstr ""
#: ../../addon/twitter/twitter.php:389
#: ../../addon/twitter/twitter.php:396 ../../addon.old/twitter/twitter.php:396
msgid "Consumer key"
msgstr ""
#: ../../addon/twitter/twitter.php:390
#: ../../addon/twitter/twitter.php:397 ../../addon.old/twitter/twitter.php:397
msgid "Consumer secret"
msgstr ""
#: ../../addon/irc/irc.php:44
#: ../../addon/irc/irc.php:44 ../../addon.old/irc/irc.php:44
msgid "IRC Settings"
msgstr ""
#: ../../addon/irc/irc.php:46
#: ../../addon/irc/irc.php:46 ../../addon.old/irc/irc.php:46
msgid "Channel(s) to auto connect (comma separated)"
msgstr ""
#: ../../addon/irc/irc.php:51
#: ../../addon/irc/irc.php:51 ../../addon.old/irc/irc.php:51
msgid "Popular Channels (comma separated)"
msgstr ""
#: ../../addon/irc/irc.php:69
#: ../../addon/irc/irc.php:69 ../../addon.old/irc/irc.php:69
msgid "IRC settings saved."
msgstr ""
#: ../../addon/irc/irc.php:74
#: ../../addon/irc/irc.php:74 ../../addon.old/irc/irc.php:74
msgid "IRC Chatroom"
msgstr ""
#: ../../addon/irc/irc.php:96
#: ../../addon/irc/irc.php:96 ../../addon.old/irc/irc.php:96
msgid "Popular Channels"
msgstr ""
#: ../../addon/blogger/blogger.php:42
#: ../../addon/fromapp/fromapp.php:38 ../../addon.old/fromapp/fromapp.php:38
msgid "Fromapp settings updated."
msgstr ""
#: ../../addon/fromapp/fromapp.php:64 ../../addon.old/fromapp/fromapp.php:64
msgid "FromApp Settings"
msgstr ""
#: ../../addon/fromapp/fromapp.php:66 ../../addon.old/fromapp/fromapp.php:66
msgid ""
"The application name you would like to show your posts originating from."
msgstr ""
#: ../../addon/fromapp/fromapp.php:70 ../../addon.old/fromapp/fromapp.php:70
msgid "Use this application name even if another application was used."
msgstr ""
#: ../../addon/blogger/blogger.php:42 ../../addon.old/blogger/blogger.php:42
msgid "Post to blogger"
msgstr ""
#: ../../addon/blogger/blogger.php:74
#: ../../addon/blogger/blogger.php:74 ../../addon.old/blogger/blogger.php:74
msgid "Blogger Post Settings"
msgstr ""
#: ../../addon/blogger/blogger.php:76
#: ../../addon/blogger/blogger.php:76 ../../addon.old/blogger/blogger.php:76
msgid "Enable Blogger Post Plugin"
msgstr ""
#: ../../addon/blogger/blogger.php:81
#: ../../addon/blogger/blogger.php:81 ../../addon.old/blogger/blogger.php:81
msgid "Blogger username"
msgstr ""
#: ../../addon/blogger/blogger.php:86
#: ../../addon/blogger/blogger.php:86 ../../addon.old/blogger/blogger.php:86
msgid "Blogger password"
msgstr ""
#: ../../addon/blogger/blogger.php:91
#: ../../addon/blogger/blogger.php:91 ../../addon.old/blogger/blogger.php:91
msgid "Blogger API URL"
msgstr ""
#: ../../addon/blogger/blogger.php:96
#: ../../addon/blogger/blogger.php:96 ../../addon.old/blogger/blogger.php:96
msgid "Post to Blogger by default"
msgstr ""
#: ../../addon/posterous/posterous.php:37
#: ../../addon.old/posterous/posterous.php:37
msgid "Post to Posterous"
msgstr ""
#: ../../addon/posterous/posterous.php:70
#: ../../addon.old/posterous/posterous.php:70
msgid "Posterous Post Settings"
msgstr ""
#: ../../addon/posterous/posterous.php:72
#: ../../addon.old/posterous/posterous.php:72
msgid "Enable Posterous Post Plugin"
msgstr ""
#: ../../addon/posterous/posterous.php:77
#: ../../addon.old/posterous/posterous.php:77
msgid "Posterous login"
msgstr ""
#: ../../addon/posterous/posterous.php:82
#: ../../addon.old/posterous/posterous.php:82
msgid "Posterous password"
msgstr ""
#: ../../addon/posterous/posterous.php:87
#: ../../addon.old/posterous/posterous.php:87
msgid "Posterous site ID"
msgstr ""
#: ../../addon/posterous/posterous.php:92
#: ../../addon.old/posterous/posterous.php:92
msgid "Posterous API token"
msgstr ""
#: ../../addon/posterous/posterous.php:97
#: ../../addon.old/posterous/posterous.php:97
msgid "Post to Posterous by default"
msgstr ""
#: ../../view/theme/cleanzero/config.php:82
#: ../../view/theme/diabook/config.php:192
#: ../../view/theme/quattro/config.php:54 ../../view/theme/dispy/config.php:72
#: ../../view/theme/diabook/config.php:154
#: ../../view/theme/quattro/config.php:66 ../../view/theme/dispy/config.php:72
msgid "Theme settings"
msgstr ""
@ -6116,7 +7565,7 @@ msgid "Set resize level for images in posts and comments (width and height)"
msgstr ""
#: ../../view/theme/cleanzero/config.php:84
#: ../../view/theme/diabook/config.php:193
#: ../../view/theme/diabook/config.php:155
#: ../../view/theme/dispy/config.php:73
msgid "Set font-size for posts and comments"
msgstr ""
@ -6126,193 +7575,183 @@ msgid "Set theme width"
msgstr ""
#: ../../view/theme/cleanzero/config.php:86
#: ../../view/theme/quattro/config.php:56
#: ../../view/theme/quattro/config.php:68
msgid "Color scheme"
msgstr ""
#: ../../view/theme/diabook/theme.php:127 ../../include/nav.php:49
#: ../../view/theme/diabook/theme.php:86 ../../include/nav.php:49
#: ../../include/nav.php:115
msgid "Your posts and conversations"
msgstr ""
#: ../../view/theme/diabook/theme.php:128 ../../include/nav.php:50
#: ../../view/theme/diabook/theme.php:87 ../../include/nav.php:50
msgid "Your profile page"
msgstr ""
#: ../../view/theme/diabook/theme.php:129
#: ../../view/theme/diabook/theme.php:88
msgid "Your contacts"
msgstr ""
#: ../../view/theme/diabook/theme.php:130 ../../include/nav.php:51
#: ../../view/theme/diabook/theme.php:89 ../../include/nav.php:51
msgid "Your photos"
msgstr ""
#: ../../view/theme/diabook/theme.php:131 ../../include/nav.php:52
#: ../../view/theme/diabook/theme.php:90 ../../include/nav.php:52
msgid "Your events"
msgstr ""
#: ../../view/theme/diabook/theme.php:132 ../../include/nav.php:53
#: ../../view/theme/diabook/theme.php:91 ../../include/nav.php:53
msgid "Personal notes"
msgstr ""
#: ../../view/theme/diabook/theme.php:132 ../../include/nav.php:53
#: ../../view/theme/diabook/theme.php:91 ../../include/nav.php:53
msgid "Your personal photos"
msgstr ""
#: ../../view/theme/diabook/theme.php:134
#: ../../view/theme/diabook/theme.php:643
#: ../../view/theme/diabook/theme.php:747
#: ../../view/theme/diabook/config.php:201
#: ../../view/theme/diabook/theme.php:93
#: ../../view/theme/diabook/config.php:163
msgid "Community Pages"
msgstr ""
#: ../../view/theme/diabook/theme.php:490
#: ../../view/theme/diabook/theme.php:749
#: ../../view/theme/diabook/config.php:203
#: ../../view/theme/diabook/theme.php:377
#: ../../view/theme/diabook/theme.php:591
#: ../../view/theme/diabook/config.php:165
msgid "Community Profiles"
msgstr ""
#: ../../view/theme/diabook/theme.php:511
#: ../../view/theme/diabook/theme.php:754
#: ../../view/theme/diabook/config.php:208
#: ../../view/theme/diabook/theme.php:398
#: ../../view/theme/diabook/theme.php:596
#: ../../view/theme/diabook/config.php:170
msgid "Last users"
msgstr ""
#: ../../view/theme/diabook/theme.php:540
#: ../../view/theme/diabook/theme.php:756
#: ../../view/theme/diabook/config.php:210
#: ../../view/theme/diabook/theme.php:427
#: ../../view/theme/diabook/theme.php:598
#: ../../view/theme/diabook/config.php:172
msgid "Last likes"
msgstr ""
#: ../../view/theme/diabook/theme.php:585
#: ../../view/theme/diabook/theme.php:755
#: ../../view/theme/diabook/config.php:209
#: ../../view/theme/diabook/theme.php:472
#: ../../view/theme/diabook/theme.php:597
#: ../../view/theme/diabook/config.php:171
msgid "Last photos"
msgstr ""
#: ../../view/theme/diabook/theme.php:622
#: ../../view/theme/diabook/theme.php:752
#: ../../view/theme/diabook/config.php:206
#: ../../view/theme/diabook/theme.php:509
#: ../../view/theme/diabook/theme.php:594
#: ../../view/theme/diabook/config.php:168
msgid "Find Friends"
msgstr ""
#: ../../view/theme/diabook/theme.php:623
#: ../../view/theme/diabook/theme.php:510
msgid "Local Directory"
msgstr ""
#: ../../view/theme/diabook/theme.php:625 ../../include/contact_widgets.php:35
#: ../../view/theme/diabook/theme.php:512 ../../include/contact_widgets.php:35
msgid "Similar Interests"
msgstr ""
#: ../../view/theme/diabook/theme.php:627 ../../include/contact_widgets.php:37
#: ../../view/theme/diabook/theme.php:514 ../../include/contact_widgets.php:37
msgid "Invite Friends"
msgstr ""
#: ../../view/theme/diabook/theme.php:678
#: ../../view/theme/diabook/theme.php:748
#: ../../view/theme/diabook/config.php:202
#: ../../view/theme/diabook/theme.php:531
#: ../../view/theme/diabook/theme.php:590
#: ../../view/theme/diabook/config.php:164
msgid "Earth Layers"
msgstr ""
#: ../../view/theme/diabook/theme.php:683
#: ../../view/theme/diabook/theme.php:536
msgid "Set zoomfactor for Earth Layers"
msgstr ""
#: ../../view/theme/diabook/theme.php:684
#: ../../view/theme/diabook/config.php:199
#: ../../view/theme/diabook/theme.php:537
#: ../../view/theme/diabook/config.php:161
msgid "Set longitude (X) for Earth Layers"
msgstr ""
#: ../../view/theme/diabook/theme.php:685
#: ../../view/theme/diabook/config.php:200
#: ../../view/theme/diabook/theme.php:538
#: ../../view/theme/diabook/config.php:162
msgid "Set latitude (Y) for Earth Layers"
msgstr ""
#: ../../view/theme/diabook/theme.php:698
#: ../../view/theme/diabook/theme.php:750
#: ../../view/theme/diabook/config.php:204
#: ../../view/theme/diabook/theme.php:551
#: ../../view/theme/diabook/theme.php:592
#: ../../view/theme/diabook/config.php:166
msgid "Help or @NewHere ?"
msgstr ""
#: ../../view/theme/diabook/theme.php:705
#: ../../view/theme/diabook/theme.php:751
#: ../../view/theme/diabook/config.php:205
#: ../../view/theme/diabook/theme.php:558
#: ../../view/theme/diabook/theme.php:593
#: ../../view/theme/diabook/config.php:167
msgid "Connect Services"
msgstr ""
#: ../../view/theme/diabook/theme.php:712
#: ../../view/theme/diabook/theme.php:753
#: ../../view/theme/diabook/theme.php:565
#: ../../view/theme/diabook/theme.php:595
msgid "Last Tweets"
msgstr ""
#: ../../view/theme/diabook/theme.php:715
#: ../../view/theme/diabook/config.php:197
#: ../../view/theme/diabook/theme.php:568
#: ../../view/theme/diabook/config.php:159
msgid "Set twitter search term"
msgstr ""
#: ../../view/theme/diabook/theme.php:735
#: ../../view/theme/diabook/theme.php:736
#: ../../view/theme/diabook/theme.php:737
#: ../../view/theme/diabook/theme.php:738
#: ../../view/theme/diabook/theme.php:739
#: ../../view/theme/diabook/theme.php:740
#: ../../view/theme/diabook/theme.php:741
#: ../../view/theme/diabook/theme.php:742
#: ../../view/theme/diabook/theme.php:743
#: ../../view/theme/diabook/theme.php:744 ../../include/acl_selectors.php:288
#: ../../view/theme/diabook/theme.php:587
#: ../../view/theme/diabook/config.php:146 ../../include/acl_selectors.php:288
msgid "don't show"
msgstr ""
#: ../../view/theme/diabook/theme.php:735
#: ../../view/theme/diabook/theme.php:736
#: ../../view/theme/diabook/theme.php:737
#: ../../view/theme/diabook/theme.php:738
#: ../../view/theme/diabook/theme.php:739
#: ../../view/theme/diabook/theme.php:740
#: ../../view/theme/diabook/theme.php:741
#: ../../view/theme/diabook/theme.php:742
#: ../../view/theme/diabook/theme.php:743
#: ../../view/theme/diabook/theme.php:744 ../../include/acl_selectors.php:287
#: ../../view/theme/diabook/theme.php:587
#: ../../view/theme/diabook/config.php:146 ../../include/acl_selectors.php:287
msgid "show"
msgstr ""
#: ../../view/theme/diabook/theme.php:745
#: ../../view/theme/diabook/theme.php:588
msgid "Show/hide boxes at right-hand column:"
msgstr ""
#: ../../view/theme/diabook/config.php:194
#: ../../view/theme/diabook/config.php:156
#: ../../view/theme/dispy/config.php:74
msgid "Set line-height for posts and comments"
msgstr ""
#: ../../view/theme/diabook/config.php:195
#: ../../view/theme/diabook/config.php:157
msgid "Set resolution for middle column"
msgstr ""
#: ../../view/theme/diabook/config.php:196
#: ../../view/theme/diabook/config.php:158
msgid "Set color scheme"
msgstr ""
#: ../../view/theme/diabook/config.php:198
#: ../../view/theme/diabook/config.php:160
msgid "Set zoomfactor for Earth Layer"
msgstr ""
#: ../../view/theme/diabook/config.php:207
#: ../../view/theme/diabook/config.php:169
msgid "Last tweets"
msgstr ""
#: ../../view/theme/quattro/config.php:55
#: ../../view/theme/quattro/config.php:67
msgid "Alignment"
msgstr ""
#: ../../view/theme/quattro/config.php:55
#: ../../view/theme/quattro/config.php:67
msgid "Left"
msgstr ""
#: ../../view/theme/quattro/config.php:55
#: ../../view/theme/quattro/config.php:67
msgid "Center"
msgstr ""
#: ../../view/theme/quattro/config.php:69
msgid "Posts font size"
msgstr ""
#: ../../view/theme/quattro/config.php:70
msgid "Textareas font size"
msgstr ""
#: ../../view/theme/dispy/config.php:75
msgid "Set colour scheme"
msgstr ""
@ -6418,18 +7857,6 @@ msgstr ""
msgid "Twice daily"
msgstr ""
#: ../../include/contact_selectors.php:59
msgid "Daily"
msgstr ""
#: ../../include/contact_selectors.php:60
msgid "Weekly"
msgstr ""
#: ../../include/contact_selectors.php:61
msgid "Monthly"
msgstr ""
#: ../../include/contact_selectors.php:77
msgid "OStatus"
msgstr ""
@ -6599,6 +8026,7 @@ msgid "Sex Addict"
msgstr ""
#: ../../include/profile_selectors.php:42 ../../include/user.php:278
#: ../../include/user.php:282
msgid "Friends"
msgstr ""
@ -6686,24 +8114,19 @@ msgstr ""
msgid "Ask me"
msgstr ""
#: ../../include/event.php:20 ../../include/bb2diaspora.php:393
#: ../../include/event.php:20 ../../include/bb2diaspora.php:396
msgid "Starts:"
msgstr ""
#: ../../include/event.php:30 ../../include/bb2diaspora.php:401
#: ../../include/event.php:30 ../../include/bb2diaspora.php:404
msgid "Finishes:"
msgstr ""
#: ../../include/delivery.php:456 ../../include/notifier.php:678
#: ../../include/delivery.php:457 ../../include/notifier.php:703
msgid "(no subject)"
msgstr ""
#: ../../include/delivery.php:463 ../../include/enotify.php:26
#: ../../include/notifier.php:685
msgid "noreply"
msgstr ""
#: ../../include/Scrape.php:572
#: ../../include/Scrape.php:583
msgid " on Last.fm"
msgstr ""
@ -6723,158 +8146,246 @@ msgstr ""
msgid "next"
msgstr ""
#: ../../include/text.php:568
#: ../../include/text.php:295
msgid "newer"
msgstr ""
#: ../../include/text.php:299
msgid "older"
msgstr ""
#: ../../include/text.php:597
msgid "No contacts"
msgstr ""
#: ../../include/text.php:577
#: ../../include/text.php:606
#, php-format
msgid "%d Contact"
msgid_plural "%d Contacts"
msgstr[0] ""
msgstr[1] ""
#: ../../include/text.php:839
msgid "Monday"
#: ../../include/text.php:719
msgid "poke"
msgstr ""
#: ../../include/text.php:839
msgid "Tuesday"
#: ../../include/text.php:719 ../../include/conversation.php:210
msgid "poked"
msgstr ""
#: ../../include/text.php:839
msgid "Wednesday"
#: ../../include/text.php:720
msgid "ping"
msgstr ""
#: ../../include/text.php:839
msgid "Thursday"
#: ../../include/text.php:720
msgid "pinged"
msgstr ""
#: ../../include/text.php:839
msgid "Friday"
#: ../../include/text.php:721
msgid "prod"
msgstr ""
#: ../../include/text.php:839
msgid "Saturday"
#: ../../include/text.php:721
msgid "prodded"
msgstr ""
#: ../../include/text.php:839
msgid "Sunday"
#: ../../include/text.php:722
msgid "slap"
msgstr ""
#: ../../include/text.php:843
#: ../../include/text.php:722
msgid "slapped"
msgstr ""
#: ../../include/text.php:723
msgid "finger"
msgstr ""
#: ../../include/text.php:723
msgid "fingered"
msgstr ""
#: ../../include/text.php:724
msgid "rebuff"
msgstr ""
#: ../../include/text.php:724
msgid "rebuffed"
msgstr ""
#: ../../include/text.php:736
msgid "happy"
msgstr ""
#: ../../include/text.php:737
msgid "sad"
msgstr ""
#: ../../include/text.php:738
msgid "mellow"
msgstr ""
#: ../../include/text.php:739
msgid "tired"
msgstr ""
#: ../../include/text.php:740
msgid "perky"
msgstr ""
#: ../../include/text.php:741
msgid "angry"
msgstr ""
#: ../../include/text.php:742
msgid "stupified"
msgstr ""
#: ../../include/text.php:743
msgid "puzzled"
msgstr ""
#: ../../include/text.php:744
msgid "interested"
msgstr ""
#: ../../include/text.php:745
msgid "bitter"
msgstr ""
#: ../../include/text.php:746
msgid "cheerful"
msgstr ""
#: ../../include/text.php:747
msgid "alive"
msgstr ""
#: ../../include/text.php:748
msgid "annoyed"
msgstr ""
#: ../../include/text.php:749
msgid "anxious"
msgstr ""
#: ../../include/text.php:750
msgid "cranky"
msgstr ""
#: ../../include/text.php:751
msgid "disturbed"
msgstr ""
#: ../../include/text.php:752
msgid "frustrated"
msgstr ""
#: ../../include/text.php:753
msgid "motivated"
msgstr ""
#: ../../include/text.php:754
msgid "relaxed"
msgstr ""
#: ../../include/text.php:755
msgid "surprised"
msgstr ""
#: ../../include/text.php:919
msgid "January"
msgstr ""
#: ../../include/text.php:843
#: ../../include/text.php:919
msgid "February"
msgstr ""
#: ../../include/text.php:843
#: ../../include/text.php:919
msgid "March"
msgstr ""
#: ../../include/text.php:843
#: ../../include/text.php:919
msgid "April"
msgstr ""
#: ../../include/text.php:843
#: ../../include/text.php:919
msgid "May"
msgstr ""
#: ../../include/text.php:843
#: ../../include/text.php:919
msgid "June"
msgstr ""
#: ../../include/text.php:843
#: ../../include/text.php:919
msgid "July"
msgstr ""
#: ../../include/text.php:843
#: ../../include/text.php:919
msgid "August"
msgstr ""
#: ../../include/text.php:843
#: ../../include/text.php:919
msgid "September"
msgstr ""
#: ../../include/text.php:843
#: ../../include/text.php:919
msgid "October"
msgstr ""
#: ../../include/text.php:843
#: ../../include/text.php:919
msgid "November"
msgstr ""
#: ../../include/text.php:843
#: ../../include/text.php:919
msgid "December"
msgstr ""
#: ../../include/text.php:929
#: ../../include/text.php:1005
msgid "bytes"
msgstr ""
#: ../../include/text.php:949 ../../include/text.php:964
msgid "remove"
msgstr ""
#: ../../include/text.php:949 ../../include/text.php:964
msgid "[remove]"
msgstr ""
#: ../../include/text.php:952
msgid "Categories:"
msgstr ""
#: ../../include/text.php:967
msgid "Filed under:"
msgstr ""
#: ../../include/text.php:983 ../../include/text.php:995
#: ../../include/text.php:1032 ../../include/text.php:1044
msgid "Click to open/close"
msgstr ""
#: ../../include/text.php:1101 ../../include/user.php:236
#: ../../include/text.php:1217 ../../include/user.php:236
msgid "default"
msgstr ""
#: ../../include/text.php:1113
#: ../../include/text.php:1229
msgid "Select an alternate language"
msgstr ""
#: ../../include/text.php:1323
#: ../../include/text.php:1439
msgid "activity"
msgstr ""
#: ../../include/text.php:1325
msgid "comment"
msgstr ""
#: ../../include/text.php:1326
#: ../../include/text.php:1442
msgid "post"
msgstr ""
#: ../../include/text.php:1481
#: ../../include/text.php:1597
msgid "Item filed"
msgstr ""
#: ../../include/diaspora.php:660
#: ../../include/diaspora.php:702
msgid "Sharing notification from Diaspora network"
msgstr ""
#: ../../include/diaspora.php:2152
#: ../../include/diaspora.php:2222
msgid "Attachments:"
msgstr ""
#: ../../include/network.php:842
#: ../../include/network.php:849
msgid "view full size"
msgstr ""
#: ../../include/oembed.php:135
#: ../../include/oembed.php:137
msgid "Embedded content"
msgstr ""
#: ../../include/oembed.php:144
#: ../../include/oembed.php:146
msgid "Embedding disabled"
msgstr ""
@ -6885,35 +8396,31 @@ msgid ""
"not what you intended, please create another group with a different name."
msgstr ""
#: ../../include/group.php:176
#: ../../include/group.php:207
msgid "Default privacy group for new contacts"
msgstr ""
#: ../../include/group.php:195
#: ../../include/group.php:226
msgid "Everybody"
msgstr ""
#: ../../include/group.php:218
#: ../../include/group.php:249
msgid "edit"
msgstr ""
#: ../../include/group.php:239
msgid "Groups"
msgstr ""
#: ../../include/group.php:240
#: ../../include/group.php:271
msgid "Edit group"
msgstr ""
#: ../../include/group.php:241
#: ../../include/group.php:272
msgid "Create a new group"
msgstr ""
#: ../../include/group.php:242
#: ../../include/group.php:273
msgid "Contacts not in any group"
msgstr ""
#: ../../include/nav.php:46 ../../boot.php:884
#: ../../include/nav.php:46 ../../boot.php:922
msgid "Logout"
msgstr ""
@ -6921,7 +8428,7 @@ msgstr ""
msgid "End this session"
msgstr ""
#: ../../include/nav.php:49 ../../boot.php:1574
#: ../../include/nav.php:49 ../../boot.php:1677
msgid "Status"
msgstr ""
@ -7001,11 +8508,11 @@ msgstr ""
msgid "Manage other pages"
msgstr ""
#: ../../include/nav.php:138 ../../boot.php:1132
#: ../../include/nav.php:138 ../../boot.php:1197
msgid "Profiles"
msgstr ""
#: ../../include/nav.php:138 ../../boot.php:1132
#: ../../include/nav.php:138 ../../boot.php:1197
msgid "Manage/edit profiles"
msgstr ""
@ -7080,17 +8587,17 @@ msgstr ""
msgid "Categories"
msgstr ""
#: ../../include/auth.php:36
#: ../../include/auth.php:35
msgid "Logged out."
msgstr ""
#: ../../include/auth.php:115
#: ../../include/auth.php:114
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:115
#: ../../include/auth.php:114
msgid "The error message was:"
msgstr ""
@ -7098,97 +8605,85 @@ msgstr ""
msgid "Miscellaneous"
msgstr ""
#: ../../include/datetime.php:131 ../../include/datetime.php:263
#: ../../include/datetime.php:153 ../../include/datetime.php:285
msgid "year"
msgstr ""
#: ../../include/datetime.php:136 ../../include/datetime.php:264
#: ../../include/datetime.php:158 ../../include/datetime.php:286
msgid "month"
msgstr ""
#: ../../include/datetime.php:141 ../../include/datetime.php:266
#: ../../include/datetime.php:163 ../../include/datetime.php:288
msgid "day"
msgstr ""
#: ../../include/datetime.php:254
#: ../../include/datetime.php:276
msgid "never"
msgstr ""
#: ../../include/datetime.php:260
#: ../../include/datetime.php:282
msgid "less than a second ago"
msgstr ""
#: ../../include/datetime.php:263
msgid "years"
msgstr ""
#: ../../include/datetime.php:264
msgid "months"
msgstr ""
#: ../../include/datetime.php:265
#: ../../include/datetime.php:287
msgid "week"
msgstr ""
#: ../../include/datetime.php:265
msgid "weeks"
msgstr ""
#: ../../include/datetime.php:266
msgid "days"
msgstr ""
#: ../../include/datetime.php:267
#: ../../include/datetime.php:289
msgid "hour"
msgstr ""
#: ../../include/datetime.php:267
#: ../../include/datetime.php:289
msgid "hours"
msgstr ""
#: ../../include/datetime.php:268
#: ../../include/datetime.php:290
msgid "minute"
msgstr ""
#: ../../include/datetime.php:268
#: ../../include/datetime.php:290
msgid "minutes"
msgstr ""
#: ../../include/datetime.php:269
#: ../../include/datetime.php:291
msgid "second"
msgstr ""
#: ../../include/datetime.php:269
#: ../../include/datetime.php:291
msgid "seconds"
msgstr ""
#: ../../include/datetime.php:278
#: ../../include/datetime.php:300
#, php-format
msgid "%1$d %2$s ago"
msgstr ""
#: ../../include/datetime.php:450 ../../include/items.php:1553
#: ../../include/datetime.php:472 ../../include/items.php:1689
#, php-format
msgid "%s's birthday"
msgstr ""
#: ../../include/datetime.php:451 ../../include/items.php:1554
#: ../../include/datetime.php:473 ../../include/items.php:1690
#, php-format
msgid "Happy Birthday %s"
msgstr ""
#: ../../include/onepoll.php:399
#: ../../include/onepoll.php:414
msgid "From: "
msgstr ""
#: ../../include/bbcode.php:102 ../../include/bbcode.php:313
#: ../../include/bbcode.php:185 ../../include/bbcode.php:406
msgid "Image/photo"
msgstr ""
#: ../../include/bbcode.php:278 ../../include/bbcode.php:298
#: ../../include/bbcode.php:371 ../../include/bbcode.php:391
msgid "$1 wrote:"
msgstr ""
#: ../../include/bbcode.php:410 ../../include/bbcode.php:411
msgid "Encrypted content"
msgstr ""
#: ../../include/dba.php:41
#, php-format
msgid "Cannot locate DNS info for database server '%s'"
@ -7202,171 +8697,187 @@ msgstr ""
msgid "Visible to everybody"
msgstr ""
#: ../../include/enotify.php:14
#: ../../include/enotify.php:16
msgid "Friendica Notification"
msgstr ""
#: ../../include/enotify.php:17
#: ../../include/enotify.php:19
msgid "Thank You,"
msgstr ""
#: ../../include/enotify.php:19
#: ../../include/enotify.php:21
#, php-format
msgid "%s Administrator"
msgstr ""
#: ../../include/enotify.php:38
#: ../../include/enotify.php:40
#, php-format
msgid "%s <!item_type!>"
msgstr ""
#: ../../include/enotify.php:42
#: ../../include/enotify.php:44
#, php-format
msgid "[Friendica:Notify] New mail received at %s"
msgstr ""
#: ../../include/enotify.php:44
#: ../../include/enotify.php:46
#, php-format
msgid "%1$s sent you a new private message at %2$s."
msgstr ""
#: ../../include/enotify.php:45
#: ../../include/enotify.php:47
#, php-format
msgid "%1$s sent you %2$s."
msgstr ""
#: ../../include/enotify.php:45
#: ../../include/enotify.php:47
msgid "a private message"
msgstr ""
#: ../../include/enotify.php:46
#: ../../include/enotify.php:48
#, php-format
msgid "Please visit %s to view and/or reply to your private messages."
msgstr ""
#: ../../include/enotify.php:87
#: ../../include/enotify.php:89
#, php-format
msgid "%1$s commented on [url=%2$s]a %3$s[/url]"
msgstr ""
#: ../../include/enotify.php:94
#: ../../include/enotify.php:96
#, php-format
msgid "%1$s commented on [url=%2$s]%3$s's %4$s[/url]"
msgstr ""
#: ../../include/enotify.php:102
#: ../../include/enotify.php:104
#, php-format
msgid "%1$s commented on [url=%2$s]your %3$s[/url]"
msgstr ""
#: ../../include/enotify.php:112
#: ../../include/enotify.php:114
#, php-format
msgid "[Friendica:Notify] Comment to conversation #%1$d by %2$s"
msgstr ""
#: ../../include/enotify.php:113
#: ../../include/enotify.php:115
#, php-format
msgid "%s commented on an item/conversation you have been following."
msgstr ""
#: ../../include/enotify.php:116 ../../include/enotify.php:131
#: ../../include/enotify.php:144 ../../include/enotify.php:157
#: ../../include/enotify.php:118 ../../include/enotify.php:133
#: ../../include/enotify.php:146 ../../include/enotify.php:164
#: ../../include/enotify.php:177
#, php-format
msgid "Please visit %s to view and/or reply to the conversation."
msgstr ""
#: ../../include/enotify.php:123
#: ../../include/enotify.php:125
#, php-format
msgid "[Friendica:Notify] %s posted to your profile wall"
msgstr ""
#: ../../include/enotify.php:125
#: ../../include/enotify.php:127
#, php-format
msgid "%1$s posted to your profile wall at %2$s"
msgstr ""
#: ../../include/enotify.php:127
#: ../../include/enotify.php:129
#, php-format
msgid "%1$s posted to [url=%2s]your wall[/url]"
msgstr ""
#: ../../include/enotify.php:138
#, php-format
msgid "[Friendica:Notify] %s tagged you"
msgstr ""
#: ../../include/enotify.php:139
#, php-format
msgid "%1$s tagged you at %2$s"
msgid "%1$s posted to [url=%2$s]your wall[/url]"
msgstr ""
#: ../../include/enotify.php:140
#, php-format
msgid "[Friendica:Notify] %s tagged you"
msgstr ""
#: ../../include/enotify.php:141
#, php-format
msgid "%1$s tagged you at %2$s"
msgstr ""
#: ../../include/enotify.php:142
#, php-format
msgid "%1$s [url=%2$s]tagged you[/url]."
msgstr ""
#: ../../include/enotify.php:151
#: ../../include/enotify.php:154
#, php-format
msgid "[Friendica:Notify] %s tagged your post"
msgid "[Friendica:Notify] %1$s poked you"
msgstr ""
#: ../../include/enotify.php:152
#: ../../include/enotify.php:155
#, php-format
msgid "%1$s tagged your post at %2$s"
msgid "%1$s poked you at %2$s"
msgstr ""
#: ../../include/enotify.php:153
#: ../../include/enotify.php:156
#, php-format
msgid "%1$s tagged [url=%2$s]your post[/url]"
msgstr ""
#: ../../include/enotify.php:164
msgid "[Friendica:Notify] Introduction received"
msgstr ""
#: ../../include/enotify.php:165
#, php-format
msgid "You've received an introduction from '%1$s' at %2$s"
msgstr ""
#: ../../include/enotify.php:166
#, php-format
msgid "You've received [url=%1$s]an introduction[/url] from %2$s."
msgstr ""
#: ../../include/enotify.php:169 ../../include/enotify.php:187
#, php-format
msgid "You may visit their profile at %s"
msgid "%1$s [url=%2$s]poked you[/url]."
msgstr ""
#: ../../include/enotify.php:171
#, php-format
msgid "[Friendica:Notify] %s tagged your post"
msgstr ""
#: ../../include/enotify.php:172
#, php-format
msgid "%1$s tagged your post at %2$s"
msgstr ""
#: ../../include/enotify.php:173
#, php-format
msgid "%1$s tagged [url=%2$s]your post[/url]"
msgstr ""
#: ../../include/enotify.php:184
msgid "[Friendica:Notify] Introduction received"
msgstr ""
#: ../../include/enotify.php:185
#, php-format
msgid "You've received an introduction from '%1$s' at %2$s"
msgstr ""
#: ../../include/enotify.php:186
#, php-format
msgid "You've received [url=%1$s]an introduction[/url] from %2$s."
msgstr ""
#: ../../include/enotify.php:189 ../../include/enotify.php:207
#, php-format
msgid "You may visit their profile at %s"
msgstr ""
#: ../../include/enotify.php:191
#, php-format
msgid "Please visit %s to approve or reject the introduction."
msgstr ""
#: ../../include/enotify.php:178
#: ../../include/enotify.php:198
msgid "[Friendica:Notify] Friend suggestion received"
msgstr ""
#: ../../include/enotify.php:179
#: ../../include/enotify.php:199
#, php-format
msgid "You've received a friend suggestion from '%1$s' at %2$s"
msgstr ""
#: ../../include/enotify.php:180
#: ../../include/enotify.php:200
#, php-format
msgid "You've received [url=%1$s]a friend suggestion[/url] for %2$s from %3$s."
msgstr ""
#: ../../include/enotify.php:185
#: ../../include/enotify.php:205
msgid "Name:"
msgstr ""
#: ../../include/enotify.php:186
#: ../../include/enotify.php:206
msgid "Photo:"
msgstr ""
#: ../../include/enotify.php:189
#: ../../include/enotify.php:209
#, php-format
msgid "Please visit %s to approve or reject the suggestion."
msgstr ""
@ -7426,23 +8937,18 @@ msgstr ""
msgid "following"
msgstr ""
#: ../../include/items.php:2983
#: ../../include/items.php:3300
msgid "A new person is sharing with you at "
msgstr ""
#: ../../include/items.php:2983
#: ../../include/items.php:3300
msgid "You have a new follower at "
msgstr ""
#: ../../include/items.php:3650
#: ../../include/items.php:3981
msgid "Archives"
msgstr ""
#: ../../include/bb2diaspora.php:226 ../../include/bb2diaspora.php:236
#: ../../include/bb2diaspora.php:237
msgid "image/photo"
msgstr ""
#: ../../include/user.php:38
msgid "An invitation is required."
msgstr ""
@ -7511,19 +9017,19 @@ msgstr ""
msgid "An error occurred creating your default profile. Please try again."
msgstr ""
#: ../../include/security.php:21
#: ../../include/security.php:22
msgid "Welcome "
msgstr ""
#: ../../include/security.php:22
#: ../../include/security.php:23
msgid "Please upload a profile photo."
msgstr ""
#: ../../include/security.php:25
#: ../../include/security.php:26
msgid "Welcome back "
msgstr ""
#: ../../include/security.php:329
#: ../../include/security.php:354
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."
@ -7533,247 +9039,304 @@ msgstr ""
msgid "stopped following"
msgstr ""
#: ../../include/Contact.php:218 ../../include/conversation.php:904
#: ../../include/Contact.php:220 ../../include/conversation.php:795
msgid "Poke"
msgstr ""
#: ../../include/Contact.php:221 ../../include/conversation.php:789
msgid "View Status"
msgstr ""
#: ../../include/Contact.php:219 ../../include/conversation.php:905
#: ../../include/Contact.php:222 ../../include/conversation.php:790
msgid "View Profile"
msgstr ""
#: ../../include/Contact.php:220 ../../include/conversation.php:906
#: ../../include/Contact.php:223 ../../include/conversation.php:791
msgid "View Photos"
msgstr ""
#: ../../include/Contact.php:221 ../../include/Contact.php:234
#: ../../include/conversation.php:907
#: ../../include/Contact.php:224 ../../include/Contact.php:237
#: ../../include/conversation.php:792
msgid "Network Posts"
msgstr ""
#: ../../include/Contact.php:222 ../../include/Contact.php:234
#: ../../include/conversation.php:908
#: ../../include/Contact.php:225 ../../include/Contact.php:237
#: ../../include/conversation.php:793
msgid "Edit Contact"
msgstr ""
#: ../../include/Contact.php:223 ../../include/Contact.php:234
#: ../../include/conversation.php:909
#: ../../include/Contact.php:226 ../../include/Contact.php:237
#: ../../include/conversation.php:794
msgid "Send PM"
msgstr ""
#: ../../include/conversation.php:225
#: ../../include/conversation.php:206
#, php-format
msgid "%1$s poked %2$s"
msgstr ""
#: ../../include/conversation.php:290
msgid "post/item"
msgstr ""
#: ../../include/conversation.php:226
#: ../../include/conversation.php:291
#, php-format
msgid "%1$s marked %2$s's %3$s as favorite"
msgstr ""
#: ../../include/conversation.php:812
#: ../../include/conversation.php:599 ../../object/Item.php:218
msgid "Categories:"
msgstr ""
#: ../../include/conversation.php:600 ../../object/Item.php:219
msgid "Filed under:"
msgstr ""
#: ../../include/conversation.php:685
msgid "remove"
msgstr ""
#: ../../include/conversation.php:689
msgid "Delete Selected Items"
msgstr ""
#: ../../include/conversation.php:967
#: ../../include/conversation.php:788
msgid "Follow Thread"
msgstr ""
#: ../../include/conversation.php:857
#, php-format
msgid "%s likes this."
msgstr ""
#: ../../include/conversation.php:967
#: ../../include/conversation.php:857
#, php-format
msgid "%s doesn't like this."
msgstr ""
#: ../../include/conversation.php:971
#: ../../include/conversation.php:861
#, php-format
msgid "<span %1$s>%2$d people</span> like this."
msgstr ""
#: ../../include/conversation.php:973
#: ../../include/conversation.php:863
#, php-format
msgid "<span %1$s>%2$d people</span> don't like this."
msgstr ""
#: ../../include/conversation.php:979
#: ../../include/conversation.php:869
msgid "and"
msgstr ""
#: ../../include/conversation.php:982
#: ../../include/conversation.php:872
#, php-format
msgid ", and %d other people"
msgstr ""
#: ../../include/conversation.php:983
#: ../../include/conversation.php:873
#, php-format
msgid "%s like this."
msgstr ""
#: ../../include/conversation.php:983
#: ../../include/conversation.php:873
#, php-format
msgid "%s don't like this."
msgstr ""
#: ../../include/conversation.php:1008
#: ../../include/conversation.php:897 ../../include/conversation.php:915
msgid "Visible to <strong>everybody</strong>"
msgstr ""
#: ../../include/conversation.php:1010
#: ../../include/conversation.php:899 ../../include/conversation.php:917
msgid "Please enter a video link/URL:"
msgstr ""
#: ../../include/conversation.php:1011
#: ../../include/conversation.php:900 ../../include/conversation.php:918
msgid "Please enter an audio link/URL:"
msgstr ""
#: ../../include/conversation.php:1012
#: ../../include/conversation.php:901 ../../include/conversation.php:919
msgid "Tag term:"
msgstr ""
#: ../../include/conversation.php:1014
#: ../../include/conversation.php:903 ../../include/conversation.php:921
msgid "Where are you right now?"
msgstr ""
#: ../../include/conversation.php:1057
msgid "upload photo"
#: ../../include/conversation.php:904
msgid "Delete item(s)?"
msgstr ""
#: ../../include/conversation.php:1059
msgid "attach file"
msgstr ""
#: ../../include/conversation.php:1061
msgid "web link"
msgstr ""
#: ../../include/conversation.php:1062
msgid "Insert video link"
msgstr ""
#: ../../include/conversation.php:1063
msgid "video link"
msgstr ""
#: ../../include/conversation.php:1064
msgid "Insert audio link"
msgstr ""
#: ../../include/conversation.php:1065
msgid "audio link"
msgstr ""
#: ../../include/conversation.php:1067
msgid "set location"
msgstr ""
#: ../../include/conversation.php:1069
msgid "clear location"
msgstr ""
#: ../../include/conversation.php:1076
#: ../../include/conversation.php:983
msgid "permissions"
msgstr ""
#: ../../include/plugin.php:388 ../../include/plugin.php:390
#: ../../include/plugin.php:389 ../../include/plugin.php:391
msgid "Click here to upgrade."
msgstr ""
#: ../../include/plugin.php:396
#: ../../include/plugin.php:397
msgid "This action exceeds the limits set by your subscription plan."
msgstr ""
#: ../../include/plugin.php:401
#: ../../include/plugin.php:402
msgid "This action is not available under your subscription plan."
msgstr ""
#: ../../boot.php:563
#: ../../boot.php:584
msgid "Delete this item?"
msgstr ""
#: ../../boot.php:566
#: ../../boot.php:587
msgid "show fewer"
msgstr ""
#: ../../boot.php:761
#: ../../boot.php:794
#, php-format
msgid "Update %s failed. See error logs."
msgstr ""
#: ../../boot.php:763
#: ../../boot.php:796
#, php-format
msgid "Update Error at %s"
msgstr ""
#: ../../boot.php:863
#: ../../boot.php:897
msgid "Create a New Account"
msgstr ""
#: ../../boot.php:887
#: ../../boot.php:925
msgid "Nickname or Email address: "
msgstr ""
#: ../../boot.php:888
#: ../../boot.php:926
msgid "Password: "
msgstr ""
#: ../../boot.php:891
#: ../../boot.php:929
msgid "Or login using OpenID: "
msgstr ""
#: ../../boot.php:897
#: ../../boot.php:935
msgid "Forgot your password?"
msgstr ""
#: ../../boot.php:1064
#: ../../boot.php:1046
msgid "Requested account is not available."
msgstr ""
#: ../../boot.php:1123
msgid "Edit profile"
msgstr ""
#: ../../boot.php:1124
#: ../../boot.php:1189
msgid "Message"
msgstr ""
#: ../../boot.php:1240 ../../boot.php:1319
#: ../../boot.php:1311 ../../boot.php:1397
msgid "g A l F d"
msgstr ""
#: ../../boot.php:1241 ../../boot.php:1320
#: ../../boot.php:1312 ../../boot.php:1398
msgid "F d"
msgstr ""
#: ../../boot.php:1286 ../../boot.php:1360
#: ../../boot.php:1357 ../../boot.php:1438
msgid "[today]"
msgstr ""
#: ../../boot.php:1298
#: ../../boot.php:1369
msgid "Birthday Reminders"
msgstr ""
#: ../../boot.php:1299
#: ../../boot.php:1370
msgid "Birthdays this week:"
msgstr ""
#: ../../boot.php:1353
#: ../../boot.php:1431
msgid "[No description]"
msgstr ""
#: ../../boot.php:1371
#: ../../boot.php:1449
msgid "Event Reminders"
msgstr ""
#: ../../boot.php:1372
#: ../../boot.php:1450
msgid "Events this week:"
msgstr ""
#: ../../boot.php:1577
#: ../../boot.php:1680
msgid "Status Messages and Posts"
msgstr ""
#: ../../boot.php:1583
#: ../../boot.php:1687
msgid "Profile Details"
msgstr ""
#: ../../boot.php:1598
#: ../../boot.php:1704
msgid "Events and Calendar"
msgstr ""
#: ../../boot.php:1604
#: ../../boot.php:1711
msgid "Only You Can See This"
msgstr ""
#: ../../index.php:380
msgid "toggle mobile"
msgstr ""
#: ../../addon.old/bg/bg.php:51
msgid "Bg settings updated."
msgstr ""
#: ../../addon.old/bg/bg.php:82
msgid "Bg Settings"
msgstr ""
#: ../../addon.old/drpost/drpost.php:35
msgid "Post to Drupal"
msgstr ""
#: ../../addon.old/drpost/drpost.php:72
msgid "Drupal Post Settings"
msgstr ""
#: ../../addon.old/drpost/drpost.php:74
msgid "Enable Drupal Post Plugin"
msgstr ""
#: ../../addon.old/drpost/drpost.php:79
msgid "Drupal username"
msgstr ""
#: ../../addon.old/drpost/drpost.php:84
msgid "Drupal password"
msgstr ""
#: ../../addon.old/drpost/drpost.php:89
msgid "Post Type - article,page,or blog"
msgstr ""
#: ../../addon.old/drpost/drpost.php:94
msgid "Drupal site URL"
msgstr ""
#: ../../addon.old/drpost/drpost.php:99
msgid "Drupal site uses clean URLS"
msgstr ""
#: ../../addon.old/drpost/drpost.php:104
msgid "Post to Drupal by default"
msgstr ""
#: ../../addon.old/oembed.old/oembed.php:30
msgid "OEmbed settings updated"
msgstr ""
#: ../../addon.old/oembed.old/oembed.php:43
msgid "Use OEmbed for YouTube videos"
msgstr ""
#: ../../addon.old/oembed.old/oembed.php:71
msgid "URL to embed:"
msgstr ""

View file

@ -25,6 +25,13 @@
echo $file . "\n";
include_once($file);
}
echo "Directory: object\n";
$files = glob('object/*.php');
foreach($files as $file) {
echo $file . "\n";
include_once($file);
}
echo "Directory: addon\n";
$dirs = glob('addon/*');

View file

@ -5,7 +5,7 @@
$("nav").bind('nav-update', function(e,data){
var elm = $('#pending-update');
var register = $(data).find('register').text();
if (register=="0") { reigster=""; elm.hide();} else { elm.show(); }
if (register=="0") { register=""; elm.hide();} else { elm.show(); }
elm.html(register);
});
});

View file

@ -6,6 +6,7 @@
autoDimensions: false,
onStart: function(){
var theme = $("#id_theme :selected").val();
var theme_mobile = $("#id_theme_mobile :selected").val();
$("#cnftheme").attr('href',"$baseurl/admin/themes/"+theme);
},
onComplete: function(){
@ -44,6 +45,7 @@
{{ inc field_textarea.tpl with $field=$banner }}{{ endinc }}
{{ inc field_select.tpl with $field=$language }}{{ endinc }}
{{ inc field_select.tpl with $field=$theme }}{{ endinc }}
{{ inc field_select.tpl with $field=$theme_mobile }}{{ endinc }}
{{ inc field_select.tpl with $field=$ssl_policy }}{{ endinc }}
<div class="submit"><input type="submit" name="page_site" value="$submit" /></div>
@ -60,6 +62,8 @@
<h3>$upload</h3>
{{ inc field_input.tpl with $field=$maximagesize }}{{ endinc }}
{{ inc field_input.tpl with $field=$maximagelength }}{{ endinc }}
{{ inc field_input.tpl with $field=$jpegimagequality }}{{ endinc }}
<h3>$corporate</h3>
{{ inc field_input.tpl with $field=$allowed_sites }}{{ endinc }}
@ -71,6 +75,8 @@
{{ inc field_checkbox.tpl with $field=$diaspora_enabled }}{{ endinc }}
{{ inc field_checkbox.tpl with $field=$dfrn_only }}{{ endinc }}
{{ inc field_input.tpl with $field=$global_directory }}{{ endinc }}
{{ inc field_checkbox.tpl with $field=$thread_allow }}{{ endinc }}
{{ inc field_checkbox.tpl with $field=$newuser_private }}{{ endinc }}
<div class="submit"><input type="submit" name="page_site" value="$submit" /></div>

View file

@ -70,11 +70,20 @@
<td class='register_date'>$u.register_date</td>
<td class='login_date'>$u.login_date</td>
<td class='lastitem_date'>$u.lastitem_date</td>
<td class='login_date'>$u.page-flags</td>
<td class="checkbox"><input type="checkbox" class="users_ckbx" id="id_user_$u.uid" name="user[]" value="$u.uid"/></td>
<td class='login_date'>$u.page-flags {{ if $u.is_admin }}($siteadmin){{ endif }}</td>
<td class="checkbox">
{{ if $u.is_admin }}
&nbsp;
{{ else }}
<input type="checkbox" class="users_ckbx" id="id_user_$u.uid" name="user[]" value="$u.uid"/></td>
{{ endif }}
<td class="tools">
<a href="$baseurl/admin/users/block/$u.uid?t=$form_security_token" title='{{ if $u.blocked }}$unblock{{ else }}$block{{ endif }}'><span class='icon block {{ if $u.blocked==0 }}dim{{ endif }}'></span></a>
<a href="$baseurl/admin/users/delete/$u.uid?t=$form_security_token" title='$delete' onclick="return confirm_delete('$u.name')"><span class='icon drop'></span></a>
{{ if $u.is_admin }}
&nbsp;
{{ else }}
<a href="$baseurl/admin/users/block/$u.uid?t=$form_security_token" title='{{ if $u.blocked }}$unblock{{ else }}$block{{ endif }}'><span class='icon block {{ if $u.blocked==0 }}dim{{ endif }}'></span></a>
<a href="$baseurl/admin/users/delete/$u.uid?t=$form_security_token" title='$delete' onclick="return confirm_delete('$u.name')"><span class='icon drop'></span></a>
{{ endif }}
</td>
</tr>
{{ endfor }}

View file

@ -1,8 +1,8 @@
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:georss="http://www.georss.org/georss" xmlns:activity="http://activitystrea.ms/spec/1.0/" xmlns:media="http://purl.org/syndication/atommedia" xmlns:poco="http://portablecontacts.net/spec/1.0" xmlns:ostatus="http://ostatus.org/schema/1.0" xmlns:statusnet="http://status.net/schema/api/1/">
<generator uri="http://status.net" version="0.9.7">StatusNet</generator>
<id>$rss.self</id>
<title>Friendika</title>
<subtitle>Friendika API feed</subtitle>
<title>Friendica</title>
<subtitle>Friendica API feed</subtitle>
<logo>$rss.logo</logo>
<updated>$rss.atom_updated</updated>
<link type="text/html" rel="alternate" href="$rss.alternate"/>

View file

@ -1,9 +1,9 @@
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:georss="http://www.georss.org/georss" xmlns:twitter="http://api.twitter.com">
<channel>
<title>Friendika</title>
<title>Friendica</title>
<link>$rss.alternate</link>
<atom:link type="application/rss+xml" rel="self" href="$rss.self"/>
<description>Friendika timeline</description>
<description>Friendica timeline</description>
<language>$rss.language</language>
<ttl>40</ttl>
<image>

View file

@ -3,8 +3,8 @@
<div id="birthday-wrapper" style="display: none;" ><div id="birthday-title">$event_title</div>
<div id="birthday-title-end"></div>
{{ for $events as $event }}
<div class="birthday-list" id="birthday-$event.id"></a> <a href="$event.link">$event.title</a> $event.date </div>
<div class="birthday-list" id="birthday-$event.id"> <a href="$event.link">$event.title</a> $event.date </div>
{{ endfor }}
</div></div>
</div>
{{ endif }}

View file

@ -49,8 +49,8 @@ $a->config['php_path'] = '$phpath';
// Location of global directory submission page.
$a->config['system']['directory_submit_url'] = 'http://dir.friendika.com/submit';
$a->config['system']['directory_search_url'] = 'http://dir.friendika.com/directory?search=';
$a->config['system']['directory_submit_url'] = 'http://dir.friendica.com/submit';
$a->config['system']['directory_search_url'] = 'http://dir.friendica.com/directory?search=';
// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts

View file

@ -7,7 +7,7 @@
<body>
<table style="border:1px solid #ccc">
<tbody>
<tr><td colspan="2" style="background:#3b5998; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px;" src='$siteurl/images/friendika-32.png'><span style="padding:7px;">Friendica</span></td></tr>
<tr><td colspan="2" style="background:#3b5998; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px;" src='$siteurl/images/friendica-32.png'><span style="padding:7px;">Friendica</span></td></tr>
<tr><td style="padding-top:22px;" colspan="2">Has rebut un nou missatge privat de '$from' en $siteName.</td></tr>

View file

@ -4,19 +4,20 @@
#
# Translators:
# Rafael GARAU ESPINÓS <transifex@macadamia.es>, 2012.
# Rafael GARAU <transifex@macadamia.es>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: friendica\n"
"Report-Msgid-Bugs-To: http://bugs.friendica.com/\n"
"POT-Creation-Date: 2012-03-06 15:09-0800\n"
"PO-Revision-Date: 2012-03-08 21:58+0000\n"
"Last-Translator: Rafael GARAU ESPINÓS <transifex@macadamia.es>\n"
"Language-Team: Catalan (http://www.transifex.net/projects/p/friendica/language/ca/)\n"
"POT-Creation-Date: 2012-09-25 10:00-0700\n"
"PO-Revision-Date: 2012-09-26 08:15+0000\n"
"Last-Translator: Rafael GARAU <transifex@macadamia.es>\n"
"Language-Team: Catalan (http://www.transifex.com/projects/p/friendica/language/ca/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ca\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../../mod/oexchange.php:25
msgid "Post successful."
@ -35,25 +36,32 @@ msgstr "Ajustos de Contacte aplicats."
msgid "Contact update failed."
msgstr "Fracassà l'actualització de Contacte"
#: ../../mod/crepair.php:115 ../../mod/wall_attach.php:43
#: ../../mod/fsuggest.php:78 ../../mod/events.php:110 ../../mod/api.php:26
#: ../../mod/api.php:31 ../../mod/photos.php:129 ../../mod/photos.php:865
#: ../../mod/editpost.php:10 ../../mod/install.php:171
#: ../../mod/notifications.php:62 ../../mod/contacts.php:125
#: ../../mod/settings.php:49 ../../mod/settings.php:411
#: ../../mod/settings.php:416 ../../mod/manage.php:86 ../../mod/network.php:6
#: ../../mod/notes.php:20 ../../mod/attach.php:33 ../../mod/group.php:19
#: ../../mod/viewcontacts.php:22 ../../mod/register.php:36
#: ../../mod/regmod.php:111 ../../mod/item.php:124 ../../mod/item.php:140
#: ../../mod/profile_photo.php:19 ../../mod/profile_photo.php:137
#: ../../mod/profile_photo.php:148 ../../mod/profile_photo.php:159
#: ../../mod/message.php:9 ../../mod/message.php:46 ../../mod/allfriends.php:9
#: ../../mod/wall_upload.php:42 ../../mod/follow.php:8 ../../mod/common.php:9
#: ../../mod/display.php:133 ../../mod/profiles.php:7
#: ../../mod/profiles.php:229 ../../mod/delegate.php:6
#: ../../mod/crepair.php:115 ../../mod/wall_attach.php:55
#: ../../mod/fsuggest.php:78 ../../mod/events.php:140 ../../mod/api.php:26
#: ../../mod/api.php:31 ../../mod/photos.php:128 ../../mod/photos.php:972
#: ../../mod/editpost.php:10 ../../mod/install.php:151 ../../mod/poke.php:135
#: ../../mod/notifications.php:66 ../../mod/contacts.php:146
#: ../../mod/settings.php:86 ../../mod/settings.php:525
#: ../../mod/settings.php:530 ../../mod/manage.php:87 ../../mod/network.php:6
#: ../../mod/notes.php:20 ../../mod/wallmessage.php:9
#: ../../mod/wallmessage.php:33 ../../mod/wallmessage.php:79
#: ../../mod/wallmessage.php:103 ../../mod/attach.php:33
#: ../../mod/group.php:19 ../../mod/viewcontacts.php:22
#: ../../mod/register.php:38 ../../mod/regmod.php:116 ../../mod/item.php:126
#: ../../mod/item.php:142 ../../mod/mood.php:114
#: ../../mod/profile_photo.php:19 ../../mod/profile_photo.php:169
#: ../../mod/profile_photo.php:180 ../../mod/profile_photo.php:193
#: ../../mod/message.php:38 ../../mod/message.php:168
#: ../../mod/allfriends.php:9 ../../mod/nogroup.php:25
#: ../../mod/wall_upload.php:64 ../../mod/follow.php:9
#: ../../mod/display.php:141 ../../mod/profiles.php:7
#: ../../mod/profiles.php:413 ../../mod/delegate.php:6
#: ../../mod/suggest.php:28 ../../mod/invite.php:13 ../../mod/invite.php:81
#: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:332
#: ../../include/items.php:3030 ../../index.php:288
#: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:510
#: ../../addon/facebook/facebook.php:516 ../../addon/fbpost/fbpost.php:159
#: ../../addon/fbpost/fbpost.php:165
#: ../../addon/dav/friendica/layout.fnk.php:354 ../../include/items.php:3908
#: ../../index.php:317
msgid "Permission denied."
msgstr "Permís denegat."
@ -82,18 +90,18 @@ msgstr "Si us plau, prem el botó 'Tornar' <strong>ara</strong> si no saps segur
msgid "Return to contact editor"
msgstr "Tornar al editor de contactes"
#: ../../mod/crepair.php:148 ../../mod/settings.php:462
#: ../../mod/settings.php:488 ../../mod/admin.php:484 ../../mod/admin.php:493
#: ../../mod/crepair.php:148 ../../mod/settings.php:545
#: ../../mod/settings.php:571 ../../mod/admin.php:692 ../../mod/admin.php:702
msgid "Name"
msgstr "Nom"
#: ../../mod/crepair.php:149
msgid "Account Nickname"
msgstr "Malnom de Compte"
msgstr "Àlies del Compte"
#: ../../mod/crepair.php:150
msgid "@Tagname - overrides Name/Nickname"
msgstr "@Tagname - té prel·lació sobre Nom/Malnom"
msgstr "@Tagname - té prel·lació sobre Nom/Àlies"
#: ../../mod/crepair.php:151
msgid "Account URL"
@ -120,38 +128,57 @@ msgid "New photo from this URL"
msgstr "Nova foto d'aquesta URL"
#: ../../mod/crepair.php:166 ../../mod/fsuggest.php:107
#: ../../mod/events.php:400 ../../mod/photos.php:900 ../../mod/photos.php:958
#: ../../mod/photos.php:1182 ../../mod/photos.php:1222
#: ../../mod/photos.php:1262 ../../mod/photos.php:1293
#: ../../mod/install.php:251 ../../mod/install.php:289
#: ../../mod/localtime.php:45 ../../mod/contacts.php:319
#: ../../mod/settings.php:460 ../../mod/settings.php:603
#: ../../mod/settings.php:797 ../../mod/manage.php:109 ../../mod/group.php:80
#: ../../mod/admin.php:313 ../../mod/admin.php:481 ../../mod/admin.php:609
#: ../../mod/admin.php:776 ../../mod/admin.php:856 ../../mod/profiles.php:375
#: ../../mod/invite.php:106 ../../addon/facebook/facebook.php:411
#: ../../addon/yourls/yourls.php:76 ../../addon/ljpost/ljpost.php:92
#: ../../addon/nsfw/nsfw.php:57
#: ../../mod/events.php:455 ../../mod/photos.php:1005
#: ../../mod/photos.php:1081 ../../mod/photos.php:1338
#: ../../mod/photos.php:1378 ../../mod/photos.php:1419
#: ../../mod/photos.php:1451 ../../mod/install.php:246
#: ../../mod/install.php:284 ../../mod/localtime.php:45 ../../mod/poke.php:199
#: ../../mod/content.php:693 ../../mod/contacts.php:348
#: ../../mod/settings.php:543 ../../mod/settings.php:697
#: ../../mod/settings.php:769 ../../mod/settings.php:976
#: ../../mod/group.php:85 ../../mod/mood.php:137 ../../mod/message.php:294
#: ../../mod/message.php:480 ../../mod/admin.php:443 ../../mod/admin.php:689
#: ../../mod/admin.php:826 ../../mod/admin.php:1025 ../../mod/admin.php:1112
#: ../../mod/profiles.php:583 ../../mod/invite.php:119
#: ../../addon/fromgplus/fromgplus.php:40
#: ../../addon/facebook/facebook.php:619
#: ../../addon/snautofollow/snautofollow.php:64 ../../addon/bg/bg.php:90
#: ../../addon/fbpost/fbpost.php:226 ../../addon/yourls/yourls.php:76
#: ../../addon/ljpost/ljpost.php:93 ../../addon/nsfw/nsfw.php:88
#: ../../addon/page/page.php:210 ../../addon/planets/planets.php:158
#: ../../addon/uhremotestorage/uhremotestorage.php:89
#: ../../addon/randplace/randplace.php:179 ../../addon/dwpost/dwpost.php:92
#: ../../addon/drpost/drpost.php:110 ../../addon/geonames/geonames.php:187
#: ../../addon/oembed.old/oembed.php:41 ../../addon/impressum/impressum.php:69
#: ../../addon/blockem/blockem.php:57 ../../addon/qcomment/qcomment.php:61
#: ../../addon/randplace/randplace.php:177 ../../addon/dwpost/dwpost.php:93
#: ../../addon/drpost/drpost.php:110 ../../addon/startpage/startpage.php:92
#: ../../addon/geonames/geonames.php:187 ../../addon/oembed.old/oembed.php:41
#: ../../addon/forumlist/forumlist.php:169
#: ../../addon/impressum/impressum.php:83
#: ../../addon/notimeline/notimeline.php:64 ../../addon/blockem/blockem.php:57
#: ../../addon/qcomment/qcomment.php:61
#: ../../addon/openstreetmap/openstreetmap.php:70
#: ../../addon/editplain/editplain.php:84 ../../addon/blackout/blackout.php:94
#: ../../addon/pageheader/pageheader.php:52
#: ../../addon/statusnet/statusnet.php:273
#: ../../addon/statusnet/statusnet.php:287
#: ../../addon/statusnet/statusnet.php:313
#: ../../addon/statusnet/statusnet.php:320
#: ../../addon/statusnet/statusnet.php:345
#: ../../addon/statusnet/statusnet.php:532 ../../addon/tumblr/tumblr.php:90
#: ../../addon/group_text/group_text.php:84
#: ../../addon/libravatar/libravatar.php:99
#: ../../addon/libertree/libertree.php:90 ../../addon/altpager/altpager.php:87
#: ../../addon/mathjax/mathjax.php:42 ../../addon/editplain/editplain.php:84
#: ../../addon/blackout/blackout.php:98 ../../addon/gravatar/gravatar.php:95
#: ../../addon/pageheader/pageheader.php:55 ../../addon/ijpost/ijpost.php:93
#: ../../addon/jappixmini/jappixmini.php:307
#: ../../addon/statusnet/statusnet.php:278
#: ../../addon/statusnet/statusnet.php:292
#: ../../addon/statusnet/statusnet.php:318
#: ../../addon/statusnet/statusnet.php:325
#: ../../addon/statusnet/statusnet.php:353
#: ../../addon/statusnet/statusnet.php:576 ../../addon/tumblr/tumblr.php:90
#: ../../addon/numfriends/numfriends.php:85 ../../addon/gnot/gnot.php:88
#: ../../addon/wppost/wppost.php:102 ../../addon/showmore/showmore.php:48
#: ../../addon/piwik/piwik.php:89 ../../addon/twitter/twitter.php:175
#: ../../addon/twitter/twitter.php:201 ../../addon/twitter/twitter.php:355
#: ../../addon/posterous/posterous.php:90
#: ../../view/theme/quattro/theme.php:15 ../../include/conversation.php:552
#: ../../addon/wppost/wppost.php:110 ../../addon/showmore/showmore.php:48
#: ../../addon/piwik/piwik.php:89 ../../addon/twitter/twitter.php:180
#: ../../addon/twitter/twitter.php:209 ../../addon/twitter/twitter.php:394
#: ../../addon/irc/irc.php:55 ../../addon/fromapp/fromapp.php:77
#: ../../addon/blogger/blogger.php:102 ../../addon/posterous/posterous.php:103
#: ../../view/theme/cleanzero/config.php:80
#: ../../view/theme/diabook/theme.php:757
#: ../../view/theme/diabook/config.php:190
#: ../../view/theme/quattro/config.php:53 ../../view/theme/dispy/config.php:70
#: ../../include/conversation.php:607 ../../object/Item.php:559
msgid "Submit"
msgstr "Enviar"
@ -159,24 +186,25 @@ msgstr "Enviar"
msgid "Help:"
msgstr "Ajuda:"
#: ../../mod/help.php:34 ../../include/nav.php:82
#: ../../mod/help.php:34 ../../addon/dav/friendica/layout.fnk.php:225
#: ../../include/nav.php:86
msgid "Help"
msgstr "Ajuda"
#: ../../mod/help.php:38 ../../index.php:221
#: ../../mod/help.php:38 ../../index.php:226
msgid "Not Found"
msgstr "No trobat"
#: ../../mod/help.php:41 ../../index.php:224
#: ../../mod/help.php:41 ../../index.php:229
msgid "Page not found."
msgstr "Pàgina no trobada."
#: ../../mod/wall_attach.php:57
#: ../../mod/wall_attach.php:69
#, php-format
msgid "File exceeds size limit of %d"
msgstr "L'arxiu excedeix la mida límit de %d"
#: ../../mod/wall_attach.php:85 ../../mod/wall_attach.php:96
#: ../../mod/wall_attach.php:110 ../../mod/wall_attach.php:121
msgid "File upload failed."
msgstr "La càrrega de fitxers ha fallat."
@ -191,85 +219,97 @@ msgstr "Suggerir Amics"
#: ../../mod/fsuggest.php:99
#, php-format
msgid "Suggest a friend for %s"
msgstr "Suggerir una amic per a %s"
msgstr "Suggerir un amic per a %s"
#: ../../mod/events.php:62
msgid "Event description and start time are required."
msgstr "Es requereix descripció de l'esdeveniment i l'hora d'inici."
#: ../../mod/events.php:66
msgid "Event title and start time are required."
msgstr "Títol d'esdeveniment i hora d'inici requerits."
#: ../../mod/events.php:230
#: ../../mod/events.php:279
msgid "l, F j"
msgstr "l, F j"
#: ../../mod/events.php:252
#: ../../mod/events.php:301
msgid "Edit event"
msgstr "Editar esdeveniment"
#: ../../mod/events.php:272 ../../include/text.php:982
#: ../../mod/events.php:323 ../../include/text.php:1187
msgid "link to source"
msgstr "Enllaç al origen"
#: ../../mod/events.php:296 ../../include/nav.php:50 ../../boot.php:1349
#: ../../mod/events.php:347 ../../view/theme/diabook/theme.php:131
#: ../../include/nav.php:52 ../../boot.php:1689
msgid "Events"
msgstr "Esdeveniments"
#: ../../mod/events.php:297
#: ../../mod/events.php:348
msgid "Create New Event"
msgstr "Crear un nou esdeveniment"
#: ../../mod/events.php:298
#: ../../mod/events.php:349 ../../addon/dav/friendica/layout.fnk.php:263
msgid "Previous"
msgstr "Previ"
#: ../../mod/events.php:299 ../../mod/install.php:210
#: ../../mod/events.php:350 ../../mod/install.php:205
#: ../../addon/dav/friendica/layout.fnk.php:266
msgid "Next"
msgstr "Proper"
msgstr "Següent"
#: ../../mod/events.php:371
#: ../../mod/events.php:423
msgid "hour:minute"
msgstr "hora:minut"
#: ../../mod/events.php:380
#: ../../mod/events.php:433
msgid "Event details"
msgstr "Detalls del esdeveniment"
#: ../../mod/events.php:381
#: ../../mod/events.php:434
#, php-format
msgid "Format is %s %s. Starting date and Description are required."
msgstr "El format és %s %s. Es requereix Data d'inici i Descripció."
msgid "Format is %s %s. Starting date and Title are required."
msgstr "El Format és %s %s. Data d'inici i títol requerits."
#: ../../mod/events.php:383
#: ../../mod/events.php:436
msgid "Event Starts:"
msgstr "Inici d'Esdeveniment:"
#: ../../mod/events.php:386
#: ../../mod/events.php:436 ../../mod/events.php:450
msgid "Required"
msgstr "Requerit"
#: ../../mod/events.php:439
msgid "Finish date/time is not known or not relevant"
msgstr "La data/hora de finalització no es coneixen o no són relevants"
#: ../../mod/events.php:388
#: ../../mod/events.php:441
msgid "Event Finishes:"
msgstr "L'esdeveniment Finalitza:"
#: ../../mod/events.php:391
#: ../../mod/events.php:444
msgid "Adjust for viewer timezone"
msgstr "Ajustar a la zona horaria de l'espectador"
#: ../../mod/events.php:393
#: ../../mod/events.php:446
msgid "Description:"
msgstr "Descripció:"
#: ../../mod/events.php:395 ../../include/event.php:37
#: ../../include/bb2diaspora.php:260 ../../boot.php:980
#: ../../mod/events.php:448 ../../mod/directory.php:134
#: ../../include/event.php:40 ../../include/bb2diaspora.php:412
#: ../../boot.php:1226
msgid "Location:"
msgstr "Ubicació:"
#: ../../mod/events.php:397
#: ../../mod/events.php:450
msgid "Title:"
msgstr "Títol:"
#: ../../mod/events.php:452
msgid "Share this event"
msgstr "Compartir aquest esdeveniment"
#: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94
#: ../../mod/dfrn_request.php:686 ../../mod/settings.php:461
#: ../../mod/settings.php:487 ../../addon/js_upload/js_upload.php:45
#: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94 ../../mod/editpost.php:136
#: ../../mod/dfrn_request.php:847 ../../mod/settings.php:544
#: ../../mod/settings.php:570 ../../addon/js_upload/js_upload.php:45
#: ../../include/conversation.php:1307
msgid "Cancel"
msgstr "Cancel·lar"
@ -286,10 +326,11 @@ msgid "Select a tag to remove: "
msgstr "Selecciona etiqueta a esborrar:"
#: ../../mod/tagrm.php:93 ../../mod/delegate.php:130
#: ../../addon/dav/common/wdcal_edit.inc.php:468
msgid "Remove"
msgstr "Esborrar"
#: ../../mod/dfrn_poll.php:91 ../../mod/dfrn_poll.php:517
#: ../../mod/dfrn_poll.php:99 ../../mod/dfrn_poll.php:530
#, php-format
msgid "%s welcomes %s"
msgstr "%s Benvingut %s"
@ -312,290 +353,334 @@ msgid ""
" and/or create new posts for you?"
msgstr "Vol autoritzar a aquesta aplicació per accedir als teus missatges i contactes, i/o crear nous enviaments per a vostè?"
#: ../../mod/api.php:105 ../../mod/dfrn_request.php:676
#: ../../mod/settings.php:692 ../../mod/settings.php:698
#: ../../mod/settings.php:706 ../../mod/settings.php:710
#: ../../mod/settings.php:715 ../../mod/settings.php:721
#: ../../mod/settings.php:727 ../../mod/settings.php:787
#: ../../mod/settings.php:788 ../../mod/settings.php:789
#: ../../mod/settings.php:790 ../../mod/register.php:524
#: ../../mod/profiles.php:357
#: ../../mod/api.php:105 ../../mod/dfrn_request.php:835
#: ../../mod/settings.php:892 ../../mod/settings.php:898
#: ../../mod/settings.php:906 ../../mod/settings.php:910
#: ../../mod/settings.php:915 ../../mod/settings.php:921
#: ../../mod/settings.php:927 ../../mod/settings.php:933
#: ../../mod/settings.php:963 ../../mod/settings.php:964
#: ../../mod/settings.php:965 ../../mod/settings.php:966
#: ../../mod/settings.php:967 ../../mod/register.php:236
#: ../../mod/profiles.php:563
msgid "Yes"
msgstr "Si"
#: ../../mod/api.php:106 ../../mod/dfrn_request.php:677
#: ../../mod/settings.php:692 ../../mod/settings.php:698
#: ../../mod/settings.php:706 ../../mod/settings.php:710
#: ../../mod/settings.php:715 ../../mod/settings.php:721
#: ../../mod/settings.php:727 ../../mod/settings.php:787
#: ../../mod/settings.php:788 ../../mod/settings.php:789
#: ../../mod/settings.php:790 ../../mod/register.php:525
#: ../../mod/profiles.php:358
#: ../../mod/api.php:106 ../../mod/dfrn_request.php:836
#: ../../mod/settings.php:892 ../../mod/settings.php:898
#: ../../mod/settings.php:906 ../../mod/settings.php:910
#: ../../mod/settings.php:915 ../../mod/settings.php:921
#: ../../mod/settings.php:927 ../../mod/settings.php:933
#: ../../mod/settings.php:963 ../../mod/settings.php:964
#: ../../mod/settings.php:965 ../../mod/settings.php:966
#: ../../mod/settings.php:967 ../../mod/register.php:237
#: ../../mod/profiles.php:564
msgid "No"
msgstr "No"
#: ../../mod/photos.php:42
#: ../../mod/photos.php:46 ../../boot.php:1682
msgid "Photo Albums"
msgstr "Àlbum de Fotos"
#: ../../mod/photos.php:50 ../../mod/photos.php:150 ../../mod/photos.php:879
#: ../../mod/photos.php:950 ../../mod/photos.php:965 ../../mod/photos.php:1371
#: ../../mod/photos.php:1383 ../../addon/communityhome/communityhome.php:110
#: ../../mod/photos.php:54 ../../mod/photos.php:149 ../../mod/photos.php:986
#: ../../mod/photos.php:1073 ../../mod/photos.php:1088
#: ../../mod/photos.php:1530 ../../mod/photos.php:1542
#: ../../addon/communityhome/communityhome.php:110
#: ../../view/theme/diabook/theme.php:598
msgid "Contact Photos"
msgstr "Fotos de Contacte"
#: ../../mod/photos.php:57 ../../mod/photos.php:975 ../../mod/photos.php:1413
#: ../../mod/photos.php:61 ../../mod/photos.php:1104 ../../mod/photos.php:1580
msgid "Upload New Photos"
msgstr "Actualitzar Noves Fotos"
#: ../../mod/photos.php:68 ../../mod/settings.php:11
#: ../../mod/photos.php:74 ../../mod/settings.php:23
msgid "everybody"
msgstr "tothom"
#: ../../mod/photos.php:139
#: ../../mod/photos.php:138
msgid "Contact information unavailable"
msgstr "Informació del Contacte no disponible"
#: ../../mod/photos.php:150 ../../mod/photos.php:597 ../../mod/photos.php:950
#: ../../mod/photos.php:965 ../../mod/register.php:327
#: ../../mod/register.php:334 ../../mod/register.php:341
#: ../../mod/profile_photo.php:58 ../../mod/profile_photo.php:65
#: ../../mod/profile_photo.php:72 ../../mod/profile_photo.php:170
#: ../../mod/profile_photo.php:246 ../../mod/profile_photo.php:255
#: ../../mod/photos.php:149 ../../mod/photos.php:653 ../../mod/photos.php:1073
#: ../../mod/photos.php:1088 ../../mod/profile_photo.php:74
#: ../../mod/profile_photo.php:81 ../../mod/profile_photo.php:88
#: ../../mod/profile_photo.php:204 ../../mod/profile_photo.php:296
#: ../../mod/profile_photo.php:305
#: ../../addon/communityhome/communityhome.php:111
#: ../../view/theme/diabook/theme.php:599 ../../include/user.php:324
#: ../../include/user.php:331 ../../include/user.php:338
msgid "Profile Photos"
msgstr "Fotos del Perfil"
#: ../../mod/photos.php:160
#: ../../mod/photos.php:159
msgid "Album not found."
msgstr "Àlbum no trobat."
#: ../../mod/photos.php:178 ../../mod/photos.php:959
#: ../../mod/photos.php:177 ../../mod/photos.php:1082
msgid "Delete Album"
msgstr "Eliminar Àlbum"
#: ../../mod/photos.php:241 ../../mod/photos.php:1183
#: ../../mod/photos.php:240 ../../mod/photos.php:1339
msgid "Delete Photo"
msgstr "Eliminar Foto"
#: ../../mod/photos.php:528
#: ../../mod/photos.php:584
msgid "was tagged in a"
msgstr "Fou etiquetat a un"
#: ../../mod/photos.php:528 ../../mod/like.php:127 ../../mod/tagger.php:70
#: ../../addon/communityhome/communityhome.php:163 ../../include/text.php:1226
#: ../../include/diaspora.php:1600 ../../include/conversation.php:53
#: ../../include/conversation.php:126
#: ../../mod/photos.php:584 ../../mod/like.php:145 ../../mod/tagger.php:62
#: ../../addon/communityhome/communityhome.php:163
#: ../../view/theme/diabook/theme.php:570 ../../include/text.php:1439
#: ../../include/diaspora.php:1824 ../../include/conversation.php:125
#: ../../include/conversation.php:253
msgid "photo"
msgstr "foto"
#: ../../mod/photos.php:528
#: ../../mod/photos.php:584
msgid "by"
msgstr "per"
#: ../../mod/photos.php:631 ../../addon/js_upload/js_upload.php:315
#: ../../mod/photos.php:689 ../../addon/js_upload/js_upload.php:315
msgid "Image exceeds size limit of "
msgstr "La imatge excedeix el límit de "
#: ../../mod/photos.php:639
#: ../../mod/photos.php:697
msgid "Image file is empty."
msgstr "El fitxer de imatge és buit."
#: ../../mod/photos.php:653 ../../mod/profile_photo.php:122
#: ../../mod/wall_upload.php:65
#: ../../mod/photos.php:729 ../../mod/profile_photo.php:153
#: ../../mod/wall_upload.php:110
msgid "Unable to process image."
msgstr "Incapaç de processar la imatge."
#: ../../mod/photos.php:673 ../../mod/profile_photo.php:251
#: ../../mod/wall_upload.php:84
#: ../../mod/photos.php:756 ../../mod/profile_photo.php:301
#: ../../mod/wall_upload.php:136
msgid "Image upload failed."
msgstr "Actualització de la imatge fracassada."
#: ../../mod/photos.php:759 ../../mod/community.php:16
#: ../../mod/dfrn_request.php:625 ../../mod/viewcontacts.php:17
#: ../../mod/display.php:7 ../../mod/search.php:71 ../../mod/directory.php:33
#: ../../mod/photos.php:842 ../../mod/community.php:18
#: ../../mod/dfrn_request.php:760 ../../mod/viewcontacts.php:17
#: ../../mod/display.php:7 ../../mod/search.php:73 ../../mod/directory.php:31
msgid "Public access denied."
msgstr "Accés públic denegat."
#: ../../mod/photos.php:769
#: ../../mod/photos.php:852
msgid "No photos selected"
msgstr "No s'han seleccionat fotos"
#: ../../mod/photos.php:846
#: ../../mod/photos.php:953
msgid "Access to this item is restricted."
msgstr "L'accés a aquest element està restringit."
#: ../../mod/photos.php:907
#: ../../mod/photos.php:1015
#, php-format
msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."
msgstr "Has emprat %1$.2f Mbytes de %2$.2f Mbytes del magatzem de fotos."
#: ../../mod/photos.php:1018
#, php-format
msgid "You have used %1$.2f Mbytes of photo storage."
msgstr "Has emprat %1$.2f Mbytes del magatzem de fotos."
#: ../../mod/photos.php:1024
msgid "Upload Photos"
msgstr "Carregar Fotos"
#: ../../mod/photos.php:910 ../../mod/photos.php:954
#: ../../mod/photos.php:1028 ../../mod/photos.php:1077
msgid "New album name: "
msgstr "Nou nom d'àlbum:"
#: ../../mod/photos.php:911
#: ../../mod/photos.php:1029
msgid "or existing album name: "
msgstr "o nom d'àlbum existent:"
#: ../../mod/photos.php:912
#: ../../mod/photos.php:1030
msgid "Do not show a status post for this upload"
msgstr "No tornis a mostrar un missatge d'estat d'aquesta pujada"
#: ../../mod/photos.php:914 ../../mod/photos.php:1178
#: ../../mod/photos.php:1032 ../../mod/photos.php:1334
msgid "Permissions"
msgstr "Permisos"
#: ../../mod/photos.php:969
#: ../../mod/photos.php:1092
msgid "Edit Album"
msgstr "Editar Àlbum"
#: ../../mod/photos.php:984 ../../mod/photos.php:1396
#: ../../mod/photos.php:1098
msgid "Show Newest First"
msgstr ""
#: ../../mod/photos.php:1100
msgid "Show Oldest First"
msgstr ""
#: ../../mod/photos.php:1124 ../../mod/photos.php:1563
msgid "View Photo"
msgstr "Veure Foto"
#: ../../mod/photos.php:1019
#: ../../mod/photos.php:1159
msgid "Permission denied. Access to this item may be restricted."
msgstr "Permís denegat. L'accés a aquest element pot estar restringit."
#: ../../mod/photos.php:1021
#: ../../mod/photos.php:1161
msgid "Photo not available"
msgstr "Foto no disponible"
#: ../../mod/photos.php:1071
#: ../../mod/photos.php:1217
msgid "View photo"
msgstr "Veure foto"
#: ../../mod/photos.php:1071
#: ../../mod/photos.php:1217
msgid "Edit photo"
msgstr "Editar foto"
#: ../../mod/photos.php:1072
#: ../../mod/photos.php:1218
msgid "Use as profile photo"
msgstr "Emprar com a foto del perfil"
#: ../../mod/photos.php:1078 ../../include/conversation.php:482
#: ../../mod/photos.php:1224 ../../mod/content.php:603
#: ../../include/conversation.php:436 ../../object/Item.php:103
msgid "Private Message"
msgstr "Missatge Privat"
#: ../../mod/photos.php:1089
#: ../../mod/photos.php:1243
msgid "View Full Size"
msgstr "Veure'l a Mida Completa"
#: ../../mod/photos.php:1157
#: ../../mod/photos.php:1311
msgid "Tags: "
msgstr "Etiquetes:"
#: ../../mod/photos.php:1160
#: ../../mod/photos.php:1314
msgid "[Remove any tag]"
msgstr "Treure etiquetes"
#: ../../mod/photos.php:1171
#: ../../mod/photos.php:1324
msgid "Rotate CW (right)"
msgstr "Rotar CW (dreta)"
#: ../../mod/photos.php:1325
msgid "Rotate CCW (left)"
msgstr "Rotar CCW (esquerra)"
#: ../../mod/photos.php:1327
msgid "New album name"
msgstr "Nou nom d'àlbum"
#: ../../mod/photos.php:1174
#: ../../mod/photos.php:1330
msgid "Caption"
msgstr "Títol"
#: ../../mod/photos.php:1176
#: ../../mod/photos.php:1332
msgid "Add a Tag"
msgstr "Afegir una etiqueta"
#: ../../mod/photos.php:1180
#: ../../mod/photos.php:1336
msgid ""
"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
msgstr "Exemple: @bob, @Barbara_jensen, @jim@example.com, #California, #camping"
#: ../../mod/photos.php:1200 ../../include/conversation.php:529
#: ../../mod/photos.php:1356 ../../mod/content.php:667
#: ../../include/conversation.php:581 ../../object/Item.php:195
msgid "I like this (toggle)"
msgstr "M'agrada això (canviar)"
#: ../../mod/photos.php:1201 ../../include/conversation.php:530
#: ../../mod/photos.php:1357 ../../mod/content.php:668
#: ../../include/conversation.php:582 ../../object/Item.php:196
msgid "I don't like this (toggle)"
msgstr "No m'agrada això (canviar)"
#: ../../mod/photos.php:1202 ../../include/conversation.php:933
#: ../../mod/photos.php:1358 ../../include/conversation.php:1268
msgid "Share"
msgstr "Compartir"
#: ../../mod/photos.php:1203 ../../mod/editpost.php:104
#: ../../mod/message.php:155 ../../mod/message.php:296
#: ../../include/conversation.php:348 ../../include/conversation.php:694
#: ../../include/conversation.php:950
#: ../../mod/photos.php:1359 ../../mod/editpost.php:112
#: ../../mod/content.php:482 ../../mod/content.php:845
#: ../../mod/wallmessage.php:152 ../../mod/message.php:293
#: ../../mod/message.php:481 ../../include/conversation.php:686
#: ../../include/conversation.php:944 ../../include/conversation.php:1287
#: ../../object/Item.php:257
msgid "Please wait"
msgstr "Si us plau esperi"
#: ../../mod/photos.php:1219 ../../mod/photos.php:1259
#: ../../mod/photos.php:1290 ../../include/conversation.php:549
#: ../../mod/photos.php:1375 ../../mod/photos.php:1416
#: ../../mod/photos.php:1448 ../../mod/content.php:690
#: ../../include/conversation.php:604 ../../object/Item.php:556
msgid "This is you"
msgstr "Aquest ets tu"
#: ../../mod/photos.php:1221 ../../mod/photos.php:1261
#: ../../mod/photos.php:1292 ../../include/conversation.php:551
#: ../../boot.php:447
#: ../../mod/photos.php:1377 ../../mod/photos.php:1418
#: ../../mod/photos.php:1450 ../../mod/content.php:692
#: ../../include/conversation.php:606 ../../boot.php:574
#: ../../object/Item.php:558
msgid "Comment"
msgstr "Comentari"
#: ../../mod/photos.php:1223 ../../mod/editpost.php:123
#: ../../include/conversation.php:553 ../../include/conversation.php:968
#: ../../mod/photos.php:1379 ../../mod/editpost.php:133
#: ../../mod/content.php:702 ../../include/conversation.php:616
#: ../../include/conversation.php:1305 ../../object/Item.php:568
msgid "Preview"
msgstr "Vista prèvia"
#: ../../mod/photos.php:1320 ../../mod/settings.php:520
#: ../../mod/settings.php:601 ../../mod/group.php:158 ../../mod/admin.php:488
#: ../../include/conversation.php:304 ../../include/conversation.php:573
#: ../../mod/photos.php:1479 ../../mod/content.php:439
#: ../../mod/content.php:723 ../../mod/settings.php:606
#: ../../mod/settings.php:695 ../../mod/group.php:168 ../../mod/admin.php:696
#: ../../include/conversation.php:448 ../../include/conversation.php:889
#: ../../object/Item.php:116
msgid "Delete"
msgstr "Esborrar"
#: ../../mod/photos.php:1402
#: ../../mod/photos.php:1569
msgid "View Album"
msgstr "Veure Àlbum"
#: ../../mod/photos.php:1411
#: ../../mod/photos.php:1578
msgid "Recent Photos"
msgstr "Fotos Recents"
#: ../../mod/community.php:21
#: ../../mod/community.php:23
msgid "Not available."
msgstr "No disponible."
#: ../../mod/community.php:30 ../../include/nav.php:97
#: ../../mod/community.php:32 ../../view/theme/diabook/theme.php:133
#: ../../include/nav.php:101
msgid "Community"
msgstr "Comunitat"
#: ../../mod/community.php:60 ../../mod/search.php:118
#: ../../mod/community.php:63 ../../mod/community.php:88
#: ../../mod/search.php:148 ../../mod/search.php:174
msgid "No results."
msgstr "Sense resultats."
#: ../../mod/friendica.php:43
#: ../../mod/friendica.php:55
msgid "This is Friendica, version"
msgstr "Això és Friendica, versió"
#: ../../mod/friendica.php:44
#: ../../mod/friendica.php:56
msgid "running at web location"
msgstr "funcionant en la ubicació web"
#: ../../mod/friendica.php:46
#: ../../mod/friendica.php:58
msgid ""
"Please visit <a href=\"http://friendica.com\">Friendica.com</a> to learn "
"more about the Friendica project."
msgstr "Si us plau, visiteu <a href=\"http://friendica.com\">Friendica.com</a> per obtenir més informació sobre el projecte Friendica."
#: ../../mod/friendica.php:48
#: ../../mod/friendica.php:60
msgid "Bug reports and issues: please visit"
msgstr "Pels informes d'error i problemes: si us plau, visiteu"
#: ../../mod/friendica.php:49
#: ../../mod/friendica.php:61
msgid ""
"Suggestions, praise, donations, etc. - please email \"Info\" at Friendica - "
"dot com"
msgstr "Suggeriments, elogis, donacions, etc si us plau escrigui a \"Info\" en Friendica - dot com"
#: ../../mod/friendica.php:54
msgid "Installed plugins/addons/apps"
msgstr "plugins/addons/apps instal·lats"
#: ../../mod/friendica.php:75
msgid "Installed plugins/addons/apps:"
msgstr "plugins/addons/apps instal·lats:"
#: ../../mod/friendica.php:62
#: ../../mod/friendica.php:88
msgid "No installed plugins/addons/apps"
msgstr "plugins/addons/apps no instal·lats"
@ -607,253 +692,274 @@ msgstr "Element no trobat"
msgid "Edit post"
msgstr "Editar Enviament"
#: ../../mod/editpost.php:80 ../../include/conversation.php:919
#: ../../mod/editpost.php:88 ../../include/conversation.php:1254
msgid "Post to Email"
msgstr "Correu per enviar"
#: ../../mod/editpost.php:95 ../../mod/settings.php:519
#: ../../include/conversation.php:560
#: ../../mod/editpost.php:103 ../../mod/content.php:710
#: ../../mod/settings.php:605 ../../include/conversation.php:441
#: ../../object/Item.php:107
msgid "Edit"
msgstr "Editar"
#: ../../mod/editpost.php:96 ../../mod/message.php:153
#: ../../mod/message.php:294 ../../include/conversation.php:934
#: ../../mod/editpost.php:104 ../../mod/wallmessage.php:150
#: ../../mod/message.php:291 ../../mod/message.php:478
#: ../../include/conversation.php:1269
msgid "Upload photo"
msgstr "Carregar foto"
#: ../../mod/editpost.php:97 ../../include/conversation.php:936
#: ../../mod/editpost.php:105 ../../include/conversation.php:1271
msgid "Attach file"
msgstr "Adjunta fitxer"
#: ../../mod/editpost.php:98 ../../mod/message.php:154
#: ../../mod/message.php:295 ../../include/conversation.php:938
#: ../../mod/editpost.php:106 ../../mod/wallmessage.php:151
#: ../../mod/message.php:292 ../../mod/message.php:479
#: ../../include/conversation.php:1273
msgid "Insert web link"
msgstr "Inserir enllaç web"
#: ../../mod/editpost.php:99
#: ../../mod/editpost.php:107
msgid "Insert YouTube video"
msgstr "Serà mostrat de forma preeminent a la pagina durant el procés de registre."
#: ../../mod/editpost.php:100
#: ../../mod/editpost.php:108
msgid "Insert Vorbis [.ogg] video"
msgstr "Inserir video Vorbis [.ogg]"
#: ../../mod/editpost.php:101
#: ../../mod/editpost.php:109
msgid "Insert Vorbis [.ogg] audio"
msgstr "Inserir audio Vorbis [.ogg]"
#: ../../mod/editpost.php:102 ../../include/conversation.php:944
#: ../../mod/editpost.php:110 ../../include/conversation.php:1279
msgid "Set your location"
msgstr "Canvia la teva ubicació"
#: ../../mod/editpost.php:103 ../../include/conversation.php:946
#: ../../mod/editpost.php:111 ../../include/conversation.php:1281
msgid "Clear browser location"
msgstr "neteja adreçes del navegador"
#: ../../mod/editpost.php:105 ../../include/conversation.php:951
#: ../../mod/editpost.php:113 ../../include/conversation.php:1288
msgid "Permission settings"
msgstr "Configuració de permisos"
#: ../../mod/editpost.php:113 ../../include/conversation.php:960
#: ../../mod/editpost.php:121 ../../include/conversation.php:1297
msgid "CC: email addresses"
msgstr "CC: Adreça de correu"
#: ../../mod/editpost.php:114 ../../include/conversation.php:961
#: ../../mod/editpost.php:122 ../../include/conversation.php:1298
msgid "Public post"
msgstr "Enviament públic"
#: ../../mod/editpost.php:117 ../../include/conversation.php:949
#: ../../mod/editpost.php:125 ../../include/conversation.php:1284
msgid "Set title"
msgstr "Canviar títol"
#: ../../mod/editpost.php:118 ../../include/conversation.php:963
#: ../../mod/editpost.php:127 ../../include/conversation.php:1286
msgid "Categories (comma-separated list)"
msgstr "Categories (lista separada per comes)"
#: ../../mod/editpost.php:128 ../../include/conversation.php:1300
msgid "Example: bob@example.com, mary@example.com"
msgstr "Exemple: bob@example.com, mary@example.com"
#: ../../mod/dfrn_request.php:92
#: ../../mod/dfrn_request.php:93
msgid "This introduction has already been accepted."
msgstr "Aquesta presentació ha estat acceptada."
#: ../../mod/dfrn_request.php:116 ../../mod/dfrn_request.php:381
#: ../../mod/dfrn_request.php:118 ../../mod/dfrn_request.php:512
msgid "Profile location is not valid or does not contain profile information."
msgstr "El perfil de situació no és vàlid o no contè informació de perfil"
#: ../../mod/dfrn_request.php:121 ../../mod/dfrn_request.php:386
#: ../../mod/dfrn_request.php:123 ../../mod/dfrn_request.php:517
msgid "Warning: profile location has no identifiable owner name."
msgstr "Atenció: El perfil de situació no te nom de propietari identificable."
#: ../../mod/dfrn_request.php:123 ../../mod/dfrn_request.php:388
#: ../../mod/dfrn_request.php:125 ../../mod/dfrn_request.php:519
msgid "Warning: profile location has no profile photo."
msgstr "Atenció: El perfil de situació no te foto de perfil"
#: ../../mod/dfrn_request.php:126 ../../mod/dfrn_request.php:391
#: ../../mod/dfrn_request.php:128 ../../mod/dfrn_request.php:522
#, php-format
msgid "%d required parameter was not found at the given location"
msgid_plural "%d required parameters were not found at the given location"
msgstr[0] "%d el paràmetre requerit no es va trobar al lloc indicat"
msgstr[1] "%d els paràmetres requerits no es van trobar allloc indicat"
#: ../../mod/dfrn_request.php:167
#: ../../mod/dfrn_request.php:170
msgid "Introduction complete."
msgstr "Completada la presentació."
#: ../../mod/dfrn_request.php:191
#: ../../mod/dfrn_request.php:209
msgid "Unrecoverable protocol error."
msgstr "Error de protocol irrecuperable."
#: ../../mod/dfrn_request.php:219
#: ../../mod/dfrn_request.php:237
msgid "Profile unavailable."
msgstr "Perfil no disponible"
#: ../../mod/dfrn_request.php:244
#: ../../mod/dfrn_request.php:262
#, php-format
msgid "%s has received too many connection requests today."
msgstr "%s avui ha rebut excesives peticions de connexió. "
#: ../../mod/dfrn_request.php:245
#: ../../mod/dfrn_request.php:263
msgid "Spam protection measures have been invoked."
msgstr "Mesures de protecció contra spam han estat invocades."
#: ../../mod/dfrn_request.php:246
#: ../../mod/dfrn_request.php:264
msgid "Friends are advised to please try again in 24 hours."
msgstr "S'aconsellà els amics que probin pasades 24 hores."
#: ../../mod/dfrn_request.php:306
#: ../../mod/dfrn_request.php:326
msgid "Invalid locator"
msgstr "Localitzador no vàlid"
#: ../../mod/dfrn_request.php:326
#: ../../mod/dfrn_request.php:335
msgid "Invalid email address."
msgstr "Adreça de correu no vàlida."
#: ../../mod/dfrn_request.php:361
msgid "This account has not been configured for email. Request failed."
msgstr "Aquest compte no s'ha configurat per al correu electrònic. Ha fallat la sol·licitud."
#: ../../mod/dfrn_request.php:457
msgid "Unable to resolve your name at the provided location."
msgstr "Incapaç de resoldre el teu nom al lloc facilitat."
#: ../../mod/dfrn_request.php:339
#: ../../mod/dfrn_request.php:470
msgid "You have already introduced yourself here."
msgstr "Has fer la teva presentació aquí."
#: ../../mod/dfrn_request.php:343
#: ../../mod/dfrn_request.php:474
#, php-format
msgid "Apparently you are already friends with %s."
msgstr "Aparentment, ja tens amistat amb %s"
#: ../../mod/dfrn_request.php:364
#: ../../mod/dfrn_request.php:495
msgid "Invalid profile URL."
msgstr "Perfil URL no vàlid."
#: ../../mod/dfrn_request.php:370 ../../mod/follow.php:20
#: ../../mod/dfrn_request.php:501 ../../include/follow.php:27
msgid "Disallowed profile URL."
msgstr "Perfil URL no permès."
#: ../../mod/dfrn_request.php:439 ../../mod/contacts.php:102
#: ../../mod/dfrn_request.php:570 ../../mod/contacts.php:123
msgid "Failed to update contact record."
msgstr "Error en actualitzar registre de contacte."
#: ../../mod/dfrn_request.php:460
#: ../../mod/dfrn_request.php:591
msgid "Your introduction has been sent."
msgstr "La teva presentació ha estat enviada."
#: ../../mod/dfrn_request.php:513
#: ../../mod/dfrn_request.php:644
msgid "Please login to confirm introduction."
msgstr "Si us plau, entri per confirmar la presentació."
#: ../../mod/dfrn_request.php:527
#: ../../mod/dfrn_request.php:658
msgid ""
"Incorrect identity currently logged in. Please login to "
"<strong>this</strong> profile."
msgstr "Sesió iniciada amb la identificació incorrecta. Entra en <strong>aquest</strong> perfil."
#: ../../mod/dfrn_request.php:539
#: ../../mod/dfrn_request.php:669
msgid "Hide this contact"
msgstr "Amaga aquest contacte"
#: ../../mod/dfrn_request.php:672
#, php-format
msgid "Welcome home %s."
msgstr "Benvingut de nou %s"
#: ../../mod/dfrn_request.php:540
#: ../../mod/dfrn_request.php:673
#, php-format
msgid "Please confirm your introduction/connection request to %s."
msgstr "Si us plau, confirmi la seva sol·licitud de Presentació/Amistat a %s."
#: ../../mod/dfrn_request.php:541
#: ../../mod/dfrn_request.php:674
msgid "Confirm"
msgstr "Confirmar"
#: ../../mod/dfrn_request.php:582 ../../include/items.php:2566
#: ../../mod/dfrn_request.php:715 ../../include/items.php:3287
msgid "[Name Withheld]"
msgstr "[Nom Amagat]"
#: ../../mod/dfrn_request.php:666
#, php-format
msgid ""
"Diaspora members: Please do not use this form. Instead, enter \"%s\" into "
"your Diaspora search bar."
msgstr "Membres de Diàspora: Si us plau, no utilitzi aquest formulari. Pel contrari, escriviu \"%s\" a la barra de cerca de Diàspora."
#: ../../mod/dfrn_request.php:669
#: ../../mod/dfrn_request.php:810
msgid ""
"Please enter your 'Identity Address' from one of the following supported "
"social networks:"
"communications networks:"
msgstr "Si us plau, introdueixi la seva \"Adreça Identificativa\" d'una de les següents xarxes socials suportades:"
#: ../../mod/dfrn_request.php:672
#: ../../mod/dfrn_request.php:826
msgid "<strike>Connect as an email follower</strike> (Coming soon)"
msgstr "<strike>Connectar com un seguidor de correu</strike> (Disponible aviat)"
#: ../../mod/dfrn_request.php:828
msgid ""
"If you are not yet a member of the free social web, <a "
"href=\"http://dir.friendica.com/siteinfo\">follow this link to find a public"
" Friendica site and join us today</a>."
msgstr "Si encara no ets membre de la web social lliure, <a href=\"http://dir.friendica.com/siteinfo\">segueix aquest enllaç per a trobar un lloc Friendica públic i uneix-te avui</a>."
#: ../../mod/dfrn_request.php:831
msgid "Friend/Connection Request"
msgstr "Sol·licitud d'Amistat"
#: ../../mod/dfrn_request.php:673
#: ../../mod/dfrn_request.php:832
msgid ""
"Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, "
"testuser@identi.ca"
msgstr "Exemples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca"
#: ../../mod/dfrn_request.php:674
#: ../../mod/dfrn_request.php:833
msgid "Please answer the following:"
msgstr "Si us plau, contesti les següents preguntes:"
#: ../../mod/dfrn_request.php:675
#: ../../mod/dfrn_request.php:834
#, php-format
msgid "Does %s know you?"
msgstr "%s et coneix?"
#: ../../mod/dfrn_request.php:678
#: ../../mod/dfrn_request.php:837
msgid "Add a personal note:"
msgstr "Afegir una nota personal:"
#: ../../mod/dfrn_request.php:680 ../../include/contact_selectors.php:76
#: ../../mod/dfrn_request.php:839 ../../include/contact_selectors.php:76
msgid "Friendica"
msgstr "Friendica"
#: ../../mod/dfrn_request.php:681
#: ../../mod/dfrn_request.php:840
msgid "StatusNet/Federated Social Web"
msgstr "Web Social StatusNet/Federated "
#: ../../mod/dfrn_request.php:682 ../../mod/settings.php:555
#: ../../mod/dfrn_request.php:841 ../../mod/settings.php:640
#: ../../include/contact_selectors.php:80
msgid "Diaspora"
msgstr "Diaspora"
#: ../../mod/dfrn_request.php:683
msgid "- please share from your own site as noted above"
msgstr "- si us plau, Comparteix des del teu propi lloc tal com s'ha dit abans."
#: ../../mod/dfrn_request.php:842
#, php-format
msgid ""
" - please do not use this form. Instead, enter %s into your Diaspora search"
" bar."
msgstr " - per favor no utilitzi aquest formulari. Al contrari, entra %s en la barra de cerques de Diaspora."
#: ../../mod/dfrn_request.php:684
#: ../../mod/dfrn_request.php:843
msgid "Your Identity Address:"
msgstr "La Teva Adreça Identificativa:"
#: ../../mod/dfrn_request.php:685
#: ../../mod/dfrn_request.php:846
msgid "Submit Request"
msgstr "Sol·licitud Enviada"
#: ../../mod/install.php:111
#: ../../mod/install.php:117
msgid "Friendica Social Communications Server - Setup"
msgstr "Friendica Social Communications Server - Ajustos"
#: ../../mod/install.php:117 ../../mod/install.php:157
#: ../../mod/install.php:230
msgid "Database connection"
msgstr "Conexió a la base de dades"
#: ../../mod/install.php:124
#: ../../mod/install.php:123
msgid "Could not connect to database."
msgstr "No puc connectar a la base de dades."
#: ../../mod/install.php:128
#: ../../mod/install.php:127
msgid "Could not create table."
msgstr "No puc creat taula."
@ -861,232 +967,246 @@ msgstr "No puc creat taula."
msgid "Your Friendica site database has been installed."
msgstr "La base de dades del teu lloc Friendica ha estat instal·lada."
#: ../../mod/install.php:134
msgid ""
"IMPORTANT: You will need to [manually] setup a scheduled task for the "
"poller."
msgstr "IMPORTANT: necessitarà configurar [manualment] el programar una tasca pel sondejador (poller.php)"
#: ../../mod/install.php:135 ../../mod/install.php:151
#: ../../mod/install.php:209
msgid "Please see the file \"INSTALL.txt\"."
msgstr "Per favor, consulti l'arxiu \"INSTALL.txt\"."
#: ../../mod/install.php:137
msgid "Proceed to registration"
msgstr "Procedir a la inscripció"
#: ../../mod/install.php:143
msgid "Proceed with Installation"
msgstr "Procedeixi amb la Instal·lació"
#: ../../mod/install.php:150
#: ../../mod/install.php:138
msgid ""
"You may need to import the file \"database.sql\" manually using phpmyadmin "
"or mysql."
msgstr "Pot ser que hagi d'importar l'arxiu \"database.sql\" manualment amb phpmyadmin o mysql."
#: ../../mod/install.php:158
msgid "Database import failed."
msgstr "La importació de base de dades ha fallat."
#: ../../mod/install.php:139 ../../mod/install.php:204
#: ../../mod/install.php:488
msgid "Please see the file \"INSTALL.txt\"."
msgstr "Per favor, consulti l'arxiu \"INSTALL.txt\"."
#: ../../mod/install.php:206
#: ../../mod/install.php:201
msgid "System check"
msgstr "Comprovació del Sistema"
#: ../../mod/install.php:211
#: ../../mod/install.php:206
msgid "Check again"
msgstr "Comprovi de nou"
#: ../../mod/install.php:231
#: ../../mod/install.php:225
msgid "Database connection"
msgstr "Conexió a la base de dades"
#: ../../mod/install.php:226
msgid ""
"In order to install Friendica we need to know how to connect to your "
"database."
msgstr "Per a instal·lar Friendica necessitem conèixer com connectar amb la deva base de dades."
#: ../../mod/install.php:232
#: ../../mod/install.php:227
msgid ""
"Please contact your hosting provider or site administrator if you have "
"questions about these settings."
msgstr "Per favor, posi's en contacte amb el seu proveïdor de hosting o administrador del lloc si té alguna pregunta sobre aquestes opcions."
#: ../../mod/install.php:233
#: ../../mod/install.php:228
msgid ""
"The database you specify below should already exist. If it does not, please "
"create it before continuing."
msgstr "La base de dades que especifiques ja hauria d'existir. Si no és així, crea-la abans de continuar."
#: ../../mod/install.php:237
#: ../../mod/install.php:232
msgid "Database Server Name"
msgstr "Nom del Servidor de base de Dades"
#: ../../mod/install.php:238
#: ../../mod/install.php:233
msgid "Database Login Name"
msgstr "Nom d'Usuari de la base de Dades"
#: ../../mod/install.php:239
#: ../../mod/install.php:234
msgid "Database Login Password"
msgstr "Contrasenya d'Usuari de la base de Dades"
#: ../../mod/install.php:240
#: ../../mod/install.php:235
msgid "Database Name"
msgstr "Nom de la base de Dades"
#: ../../mod/install.php:241 ../../mod/install.php:280
#: ../../mod/install.php:236 ../../mod/install.php:275
msgid "Site administrator email address"
msgstr "Adreça de correu del administrador del lloc"
#: ../../mod/install.php:241 ../../mod/install.php:280
#: ../../mod/install.php:236 ../../mod/install.php:275
msgid ""
"Your account email address must match this in order to use the web admin "
"panel."
msgstr "El seu compte d'adreça electrònica ha de coincidir per tal d'utilitzar el panell d'administració web."
#: ../../mod/install.php:245 ../../mod/install.php:283
#: ../../mod/install.php:240 ../../mod/install.php:278
msgid "Please select a default timezone for your website"
msgstr "Per favor, seleccioni una zona horària per defecte per al seu lloc web"
#: ../../mod/install.php:270
#: ../../mod/install.php:265
msgid "Site settings"
msgstr "Configuracions del lloc"
#: ../../mod/install.php:323
#: ../../mod/install.php:318
msgid "Could not find a command line version of PHP in the web server PATH."
msgstr "No es va poder trobar una versió de línia de comandos de PHP en la ruta del servidor web."
#: ../../mod/install.php:326
#: ../../mod/install.php:319
msgid ""
"If you don't have a command line version of PHP installed on server, you "
"will not be able to run background polling via cron. See <a "
"href='http://friendica.com/node/27'>'Activating scheduled tasks'</a>"
msgstr "Si no tens una versió de línia de comandos instal·lada al teu servidor PHP, no podràs fer córrer els sondejos via cron. Mira <a href='http://friendica.com/node/27'>'Activating scheduled tasks'</a>"
#: ../../mod/install.php:323
msgid "PHP executable path"
msgstr "Direcció del executable PHP"
#: ../../mod/install.php:326
msgid "Enter full path to php executable"
msgstr "Introdueixi el camí complet del executable php"
#: ../../mod/install.php:323
msgid ""
"Enter full path to php executable. You can leave this blank to continue the "
"installation."
msgstr "Entra la ruta sencera fins l'executable de php. Pots deixar això buit per continuar l'instal·lació."
#: ../../mod/install.php:331
#: ../../mod/install.php:328
msgid "Command line PHP"
msgstr "Linia de comandos PHP"
#: ../../mod/install.php:340
#: ../../mod/install.php:337
msgid ""
"The command line version of PHP on your system does not have "
"\"register_argc_argv\" enabled."
msgstr "La versió de línia de comandos de PHP en el seu sistema no té \"register_argc_argv\" habilitat."
#: ../../mod/install.php:341
#: ../../mod/install.php:338
msgid "This is required for message delivery to work."
msgstr "Això és necessari perquè funcioni el lliurament de missatges."
#: ../../mod/install.php:343
msgid "PHP \"register_argc_argv\""
msgstr "PHP \"register_argc_argv\""
#: ../../mod/install.php:340
msgid "PHP register_argc_argv"
msgstr "PHP register_argc_argv"
#: ../../mod/install.php:364
#: ../../mod/install.php:361
msgid ""
"Error: the \"openssl_pkey_new\" function on this system is not able to "
"generate encryption keys"
msgstr "Error: la funció \"openssl_pkey_new\" en aquest sistema no és capaç de generar claus de xifrat"
#: ../../mod/install.php:365
#: ../../mod/install.php:362
msgid ""
"If running under Windows, please see "
"\"http://www.php.net/manual/en/openssl.installation.php\"."
msgstr "Si s'executa en Windows, per favor consulti la secció \"http://www.php.net/manual/en/openssl.installation.php\"."
#: ../../mod/install.php:367
#: ../../mod/install.php:364
msgid "Generate encryption keys"
msgstr "Generar claus d'encripció"
#: ../../mod/install.php:374
#: ../../mod/install.php:371
msgid "libCurl PHP module"
msgstr "Mòdul libCurl de PHP"
#: ../../mod/install.php:375
#: ../../mod/install.php:372
msgid "GD graphics PHP module"
msgstr "Mòdul GD de gràfics de PHP"
#: ../../mod/install.php:376
#: ../../mod/install.php:373
msgid "OpenSSL PHP module"
msgstr "Mòdul OpenSSl de PHP"
#: ../../mod/install.php:377
#: ../../mod/install.php:374
msgid "mysqli PHP module"
msgstr "Mòdul mysqli de PHP"
#: ../../mod/install.php:378
#: ../../mod/install.php:375
msgid "mb_string PHP module"
msgstr "Mòdul mb_string de PHP"
#: ../../mod/install.php:383 ../../mod/install.php:385
msgid "Apace mod_rewrite module"
msgstr "Mòdul mod_rewrite de Apache"
#: ../../mod/install.php:380 ../../mod/install.php:382
msgid "Apache mod_rewrite module"
msgstr "Apache mod_rewrite modul "
#: ../../mod/install.php:383
#: ../../mod/install.php:380
msgid ""
"Error: Apache webserver mod-rewrite module is required but not installed."
msgstr "Error: el mòdul mod-rewrite del servidor web Apache és necessari però no està instal·lat."
#: ../../mod/install.php:390
#: ../../mod/install.php:388
msgid "Error: libCURL PHP module required but not installed."
msgstr "Error: El mòdul libCURL de PHP és necessari però no està instal·lat."
#: ../../mod/install.php:394
#: ../../mod/install.php:392
msgid ""
"Error: GD graphics PHP module with JPEG support required but not installed."
msgstr "Error: el mòdul gràfic GD de PHP amb support per JPEG és necessari però no està instal·lat."
#: ../../mod/install.php:398
#: ../../mod/install.php:396
msgid "Error: openssl PHP module required but not installed."
msgstr "Error: El mòdul enssl de PHP és necessari però no està instal·lat."
#: ../../mod/install.php:402
#: ../../mod/install.php:400
msgid "Error: mysqli PHP module required but not installed."
msgstr "Error: El mòdul mysqli de PHP és necessari però no està instal·lat."
#: ../../mod/install.php:406
#: ../../mod/install.php:404
msgid "Error: mb_string PHP module required but not installed."
msgstr "Error: mòdul mb_string de PHP requerit però no instal·lat."
#: ../../mod/install.php:423
#: ../../mod/install.php:421
msgid ""
"The web installer needs to be able to create a file called \".htconfig.php\""
" in the top folder of your web server and it is unable to do so."
msgstr "L'instal·lador web necessita crear un arxiu anomenat \".htconfig.php\" en la carpeta superior del seu servidor web però alguna cosa ho va impedir."
#: ../../mod/install.php:424
#: ../../mod/install.php:422
msgid ""
"This is most often a permission setting, as the web server may not be able "
"to write files in your folder - even if you can."
msgstr "Això freqüentment és a causa d'una configuració de permisos; el servidor web no pot escriure arxius en la carpeta - encara que sigui possible."
#: ../../mod/install.php:425
#: ../../mod/install.php:423
msgid ""
"Please check with your site documentation or support people to see if this "
"situation can be corrected."
msgstr "Per favor, consulti amb la documentació del seu lloc o persones de suport per veure si aquesta situació es pot corregir."
"At the end of this procedure, we will give you a text to save in a file "
"named .htconfig.php in your Friendica top folder."
msgstr "Al final d'aquest procediment, et facilitarem un text que hauràs de guardar en un arxiu que s'anomena .htconfig.php que hi es a la carpeta principal del teu Friendica."
#: ../../mod/install.php:426
#: ../../mod/install.php:424
msgid ""
"If not, you may be required to perform a manual installation. Please see the"
" file \"INSTALL.txt\" for instructions."
msgstr "Si no, vostè pot ser requerit per realitzar una instal·lació manual. Per favor, consulti l'arxiu \"INSTALL.txt\" per obtenir instruccions."
"You can alternatively skip this procedure and perform a manual installation."
" Please see the file \"INSTALL.txt\" for instructions."
msgstr "Alternativament, pots saltar-te aquest procediment i configurar-ho manualment. Per favor, mira l'arxiu \"INTALL.txt\" per a instruccions."
#: ../../mod/install.php:429
#: ../../mod/install.php:427
msgid ".htconfig.php is writable"
msgstr ".htconfig.php és escribible"
#: ../../mod/install.php:436
#: ../../mod/install.php:439
msgid ""
"Url rewrite in .htaccess is not working. Check your server configuration."
msgstr "URL rewrite en .htaccess no esta treballant. Comprova la configuració del teu servidor."
#: ../../mod/install.php:441
msgid "Url rewrite is working"
msgstr "URL rewrite està treballant"
#: ../../mod/install.php:451
msgid ""
"The database configuration file \".htconfig.php\" could not be written. "
"Please use the enclosed text to create a configuration file in your web "
"server root."
msgstr "L'arxiu per a la configuració de la base de dades \".htconfig.php\" no es pot escriure. Per favor, usi el text adjunt per crear un arxiu de configuració en l'arrel del servidor web."
#: ../../mod/install.php:461
#: ../../mod/install.php:475
msgid "Errors encountered creating database tables."
msgstr "Trobats errors durant la creació de les taules de la base de dades."
#: ../../mod/install.php:486
msgid "<h1>What next</h1>"
msgstr "<h1>Que es següent</h1>"
#: ../../mod/install.php:487
msgid ""
"IMPORTANT: You will need to [manually] setup a scheduled task for the "
"poller."
msgstr "IMPORTANT: necessitarà configurar [manualment] el programar una tasca pel sondejador (poller.php)"
#: ../../mod/localtime.php:12 ../../include/event.php:11
#: ../../include/bb2diaspora.php:238
#: ../../include/bb2diaspora.php:390
msgid "l F d, Y \\@ g:i A"
msgstr "l F d, Y \\@ g:i A"
@ -1096,7 +1216,7 @@ msgstr "Temps de Conversió"
#: ../../mod/localtime.php:26
msgid ""
"Friendika provides this service for sharing events with other networks and "
"Friendica provides this service for sharing events with other networks and "
"friends in unknown timezones."
msgstr "Friendica ofereix aquest servei per compartir esdeveniments amb altres xarxes i amics a les zones horàries desconegudes."
@ -1119,6 +1239,26 @@ msgstr "Conversión de hora local: %s"
msgid "Please select your timezone:"
msgstr "Si us plau, seleccioneu la vostra zona horària:"
#: ../../mod/poke.php:192
msgid "Poke/Prod"
msgstr ""
#: ../../mod/poke.php:193
msgid "poke, prod or do other things to somebody"
msgstr ""
#: ../../mod/poke.php:194
msgid "Recipient"
msgstr "Recipient"
#: ../../mod/poke.php:195
msgid "Choose what you wish to do to recipient"
msgstr ""
#: ../../mod/poke.php:198
msgid "Make this post private"
msgstr ""
#: ../../mod/match.php:12
msgid "Profile Match"
msgstr "Perfil Aconseguit"
@ -1132,11 +1272,11 @@ msgid "is interested in:"
msgstr "està interessat en:"
#: ../../mod/match.php:58 ../../mod/suggest.php:59
#: ../../include/contact_widgets.php:9 ../../boot.php:930
#: ../../include/contact_widgets.php:9 ../../boot.php:1164
msgid "Connect"
msgstr "Connexió"
#: ../../mod/match.php:65 ../../mod/dirfind.php:57
#: ../../mod/match.php:65 ../../mod/dirfind.php:60
msgid "No matches"
msgstr "No hi ha coincidències"
@ -1148,7 +1288,172 @@ msgstr "Informació de privacitat remota no disponible."
msgid "Visible to:"
msgstr "Visible per a:"
#: ../../mod/home.php:26 ../../addon/communityhome/communityhome.php:179
#: ../../mod/content.php:119 ../../mod/network.php:436
msgid "No such group"
msgstr "Cap grup com"
#: ../../mod/content.php:130 ../../mod/network.php:447
msgid "Group is empty"
msgstr "El Grup es buit"
#: ../../mod/content.php:134 ../../mod/network.php:451
msgid "Group: "
msgstr "Grup:"
#: ../../mod/content.php:438 ../../mod/content.php:722
#: ../../include/conversation.php:447 ../../include/conversation.php:888
#: ../../object/Item.php:115
msgid "Select"
msgstr "Selecionar"
#: ../../mod/content.php:455 ../../mod/content.php:815
#: ../../mod/content.php:816 ../../include/conversation.php:654
#: ../../include/conversation.php:655 ../../include/conversation.php:907
#: ../../object/Item.php:226 ../../object/Item.php:227
#, php-format
msgid "View %s's profile @ %s"
msgstr "Veure perfil de %s @ %s"
#: ../../mod/content.php:465 ../../mod/content.php:827
#: ../../include/conversation.php:668 ../../include/conversation.php:927
#: ../../object/Item.php:239
#, php-format
msgid "%s from %s"
msgstr "%s des de %s"
#: ../../mod/content.php:480 ../../include/conversation.php:942
msgid "View in context"
msgstr "Veure en context"
#: ../../mod/content.php:586 ../../include/conversation.php:695
#: ../../object/Item.php:276
#, php-format
msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] "%d comentari"
msgstr[1] "%d comentaris"
#: ../../mod/content.php:588 ../../include/text.php:1443
#: ../../include/conversation.php:697 ../../object/Item.php:278
#: ../../object/Item.php:291
msgid "comment"
msgid_plural "comments"
msgstr[0] ""
msgstr[1] "comentari"
#: ../../mod/content.php:589 ../../addon/page/page.php:76
#: ../../addon/page/page.php:110 ../../addon/showmore/showmore.php:119
#: ../../include/contact_widgets.php:195 ../../include/conversation.php:698
#: ../../boot.php:575 ../../object/Item.php:279
msgid "show more"
msgstr "Mostrar més"
#: ../../mod/content.php:667 ../../include/conversation.php:581
#: ../../object/Item.php:195
msgid "like"
msgstr "Agrada"
#: ../../mod/content.php:668 ../../include/conversation.php:582
#: ../../object/Item.php:196
msgid "dislike"
msgstr "Desagrada"
#: ../../mod/content.php:670 ../../include/conversation.php:584
#: ../../object/Item.php:198
msgid "Share this"
msgstr "Compartir això"
#: ../../mod/content.php:670 ../../include/conversation.php:584
#: ../../object/Item.php:198
msgid "share"
msgstr "Compartir"
#: ../../mod/content.php:694 ../../include/conversation.php:608
#: ../../object/Item.php:560
msgid "Bold"
msgstr "Negreta"
#: ../../mod/content.php:695 ../../include/conversation.php:609
#: ../../object/Item.php:561
msgid "Italic"
msgstr "Itallica"
#: ../../mod/content.php:696 ../../include/conversation.php:610
#: ../../object/Item.php:562
msgid "Underline"
msgstr "Subratllat"
#: ../../mod/content.php:697 ../../include/conversation.php:611
#: ../../object/Item.php:563
msgid "Quote"
msgstr "Cometes"
#: ../../mod/content.php:698 ../../include/conversation.php:612
#: ../../object/Item.php:564
msgid "Code"
msgstr "Codi"
#: ../../mod/content.php:699 ../../include/conversation.php:613
#: ../../object/Item.php:565
msgid "Image"
msgstr "Imatge"
#: ../../mod/content.php:700 ../../include/conversation.php:614
#: ../../object/Item.php:566
msgid "Link"
msgstr "Enllaç"
#: ../../mod/content.php:701 ../../include/conversation.php:615
#: ../../object/Item.php:567
msgid "Video"
msgstr "Video"
#: ../../mod/content.php:735 ../../include/conversation.php:545
#: ../../object/Item.php:179
msgid "add star"
msgstr "Afegir a favorits"
#: ../../mod/content.php:736 ../../include/conversation.php:546
#: ../../object/Item.php:180
msgid "remove star"
msgstr "Esborrar favorit"
#: ../../mod/content.php:737 ../../include/conversation.php:547
#: ../../object/Item.php:181
msgid "toggle star status"
msgstr "Canviar estatus de favorit"
#: ../../mod/content.php:740 ../../include/conversation.php:550
#: ../../object/Item.php:184
msgid "starred"
msgstr "favorit"
#: ../../mod/content.php:741 ../../include/conversation.php:551
#: ../../object/Item.php:185
msgid "add tag"
msgstr "afegir etiqueta"
#: ../../mod/content.php:745 ../../include/conversation.php:451
#: ../../object/Item.php:119
msgid "save to folder"
msgstr "guardat a la carpeta"
#: ../../mod/content.php:817 ../../include/conversation.php:656
#: ../../object/Item.php:228
msgid "to"
msgstr "a"
#: ../../mod/content.php:818 ../../include/conversation.php:657
#: ../../object/Item.php:229
msgid "Wall-to-Wall"
msgstr "Mur-a-Mur"
#: ../../mod/content.php:819 ../../include/conversation.php:658
#: ../../object/Item.php:230
msgid "via Wall-To-Wall:"
msgstr "via Mur-a-Mur"
#: ../../mod/home.php:28 ../../addon/communityhome/communityhome.php:179
#, php-format
msgid "Welcome to %s"
msgstr "Benvingut a %s"
@ -1157,417 +1462,489 @@ msgstr "Benvingut a %s"
msgid "Invalid request identifier."
msgstr "Sol·licitud d'identificació no vàlida."
#: ../../mod/notifications.php:35 ../../mod/notifications.php:157
#: ../../mod/notifications.php:203
#: ../../mod/notifications.php:35 ../../mod/notifications.php:161
#: ../../mod/notifications.php:207
msgid "Discard"
msgstr "Descartar"
#: ../../mod/notifications.php:47 ../../mod/notifications.php:156
#: ../../mod/notifications.php:202 ../../mod/contacts.php:302
#: ../../mod/contacts.php:345
#: ../../mod/notifications.php:51 ../../mod/notifications.php:160
#: ../../mod/notifications.php:206 ../../mod/contacts.php:321
#: ../../mod/contacts.php:375
msgid "Ignore"
msgstr "Ignorar"
#: ../../mod/notifications.php:71
#: ../../mod/notifications.php:75
msgid "System"
msgstr "Sistema"
#: ../../mod/notifications.php:76 ../../include/nav.php:109
#: ../../mod/notifications.php:80 ../../include/nav.php:113
msgid "Network"
msgstr "Xarxa"
#: ../../mod/notifications.php:81 ../../mod/network.php:177
#: ../../mod/notifications.php:85 ../../mod/network.php:300
msgid "Personal"
msgstr "Personal"
#: ../../mod/notifications.php:86 ../../include/nav.php:73
#: ../../include/nav.php:111
#: ../../mod/notifications.php:90 ../../view/theme/diabook/theme.php:127
#: ../../include/nav.php:77 ../../include/nav.php:115
msgid "Home"
msgstr "Inici"
#: ../../mod/notifications.php:91 ../../include/nav.php:117
#: ../../mod/notifications.php:95 ../../include/nav.php:121
msgid "Introductions"
msgstr "Presentacions"
#: ../../mod/notifications.php:96 ../../mod/message.php:76
#: ../../include/nav.php:124
#: ../../mod/notifications.php:100 ../../mod/message.php:176
#: ../../include/nav.php:128
msgid "Messages"
msgstr "Missatges"
#: ../../mod/notifications.php:115
#: ../../mod/notifications.php:119
msgid "Show Ignored Requests"
msgstr "Mostra les Sol·licituds Ignorades"
#: ../../mod/notifications.php:115
#: ../../mod/notifications.php:119
msgid "Hide Ignored Requests"
msgstr "Amaga les Sol·licituds Ignorades"
#: ../../mod/notifications.php:141 ../../mod/notifications.php:187
#: ../../mod/notifications.php:145 ../../mod/notifications.php:191
msgid "Notification type: "
msgstr "Tipus de Notificació:"
#: ../../mod/notifications.php:142
#: ../../mod/notifications.php:146
msgid "Friend Suggestion"
msgstr "Amics Suggerits "
#: ../../mod/notifications.php:144
#: ../../mod/notifications.php:148
#, php-format
msgid "suggested by %s"
msgstr "sugerit per %s"
#: ../../mod/notifications.php:149 ../../mod/notifications.php:196
#: ../../mod/contacts.php:350
#: ../../mod/notifications.php:153 ../../mod/notifications.php:200
#: ../../mod/contacts.php:381
msgid "Hide this contact from others"
msgstr "Amaga aquest contacte dels altres"
#: ../../mod/notifications.php:150 ../../mod/notifications.php:197
#: ../../mod/notifications.php:154 ../../mod/notifications.php:201
msgid "Post a new friend activity"
msgstr "Publica una activitat d'amic nova"
#: ../../mod/notifications.php:150 ../../mod/notifications.php:197
#: ../../mod/notifications.php:154 ../../mod/notifications.php:201
msgid "if applicable"
msgstr "si es pot aplicar"
#: ../../mod/notifications.php:153 ../../mod/notifications.php:200
#: ../../mod/admin.php:486
#: ../../mod/notifications.php:157 ../../mod/notifications.php:204
#: ../../mod/admin.php:694
msgid "Approve"
msgstr "Aprovar"
#: ../../mod/notifications.php:173
#: ../../mod/notifications.php:177
msgid "Claims to be known to you: "
msgstr "Diu que et coneix:"
#: ../../mod/notifications.php:173
#: ../../mod/notifications.php:177
msgid "yes"
msgstr "sí"
#: ../../mod/notifications.php:173
#: ../../mod/notifications.php:177
msgid "no"
msgstr "no"
#: ../../mod/notifications.php:180
#: ../../mod/notifications.php:184
msgid "Approve as: "
msgstr "Aprovat com:"
#: ../../mod/notifications.php:181
#: ../../mod/notifications.php:185
msgid "Friend"
msgstr "Amic"
#: ../../mod/notifications.php:182
#: ../../mod/notifications.php:186
msgid "Sharer"
msgstr "Partícip"
#: ../../mod/notifications.php:182
#: ../../mod/notifications.php:186
msgid "Fan/Admirer"
msgstr "Fan/Admirador"
#: ../../mod/notifications.php:188
#: ../../mod/notifications.php:192
msgid "Friend/Connect Request"
msgstr "Sol·licitud d'Amistat/Connexió"
#: ../../mod/notifications.php:188
#: ../../mod/notifications.php:192
msgid "New Follower"
msgstr "Nou Seguidor"
#: ../../mod/notifications.php:209
#: ../../mod/notifications.php:213
msgid "No introductions."
msgstr "Sense presentacions."
#: ../../mod/notifications.php:212 ../../include/nav.php:118
#: ../../mod/notifications.php:216 ../../include/nav.php:122
msgid "Notifications"
msgstr "Notificacions"
#: ../../mod/notifications.php:249 ../../mod/notifications.php:374
#: ../../mod/notifications.php:461
#: ../../mod/notifications.php:253 ../../mod/notifications.php:378
#: ../../mod/notifications.php:465
#, php-format
msgid "%s liked %s's post"
msgstr "A %s li agrada l'enviament de %s"
#: ../../mod/notifications.php:258 ../../mod/notifications.php:383
#: ../../mod/notifications.php:470
#: ../../mod/notifications.php:262 ../../mod/notifications.php:387
#: ../../mod/notifications.php:474
#, php-format
msgid "%s disliked %s's post"
msgstr "A %s no li agrada l'enviament de %s"
#: ../../mod/notifications.php:272 ../../mod/notifications.php:397
#: ../../mod/notifications.php:484
#: ../../mod/notifications.php:276 ../../mod/notifications.php:401
#: ../../mod/notifications.php:488
#, php-format
msgid "%s is now friends with %s"
msgstr "%s es ara amic de %s"
#: ../../mod/notifications.php:279 ../../mod/notifications.php:404
#: ../../mod/notifications.php:283 ../../mod/notifications.php:408
#, php-format
msgid "%s created a new post"
msgstr "%s ha creat un enviament nou"
#: ../../mod/notifications.php:280 ../../mod/notifications.php:405
#: ../../mod/notifications.php:493
#: ../../mod/notifications.php:284 ../../mod/notifications.php:409
#: ../../mod/notifications.php:497
#, php-format
msgid "%s commented on %s's post"
msgstr "%s va comentar en l'enviament de %s"
#: ../../mod/notifications.php:294
#: ../../mod/notifications.php:298
msgid "No more network notifications."
msgstr "No més notificacions de xarxa."
#: ../../mod/notifications.php:298
#: ../../mod/notifications.php:302
msgid "Network Notifications"
msgstr "Notificacions de la Xarxa"
#: ../../mod/notifications.php:324 ../../mod/notify.php:61
#: ../../mod/notifications.php:328 ../../mod/notify.php:61
msgid "No more system notifications."
msgstr "No més notificacions del sistema."
#: ../../mod/notifications.php:328 ../../mod/notify.php:65
#: ../../mod/notifications.php:332 ../../mod/notify.php:65
msgid "System Notifications"
msgstr "Notificacions del Sistema"
#: ../../mod/notifications.php:419
#: ../../mod/notifications.php:423
msgid "No more personal notifications."
msgstr "No més notificacions personals."
#: ../../mod/notifications.php:423
#: ../../mod/notifications.php:427
msgid "Personal Notifications"
msgstr "Notificacions Personals"
#: ../../mod/notifications.php:500
#: ../../mod/notifications.php:504
msgid "No more home notifications."
msgstr "No més notificacions d'inici."
#: ../../mod/notifications.php:504
#: ../../mod/notifications.php:508
msgid "Home Notifications"
msgstr "Notificacions d'Inici"
#: ../../mod/contacts.php:63 ../../mod/contacts.php:143
#: ../../mod/contacts.php:84 ../../mod/contacts.php:164
msgid "Could not access contact record."
msgstr "No puc accedir al registre del contacte."
#: ../../mod/contacts.php:77
#: ../../mod/contacts.php:98
msgid "Could not locate selected profile."
msgstr "No puc localitzar el perfil seleccionat."
#: ../../mod/contacts.php:100
#: ../../mod/contacts.php:121
msgid "Contact updated."
msgstr "Contacte actualitzat."
#: ../../mod/contacts.php:165
#: ../../mod/contacts.php:186
msgid "Contact has been blocked"
msgstr "Elcontacte ha estat bloquejat"
#: ../../mod/contacts.php:165
#: ../../mod/contacts.php:186
msgid "Contact has been unblocked"
msgstr "El contacte ha estat desbloquejat"
#: ../../mod/contacts.php:179
#: ../../mod/contacts.php:200
msgid "Contact has been ignored"
msgstr "El contacte ha estat ignorat"
#: ../../mod/contacts.php:179
#: ../../mod/contacts.php:200
msgid "Contact has been unignored"
msgstr "El contacte ha estat recordat"
#: ../../mod/contacts.php:200
msgid "stopped following"
msgstr "Deixar de seguir"
#: ../../mod/contacts.php:216
msgid "Contact has been archived"
msgstr "El contacte ha estat arxivat"
#: ../../mod/contacts.php:221
#: ../../mod/contacts.php:216
msgid "Contact has been unarchived"
msgstr "El contacte ha estat desarxivat"
#: ../../mod/contacts.php:229
msgid "Contact has been removed."
msgstr "El contacte ha estat tret"
#: ../../mod/contacts.php:245
#: ../../mod/contacts.php:263
#, php-format
msgid "You are mutual friends with %s"
msgstr "Ara te una amistat mutua amb %s"
#: ../../mod/contacts.php:249
#: ../../mod/contacts.php:267
#, php-format
msgid "You are sharing with %s"
msgstr "Estas compartint amb %s"
#: ../../mod/contacts.php:254
#: ../../mod/contacts.php:272
#, php-format
msgid "%s is sharing with you"
msgstr "%s esta compartint amb tú"
#: ../../mod/contacts.php:271
#: ../../mod/contacts.php:289
msgid "Private communications are not available for this contact."
msgstr "Comunicacions privades no disponibles per aquest contacte."
#: ../../mod/contacts.php:274
#: ../../mod/contacts.php:292
msgid "Never"
msgstr "Mai"
#: ../../mod/contacts.php:278
#: ../../mod/contacts.php:296
msgid "(Update was successful)"
msgstr "(L'actualització fou exitosa)"
#: ../../mod/contacts.php:278
#: ../../mod/contacts.php:296
msgid "(Update was not successful)"
msgstr "(L'actualització fracassà)"
#: ../../mod/contacts.php:280
#: ../../mod/contacts.php:298
msgid "Suggest friends"
msgstr "Suggerir amics"
#: ../../mod/contacts.php:284
#: ../../mod/contacts.php:302
#, php-format
msgid "Network type: %s"
msgstr "Xarxa tipus: %s"
#: ../../mod/contacts.php:287
#: ../../mod/contacts.php:305 ../../include/contact_widgets.php:190
#, php-format
msgid "%d contact in common"
msgid_plural "%d contacts in common"
msgstr[0] "%d contacte en comú"
msgstr[1] "%d contactes en comú"
#: ../../mod/contacts.php:292
#: ../../mod/contacts.php:310
msgid "View all contacts"
msgstr "Veure tots els contactes"
#: ../../mod/contacts.php:297 ../../mod/contacts.php:344
#: ../../mod/admin.php:490
#: ../../mod/contacts.php:315 ../../mod/contacts.php:374
#: ../../mod/admin.php:698
msgid "Unblock"
msgstr "Desbloquejar"
#: ../../mod/contacts.php:297 ../../mod/contacts.php:344
#: ../../mod/admin.php:489
#: ../../mod/contacts.php:315 ../../mod/contacts.php:374
#: ../../mod/admin.php:697
msgid "Block"
msgstr "Bloquejar"
#: ../../mod/contacts.php:302 ../../mod/contacts.php:345
#: ../../mod/contacts.php:318
msgid "Toggle Blocked status"
msgstr "Canvi de estatus blocat"
#: ../../mod/contacts.php:321 ../../mod/contacts.php:375
msgid "Unignore"
msgstr "Treure d'Ignorats"
#: ../../mod/contacts.php:307
#: ../../mod/contacts.php:324
msgid "Toggle Ignored status"
msgstr "Canvi de estatus ignorat"
#: ../../mod/contacts.php:328
msgid "Unarchive"
msgstr "Desarxivat"
#: ../../mod/contacts.php:328
msgid "Archive"
msgstr "Arxivat"
#: ../../mod/contacts.php:331
msgid "Toggle Archive status"
msgstr "Canvi de estatus del arxiu"
#: ../../mod/contacts.php:334
msgid "Repair"
msgstr "Reparar"
#: ../../mod/contacts.php:317
#: ../../mod/contacts.php:337
msgid "Advanced Contact Settings"
msgstr "Ajustos Avançats per als Contactes"
#: ../../mod/contacts.php:343
msgid "Communications lost with this contact!"
msgstr "La comunicació amb aquest contacte s'ha perdut!"
#: ../../mod/contacts.php:346
msgid "Contact Editor"
msgstr "Editor de Contactes"
#: ../../mod/contacts.php:320
#: ../../mod/contacts.php:349
msgid "Profile Visibility"
msgstr "Perfil de Visibilitat"
#: ../../mod/contacts.php:321
#: ../../mod/contacts.php:350
#, php-format
msgid ""
"Please choose the profile you would like to display to %s when viewing your "
"profile securely."
msgstr "Si us plau triï el perfil que voleu mostrar a %s quan estigui veient el teu de forma segura."
#: ../../mod/contacts.php:322
#: ../../mod/contacts.php:351
msgid "Contact Information / Notes"
msgstr "Informació/Notes del contacte"
#: ../../mod/contacts.php:323
#: ../../mod/contacts.php:352
msgid "Edit contact notes"
msgstr "Editar notes de contactes"
#: ../../mod/contacts.php:328 ../../mod/contacts.php:497
#: ../../mod/viewcontacts.php:60
#: ../../mod/contacts.php:357 ../../mod/contacts.php:549
#: ../../mod/viewcontacts.php:62 ../../mod/nogroup.php:40
#, php-format
msgid "Visit %s's profile [%s]"
msgstr "Visitar perfil de %s [%s]"
#: ../../mod/contacts.php:329
#: ../../mod/contacts.php:358
msgid "Block/Unblock contact"
msgstr "Bloquejar/Alliberar contacte"
#: ../../mod/contacts.php:330
#: ../../mod/contacts.php:359
msgid "Ignore contact"
msgstr "Ignore contacte"
#: ../../mod/contacts.php:331
#: ../../mod/contacts.php:360
msgid "Repair URL settings"
msgstr "Restablir configuració de URL"
#: ../../mod/contacts.php:332
#: ../../mod/contacts.php:361
msgid "View conversations"
msgstr "Veient conversacions"
#: ../../mod/contacts.php:334
#: ../../mod/contacts.php:363
msgid "Delete contact"
msgstr "Esborrar contacte"
#: ../../mod/contacts.php:338
#: ../../mod/contacts.php:367
msgid "Last update:"
msgstr "Última actualització:"
#: ../../mod/contacts.php:339
#: ../../mod/contacts.php:369
msgid "Update public posts"
msgstr "Actualitzar enviament públic"
#: ../../mod/contacts.php:341 ../../mod/admin.php:905
#: ../../mod/contacts.php:371 ../../mod/admin.php:1170
msgid "Update now"
msgstr "Actualitza ara"
#: ../../mod/contacts.php:348
#: ../../mod/contacts.php:378
msgid "Currently blocked"
msgstr "Bloquejat actualment"
#: ../../mod/contacts.php:349
#: ../../mod/contacts.php:379
msgid "Currently ignored"
msgstr "Ignorat actualment"
#: ../../mod/contacts.php:350
#: ../../mod/contacts.php:380
msgid "Currently archived"
msgstr "Actualment arxivat"
#: ../../mod/contacts.php:381
msgid ""
"Replies/likes to your public posts <strong>may</strong> still be visible"
msgstr "Répliques/agraiments per als teus missatges públics <strong>poden</strong> romandre visibles"
#: ../../mod/contacts.php:399 ../../mod/group.php:179
#: ../../mod/contacts.php:434
msgid "Suggestions"
msgstr "Suggeriments"
#: ../../mod/contacts.php:437
msgid "Suggest potential friends"
msgstr "Suggerir amics potencials"
#: ../../mod/contacts.php:440 ../../mod/group.php:191
msgid "All Contacts"
msgstr "Tots els Contactes"
#: ../../mod/contacts.php:404
msgid "Unblocked Contacts"
msgstr "Contactes Desbloquejats"
#: ../../mod/contacts.php:443
msgid "Show all contacts"
msgstr "Mostrar tots els contactes"
#: ../../mod/contacts.php:410
msgid "Blocked Contacts"
msgstr "Contactes Bloquejats"
#: ../../mod/contacts.php:446
msgid "Unblocked"
msgstr "Desblocat"
#: ../../mod/contacts.php:416
msgid "Ignored Contacts"
msgstr "Contactes Ignorats"
#: ../../mod/contacts.php:449
msgid "Only show unblocked contacts"
msgstr "Mostrar únicament els contactes no blocats"
#: ../../mod/contacts.php:422
msgid "Hidden Contacts"
msgstr "Contactes Amagats"
#: ../../mod/contacts.php:453
msgid "Blocked"
msgstr "Blocat"
#: ../../mod/contacts.php:473
#: ../../mod/contacts.php:456
msgid "Only show blocked contacts"
msgstr "Mostrar únicament els contactes blocats"
#: ../../mod/contacts.php:460
msgid "Ignored"
msgstr "Ignorat"
#: ../../mod/contacts.php:463
msgid "Only show ignored contacts"
msgstr "Mostrar únicament els contactes ignorats"
#: ../../mod/contacts.php:467
msgid "Archived"
msgstr "Arxivat"
#: ../../mod/contacts.php:470
msgid "Only show archived contacts"
msgstr "Mostrar únicament els contactes arxivats"
#: ../../mod/contacts.php:474
msgid "Hidden"
msgstr "Amagat"
#: ../../mod/contacts.php:477
msgid "Only show hidden contacts"
msgstr "Mostrar únicament els contactes amagats"
#: ../../mod/contacts.php:525
msgid "Mutual Friendship"
msgstr "Amistat Mutua"
#: ../../mod/contacts.php:477
#: ../../mod/contacts.php:529
msgid "is a fan of yours"
msgstr "Es un fan teu"
#: ../../mod/contacts.php:481
#: ../../mod/contacts.php:533
msgid "you are a fan of"
msgstr "ets fan de"
#: ../../mod/contacts.php:498 ../../include/Contact.php:135
#: ../../include/conversation.php:792
#: ../../mod/contacts.php:550 ../../mod/nogroup.php:41
msgid "Edit contact"
msgstr "Editar contacte"
#: ../../mod/contacts.php:519 ../../include/nav.php:132
#: ../../mod/contacts.php:571 ../../view/theme/diabook/theme.php:129
#: ../../include/nav.php:139
msgid "Contacts"
msgstr "Contactes"
#: ../../mod/contacts.php:523
#: ../../mod/contacts.php:575
msgid "Search your contacts"
msgstr "Cercant el seus contactes"
#: ../../mod/contacts.php:524 ../../mod/directory.php:67
#: ../../mod/contacts.php:576 ../../mod/directory.php:59
msgid "Finding: "
msgstr "Cercant:"
#: ../../mod/contacts.php:525 ../../mod/directory.php:69
#: ../../include/contact_widgets.php:34
#: ../../mod/contacts.php:577 ../../mod/directory.php:61
#: ../../include/contact_widgets.php:33
msgid "Find"
msgstr "Cercar"
@ -1575,565 +1952,687 @@ msgstr "Cercar"
msgid "No valid account found."
msgstr "compte no vàlid trobat."
#: ../../mod/lostpass.php:31
#: ../../mod/lostpass.php:32
msgid "Password reset request issued. Check your email."
msgstr "Sol·licitut de restabliment de contrasenya enviat. Comprovi el seu correu."
#: ../../mod/lostpass.php:42
#: ../../mod/lostpass.php:43
#, php-format
msgid "Password reset requested at %s"
msgstr "Contrasenya restablerta enviada a %s"
#: ../../mod/lostpass.php:44 ../../mod/lostpass.php:106
#: ../../mod/register.php:380 ../../mod/register.php:434
#: ../../mod/regmod.php:54 ../../mod/dfrn_confirm.php:726
#: ../../include/items.php:2575
#: ../../mod/lostpass.php:45 ../../mod/lostpass.php:107
#: ../../mod/register.php:90 ../../mod/register.php:144
#: ../../mod/regmod.php:54 ../../mod/dfrn_confirm.php:752
#: ../../addon/facebook/facebook.php:702
#: ../../addon/facebook/facebook.php:1200 ../../addon/fbpost/fbpost.php:661
#: ../../addon/public_server/public_server.php:62
#: ../../addon/testdrive/testdrive.php:67 ../../include/items.php:3296
#: ../../boot.php:788
msgid "Administrator"
msgstr "Administrador"
#: ../../mod/lostpass.php:64
#: ../../mod/lostpass.php:65
msgid ""
"Request could not be verified. (You may have previously submitted it.) "
"Password reset failed."
msgstr "La sol·licitut no pot ser verificada. (Hauries de presentar-la abans). Restabliment de contrasenya fracassat."
#: ../../mod/lostpass.php:82 ../../boot.php:723
#: ../../mod/lostpass.php:83 ../../boot.php:925
msgid "Password Reset"
msgstr "Restabliment de Contrasenya"
#: ../../mod/lostpass.php:83
#: ../../mod/lostpass.php:84
msgid "Your password has been reset as requested."
msgstr "La teva contrasenya fou restablerta com vas demanar."
#: ../../mod/lostpass.php:84
#: ../../mod/lostpass.php:85
msgid "Your new password is"
msgstr "La teva nova contrasenya es"
#: ../../mod/lostpass.php:85
#: ../../mod/lostpass.php:86
msgid "Save or copy your new password - and then"
msgstr "Guarda o copia la nova contrasenya - i llavors"
#: ../../mod/lostpass.php:86
#: ../../mod/lostpass.php:87
msgid "click here to login"
msgstr "clica aquí per identificarte"
#: ../../mod/lostpass.php:87
#: ../../mod/lostpass.php:88
msgid ""
"Your password may be changed from the <em>Settings</em> page after "
"successful login."
msgstr "Pots camviar la contrasenya des de la pàgina de <em>Configuración</em> desprès d'accedir amb èxit."
#: ../../mod/lostpass.php:118
#: ../../mod/lostpass.php:119
msgid "Forgot your Password?"
msgstr "Has Oblidat la Contrasenya?"
#: ../../mod/lostpass.php:119
#: ../../mod/lostpass.php:120
msgid ""
"Enter your email address and submit to have your password reset. Then check "
"your email for further instructions."
msgstr "Introdueixi la seva adreça de correu i enivii-la per restablir la seva contrasenya. Llavors comprovi el seu correu per a les següents instruccións. "
#: ../../mod/lostpass.php:120
msgid "Nickname or Email: "
msgstr "Malnom o Correu:"
#: ../../mod/lostpass.php:121
msgid "Nickname or Email: "
msgstr "Àlies o Correu:"
#: ../../mod/lostpass.php:122
msgid "Reset"
msgstr "Restablir"
#: ../../mod/settings.php:72
msgid "Missing some important data!"
msgstr "Perdudes algunes dades importants!"
#: ../../mod/settings.php:75 ../../mod/settings.php:486 ../../mod/admin.php:75
msgid "Update"
msgstr "Actualitzar"
#: ../../mod/settings.php:175
msgid "Failed to connect with email account using the settings provided."
msgstr "Connexió fracassada amb el compte de correu emprant la configuració proveïda."
#: ../../mod/settings.php:180
msgid "Email settings updated."
msgstr "Configuració del correu electrònic actualitzada."
#: ../../mod/settings.php:198
msgid "Passwords do not match. Password unchanged."
msgstr "Les contrasenyes no coincideixen. Contrasenya no canviada."
#: ../../mod/settings.php:203
msgid "Empty passwords are not allowed. Password unchanged."
msgstr "No es permeten contasenyes buides. Contrasenya no canviada"
#: ../../mod/settings.php:214
msgid "Password changed."
msgstr "Contrasenya canviada."
#: ../../mod/settings.php:216
msgid "Password update failed. Please try again."
msgstr "Ha fallat l'actualització de la Contrasenya. Per favor, intenti-ho de nou."
#: ../../mod/settings.php:280
msgid " Please use a shorter name."
msgstr "Si us plau, faci servir un nom més curt."
#: ../../mod/settings.php:282
msgid " Name too short."
msgstr "Nom massa curt."
#: ../../mod/settings.php:288
msgid " Not valid email."
msgstr "Correu no vàlid."
#: ../../mod/settings.php:290
msgid " Cannot change to that email."
msgstr "No puc canviar a aquest correu."
#: ../../mod/settings.php:358 ../../addon/facebook/facebook.php:321
#: ../../addon/impressum/impressum.php:64
#: ../../addon/openstreetmap/openstreetmap.php:80
#: ../../addon/piwik/piwik.php:105 ../../addon/twitter/twitter.php:350
msgid "Settings updated."
msgstr "Ajustos actualitzats."
#: ../../mod/settings.php:422 ../../include/nav.php:130
#: ../../mod/settings.php:30 ../../include/nav.php:137
msgid "Account settings"
msgstr "Configuració del compte"
#: ../../mod/settings.php:427
#: ../../mod/settings.php:35
msgid "Display settings"
msgstr "Ajustos de pantalla"
#: ../../mod/settings.php:41
msgid "Connector settings"
msgstr "Configuració dels connectors"
#: ../../mod/settings.php:432
#: ../../mod/settings.php:46
msgid "Plugin settings"
msgstr "Configuració del plugin"
#: ../../mod/settings.php:437
msgid "Connections"
msgstr "Connexions"
#: ../../mod/settings.php:51
msgid "Connected apps"
msgstr "App connectada"
#: ../../mod/settings.php:442
#: ../../mod/settings.php:56
msgid "Export personal data"
msgstr "Exportar dades personals"
#: ../../mod/settings.php:459 ../../mod/settings.php:485
#: ../../mod/settings.php:518
#: ../../mod/settings.php:61
msgid "Remove account"
msgstr "Esborrar compte"
#: ../../mod/settings.php:69 ../../mod/newmember.php:22
#: ../../mod/admin.php:785 ../../mod/admin.php:990
#: ../../addon/dav/friendica/layout.fnk.php:225
#: ../../addon/mathjax/mathjax.php:36 ../../view/theme/diabook/theme.php:643
#: ../../view/theme/diabook/theme.php:773 ../../include/nav.php:137
msgid "Settings"
msgstr "Ajustos"
#: ../../mod/settings.php:113
msgid "Missing some important data!"
msgstr "Perdudes algunes dades importants!"
#: ../../mod/settings.php:116 ../../mod/settings.php:569
msgid "Update"
msgstr "Actualitzar"
#: ../../mod/settings.php:221
msgid "Failed to connect with email account using the settings provided."
msgstr "Connexió fracassada amb el compte de correu emprant la configuració proveïda."
#: ../../mod/settings.php:226
msgid "Email settings updated."
msgstr "Configuració del correu electrònic actualitzada."
#: ../../mod/settings.php:290
msgid "Passwords do not match. Password unchanged."
msgstr "Les contrasenyes no coincideixen. Contrasenya no canviada."
#: ../../mod/settings.php:295
msgid "Empty passwords are not allowed. Password unchanged."
msgstr "No es permeten contasenyes buides. Contrasenya no canviada"
#: ../../mod/settings.php:306
msgid "Password changed."
msgstr "Contrasenya canviada."
#: ../../mod/settings.php:308
msgid "Password update failed. Please try again."
msgstr "Ha fallat l'actualització de la Contrasenya. Per favor, intenti-ho de nou."
#: ../../mod/settings.php:373
msgid " Please use a shorter name."
msgstr "Si us plau, faci servir un nom més curt."
#: ../../mod/settings.php:375
msgid " Name too short."
msgstr "Nom massa curt."
#: ../../mod/settings.php:381
msgid " Not valid email."
msgstr "Correu no vàlid."
#: ../../mod/settings.php:383
msgid " Cannot change to that email."
msgstr "No puc canviar a aquest correu."
#: ../../mod/settings.php:437
msgid "Private forum has no privacy permissions. Using default privacy group."
msgstr "Els Fòrums privats no tenen permisos de privacitat. Empra la privacitat de grup per defecte."
#: ../../mod/settings.php:441
msgid "Private forum has no privacy permissions and no default privacy group."
msgstr "Els Fòrums privats no tenen permisos de privacitat i tampoc privacitat per defecte de grup."
#: ../../mod/settings.php:471 ../../addon/facebook/facebook.php:495
#: ../../addon/fbpost/fbpost.php:144 ../../addon/impressum/impressum.php:78
#: ../../addon/openstreetmap/openstreetmap.php:80
#: ../../addon/mathjax/mathjax.php:66 ../../addon/piwik/piwik.php:105
#: ../../addon/twitter/twitter.php:389
msgid "Settings updated."
msgstr "Ajustos actualitzats."
#: ../../mod/settings.php:542 ../../mod/settings.php:568
#: ../../mod/settings.php:604
msgid "Add application"
msgstr "Afegir aplicació"
#: ../../mod/settings.php:463 ../../mod/settings.php:489
#: ../../addon/statusnet/statusnet.php:526
#: ../../mod/settings.php:546 ../../mod/settings.php:572
#: ../../addon/statusnet/statusnet.php:570
msgid "Consumer Key"
msgstr "Consumer Key"
#: ../../mod/settings.php:464 ../../mod/settings.php:490
#: ../../addon/statusnet/statusnet.php:525
#: ../../mod/settings.php:547 ../../mod/settings.php:573
#: ../../addon/statusnet/statusnet.php:569
msgid "Consumer Secret"
msgstr "Consumer Secret"
#: ../../mod/settings.php:465 ../../mod/settings.php:491
#: ../../mod/settings.php:548 ../../mod/settings.php:574
msgid "Redirect"
msgstr "Redirigir"
#: ../../mod/settings.php:466 ../../mod/settings.php:492
#: ../../mod/settings.php:549 ../../mod/settings.php:575
msgid "Icon url"
msgstr "icona de url"
#: ../../mod/settings.php:477
#: ../../mod/settings.php:560
msgid "You can't edit this application."
msgstr "No pots editar aquesta aplicació."
#: ../../mod/settings.php:517
#: ../../mod/settings.php:603
msgid "Connected Apps"
msgstr "Aplicacions conectades"
#: ../../mod/settings.php:521
#: ../../mod/settings.php:607
msgid "Client key starts with"
msgstr "Les claus de client comançen amb"
#: ../../mod/settings.php:522
#: ../../mod/settings.php:608
msgid "No name"
msgstr "Sense nom"
#: ../../mod/settings.php:523
#: ../../mod/settings.php:609
msgid "Remove authorization"
msgstr "retirar l'autorització"
#: ../../mod/settings.php:535
#: ../../mod/settings.php:620
msgid "No Plugin settings configured"
msgstr "No s'han configurat ajustos de Plugin"
#: ../../mod/settings.php:542 ../../addon/widgets/widgets.php:122
#: ../../mod/settings.php:628 ../../addon/widgets/widgets.php:123
msgid "Plugin Settings"
msgstr "Ajustos de Plugin"
#: ../../mod/settings.php:555 ../../mod/settings.php:556
#: ../../mod/settings.php:640 ../../mod/settings.php:641
#, php-format
msgid "Built-in support for %s connectivity is %s"
msgstr "El suport integrat per a la connectivitat de %s és %s"
#: ../../mod/settings.php:555 ../../mod/settings.php:556
#: ../../mod/settings.php:640 ../../mod/settings.php:641
msgid "enabled"
msgstr "habilitat"
#: ../../mod/settings.php:555 ../../mod/settings.php:556
#: ../../mod/settings.php:640 ../../mod/settings.php:641
msgid "disabled"
msgstr "deshabilitat"
#: ../../mod/settings.php:556
#: ../../mod/settings.php:641
msgid "StatusNet"
msgstr "StatusNet"
#: ../../mod/settings.php:584
#: ../../mod/settings.php:673
msgid "Email access is disabled on this site."
msgstr "L'accés al correu està deshabilitat en aquest lloc."
#: ../../mod/settings.php:679
msgid "Connector Settings"
msgstr "Configuració de connectors"
#: ../../mod/settings.php:590
#: ../../mod/settings.php:684
msgid "Email/Mailbox Setup"
msgstr "Preparació de Correu/Bústia"
#: ../../mod/settings.php:591
#: ../../mod/settings.php:685
msgid ""
"If you wish to communicate with email contacts using this service "
"(optional), please specify how to connect to your mailbox."
msgstr "Si vol comunicar-se amb els contactes de correu emprant aquest servei (opcional), Si us plau, especifiqui com connectar amb la seva bústia."
#: ../../mod/settings.php:592
#: ../../mod/settings.php:686
msgid "Last successful email check:"
msgstr "Última comprovació de correu amb èxit:"
#: ../../mod/settings.php:593
msgid "Email access is disabled on this site."
msgstr "L'accés al correu està deshabilitat en aquest lloc."
#: ../../mod/settings.php:594
#: ../../mod/settings.php:688
msgid "IMAP server name:"
msgstr "Nom del servidor IMAP:"
#: ../../mod/settings.php:595
#: ../../mod/settings.php:689
msgid "IMAP port:"
msgstr "Port IMAP:"
#: ../../mod/settings.php:596
#: ../../mod/settings.php:690
msgid "Security:"
msgstr "Seguretat:"
#: ../../mod/settings.php:596 ../../mod/settings.php:601
#: ../../mod/settings.php:690 ../../mod/settings.php:695
#: ../../addon/dav/common/wdcal_edit.inc.php:191
msgid "None"
msgstr "Cap"
#: ../../mod/settings.php:597
#: ../../mod/settings.php:691
msgid "Email login name:"
msgstr "Nom d'usuari del correu"
#: ../../mod/settings.php:598
#: ../../mod/settings.php:692
msgid "Email password:"
msgstr "Contrasenya del correu:"
#: ../../mod/settings.php:599
#: ../../mod/settings.php:693
msgid "Reply-to address:"
msgstr "Adreça de resposta:"
#: ../../mod/settings.php:600
#: ../../mod/settings.php:694
msgid "Send public posts to all email contacts:"
msgstr "Enviar correu públic a tots els contactes del correu:"
#: ../../mod/settings.php:601
#: ../../mod/settings.php:695
msgid "Action after import:"
msgstr "Acció després d'importar:"
#: ../../mod/settings.php:601
#: ../../mod/settings.php:695
msgid "Mark as seen"
msgstr "Marcar com a vist"
#: ../../mod/settings.php:601
#: ../../mod/settings.php:695
msgid "Move to folder"
msgstr "Moure a la carpeta"
#: ../../mod/settings.php:602
#: ../../mod/settings.php:696
msgid "Move to folder:"
msgstr "Moure a la carpeta:"
#: ../../mod/settings.php:659 ../../mod/admin.php:142 ../../mod/admin.php:462
msgid "Normal Account"
msgstr "Compte Normal"
#: ../../mod/settings.php:727 ../../mod/admin.php:402
msgid "No special theme for mobile devices"
msgstr ""
#: ../../mod/settings.php:660
#: ../../mod/settings.php:767
msgid "Display Settings"
msgstr "Ajustos de Pantalla"
#: ../../mod/settings.php:773 ../../mod/settings.php:784
msgid "Display Theme:"
msgstr "Visualitzar el Tema:"
#: ../../mod/settings.php:774
msgid "Mobile Theme:"
msgstr ""
#: ../../mod/settings.php:775
msgid "Update browser every xx seconds"
msgstr "Actualitzar navegador cada xx segons"
#: ../../mod/settings.php:775
msgid "Minimum of 10 seconds, no maximum"
msgstr "Mínim cada 10 segons, no hi ha màxim"
#: ../../mod/settings.php:776
msgid "Number of items to display per page:"
msgstr ""
#: ../../mod/settings.php:776
msgid "Maximum of 100 items"
msgstr "Màxim de 100 elements"
#: ../../mod/settings.php:777
msgid "Don't show emoticons"
msgstr "No mostrar emoticons"
#: ../../mod/settings.php:853
msgid "Normal Account Page"
msgstr "Pàgina Normal del Compte "
#: ../../mod/settings.php:854
msgid "This account is a normal personal profile"
msgstr "Aques compte es un compte personal normal"
#: ../../mod/settings.php:663 ../../mod/admin.php:143 ../../mod/admin.php:463
msgid "Soapbox Account"
msgstr "Compte Tribuna"
#: ../../mod/settings.php:857
msgid "Soapbox Page"
msgstr "Pàgina de Soapbox"
#: ../../mod/settings.php:664
#: ../../mod/settings.php:858
msgid "Automatically approve all connection/friend requests as read-only fans"
msgstr "Aprova automàticament totes les sol·licituds de amistat/connexió com a fans de només lectura."
#: ../../mod/settings.php:667 ../../mod/admin.php:144 ../../mod/admin.php:464
msgid "Community/Celebrity Account"
#: ../../mod/settings.php:861
msgid "Community Forum/Celebrity Account"
msgstr "Compte de Comunitat/Celebritat"
#: ../../mod/settings.php:668
#: ../../mod/settings.php:862
msgid ""
"Automatically approve all connection/friend requests as read-write fans"
msgstr "Aprova automàticament totes les sol·licituds de amistat/connexió com a fans de lectura-escriptura"
#: ../../mod/settings.php:671 ../../mod/admin.php:145 ../../mod/admin.php:465
msgid "Automatic Friend Account"
msgstr "Compte d'Amistat Automàtic"
#: ../../mod/settings.php:865
msgid "Automatic Friend Page"
msgstr "Compte d'Amistat Automàtica"
#: ../../mod/settings.php:672
#: ../../mod/settings.php:866
msgid "Automatically approve all connection/friend requests as friends"
msgstr "Aprova totes les sol·licituds de amistat/connexió com a amic automàticament"
#: ../../mod/settings.php:682
#: ../../mod/settings.php:869
msgid "Private Forum [Experimental]"
msgstr "Fòrum Privat [Experimental]"
#: ../../mod/settings.php:870
msgid "Private forum - approved members only"
msgstr "Fòrum privat - Només membres aprovats"
#: ../../mod/settings.php:882
msgid "OpenID:"
msgstr "OpenID:"
#: ../../mod/settings.php:682
#: ../../mod/settings.php:882
msgid "(Optional) Allow this OpenID to login to this account."
msgstr "(Opcional) Permetre a aquest OpenID iniciar sessió en aquest compte."
#: ../../mod/settings.php:692
#: ../../mod/settings.php:892
msgid "Publish your default profile in your local site directory?"
msgstr "Publicar el teu perfil predeterminat en el directori del lloc local?"
#: ../../mod/settings.php:698
#: ../../mod/settings.php:898
msgid "Publish your default profile in the global social directory?"
msgstr "Publicar el teu perfil predeterminat al directori social global?"
#: ../../mod/settings.php:706
#: ../../mod/settings.php:906
msgid "Hide your contact/friend list from viewers of your default profile?"
msgstr "Amaga la teva llista de contactes/amics dels espectadors del seu perfil per defecte?"
#: ../../mod/settings.php:710
#: ../../mod/settings.php:910
msgid "Hide your profile details from unknown viewers?"
msgstr "Amagar els detalls del seu perfil a espectadors desconeguts?"
#: ../../mod/settings.php:715
#: ../../mod/settings.php:915
msgid "Allow friends to post to your profile page?"
msgstr "Permet als amics publicar en la seva pàgina de perfil?"
#: ../../mod/settings.php:721
#: ../../mod/settings.php:921
msgid "Allow friends to tag your posts?"
msgstr "Permet als amics d'etiquetar els teus missatges?"
#: ../../mod/settings.php:727
#: ../../mod/settings.php:927
msgid "Allow us to suggest you as a potential friend to new members?"
msgstr "Permeteu-nos suggerir-li com un amic potencial dels nous membres?"
#: ../../mod/settings.php:736
#: ../../mod/settings.php:933
msgid "Permit unknown people to send you private mail?"
msgstr "Permetre a desconeguts enviar missatges al teu correu privat?"
#: ../../mod/settings.php:941
msgid "Profile is <strong>not published</strong>."
msgstr "El Perfil <strong>no està publicat</strong>."
#: ../../mod/settings.php:768 ../../mod/profile_photo.php:206
#: ../../mod/settings.php:944 ../../mod/profile_photo.php:248
msgid "or"
msgstr "o"
#: ../../mod/settings.php:773
#: ../../mod/settings.php:949
msgid "Your Identity Address is"
msgstr "La seva Adreça d'Identitat és"
#: ../../mod/settings.php:784
#: ../../mod/settings.php:960
msgid "Automatically expire posts after this many days:"
msgstr "Després de aquests nombre de dies, els missatges caduquen automàticament:"
#: ../../mod/settings.php:784
#: ../../mod/settings.php:960
msgid "If empty, posts will not expire. Expired posts will be deleted"
msgstr "Si està buit, els missatges no caducarà. Missatges caducats s'eliminaran"
#: ../../mod/settings.php:785
#: ../../mod/settings.php:961
msgid "Advanced expiration settings"
msgstr "Configuració avançada d'expiració"
#: ../../mod/settings.php:786
#: ../../mod/settings.php:962
msgid "Advanced Expiration"
msgstr "Expiració Avançada"
#: ../../mod/settings.php:787
#: ../../mod/settings.php:963
msgid "Expire posts:"
msgstr "Expiració d'enviaments"
#: ../../mod/settings.php:788
#: ../../mod/settings.php:964
msgid "Expire personal notes:"
msgstr "Expiració de notes personals"
#: ../../mod/settings.php:789
#: ../../mod/settings.php:965
msgid "Expire starred posts:"
msgstr "Expiració de enviaments de favorits"
#: ../../mod/settings.php:790
#: ../../mod/settings.php:966
msgid "Expire photos:"
msgstr "Expiració de fotos"
#: ../../mod/settings.php:795
#: ../../mod/settings.php:967
msgid "Only expire posts by others:"
msgstr "Només expiren els enviaments dels altres:"
#: ../../mod/settings.php:974
msgid "Account Settings"
msgstr "Ajustos de Compte"
#: ../../mod/settings.php:803
#: ../../mod/settings.php:982
msgid "Password Settings"
msgstr "Ajustos de Contrasenya"
#: ../../mod/settings.php:804
#: ../../mod/settings.php:983
msgid "New Password:"
msgstr "Nova Contrasenya:"
#: ../../mod/settings.php:805
#: ../../mod/settings.php:984
msgid "Confirm:"
msgstr "Confirmar:"
#: ../../mod/settings.php:805
#: ../../mod/settings.php:984
msgid "Leave password fields blank unless changing"
msgstr "Deixi els camps de contrasenya buits per a no fer canvis"
#: ../../mod/settings.php:809
#: ../../mod/settings.php:988
msgid "Basic Settings"
msgstr "Ajustos Basics"
#: ../../mod/settings.php:810 ../../include/profile_advanced.php:15
#: ../../mod/settings.php:989 ../../include/profile_advanced.php:15
msgid "Full Name:"
msgstr "Nom Complet:"
#: ../../mod/settings.php:811
#: ../../mod/settings.php:990
msgid "Email Address:"
msgstr "Adreça de Correu:"
#: ../../mod/settings.php:812
#: ../../mod/settings.php:991
msgid "Your Timezone:"
msgstr "La teva zona Horària:"
#: ../../mod/settings.php:813
#: ../../mod/settings.php:992
msgid "Default Post Location:"
msgstr "Localització per Defecte del Missatge:"
#: ../../mod/settings.php:814
#: ../../mod/settings.php:993
msgid "Use Browser Location:"
msgstr "Ubicar-se amb el Navegador:"
#: ../../mod/settings.php:815
msgid "Display Theme:"
msgstr "Visualitzar el Tema:"
#: ../../mod/settings.php:816
msgid "Update browser every xx seconds"
msgstr "Actualitzar navegador cada xx segons"
#: ../../mod/settings.php:816
msgid "Minimum of 10 seconds, no maximum"
msgstr "Mínim cada 10 segons, no hi ha màxim"
#: ../../mod/settings.php:818
#: ../../mod/settings.php:996
msgid "Security and Privacy Settings"
msgstr "Ajustos de Seguretat i Privacitat"
#: ../../mod/settings.php:820
#: ../../mod/settings.php:998
msgid "Maximum Friend Requests/Day:"
msgstr "Nombre Màxim de Sol·licituds per Dia"
#: ../../mod/settings.php:820
#: ../../mod/settings.php:998 ../../mod/settings.php:1017
msgid "(to prevent spam abuse)"
msgstr "(per a prevenir abusos de spam)"
#: ../../mod/settings.php:821
#: ../../mod/settings.php:999
msgid "Default Post Permissions"
msgstr "Permisos de Correu per Defecte"
#: ../../mod/settings.php:822
#: ../../mod/settings.php:1000
msgid "(click to open/close)"
msgstr "(clicar per a obrir/tancar)"
#: ../../mod/settings.php:837
#: ../../mod/settings.php:1017
msgid "Maximum private messages per day from unknown people:"
msgstr "Màxim nombre de missatges, per dia, de desconeguts:"
#: ../../mod/settings.php:1020
msgid "Notification Settings"
msgstr "Ajustos de Notificació"
#: ../../mod/settings.php:838
#: ../../mod/settings.php:1021
msgid "By default post a status message when:"
msgstr "Enviar per defecte un missatge de estatus quan:"
#: ../../mod/settings.php:1022
msgid "accepting a friend request"
msgstr "Acceptar una sol·licitud d'amistat"
#: ../../mod/settings.php:1023
msgid "joining a forum/community"
msgstr "Unint-se a un fòrum/comunitat"
#: ../../mod/settings.php:1024
msgid "making an <em>interesting</em> profile change"
msgstr "fent un <em interesant</em> canvi al perfil"
#: ../../mod/settings.php:1025
msgid "Send a notification email when:"
msgstr "Envia un correu notificant quan:"
#: ../../mod/settings.php:839
#: ../../mod/settings.php:1026
msgid "You receive an introduction"
msgstr "Has rebut una presentació"
#: ../../mod/settings.php:840
#: ../../mod/settings.php:1027
msgid "Your introductions are confirmed"
msgstr "La teva presentació està confirmada"
#: ../../mod/settings.php:841
#: ../../mod/settings.php:1028
msgid "Someone writes on your profile wall"
msgstr "Algú ha escrit en el teu mur de perfil"
#: ../../mod/settings.php:842
#: ../../mod/settings.php:1029
msgid "Someone writes a followup comment"
msgstr "Algú ha escrit un comentari de seguiment"
#: ../../mod/settings.php:843
#: ../../mod/settings.php:1030
msgid "You receive a private message"
msgstr "Has rebut un missatge privat"
#: ../../mod/settings.php:844
#: ../../mod/settings.php:1031
msgid "You receive a friend suggestion"
msgstr "Has rebut una suggerencia d'un amic"
#: ../../mod/settings.php:845
#: ../../mod/settings.php:1032
msgid "You are tagged in a post"
msgstr "Estàs etiquetat en un enviament"
#: ../../mod/settings.php:848
msgid "Advanced Page Settings"
msgstr "Ajustos Avançats de Pàgina"
#: ../../mod/settings.php:1033
msgid "You are poked/prodded/etc. in a post"
msgstr ""
#: ../../mod/manage.php:90
#: ../../mod/settings.php:1036
msgid "Advanced Account/Page Type Settings"
msgstr "Ajustos Avançats de Compte/ Pàgina"
#: ../../mod/settings.php:1037
msgid "Change the behaviour of this account for special situations"
msgstr "Canviar el comportament d'aquest compte en situacions especials"
#: ../../mod/manage.php:91
msgid "Manage Identities and/or Pages"
msgstr "Administrar Identitats i/o Pàgines"
#: ../../mod/manage.php:93
#: ../../mod/manage.php:94
msgid ""
"Toggle between different identities or community/group pages which share "
"your account details or which you have been granted \"manage\" permissions"
msgstr "Alternar entre les diferents identitats o les pàgines de comunitats/grups que comparteixen les dades del seu compte o que se li ha concedit els permisos de \"administrar\""
#: ../../mod/manage.php:95
#: ../../mod/manage.php:96
msgid "Select an identity to manage: "
msgstr "Seleccionar identitat a administrar:"
#: ../../mod/network.php:43
#: ../../mod/network.php:97
msgid "Search Results For:"
msgstr "Resultats de la Cerca Per a:"
#: ../../mod/network.php:77 ../../mod/search.php:16
#: ../../mod/network.php:137 ../../mod/search.php:16
msgid "Remove term"
msgstr "Traieu termini"
#: ../../mod/network.php:86 ../../mod/search.php:13
#: ../../mod/network.php:146 ../../mod/search.php:13
msgid "Saved Searches"
msgstr "Cerques Guardades"
#: ../../mod/network.php:87 ../../include/group.php:216
#: ../../mod/network.php:147 ../../include/group.php:244
msgid "add"
msgstr "afegir"
#: ../../mod/network.php:166
#: ../../mod/network.php:287
msgid "Commented Order"
msgstr "Ordre dels Comentaris"
#: ../../mod/network.php:171
#: ../../mod/network.php:290
msgid "Sort by Comment Date"
msgstr "Ordenar per Data de Comentari"
#: ../../mod/network.php:293
msgid "Posted Order"
msgstr "Ordre dels Enviaments"
#: ../../mod/network.php:182
#: ../../mod/network.php:296
msgid "Sort by Post Date"
msgstr "Ordenar per Data d'Enviament"
#: ../../mod/network.php:303
msgid "Posts that mention or involve you"
msgstr "Missatge que et menciona o t'impliquen"
#: ../../mod/network.php:306
msgid "New"
msgstr "Nou"
#: ../../mod/network.php:187
#: ../../mod/network.php:309
msgid "Activity Stream - by date"
msgstr "Activitat del Flux - per data"
#: ../../mod/network.php:312
msgid "Starred"
msgstr "Favorits"
#: ../../mod/network.php:192
msgid "Bookmarks"
msgstr "Marcadors"
#: ../../mod/network.php:315
msgid "Favourite Posts"
msgstr "Enviaments Favorits"
#: ../../mod/network.php:250
#: ../../mod/network.php:318
msgid "Shared Links"
msgstr "Enllaços Compartits"
#: ../../mod/network.php:321
msgid "Interesting Links"
msgstr "Enllaços Interesants"
#: ../../mod/network.php:388
#, php-format
msgid "Warning: This group contains %s member from an insecure network."
msgid_plural ""
@ -2141,42 +2640,96 @@ msgid_plural ""
msgstr[0] "Advertència: Aquest grup conté el membre %s en una xarxa insegura."
msgstr[1] "Advertència: Aquest grup conté %s membres d'una xarxa insegura."
#: ../../mod/network.php:253
#: ../../mod/network.php:391
msgid "Private messages to this group are at risk of public disclosure."
msgstr "Els missatges privats a aquest grup es troben en risc de divulgació pública."
#: ../../mod/network.php:298
msgid "No such group"
msgstr "Cap grup com"
#: ../../mod/network.php:309
msgid "Group is empty"
msgstr "El Grup es buit"
#: ../../mod/network.php:313
msgid "Group: "
msgstr "Grup:"
#: ../../mod/network.php:323
#: ../../mod/network.php:461
msgid "Contact: "
msgstr "Contacte:"
#: ../../mod/network.php:325
#: ../../mod/network.php:463
msgid "Private messages to this person are at risk of public disclosure."
msgstr "Els missatges privats a aquesta persona es troben en risc de divulgació pública."
#: ../../mod/network.php:330
#: ../../mod/network.php:468
msgid "Invalid contact."
msgstr "Contacte no vàlid."
#: ../../mod/notes.php:44 ../../boot.php:1354
#: ../../mod/notes.php:44 ../../boot.php:1696
msgid "Personal Notes"
msgstr "Notes Personals"
#: ../../mod/notes.php:63 ../../include/text.php:645
#: ../../mod/notes.php:63 ../../mod/filer.php:30
#: ../../addon/facebook/facebook.php:770
#: ../../addon/privacy_image_cache/privacy_image_cache.php:263
#: ../../addon/fbpost/fbpost.php:267
#: ../../addon/dav/friendica/layout.fnk.php:441
#: ../../addon/dav/friendica/layout.fnk.php:488 ../../include/text.php:681
msgid "Save"
msgstr "Guardar"
#: ../../mod/wallmessage.php:42 ../../mod/wallmessage.php:112
#, php-format
msgid "Number of daily wall messages for %s exceeded. Message failed."
msgstr "Nombre diari de missatges al mur per %s excedit. El missatge ha fallat."
#: ../../mod/wallmessage.php:56 ../../mod/message.php:59
msgid "No recipient selected."
msgstr "No s'ha seleccionat destinatari."
#: ../../mod/wallmessage.php:59
msgid "Unable to check your home location."
msgstr "Incapaç de comprovar la localització."
#: ../../mod/wallmessage.php:62 ../../mod/message.php:66
msgid "Message could not be sent."
msgstr "El Missatge no ha estat enviat."
#: ../../mod/wallmessage.php:65 ../../mod/message.php:69
msgid "Message collection failure."
msgstr "Ha fallat la recollida del missatge."
#: ../../mod/wallmessage.php:68 ../../mod/message.php:72
msgid "Message sent."
msgstr "Missatge enviat."
#: ../../mod/wallmessage.php:86 ../../mod/wallmessage.php:95
msgid "No recipient."
msgstr "Sense destinatari."
#: ../../mod/wallmessage.php:123 ../../mod/wallmessage.php:131
#: ../../mod/message.php:242 ../../mod/message.php:250
#: ../../include/conversation.php:1205 ../../include/conversation.php:1222
msgid "Please enter a link URL:"
msgstr "Sius plau, entri l'enllaç URL:"
#: ../../mod/wallmessage.php:138 ../../mod/message.php:278
msgid "Send Private Message"
msgstr "Enviant Missatge Privat"
#: ../../mod/wallmessage.php:139
#, php-format
msgid ""
"If you wish for %s to respond, please check that the privacy settings on "
"your site allow private mail from unknown senders."
msgstr "si vols respondre a %s, comprova que els ajustos de privacitat del lloc permeten correus privats de remitents desconeguts."
#: ../../mod/wallmessage.php:140 ../../mod/message.php:279
#: ../../mod/message.php:469
msgid "To:"
msgstr "Per a:"
#: ../../mod/wallmessage.php:141 ../../mod/message.php:284
#: ../../mod/message.php:471
msgid "Subject:"
msgstr "Assumpte::"
#: ../../mod/wallmessage.php:147 ../../mod/message.php:288
#: ../../mod/message.php:474 ../../mod/invite.php:113
msgid "Your message:"
msgstr "El teu missatge:"
#: ../../mod/newmember.php:6
msgid "Welcome to Friendica"
msgstr "Benvingut a Friendica"
@ -2191,16 +2744,35 @@ msgid ""
"enjoyable. Click any item to visit the relevant page. A link to this page "
"will be visible from your home page for two weeks after your initial "
"registration and then will quietly disappear."
msgstr "Ens agradaria oferir alguns consells i enllaços per ajudar a fer la seva experiència agradable. Feu clic a qualsevol element per visitar la pàgina corresponent. Un enllaç a aquesta pàgina serà visible des de la pàgina d'inici durant dues setmanes després de la seva inscripció inicial i després desapareixerà en silenci."
msgstr "Ens agradaria oferir alguns consells i enllaços per ajudar a fer la teva experiència agradable. Feu clic a qualsevol element per visitar la pàgina corresponent. Un enllaç a aquesta pàgina serà visible des de la pàgina d'inici durant dues setmanes després de la teva inscripció inicial i després desapareixerà en silenci."
#: ../../mod/newmember.php:16
#: ../../mod/newmember.php:14
msgid "Getting Started"
msgstr ""
#: ../../mod/newmember.php:18
msgid "Friendica Walk-Through"
msgstr ""
#: ../../mod/newmember.php:18
msgid ""
"On your <em>Quick Start</em> page - find a brief introduction to your "
"profile and network tabs, make some new connections, and find some groups to"
" join."
msgstr ""
#: ../../mod/newmember.php:26
msgid "Go to Your Settings"
msgstr ""
#: ../../mod/newmember.php:26
msgid ""
"On your <em>Settings</em> page - change your initial password. Also make a "
"note of your Identity Address. This looks just like an email address - and "
"will be useful in making friends on the free social web."
msgstr "En la de la seva <em>configuració</em> de la pàgina - canviï la contrasenya inicial. També prengui nota de la Adreça d'Identitat. Això s'assembla a una adreça de correu electrònic - i serà útil per fer amics a la xarxa social lliure."
#: ../../mod/newmember.php:18
#: ../../mod/newmember.php:28
msgid ""
"Review the other settings, particularly the privacy settings. An unpublished"
" directory listing is like having an unlisted phone number. In general, you "
@ -2208,61 +2780,106 @@ msgid ""
"potential friends know exactly how to find you."
msgstr "Reviseu les altres configuracions, en particular la configuració de privadesa. Una llista de directoris no publicada és com tenir un número de telèfon no llistat. Normalment, hauria de publicar la seva llista - a menys que tots els seus amics i els amics potencials sàpiguen exactament com trobar-li."
#: ../../mod/newmember.php:20
#: ../../mod/newmember.php:32 ../../mod/profperm.php:103
#: ../../view/theme/diabook/theme.php:128 ../../include/profile_advanced.php:7
#: ../../include/profile_advanced.php:84 ../../include/nav.php:50
#: ../../boot.php:1672
msgid "Profile"
msgstr "Perfil"
#: ../../mod/newmember.php:36 ../../mod/profile_photo.php:244
msgid "Upload Profile Photo"
msgstr "Pujar Foto del Perfil"
#: ../../mod/newmember.php:36
msgid ""
"Upload a profile photo if you have not done so already. Studies have shown "
"that people with real photos of themselves are ten times more likely to make"
" friends than people who do not."
msgstr "Puji una foto del seu perfil si encara no ho ha fet. Els estudis han demostrat que les persones amb fotos reals de ells mateixos tenen deu vegades més probabilitats de fer amics que les persones que no ho fan."
#: ../../mod/newmember.php:23
msgid ""
"Authorise the Facebook Connector if you currently have a Facebook account "
"and we will (optionally) import all your Facebook friends and conversations."
msgstr "Autoritzi el connector de Facebook si vostè té un compte al Facebook i nosaltres (opcionalment) importarem tots els teus amics de Facebook i les converses."
#: ../../mod/newmember.php:38
msgid "Edit Your Profile"
msgstr ""
#: ../../mod/newmember.php:25
msgid ""
"<em>If</em> this is your own personal server, installing the Facebook addon "
"may ease your transition to the free social web."
msgstr "<em>Si </em> aquesta és el seu servidor personal, la instal·lació del complement de Facebook pot facilitar la transició a la web social lliure."
#: ../../mod/newmember.php:30
msgid ""
"Enter your email access information on your Connector Settings page if you "
"wish to import and interact with friends or mailing lists from your email "
"INBOX"
msgstr "Introduïu les dades d'accés al correu electrònic a la seva pàgina de configuració de connector, si es desitja importar i relacionar-se amb amics o llistes de correu de la seva bústia d'email"
#: ../../mod/newmember.php:32
#: ../../mod/newmember.php:38
msgid ""
"Edit your <strong>default</strong> profile to your liking. Review the "
"settings for hiding your list of friends and hiding the profile from unknown"
" visitors."
msgstr "Editi el perfil per <strong>defecte</strong> al seu gust. Reviseu la configuració per ocultar la seva llista d'amics i ocultar el perfil dels visitants desconeguts."
#: ../../mod/newmember.php:34
#: ../../mod/newmember.php:40
msgid "Profile Keywords"
msgstr ""
#: ../../mod/newmember.php:40
msgid ""
"Set some public keywords for your default profile which describe your "
"interests. We may be able to find other people with similar interests and "
"suggest friendships."
msgstr "Estableix algunes paraules clau públiques al teu perfil predeterminat que descriguin els teus interessos. Podem ser capaços de trobar altres persones amb interessos similars i suggerir amistats."
#: ../../mod/newmember.php:36
#: ../../mod/newmember.php:44
msgid "Connecting"
msgstr ""
#: ../../mod/newmember.php:49 ../../mod/newmember.php:51
#: ../../addon/facebook/facebook.php:728 ../../addon/fbpost/fbpost.php:239
#: ../../include/contact_selectors.php:81
msgid "Facebook"
msgstr "Facebook"
#: ../../mod/newmember.php:49
msgid ""
"Authorise the Facebook Connector if you currently have a Facebook account "
"and we will (optionally) import all your Facebook friends and conversations."
msgstr "Autoritzi el connector de Facebook si vostè té un compte al Facebook i nosaltres (opcionalment) importarem tots els teus amics de Facebook i les converses."
#: ../../mod/newmember.php:51
msgid ""
"<em>If</em> this is your own personal server, installing the Facebook addon "
"may ease your transition to the free social web."
msgstr "<em>Si </em> aquesta és el seu servidor personal, la instal·lació del complement de Facebook pot facilitar la transició a la web social lliure."
#: ../../mod/newmember.php:56
msgid "Importing Emails"
msgstr ""
#: ../../mod/newmember.php:56
msgid ""
"Enter your email access information on your Connector Settings page if you "
"wish to import and interact with friends or mailing lists from your email "
"INBOX"
msgstr "Introduïu les dades d'accés al correu electrònic a la seva pàgina de configuració de connector, si es desitja importar i relacionar-se amb amics o llistes de correu de la seva bústia d'email"
#: ../../mod/newmember.php:58
msgid "Go to Your Contacts Page"
msgstr ""
#: ../../mod/newmember.php:58
msgid ""
"Your Contacts page is your gateway to managing friendships and connecting "
"with friends on other networks. Typically you enter their address or site "
"URL in the <em>Add New Contact</em> dialog."
msgstr "La seva pàgina de Contactes és la seva porta d'entrada a la gestió de l'amistat i la connexió amb amics d'altres xarxes. Normalment, vostè entrar en la seva direcció o URL del lloc al diàleg <em>Afegir Nou Contacte</em>."
#: ../../mod/newmember.php:38
#: ../../mod/newmember.php:60
msgid "Go to Your Site's Directory"
msgstr ""
#: ../../mod/newmember.php:60
msgid ""
"The Directory page lets you find other people in this network or other "
"federated sites. Look for a <em>Connect</em> or <em>Follow</em> link on "
"their profile page. Provide your own Identity Address if requested."
msgstr "La pàgina del Directori li permet trobar altres persones en aquesta xarxa o altres llocs federats. Busqui un enllaç <em>Connectar</em> o <em>Seguir</em> a la seva pàgina de perfil. Proporcioni la seva pròpia Adreça de Identitat si així ho sol·licita."
#: ../../mod/newmember.php:40
#: ../../mod/newmember.php:62
msgid "Finding New People"
msgstr ""
#: ../../mod/newmember.php:62
msgid ""
"On the side panel of the Contacts page are several tools to find new "
"friends. We can match people by interest, look up people by name or "
@ -2271,14 +2888,41 @@ msgid ""
"hours."
msgstr "Al tauler lateral de la pàgina de contacte Hi ha diverses eines per trobar nous amics. Podem coincidir amb les persones per interesos, buscar persones pel nom o per interès, i oferir suggeriments basats en les relacions de la xarxa. En un nou lloc, els suggeriments d'amics, en general comencen a poblar el lloc a les 24 hores."
#: ../../mod/newmember.php:42
#: ../../mod/newmember.php:66 ../../include/group.php:239
msgid "Groups"
msgstr "Grups"
#: ../../mod/newmember.php:70
msgid "Group Your Contacts"
msgstr ""
#: ../../mod/newmember.php:70
msgid ""
"Once you have made some friends, organize them into private conversation "
"groups from the sidebar of your Contacts page and then you can interact with"
" each group privately on your Network page."
msgstr "Una vegada que s'han fet alguns amics, organitzi'ls en grups de conversa privada a la barra lateral de la seva pàgina de contactes i després pot interactuar amb cada grup de forma privada a la pàgina de la xarxa."
#: ../../mod/newmember.php:44
#: ../../mod/newmember.php:73
msgid "Why Aren't My Posts Public?"
msgstr ""
#: ../../mod/newmember.php:73
msgid ""
"Friendica respects your privacy. By default, your posts will only show up to"
" people you've added as friends. For more information, see the help section "
"from the link above."
msgstr ""
#: ../../mod/newmember.php:78
msgid "Getting Help"
msgstr ""
#: ../../mod/newmember.php:82
msgid "Go to the Help Section"
msgstr ""
#: ../../mod/newmember.php:82
msgid ""
"Our <strong>help</strong> pages may be consulted for detail on other program"
" features and resources."
@ -2292,51 +2936,51 @@ msgstr "Element no disponible"
msgid "Item was not found."
msgstr "Element no trobat."
#: ../../mod/group.php:27
#: ../../mod/group.php:29
msgid "Group created."
msgstr "Grup creat."
#: ../../mod/group.php:33
#: ../../mod/group.php:35
msgid "Could not create group."
msgstr "No puc crear grup."
#: ../../mod/group.php:43 ../../mod/group.php:127
#: ../../mod/group.php:47 ../../mod/group.php:137
msgid "Group not found."
msgstr "Grup no trobat"
#: ../../mod/group.php:56
#: ../../mod/group.php:60
msgid "Group name changed."
msgstr "Nom de Grup canviat."
#: ../../mod/group.php:67 ../../mod/profperm.php:19 ../../index.php:287
#: ../../mod/group.php:72 ../../mod/profperm.php:19 ../../index.php:316
msgid "Permission denied"
msgstr "Permís denegat"
#: ../../mod/group.php:85
#: ../../mod/group.php:90
msgid "Create a group of contacts/friends."
msgstr "Crear un grup de contactes/amics."
#: ../../mod/group.php:86 ../../mod/group.php:166
#: ../../mod/group.php:91 ../../mod/group.php:177
msgid "Group Name: "
msgstr "Nom del Grup:"
#: ../../mod/group.php:102
#: ../../mod/group.php:110
msgid "Group removed."
msgstr "Grup esborrat."
#: ../../mod/group.php:104
#: ../../mod/group.php:112
msgid "Unable to remove group."
msgstr "Incapaç de esborrar Grup."
#: ../../mod/group.php:165
#: ../../mod/group.php:176
msgid "Group Editor"
msgstr "Editor de Grup:"
#: ../../mod/group.php:177
#: ../../mod/group.php:189
msgid "Members"
msgstr "Membres"
#: ../../mod/group.php:209 ../../mod/profperm.php:105
#: ../../mod/group.php:221 ../../mod/profperm.php:105
msgid "Click on a contact to add or remove."
msgstr "Clicar sobre el contacte per afegir o esborrar."
@ -2348,12 +2992,6 @@ msgstr "Identificador del perfil no vàlid."
msgid "Profile Visibility Editor"
msgstr "Editor de Visibilitat del Perfil"
#: ../../mod/profperm.php:103 ../../include/profile_advanced.php:7
#: ../../include/profile_advanced.php:76 ../../include/nav.php:48
#: ../../boot.php:1336
msgid "Profile"
msgstr "Perfil"
#: ../../mod/profperm.php:114
msgid "Visible To"
msgstr "Visible Per"
@ -2366,309 +3004,271 @@ msgstr "Tots els Contactes (amb accés segur al perfil)"
msgid "No contacts."
msgstr "Sense Contactes"
#: ../../mod/viewcontacts.php:74 ../../include/text.php:584
#: ../../mod/viewcontacts.php:76 ../../include/text.php:618
msgid "View Contacts"
msgstr "Veure Contactes"
#: ../../mod/register.php:62
msgid "An invitation is required."
msgstr "Es requereix invitació."
#: ../../mod/register.php:67
msgid "Invitation could not be verified."
msgstr "La invitació no ha pogut ser verificada."
#: ../../mod/register.php:75
msgid "Invalid OpenID url"
msgstr "OpenID url no vàlid"
#: ../../mod/register.php:90
msgid "Please enter the required information."
msgstr "Per favor, introdueixi la informació requerida."
#: ../../mod/register.php:104
msgid "Please use a shorter name."
msgstr "Per favor, empri un nom més curt."
#: ../../mod/register.php:106
msgid "Name too short."
msgstr "Nom massa curt."
#: ../../mod/register.php:121
msgid "That doesn't appear to be your full (First Last) name."
msgstr "Això no sembla ser el teu nom complet."
#: ../../mod/register.php:126
msgid "Your email domain is not among those allowed on this site."
msgstr "El seu domini de correu electrònic no es troba entre els permesos en aquest lloc."
#: ../../mod/register.php:129
msgid "Not a valid email address."
msgstr "Adreça de correu no vàlida."
#: ../../mod/register.php:139
msgid "Cannot use that email."
msgstr "No es pot utilitzar aquest correu electrònic."
#: ../../mod/register.php:145
msgid ""
"Your \"nickname\" can only contain \"a-z\", \"0-9\", \"-\", and \"_\", and "
"must also begin with a letter."
msgstr "El teu sobrenom nomes pot contenir \"a-z\", \"0-9\", \"-\", i \"_\", i començar amb lletra."
#: ../../mod/register.php:151 ../../mod/register.php:252
msgid "Nickname is already registered. Please choose another."
msgstr "malnom ja registrat. Tria un altre."
#: ../../mod/register.php:170
msgid "SERIOUS ERROR: Generation of security keys failed."
msgstr "ERROR IMPORTANT: La generació de claus de seguretat ha fallat."
#: ../../mod/register.php:238
msgid "An error occurred during registration. Please try again."
msgstr "Un error ha succeït durant el registre. Intenta-ho de nou."
#: ../../mod/register.php:274
msgid "An error occurred creating your default profile. Please try again."
msgstr "Un error ha succeit durant la creació del teu perfil per defecte. Intenta-ho de nou."
#: ../../mod/register.php:378 ../../mod/regmod.php:52
#: ../../mod/register.php:88 ../../mod/regmod.php:52
#, php-format
msgid "Registration details for %s"
msgstr "Detalls del registre per a %s"
#: ../../mod/register.php:386
#: ../../mod/register.php:96
msgid ""
"Registration successful. Please check your email for further instructions."
msgstr "Registrat amb èxit. Per favor, comprovi el seu correu per a posteriors instruccions."
#: ../../mod/register.php:390
#: ../../mod/register.php:100
msgid "Failed to send email message. Here is the message that failed."
msgstr "Error en enviar missatge de correu electrònic. Aquí està el missatge que ha fallat."
#: ../../mod/register.php:395
#: ../../mod/register.php:105
msgid "Your registration can not be processed."
msgstr "El seu registre no pot ser processat."
#: ../../mod/register.php:432
#: ../../mod/register.php:142
#, php-format
msgid "Registration request at %s"
msgstr "Sol·licitud de registre a %s"
#: ../../mod/register.php:441
#: ../../mod/register.php:151
msgid "Your registration is pending approval by the site owner."
msgstr "El seu registre està pendent d'aprovació pel propietari del lloc."
#: ../../mod/register.php:479
#: ../../mod/register.php:189
msgid ""
"This site has exceeded the number of allowed daily account registrations. "
"Please try again tomorrow."
msgstr "Aquest lloc excedeix el nombre diari de registres de comptes. Per favor, provi de nou demà."
#: ../../mod/register.php:505
#: ../../mod/register.php:217
msgid ""
"You may (optionally) fill in this form via OpenID by supplying your OpenID "
"and clicking 'Register'."
msgstr "Vostè pot (opcionalment), omplir aquest formulari a través de OpenID mitjançant el subministrament de la seva OpenID i fent clic a 'Registrar'."
#: ../../mod/register.php:506
#: ../../mod/register.php:218
msgid ""
"If you are not familiar with OpenID, please leave that field blank and fill "
"in the rest of the items."
msgstr "Si vostè no està familiaritzat amb Twitter, si us plau deixi aquest camp en blanc i completi la resta dels elements."
#: ../../mod/register.php:507
#: ../../mod/register.php:219
msgid "Your OpenID (optional): "
msgstr "El seu OpenID (opcional):"
#: ../../mod/register.php:521
#: ../../mod/register.php:233
msgid "Include your profile in member directory?"
msgstr "Incloc el seu perfil al directori de membres?"
#: ../../mod/register.php:536
#: ../../mod/register.php:255
msgid "Membership on this site is by invitation only."
msgstr "Lloc accesible mitjançant invitació."
#: ../../mod/register.php:537
#: ../../mod/register.php:256
msgid "Your invitation ID: "
msgstr "El teu ID de invitació:"
#: ../../mod/register.php:540 ../../mod/admin.php:314
#: ../../mod/register.php:259 ../../mod/admin.php:444
msgid "Registration"
msgstr "Procés de Registre"
#: ../../mod/register.php:548
#: ../../mod/register.php:267
msgid "Your Full Name (e.g. Joe Smith): "
msgstr "El seu nom complet (per exemple, Joan Ningú):"
#: ../../mod/register.php:549
#: ../../mod/register.php:268
msgid "Your Email Address: "
msgstr "La Seva Adreça de Correu:"
#: ../../mod/register.php:550
#: ../../mod/register.php:269
msgid ""
"Choose a profile nickname. This must begin with a text character. Your "
"profile address on this site will then be "
"'<strong>nickname@$sitename</strong>'."
msgstr "Tria un nom de perfil. Això ha de començar amb un caràcter de text. La seva adreça de perfil en aquest lloc serà '<strong>malnom@$sitename</strong>'."
msgstr "Tria un nom de perfil. Això ha de començar amb un caràcter de text. La seva adreça de perfil en aquest lloc serà '<strong>alies@$sitename</strong>'."
#: ../../mod/register.php:551
#: ../../mod/register.php:270
msgid "Choose a nickname: "
msgstr "Tria un malnom:"
msgstr "Tria un àlies:"
#: ../../mod/register.php:554 ../../include/nav.php:77 ../../boot.php:693
#: ../../mod/register.php:273 ../../include/nav.php:81 ../../boot.php:887
msgid "Register"
msgstr "Registrar"
#: ../../mod/dirfind.php:23
#: ../../mod/dirfind.php:26
msgid "People Search"
msgstr "Cercant Gent"
#: ../../mod/like.php:127 ../../mod/tagger.php:70
#: ../../addon/facebook/facebook.php:1092
#: ../../mod/like.php:145 ../../mod/like.php:298 ../../mod/tagger.php:62
#: ../../addon/facebook/facebook.php:1598
#: ../../addon/communityhome/communityhome.php:158
#: ../../addon/communityhome/communityhome.php:167
#: ../../include/diaspora.php:1600 ../../include/conversation.php:48
#: ../../include/conversation.php:57 ../../include/conversation.php:121
#: ../../include/conversation.php:130
#: ../../view/theme/diabook/theme.php:565
#: ../../view/theme/diabook/theme.php:574 ../../include/diaspora.php:1824
#: ../../include/conversation.php:120 ../../include/conversation.php:129
#: ../../include/conversation.php:248 ../../include/conversation.php:257
msgid "status"
msgstr "estatus"
#: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1096
#: ../../mod/like.php:162 ../../addon/facebook/facebook.php:1602
#: ../../addon/communityhome/communityhome.php:172
#: ../../include/diaspora.php:1616 ../../include/conversation.php:65
#: ../../view/theme/diabook/theme.php:579 ../../include/diaspora.php:1840
#: ../../include/conversation.php:136
#, php-format
msgid "%1$s likes %2$s's %3$s"
msgstr "a %1$s agrada %2$s de %3$s"
#: ../../mod/like.php:146 ../../include/conversation.php:68
#: ../../mod/like.php:164 ../../include/conversation.php:139
#, php-format
msgid "%1$s doesn't like %2$s's %3$s"
msgstr "a %1$s no agrada %2$s de %3$s"
#: ../../mod/notice.php:15 ../../mod/viewsrc.php:15 ../../mod/admin.php:127
#: ../../mod/admin.php:522 ../../mod/admin.php:700 ../../mod/display.php:29
#: ../../mod/display.php:137 ../../mod/viewd.php:14
#: ../../include/items.php:2942
#: ../../mod/notice.php:15 ../../mod/viewsrc.php:15 ../../mod/admin.php:159
#: ../../mod/admin.php:734 ../../mod/admin.php:933 ../../mod/display.php:29
#: ../../mod/display.php:145 ../../include/items.php:3774
msgid "Item not found."
msgstr "Article no trobat."
#: ../../mod/viewsrc.php:7 ../../mod/viewd.php:6
#: ../../mod/viewsrc.php:7
msgid "Access denied."
msgstr "Accés denegat."
#: ../../mod/fbrowser.php:25 ../../view/theme/diabook/theme.php:130
#: ../../include/nav.php:51 ../../boot.php:1679
msgid "Photos"
msgstr "Fotos"
#: ../../mod/fbrowser.php:96
msgid "Files"
msgstr "Arxius"
#: ../../mod/regmod.php:61
msgid "Account approved."
msgstr "Compte aprovat."
#: ../../mod/regmod.php:93
#: ../../mod/regmod.php:98
#, php-format
msgid "Registration revoked for %s"
msgstr "Procés de Registre revocat per a %s"
#: ../../mod/regmod.php:105
#: ../../mod/regmod.php:110
msgid "Please login."
msgstr "Si us plau, ingressa."
#: ../../mod/item.php:89
#: ../../mod/item.php:91
msgid "Unable to locate original post."
msgstr "No es pot localitzar post original."
#: ../../mod/item.php:249
#: ../../mod/item.php:275
msgid "Empty post discarded."
msgstr "Buidat després de rebutjar."
#: ../../mod/item.php:351 ../../mod/wall_upload.php:81
#: ../../mod/wall_upload.php:90 ../../mod/wall_upload.php:97
#: ../../include/message.php:143
#: ../../mod/item.php:407 ../../mod/wall_upload.php:133
#: ../../mod/wall_upload.php:142 ../../mod/wall_upload.php:149
#: ../../include/message.php:144
msgid "Wall Photos"
msgstr "Fotos del Mur"
#: ../../mod/item.php:833
#: ../../mod/item.php:820
msgid "System error. Post not saved."
msgstr "Error del sistema. Publicació no guardada."
#: ../../mod/item.php:858
#: ../../mod/item.php:845
#, php-format
msgid ""
"This message was sent to you by %s, a member of the Friendica social "
"network."
msgstr "Aquest missatge va ser enviat a vostè per %s, un membre de la xarxa social Friendica."
#: ../../mod/item.php:860
#: ../../mod/item.php:847
#, php-format
msgid "You may visit them online at %s"
msgstr "El pot visitar en línia a %s"
#: ../../mod/item.php:861
#: ../../mod/item.php:848
msgid ""
"Please contact the sender by replying to this post if you do not wish to "
"receive these messages."
msgstr "Si us plau, poseu-vos en contacte amb el remitent responent a aquest missatge si no voleu rebre aquests missatges."
#: ../../mod/item.php:863
#: ../../mod/item.php:850
#, php-format
msgid "%s posted an update."
msgstr "%s ha publicat una actualització."
#: ../../mod/profile_photo.php:28
#: ../../mod/mood.php:62 ../../include/conversation.php:226
#, php-format
msgid "%1$s is currently %2$s"
msgstr ""
#: ../../mod/mood.php:133
msgid "Mood"
msgstr ""
#: ../../mod/mood.php:134
msgid "Set your current mood and tell your friends"
msgstr ""
#: ../../mod/profile_photo.php:44
msgid "Image uploaded but image cropping failed."
msgstr "Imatge pujada però no es va poder retallar."
#: ../../mod/profile_photo.php:61 ../../mod/profile_photo.php:68
#: ../../mod/profile_photo.php:75 ../../mod/profile_photo.php:258
#: ../../mod/profile_photo.php:77 ../../mod/profile_photo.php:84
#: ../../mod/profile_photo.php:91 ../../mod/profile_photo.php:308
#, php-format
msgid "Image size reduction [%s] failed."
msgstr "La reducció de la imatge [%s] va fracassar."
#: ../../mod/profile_photo.php:89
#: ../../mod/profile_photo.php:118
msgid ""
"Shift-reload the page or clear browser cache if the new photo does not "
"display immediately."
msgstr "Recarregui la pàgina o netegi la caché del navegador si la nova foto no apareix immediatament."
#: ../../mod/profile_photo.php:99
#: ../../mod/profile_photo.php:128
msgid "Unable to process image"
msgstr "No es pot processar la imatge"
#: ../../mod/profile_photo.php:113 ../../mod/wall_upload.php:56
#: ../../mod/profile_photo.php:144 ../../mod/wall_upload.php:88
#, php-format
msgid "Image exceeds size limit of %d"
msgstr "La imatge sobrepassa el límit de mida de %d"
#: ../../mod/profile_photo.php:203
#: ../../mod/profile_photo.php:242
msgid "Upload File:"
msgstr "Pujar arxiu:"
#: ../../mod/profile_photo.php:204
msgid "Upload Profile Photo"
msgstr "Pujar Foto del Perfil"
#: ../../mod/profile_photo.php:243
msgid "Select a profile:"
msgstr ""
#: ../../mod/profile_photo.php:205
#: ../../mod/profile_photo.php:245
#: ../../addon/dav/friendica/layout.fnk.php:152
msgid "Upload"
msgstr "Pujar"
#: ../../mod/profile_photo.php:206
#: ../../mod/profile_photo.php:248
msgid "skip this step"
msgstr "saltar aquest pas"
#: ../../mod/profile_photo.php:206
#: ../../mod/profile_photo.php:248
msgid "select a photo from your photo albums"
msgstr "tria una foto dels teus àlbums"
#: ../../mod/profile_photo.php:219
#: ../../mod/profile_photo.php:262
msgid "Crop Image"
msgstr "retallar imatge"
#: ../../mod/profile_photo.php:220
#: ../../mod/profile_photo.php:263
msgid "Please adjust the image cropping for optimum viewing."
msgstr "Per favor, ajusta la retallada d'imatge per a una optima visualització."
#: ../../mod/profile_photo.php:221
#: ../../mod/profile_photo.php:265
msgid "Done Editing"
msgstr "Edició Feta"
#: ../../mod/profile_photo.php:249
#: ../../mod/profile_photo.php:299
msgid "Image uploaded successfully."
msgstr "Carregada de la imatge amb èxit."
@ -2690,88 +3290,71 @@ msgstr "Això eliminarà per complet el seu compte. Quan s'hagi fet això, no se
msgid "Please enter your password for verification:"
msgstr "Si us plau, introduïu la contrasenya per a la verificació:"
#: ../../mod/message.php:23
msgid "No recipient selected."
msgstr "No s'ha seleccionat destinatari."
#: ../../mod/message.php:26
msgid "Unable to locate contact information."
msgstr "No es pot trobar informació de contacte."
#: ../../mod/message.php:29
msgid "Message could not be sent."
msgstr "El Missatge no ha estat enviat."
#: ../../mod/message.php:32
msgid "Message collection failure."
msgstr "Ha fallat la recollida del missatge."
#: ../../mod/message.php:35
msgid "Message sent."
msgstr "Missatge enviat."
#: ../../mod/message.php:55
msgid "Inbox"
msgstr "Safata d'entrada"
#: ../../mod/message.php:60
msgid "Outbox"
msgstr "Safata de sortida"
#: ../../mod/message.php:65
#: ../../mod/message.php:9 ../../include/nav.php:131
msgid "New Message"
msgstr "Nou Missatge"
#: ../../mod/message.php:91
#: ../../mod/message.php:63
msgid "Unable to locate contact information."
msgstr "No es pot trobar informació de contacte."
#: ../../mod/message.php:191
msgid "Message deleted."
msgstr "Missatge eliminat."
#: ../../mod/message.php:121
#: ../../mod/message.php:221
msgid "Conversation removed."
msgstr "Conversació esborrada."
#: ../../mod/message.php:137 ../../include/conversation.php:887
msgid "Please enter a link URL:"
msgstr "Sius plau, entri l'enllaç URL:"
#: ../../mod/message.php:145
msgid "Send Private Message"
msgstr "Enviant Missatge Privat"
#: ../../mod/message.php:146 ../../mod/message.php:287
msgid "To:"
msgstr "Per a:"
#: ../../mod/message.php:147 ../../mod/message.php:288
msgid "Subject:"
msgstr "Assumpte::"
#: ../../mod/message.php:150 ../../mod/message.php:291
#: ../../mod/invite.php:101
msgid "Your message:"
msgstr "El teu missatge:"
#: ../../mod/message.php:188
#: ../../mod/message.php:327
msgid "No messages."
msgstr "Sense missatges."
#: ../../mod/message.php:201
#: ../../mod/message.php:334
#, php-format
msgid "Unknown sender - %s"
msgstr "remitent desconegut - %s"
#: ../../mod/message.php:337
#, php-format
msgid "You and %s"
msgstr "Tu i %s"
#: ../../mod/message.php:340
#, php-format
msgid "%s and You"
msgstr "%s i Tu"
#: ../../mod/message.php:350 ../../mod/message.php:462
msgid "Delete conversation"
msgstr "Esborrar conversació"
#: ../../mod/message.php:204
#: ../../mod/message.php:353
msgid "D, d M Y - g:i A"
msgstr "D, d M Y - g:i A"
#: ../../mod/message.php:239
#: ../../mod/message.php:356
#, php-format
msgid "%d message"
msgid_plural "%d messages"
msgstr[0] "%d missatge"
msgstr[1] "%d missatges"
#: ../../mod/message.php:391
msgid "Message not available."
msgstr "Missatge no disponible."
#: ../../mod/message.php:276
#: ../../mod/message.php:444
msgid "Delete message"
msgstr "Esborra missatge"
#: ../../mod/message.php:286
#: ../../mod/message.php:464
msgid ""
"No secure communications available. You <strong>may</strong> be able to "
"respond from the sender's profile page."
msgstr "Comunicacions degures no disponibles. Tú <strong>pots</strong> respondre des de la pàgina de perfil del remitent."
#: ../../mod/message.php:468
msgid "Send Reply"
msgstr "Enviar Resposta"
@ -2784,582 +3367,742 @@ msgstr "Amics de %s"
msgid "No friends to display."
msgstr "No hi ha amics que mostrar"
#: ../../mod/admin.php:71 ../../mod/admin.php:312
#: ../../mod/admin.php:55
msgid "Theme settings updated."
msgstr "Ajustos de Tema actualitzats"
#: ../../mod/admin.php:96 ../../mod/admin.php:442
msgid "Site"
msgstr "Lloc"
#: ../../mod/admin.php:72 ../../mod/admin.php:480 ../../mod/admin.php:492
#: ../../mod/admin.php:97 ../../mod/admin.php:688 ../../mod/admin.php:701
msgid "Users"
msgstr "Usuaris"
#: ../../mod/admin.php:73 ../../mod/admin.php:569 ../../mod/admin.php:608
#: ../../mod/admin.php:98 ../../mod/admin.php:783 ../../mod/admin.php:825
msgid "Plugins"
msgstr "Plugins"
#: ../../mod/admin.php:74 ../../mod/admin.php:742 ../../mod/admin.php:775
#: ../../mod/admin.php:99 ../../mod/admin.php:988 ../../mod/admin.php:1024
msgid "Themes"
msgstr "Temes"
#: ../../mod/admin.php:89 ../../mod/admin.php:855
msgid "Logs"
msgstr "Transcripcions"
#: ../../mod/admin.php:100
msgid "DB updates"
msgstr "Actualitzacions de BD"
#: ../../mod/admin.php:94
#: ../../mod/admin.php:115 ../../mod/admin.php:122 ../../mod/admin.php:1111
msgid "Logs"
msgstr "Registres"
#: ../../mod/admin.php:120 ../../include/nav.php:146
msgid "Admin"
msgstr "Admin"
#: ../../mod/admin.php:121
msgid "Plugin Features"
msgstr "Característiques del Plugin"
#: ../../mod/admin.php:123
msgid "User registrations waiting for confirmation"
msgstr "Registre d'usuari a l'espera de confirmació"
#: ../../mod/admin.php:161 ../../mod/admin.php:311 ../../mod/admin.php:479
#: ../../mod/admin.php:568 ../../mod/admin.php:607 ../../mod/admin.php:741
#: ../../mod/admin.php:774 ../../mod/admin.php:854
#: ../../mod/admin.php:183 ../../mod/admin.php:669
msgid "Normal Account"
msgstr "Compte Normal"
#: ../../mod/admin.php:184 ../../mod/admin.php:670
msgid "Soapbox Account"
msgstr "Compte Tribuna"
#: ../../mod/admin.php:185 ../../mod/admin.php:671
msgid "Community/Celebrity Account"
msgstr "Compte de Comunitat/Celebritat"
#: ../../mod/admin.php:186 ../../mod/admin.php:672
msgid "Automatic Friend Account"
msgstr "Compte d'Amistat Automàtic"
#: ../../mod/admin.php:187
msgid "Blog Account"
msgstr "Compte de Blog"
#: ../../mod/admin.php:188
msgid "Private Forum"
msgstr "Fòrum Privat"
#: ../../mod/admin.php:207
msgid "Message queues"
msgstr "Cues de missatges"
#: ../../mod/admin.php:212 ../../mod/admin.php:441 ../../mod/admin.php:687
#: ../../mod/admin.php:782 ../../mod/admin.php:824 ../../mod/admin.php:987
#: ../../mod/admin.php:1023 ../../mod/admin.php:1110
msgid "Administration"
msgstr "Administració"
#: ../../mod/admin.php:162
#: ../../mod/admin.php:213
msgid "Summary"
msgstr "Sumari"
#: ../../mod/admin.php:163
#: ../../mod/admin.php:215
msgid "Registered users"
msgstr "Usuaris registrats"
#: ../../mod/admin.php:165
#: ../../mod/admin.php:217
msgid "Pending registrations"
msgstr "Registres d'usuari pendents"
#: ../../mod/admin.php:166
#: ../../mod/admin.php:218
msgid "Version"
msgstr "Versió"
#: ../../mod/admin.php:168
#: ../../mod/admin.php:220
msgid "Active plugins"
msgstr "Plugins actius"
#: ../../mod/admin.php:260
#: ../../mod/admin.php:373
msgid "Site settings updated."
msgstr "Ajustos del lloc actualitzats."
#: ../../mod/admin.php:304
#: ../../mod/admin.php:428
msgid "Closed"
msgstr "Tancat"
#: ../../mod/admin.php:305
#: ../../mod/admin.php:429
msgid "Requires approval"
msgstr "Requereix aprovació"
#: ../../mod/admin.php:306
#: ../../mod/admin.php:430
msgid "Open"
msgstr "Obert"
#: ../../mod/admin.php:315
#: ../../mod/admin.php:434
msgid "No SSL policy, links will track page SSL state"
msgstr "No existe una política de SSL, se hará un seguimiento de los vínculos de la página con SSL"
#: ../../mod/admin.php:435
msgid "Force all links to use SSL"
msgstr "Forzar a tots els enllaços a utilitzar SSL"
#: ../../mod/admin.php:436
msgid "Self-signed certificate, use SSL for local links only (discouraged)"
msgstr "Certificat auto-signat, utilitzar SSL només per a enllaços locals (desaconsellat)"
#: ../../mod/admin.php:445
msgid "File upload"
msgstr "Fitxer carregat"
#: ../../mod/admin.php:316
#: ../../mod/admin.php:446
msgid "Policies"
msgstr "Polítiques"
#: ../../mod/admin.php:317
#: ../../mod/admin.php:447
msgid "Advanced"
msgstr "Avançat"
#: ../../mod/admin.php:321 ../../addon/statusnet/statusnet.php:523
#: ../../mod/admin.php:451 ../../addon/statusnet/statusnet.php:567
msgid "Site name"
msgstr "Nom del lloc"
#: ../../mod/admin.php:322
#: ../../mod/admin.php:452
msgid "Banner/Logo"
msgstr "Senyera/Logo"
#: ../../mod/admin.php:323
#: ../../mod/admin.php:453
msgid "System language"
msgstr "Idioma del Systema"
msgstr "Idioma del Sistema"
#: ../../mod/admin.php:324
#: ../../mod/admin.php:454
msgid "System theme"
msgstr "Tema del sistema"
#: ../../mod/admin.php:324
msgid "Default system theme - may be over-ridden by user profiles"
msgstr "Tema per defecte del sitema - pot ser canviat als perfils dels usuaris"
#: ../../mod/admin.php:454
msgid ""
"Default system theme - may be over-ridden by user profiles - <a href='#' "
"id='cnftheme'>change theme settings</a>"
msgstr "Tema per defecte del sistema - pot ser obviat pels perfils del usuari - <a href='#' id='cnftheme'>Canviar ajustos de tema</a>"
#: ../../mod/admin.php:326
#: ../../mod/admin.php:455
msgid "Mobile system theme"
msgstr ""
#: ../../mod/admin.php:455
msgid "Theme for mobile devices"
msgstr ""
#: ../../mod/admin.php:456
msgid "SSL link policy"
msgstr "Política SSL per als enllaços"
#: ../../mod/admin.php:456
msgid "Determines whether generated links should be forced to use SSL"
msgstr "Determina si els enllaços generats han de ser forçats a utilitzar SSL"
#: ../../mod/admin.php:457
msgid "Maximum image size"
msgstr "Mida màxima de les imatges"
#: ../../mod/admin.php:326
#: ../../mod/admin.php:457
msgid ""
"Maximum size in bytes of uploaded images. Default is 0, which means no "
"limits."
msgstr "Mida màxima en bytes de les imatges a pujar. Per defecte es 0, que vol dir sense límits."
#: ../../mod/admin.php:328
#: ../../mod/admin.php:458
msgid "Maximum image length"
msgstr ""
#: ../../mod/admin.php:458
msgid ""
"Maximum length in pixels of the longest side of uploaded images. Default is "
"-1, which means no limits."
msgstr ""
#: ../../mod/admin.php:459
msgid "JPEG image quality"
msgstr ""
#: ../../mod/admin.php:459
msgid ""
"Uploaded JPEGS will be saved at this quality setting [0-100]. Default is "
"100, which is full quality."
msgstr ""
#: ../../mod/admin.php:461
msgid "Register policy"
msgstr "Política per a registrar"
#: ../../mod/admin.php:329
#: ../../mod/admin.php:462
msgid "Register text"
msgstr "Text al registrar"
#: ../../mod/admin.php:329
#: ../../mod/admin.php:462
msgid "Will be displayed prominently on the registration page."
msgstr "Sea mostrat de forma peminent a la pagina durant el procés de registre."
msgstr "Serà mostrat de forma preminent a la pàgina durant el procés de registre."
#: ../../mod/admin.php:330
#: ../../mod/admin.php:463
msgid "Accounts abandoned after x days"
msgstr "Comptes abandonats després de x dies"
#: ../../mod/admin.php:330
#: ../../mod/admin.php:463
msgid ""
"Will not waste system resources polling external sites for abandoned "
"Will not waste system resources polling external sites for abandonded "
"accounts. Enter 0 for no time limit."
msgstr "No gastará recursos del sistema creant enquestes des de llocs externos per a comptes abandonats. Introdueixi 0 per a cap límit temporal."
#: ../../mod/admin.php:331
#: ../../mod/admin.php:464
msgid "Allowed friend domains"
msgstr "Dominis amics permesos"
#: ../../mod/admin.php:331
#: ../../mod/admin.php:464
msgid ""
"Comma separated list of domains which are allowed to establish friendships "
"with this site. Wildcards are accepted. Empty to allow any domains"
msgstr "Llista de dominis separada per comes, de adreçes de correu que són permeses per establir amistats. S'admeten comodins. Deixa'l buit per a acceptar tots els dominis."
#: ../../mod/admin.php:332
#: ../../mod/admin.php:465
msgid "Allowed email domains"
msgstr "Dominis de correu permesos"
#: ../../mod/admin.php:332
#: ../../mod/admin.php:465
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 "Llista de dominis separada per comes, de adreçes de correu que són permeses per registrtar-se. S'admeten comodins. Deixa'l buit per a acceptar tots els dominis."
#: ../../mod/admin.php:333
#: ../../mod/admin.php:466
msgid "Block public"
msgstr "Bloqueig públic"
#: ../../mod/admin.php:333
#: ../../mod/admin.php:466
msgid ""
"Check to block public access to all otherwise public personal pages on this "
"site unless you are currently logged in."
msgstr "Bloqueija l'accés públic a qualsevol pàgina del lloc fins que t'hagis identificat."
msgstr "Bloqueja l'accés públic a qualsevol pàgina del lloc fins que t'hagis identificat."
#: ../../mod/admin.php:334
#: ../../mod/admin.php:467
msgid "Force publish"
msgstr "Forçar publicació"
#: ../../mod/admin.php:334
#: ../../mod/admin.php:467
msgid ""
"Check to force all profiles on this site to be listed in the site directory."
msgstr "Obliga a que tots el perfils en aquest lloc siguin mostrats en el directori del lloc."
#: ../../mod/admin.php:335
#: ../../mod/admin.php:468
msgid "Global directory update URL"
msgstr "Actualitzar URL del directori global"
#: ../../mod/admin.php:335
#: ../../mod/admin.php:468
msgid ""
"URL to update the global directory. If this is not set, the global directory"
" is completely unavailable to the application."
msgstr "URL per actualitzar el directori global. Si no es configura, el directori global serà completament inaccesible per a l'aplicació. "
#: ../../mod/admin.php:337
#: ../../mod/admin.php:469
msgid "Allow threaded items"
msgstr ""
#: ../../mod/admin.php:469
msgid "Allow infinite level threading for items on this site."
msgstr ""
#: ../../mod/admin.php:470
msgid "Private posts by default for new users"
msgstr ""
#: ../../mod/admin.php:470
msgid ""
"Set default post permissions for all new members to the default privacy "
"group rather than public."
msgstr ""
#: ../../mod/admin.php:472
msgid "Block multiple registrations"
msgstr "Bloquejar multiples registracions"
#: ../../mod/admin.php:337
#: ../../mod/admin.php:472
msgid "Disallow users to register additional accounts for use as pages."
msgstr "Inhabilita als usuaris el crear comptes adicionals per a usar com a pàgines."
#: ../../mod/admin.php:338
#: ../../mod/admin.php:473
msgid "OpenID support"
msgstr "Suport per a OpenID"
#: ../../mod/admin.php:338
#: ../../mod/admin.php:473
msgid "OpenID support for registration and logins."
msgstr "Suport per a registre i validació a OpenID."
#: ../../mod/admin.php:339
msgid "Gravatar support"
msgstr "Suport per a gravatar"
#: ../../mod/admin.php:339
msgid "Search new user's photo on Gravatar."
msgstr "Cerca la nova foto d'usuari a Gravatar."
#: ../../mod/admin.php:340
#: ../../mod/admin.php:474
msgid "Fullname check"
msgstr "Comprobació de nom complet"
#: ../../mod/admin.php:340
#: ../../mod/admin.php:474
msgid ""
"Force users to register with a space between firstname and lastname in Full "
"name, as an antispam measure"
msgstr "Obliga els usuaris a col·locar un espai en blanc entre nom i cognoms, com a mesura antifemater"
msgstr "Obliga els usuaris a col·locar un espai en blanc entre nom i cognoms, com a mesura antispam"
#: ../../mod/admin.php:341
#: ../../mod/admin.php:475
msgid "UTF-8 Regular expressions"
msgstr "expresions regulars UTF-8"
#: ../../mod/admin.php:341
#: ../../mod/admin.php:475
msgid "Use PHP UTF8 regular expressions"
msgstr "Empri expresions regulars de PHP amb format UTF8"
#: ../../mod/admin.php:342
#: ../../mod/admin.php:476
msgid "Show Community Page"
msgstr "Mostra la Pàgina de Comunitat"
#: ../../mod/admin.php:342
#: ../../mod/admin.php:476
msgid ""
"Display a Community page showing all recent public postings on this site."
msgstr "Mostra a la pàgina de comunitat tots els missatges públics recents, d'aquest lloc."
#: ../../mod/admin.php:343
#: ../../mod/admin.php:477
msgid "Enable OStatus support"
msgstr "Activa el suport per a OStatus"
#: ../../mod/admin.php:343
#: ../../mod/admin.php:477
msgid ""
"Provide built-in OStatus (identi.ca, status.net, etc.) compatibility. All "
"communications in OStatus are public, so privacy warnings will be "
"occasionally displayed."
msgstr "Proveeix de compatibilitat integrada amb OStatus (identi.ca, status.net, etc). Totes les comunicacions a OStatus són públiques amb el que ocasionalment pots veure advertències."
#: ../../mod/admin.php:344
#: ../../mod/admin.php:478
msgid "Enable Diaspora support"
msgstr "Habilitar suport per Diaspora"
#: ../../mod/admin.php:344
#: ../../mod/admin.php:478
msgid "Provide built-in Diaspora network compatibility."
msgstr "Proveeix compatibilitat integrada amb la xarxa Diaspora"
#: ../../mod/admin.php:345
#: ../../mod/admin.php:479
msgid "Only allow Friendica contacts"
msgstr "Només permetre contactes de Friendica"
#: ../../mod/admin.php:345
#: ../../mod/admin.php:479
msgid ""
"All contacts must use Friendica protocols. All other built-in communication "
"protocols disabled."
msgstr "Tots els contactes "
#: ../../mod/admin.php:346
#: ../../mod/admin.php:480
msgid "Verify SSL"
msgstr "Verificar SSL"
#: ../../mod/admin.php:346
#: ../../mod/admin.php:480
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 "Si ho vols, pots comprovar el certificat estrictament. Això farà que no puguis connectar (de cap manera) amb llocs amb certificats SSL autosignats."
#: ../../mod/admin.php:347
#: ../../mod/admin.php:481
msgid "Proxy user"
msgstr "proxy d'usuari"
#: ../../mod/admin.php:348
#: ../../mod/admin.php:482
msgid "Proxy URL"
msgstr "URL del proxy"
#: ../../mod/admin.php:349
#: ../../mod/admin.php:483
msgid "Network timeout"
msgstr "Temps excedit a la xarxa"
#: ../../mod/admin.php:349
#: ../../mod/admin.php:483
msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
msgstr "Valor en segons. Canviat a 0 es sense límits (no recomenat)"
#: ../../mod/admin.php:370
#: ../../mod/admin.php:484
msgid "Delivery interval"
msgstr "Interval d'entrega"
#: ../../mod/admin.php:484
msgid ""
"Delay background delivery processes by this many seconds to reduce system "
"load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 "
"for large dedicated servers."
msgstr "Retardar processos d'entrega, en segon pla, en aquesta quantitat de segons, per reduir la càrrega del sistema . Recomanem : 4-5 per als servidors compartits , 2-3 per a servidors privats virtuals . 0-1 per els grans servidors dedicats."
#: ../../mod/admin.php:485
msgid "Poll interval"
msgstr "Interval entre sondejos"
#: ../../mod/admin.php:485
msgid ""
"Delay background polling processes by this many seconds to reduce system "
"load. If 0, use delivery interval."
msgstr "Endarrerir els processos de sondeig en segon pla durant aquest període, en segons, per tal de reduir la càrrega de treball del sistema, Si s'empra 0, s'utilitza l'interval d'entregues. "
#: ../../mod/admin.php:486
msgid "Maximum Load Average"
msgstr "Càrrega Màxima Sostinguda"
#: ../../mod/admin.php:486
msgid ""
"Maximum system load before delivery and poll processes are deferred - "
"default 50."
msgstr "Càrrega màxima del sistema abans d'apaçar els processos d'entrega i sondeig - predeterminat a 50."
#: ../../mod/admin.php:503
msgid "Update has been marked successful"
msgstr "L'actualització ha estat marcada amb èxit"
#: ../../mod/admin.php:513
#, php-format
msgid "Executing %s failed. Check system logs."
msgstr "Ha fracassat l'execució de %s. Comprova el registre del sistema."
#: ../../mod/admin.php:516
#, php-format
msgid "Update %s was successfully applied."
msgstr "L'actualització de %s es va aplicar amb èxit."
#: ../../mod/admin.php:520
#, php-format
msgid "Update %s did not return a status. Unknown if it succeeded."
msgstr "L'actualització de %s no ha retornat el seu estatus. Es desconeix si ha estat amb èxit."
#: ../../mod/admin.php:523
#, php-format
msgid "Update function %s could not be found."
msgstr "L'actualització de la funció %s no es pot trobar."
#: ../../mod/admin.php:538
msgid "No failed updates."
msgstr "No hi ha actualitzacions fallides."
#: ../../mod/admin.php:542
msgid "Failed Updates"
msgstr "Actualitzacions Fallides"
#: ../../mod/admin.php:543
msgid ""
"This does not include updates prior to 1139, which did not return a status."
msgstr "Això no inclou actualitzacions anteriors a 1139, raó per la que no ha retornat l'estatus."
#: ../../mod/admin.php:544
msgid "Mark success (if update was manually applied)"
msgstr "Marcat am èxit (si l'actualització es va fer manualment)"
#: ../../mod/admin.php:545
msgid "Attempt to execute this update step automatically"
msgstr "Intentant executar aquest pas d'actualització automàticament"
#: ../../mod/admin.php:570
#, php-format
msgid "%s user blocked/unblocked"
msgid_plural "%s users blocked/unblocked"
msgstr[0] "%s usuari bloquejar/desbloquejar"
msgstr[1] "%s usuaris bloquejar/desbloquejar"
#: ../../mod/admin.php:377
#: ../../mod/admin.php:577
#, php-format
msgid "%s user deleted"
msgid_plural "%s users deleted"
msgstr[0] "%s usuari esborrat"
msgstr[1] "%s usuaris esborrats"
#: ../../mod/admin.php:411
#: ../../mod/admin.php:616
#, php-format
msgid "User '%s' deleted"
msgstr "Usuari %s' esborrat"
#: ../../mod/admin.php:418
#: ../../mod/admin.php:624
#, php-format
msgid "User '%s' unblocked"
msgstr "Usuari %s' desbloquejat"
#: ../../mod/admin.php:418
#: ../../mod/admin.php:624
#, php-format
msgid "User '%s' blocked"
msgstr "L'usuari '%s' és bloquejat"
#: ../../mod/admin.php:482
#: ../../mod/admin.php:690
msgid "select all"
msgstr "Seleccionar tot"
#: ../../mod/admin.php:483
#: ../../mod/admin.php:691
msgid "User registrations waiting for confirm"
msgstr "Registre d'usuari esperant confirmació"
#: ../../mod/admin.php:484
#: ../../mod/admin.php:692
msgid "Request date"
msgstr "Data de sol·licitud"
#: ../../mod/admin.php:484 ../../mod/admin.php:493
#: ../../mod/admin.php:692 ../../mod/admin.php:702
#: ../../include/contact_selectors.php:79
msgid "Email"
msgstr "Correu"
#: ../../mod/admin.php:485
#: ../../mod/admin.php:693
msgid "No registrations."
msgstr "Sense registres."
#: ../../mod/admin.php:487
#: ../../mod/admin.php:695
msgid "Deny"
msgstr "Denegar"
#: ../../mod/admin.php:493
#: ../../mod/admin.php:699
msgid "Site admin"
msgstr ""
#: ../../mod/admin.php:702
msgid "Register date"
msgstr "Data de registre"
#: ../../mod/admin.php:493
#: ../../mod/admin.php:702
msgid "Last login"
msgstr "Últim accés"
#: ../../mod/admin.php:493
#: ../../mod/admin.php:702
msgid "Last item"
msgstr "Últim element"
#: ../../mod/admin.php:493
#: ../../mod/admin.php:702
msgid "Account"
msgstr "Compte"
#: ../../mod/admin.php:495
#: ../../mod/admin.php:704
msgid ""
"Selected users will be deleted!\\n\\nEverything these users had posted on "
"this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "Els usuaris seleccionats seran esborrats!\\n\\nqualsevol cosa que aquests usuaris hagin publicat en aquest lloc s'esborrarà!\\n\\nEsteu segur?"
#: ../../mod/admin.php:496
#: ../../mod/admin.php:705
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 "L'usuari {0} s'eliminarà!\\n\\nQualsevol cosa que aquest usuari hagi publicat en aquest lloc s'esborrarà!\\n\\nEsteu segur?"
#: ../../mod/admin.php:532
#: ../../mod/admin.php:746
#, php-format
msgid "Plugin %s disabled."
msgstr "Plugin %s deshabilitat."
#: ../../mod/admin.php:536
#: ../../mod/admin.php:750
#, php-format
msgid "Plugin %s enabled."
msgstr "Plugin %s habilitat."
#: ../../mod/admin.php:546 ../../mod/admin.php:724
#: ../../mod/admin.php:760 ../../mod/admin.php:958
msgid "Disable"
msgstr "Deshabilitar"
#: ../../mod/admin.php:548 ../../mod/admin.php:726
#: ../../mod/admin.php:762 ../../mod/admin.php:960
msgid "Enable"
msgstr "Habilitar"
#: ../../mod/admin.php:570 ../../mod/admin.php:743
#: ../../mod/admin.php:784 ../../mod/admin.php:989
msgid "Toggle"
msgstr "Canviar"
#: ../../mod/admin.php:571 ../../mod/admin.php:744 ../../include/nav.php:130
msgid "Settings"
msgstr "Ajustos"
#: ../../mod/admin.php:578 ../../mod/admin.php:753
#: ../../mod/admin.php:792 ../../mod/admin.php:999
msgid "Author: "
msgstr "Autor:"
#: ../../mod/admin.php:579 ../../mod/admin.php:754
#: ../../mod/admin.php:793 ../../mod/admin.php:1000
msgid "Maintainer: "
msgstr "Encarregat:"
#: ../../mod/admin.php:689
#: ../../mod/admin.php:922
msgid "No themes found."
msgstr "No s'ha trobat temes."
#: ../../mod/admin.php:780
#: ../../mod/admin.php:981
msgid "Screenshot"
msgstr "Captura de pantalla"
#: ../../mod/admin.php:1029
msgid "[Experimental]"
msgstr "[Experimental]"
#: ../../mod/admin.php:781
#: ../../mod/admin.php:1030
msgid "[Unsupported]"
msgstr "[No soportat]"
#: ../../mod/admin.php:804
#: ../../mod/admin.php:1057
msgid "Log settings updated."
msgstr "Configuració del transcriptor actualitzada."
msgstr "Configuració del registre actualitzada."
#: ../../mod/admin.php:857
#: ../../mod/admin.php:1113
msgid "Clear"
msgstr "Netejar"
#: ../../mod/admin.php:863
#: ../../mod/admin.php:1119
msgid "Debugging"
msgstr "Esplugar"
#: ../../mod/admin.php:864
#: ../../mod/admin.php:1120
msgid "Log file"
msgstr "Arxiu de transcripció"
msgstr "Arxiu de registre"
#: ../../mod/admin.php:864
#: ../../mod/admin.php:1120
msgid ""
"Must be writable by web server. Relative to your Friendica top-level "
"directory."
msgstr "Ha de tenir permisos d'escriptura pel servidor web. En relació amb el seu directori Friendica de nivell superior."
#: ../../mod/admin.php:865
#: ../../mod/admin.php:1121
msgid "Log level"
msgstr "Nivell de transcripció"
#: ../../mod/admin.php:906
#: ../../mod/admin.php:1171
msgid "Close"
msgstr "Tancar"
#: ../../mod/admin.php:912
#: ../../mod/admin.php:1177
msgid "FTP Host"
msgstr "Amfitrió FTP"
#: ../../mod/admin.php:913
#: ../../mod/admin.php:1178
msgid "FTP Path"
msgstr "Direcció FTP"
#: ../../mod/admin.php:914
#: ../../mod/admin.php:1179
msgid "FTP User"
msgstr "Usuari FTP"
#: ../../mod/admin.php:915
#: ../../mod/admin.php:1180
msgid "FTP Password"
msgstr "Contrasenya FTP"
#: ../../mod/profile.php:15 ../../boot.php:845
#: ../../mod/profile.php:22 ../../boot.php:1074
msgid "Requested profile is not available."
msgstr "El perfil sol·licitat no està disponible."
#: ../../mod/profile.php:111 ../../mod/display.php:67
#: ../../mod/profile.php:152 ../../mod/display.php:77
msgid "Access to this profile has been restricted."
msgstr "L'accés a aquest perfil ha estat restringit."
#: ../../mod/profile.php:131
#: ../../mod/profile.php:177
msgid "Tips for New Members"
msgstr "Consells per a nous membres"
#: ../../mod/ping.php:174
#: ../../mod/ping.php:235
msgid "{0} wants to be your friend"
msgstr "{0} vol ser el teu amic"
#: ../../mod/ping.php:179
#: ../../mod/ping.php:240
msgid "{0} sent you a message"
msgstr "{0} t'ha enviat un missatge de"
#: ../../mod/ping.php:184
#: ../../mod/ping.php:245
msgid "{0} requested registration"
msgstr "{0} solicituts de registre"
#: ../../mod/ping.php:190
#: ../../mod/ping.php:251
#, php-format
msgid "{0} commented %s's post"
msgstr "{0} va comentar l'enviament de %s"
#: ../../mod/ping.php:195
#: ../../mod/ping.php:256
#, php-format
msgid "{0} liked %s's post"
msgstr "A {0} l'ha agradat l'enviament de %s"
#: ../../mod/ping.php:200
#: ../../mod/ping.php:261
#, php-format
msgid "{0} disliked %s's post"
msgstr "A {0} no l'ha agradat l'enviament de %s"
#: ../../mod/ping.php:205
#: ../../mod/ping.php:266
#, php-format
msgid "{0} is now friends with %s"
msgstr "{0} ara és amic de %s"
#: ../../mod/ping.php:210
#: ../../mod/ping.php:271
msgid "{0} posted"
msgstr "{0} publicat"
#: ../../mod/ping.php:215
#: ../../mod/ping.php:276
#, php-format
msgid "{0} tagged %s's post with #%s"
msgstr "{0} va etiquetar la publicació de %s com #%s"
#: ../../mod/ping.php:221
#: ../../mod/ping.php:282
msgid "{0} mentioned you in a post"
msgstr "{0} et menciona en un missatge"
#: ../../mod/openid.php:63 ../../mod/openid.php:77 ../../include/auth.php:90
#: ../../include/auth.php:115 ../../include/auth.php:169
#: ../../mod/nogroup.php:58
msgid "Contacts who are not members of a group"
msgstr "Contactes que no pertanyen a cap grup"
#: ../../mod/openid.php:24
msgid "OpenID protocol error. No ID returned."
msgstr "Error al protocol OpenID. No ha retornat ID."
#: ../../mod/openid.php:53
msgid ""
"Account not found and OpenID registration is not permitted on this site."
msgstr "Compte no trobat i el registrar-se amb OpenID no està permès en aquest lloc."
#: ../../mod/openid.php:93 ../../include/auth.php:98
#: ../../include/auth.php:161
msgid "Login failed."
msgstr "Error d'accés."
#: ../../mod/follow.php:27
msgid "Connect URL missing."
msgstr "URL del connector perduda."
msgid "Contact added"
msgstr "Contacte afegit"
#: ../../mod/follow.php:47
msgid ""
"This site is not configured to allow communications with other networks."
msgstr "Aquest lloc no està configurat per permetre les comunicacions amb altres xarxes."
#: ../../mod/follow.php:48 ../../mod/follow.php:63
msgid "No compatible communication protocols or feeds were discovered."
msgstr "Protocol de comunnicació no compatible o alimentador descobert."
#: ../../mod/follow.php:61
msgid "The profile address specified does not provide adequate information."
msgstr "L'adreça de perfil especificada no proveeix informació adient."
#: ../../mod/follow.php:65
msgid "An author or name was not found."
msgstr "Un autor o nom no va ser trobat"
#: ../../mod/follow.php:67
msgid "No browser URL could be matched to this address."
msgstr "Cap direcció URL del navegador coincideix amb aquesta adreça."
#: ../../mod/follow.php:74
msgid ""
"The profile address specified belongs to a network which has been disabled "
"on this site."
msgstr "La direcció del perfil especificat pertany a una xarxa que ha estat desactivada en aquest lloc."
#: ../../mod/follow.php:79
msgid ""
"Limited profile. This person will be unable to receive direct/personal "
"notifications from you."
msgstr "Perfil limitat. Aquesta persona no podrà rebre notificacions personals/directes de tu."
#: ../../mod/follow.php:149
msgid "Unable to retrieve contact information."
msgstr "No es pot recuperar la informació de contacte."
#: ../../mod/follow.php:195
msgid "following"
msgstr "seguint"
#: ../../mod/common.php:34
#: ../../mod/common.php:42
msgid "Common Friends"
msgstr "Amics Comuns"
#: ../../mod/common.php:42
msgid "No friends in common."
msgstr "No hi ha amics en comú."
#: ../../mod/common.php:78
msgid "No contacts in common."
msgstr "Sense contactes en comú."
#: ../../mod/display.php:130
#: ../../mod/share.php:28
msgid "link"
msgstr "enllaç"
#: ../../mod/display.php:138
msgid "Item has been removed."
msgstr "El element ha estat esborrat."
@ -3371,227 +4114,328 @@ msgstr "Aplicacions"
msgid "No installed applications."
msgstr "Aplicacions no instal·lades."
#: ../../mod/search.php:83
msgid "Search This Site"
msgstr "Cerca en Aquest Lloc"
#: ../../mod/search.php:85 ../../include/text.php:678
#: ../../include/text.php:679 ../../include/nav.php:91
msgid "Search"
msgstr "Cercar"
#: ../../mod/profiles.php:21 ../../mod/profiles.php:239
#: ../../mod/profiles.php:344 ../../mod/dfrn_confirm.php:62
#: ../../mod/profiles.php:21 ../../mod/profiles.php:423
#: ../../mod/profiles.php:537 ../../mod/dfrn_confirm.php:62
msgid "Profile not found."
msgstr "Perfil no trobat."
#: ../../mod/profiles.php:28
#: ../../mod/profiles.php:31
msgid "Profile Name is required."
msgstr "Nom de perfil requerit."
#: ../../mod/profiles.php:198
#: ../../mod/profiles.php:160
msgid "Marital Status"
msgstr "Estatus Marital"
#: ../../mod/profiles.php:164
msgid "Romantic Partner"
msgstr "Soci Romàntic"
#: ../../mod/profiles.php:168
msgid "Likes"
msgstr "Agrada"
#: ../../mod/profiles.php:172
msgid "Dislikes"
msgstr "No agrada"
#: ../../mod/profiles.php:176
msgid "Work/Employment"
msgstr "Treball/Ocupació"
#: ../../mod/profiles.php:179
msgid "Religion"
msgstr "Religió"
#: ../../mod/profiles.php:183
msgid "Political Views"
msgstr "Idees Polítiques"
#: ../../mod/profiles.php:187
msgid "Gender"
msgstr "Gènere"
#: ../../mod/profiles.php:191
msgid "Sexual Preference"
msgstr "Preferència sexual"
#: ../../mod/profiles.php:195
msgid "Homepage"
msgstr "Inici"
#: ../../mod/profiles.php:199
msgid "Interests"
msgstr "Interesos"
#: ../../mod/profiles.php:203
msgid "Address"
msgstr "Adreça"
#: ../../mod/profiles.php:210 ../../addon/dav/common/wdcal_edit.inc.php:183
msgid "Location"
msgstr "Ubicació"
#: ../../mod/profiles.php:293
msgid "Profile updated."
msgstr "Perfil actualitzat."
#: ../../mod/profiles.php:256
#: ../../mod/profiles.php:360
msgid " and "
msgstr " i "
#: ../../mod/profiles.php:368
msgid "public profile"
msgstr "perfil públic"
#: ../../mod/profiles.php:371
#, php-format
msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
msgstr "%1$s s'ha canviat de %2$s a &ldquo;%3$s&rdquo;"
#: ../../mod/profiles.php:372
#, php-format
msgid " - Visit %1$s's %2$s"
msgstr " - Visita %1$s de %2$s"
#: ../../mod/profiles.php:375
#, php-format
msgid "%1$s has an updated %2$s, changing %3$s."
msgstr "%1$s te una actualització %2$s, canviant %3$s."
#: ../../mod/profiles.php:442
msgid "Profile deleted."
msgstr "Perfil esborrat."
#: ../../mod/profiles.php:272 ../../mod/profiles.php:303
#: ../../mod/profiles.php:460 ../../mod/profiles.php:494
msgid "Profile-"
msgstr "Perfil-"
#: ../../mod/profiles.php:291 ../../mod/profiles.php:330
#: ../../mod/profiles.php:479 ../../mod/profiles.php:521
msgid "New profile created."
msgstr "Nou perfil creat."
#: ../../mod/profiles.php:309
#: ../../mod/profiles.php:500
msgid "Profile unavailable to clone."
msgstr "No es pot clonar el perfil."
#: ../../mod/profiles.php:356
#: ../../mod/profiles.php:562
msgid "Hide your contact/friend list from viewers of this profile?"
msgstr "Amaga la llista de contactes/amics en la vista d'aquest perfil?"
#: ../../mod/profiles.php:374
#: ../../mod/profiles.php:582
msgid "Edit Profile Details"
msgstr "Editor de Detalls del Perfil"
#: ../../mod/profiles.php:376
#: ../../mod/profiles.php:584
msgid "View this profile"
msgstr "Veure aquest perfil"
#: ../../mod/profiles.php:377
#: ../../mod/profiles.php:585
msgid "Create a new profile using these settings"
msgstr "Crear un nou perfil amb aquests ajustos"
#: ../../mod/profiles.php:378
#: ../../mod/profiles.php:586
msgid "Clone this profile"
msgstr "Clonar aquest perfil"
#: ../../mod/profiles.php:379
#: ../../mod/profiles.php:587
msgid "Delete this profile"
msgstr "Esborrar aquest perfil"
#: ../../mod/profiles.php:380
#: ../../mod/profiles.php:588
msgid "Profile Name:"
msgstr "Nom de Perfil:"
#: ../../mod/profiles.php:381
#: ../../mod/profiles.php:589
msgid "Your Full Name:"
msgstr "El Teu Nom Complet."
#: ../../mod/profiles.php:382
#: ../../mod/profiles.php:590
msgid "Title/Description:"
msgstr "Títol/Descripció:"
#: ../../mod/profiles.php:383
#: ../../mod/profiles.php:591
msgid "Your Gender:"
msgstr "Gènere:"
#: ../../mod/profiles.php:384
#: ../../mod/profiles.php:592
#, php-format
msgid "Birthday (%s):"
msgstr "Aniversari (%s)"
#: ../../mod/profiles.php:385
#: ../../mod/profiles.php:593
msgid "Street Address:"
msgstr "Direcció:"
#: ../../mod/profiles.php:386
#: ../../mod/profiles.php:594
msgid "Locality/City:"
msgstr "Localitat/Ciutat:"
#: ../../mod/profiles.php:387
#: ../../mod/profiles.php:595
msgid "Postal/Zip Code:"
msgstr "Codi Postal:"
#: ../../mod/profiles.php:388
#: ../../mod/profiles.php:596
msgid "Country:"
msgstr "País"
#: ../../mod/profiles.php:389
#: ../../mod/profiles.php:597
msgid "Region/State:"
msgstr "Región/Estat:"
msgstr "Regió/Estat:"
#: ../../mod/profiles.php:390
#: ../../mod/profiles.php:598
msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
msgstr "<span class=\"heart\">&hearts;</span> Estat Civil:"
#: ../../mod/profiles.php:391
#: ../../mod/profiles.php:599
msgid "Who: (if applicable)"
msgstr "Qui? (si és aplicable)"
#: ../../mod/profiles.php:392
#: ../../mod/profiles.php:600
msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
msgstr "Exemples: cathy123, Cathy Williams, cathy@example.com"
#: ../../mod/profiles.php:393 ../../include/profile_advanced.php:43
#: ../../mod/profiles.php:601
msgid "Since [date]:"
msgstr "Des de [data]"
#: ../../mod/profiles.php:602 ../../include/profile_advanced.php:46
msgid "Sexual Preference:"
msgstr "Preferència Sexual:"
#: ../../mod/profiles.php:394
#: ../../mod/profiles.php:603
msgid "Homepage URL:"
msgstr "Pàgina web URL:"
#: ../../mod/profiles.php:395 ../../include/profile_advanced.php:49
#: ../../mod/profiles.php:604 ../../include/profile_advanced.php:50
msgid "Hometown:"
msgstr "Lloc de residència:"
#: ../../mod/profiles.php:605 ../../include/profile_advanced.php:54
msgid "Political Views:"
msgstr "Idees Polítiques:"
#: ../../mod/profiles.php:396
#: ../../mod/profiles.php:606
msgid "Religious Views:"
msgstr "Creencies Religioses:"
#: ../../mod/profiles.php:397
#: ../../mod/profiles.php:607
msgid "Public Keywords:"
msgstr "Paraules Clau Públiques"
#: ../../mod/profiles.php:398
#: ../../mod/profiles.php:608
msgid "Private Keywords:"
msgstr "Paraules Clau Privades:"
#: ../../mod/profiles.php:399
#: ../../mod/profiles.php:609 ../../include/profile_advanced.php:62
msgid "Likes:"
msgstr "Agrada:"
#: ../../mod/profiles.php:610 ../../include/profile_advanced.php:64
msgid "Dislikes:"
msgstr "No Agrada"
#: ../../mod/profiles.php:611
msgid "Example: fishing photography software"
msgstr "Exemple: pesca fotografia programari"
#: ../../mod/profiles.php:400
#: ../../mod/profiles.php:612
msgid "(Used for suggesting potential friends, can be seen by others)"
msgstr "(Emprat per suggerir potencials amics, Altres poden veure-ho)"
#: ../../mod/profiles.php:401
#: ../../mod/profiles.php:613
msgid "(Used for searching profiles, never shown to others)"
msgstr "(Emprat durant la cerca de perfils, mai mostrat a ningú)"
#: ../../mod/profiles.php:402
#: ../../mod/profiles.php:614
msgid "Tell us about yourself..."
msgstr "Parla'ns de tú....."
#: ../../mod/profiles.php:403
#: ../../mod/profiles.php:615
msgid "Hobbies/Interests"
msgstr "Aficions/Interessos"
#: ../../mod/profiles.php:404
#: ../../mod/profiles.php:616
msgid "Contact information and Social Networks"
msgstr "Informació de contacte i Xarxes Socials"
#: ../../mod/profiles.php:405
#: ../../mod/profiles.php:617
msgid "Musical interests"
msgstr "Gustos musicals"
#: ../../mod/profiles.php:406
#: ../../mod/profiles.php:618
msgid "Books, literature"
msgstr "Llibres, Literatura"
#: ../../mod/profiles.php:407
#: ../../mod/profiles.php:619
msgid "Television"
msgstr "Televisió"
#: ../../mod/profiles.php:408
#: ../../mod/profiles.php:620
msgid "Film/dance/culture/entertainment"
msgstr "Cinema/ball/cultura/entreteniments"
#: ../../mod/profiles.php:409
#: ../../mod/profiles.php:621
msgid "Love/romance"
msgstr "Amor/sentiments"
#: ../../mod/profiles.php:410
#: ../../mod/profiles.php:622
msgid "Work/employment"
msgstr "Treball/ocupació"
#: ../../mod/profiles.php:411
#: ../../mod/profiles.php:623
msgid "School/education"
msgstr "Ensenyament/estudis"
#: ../../mod/profiles.php:416
#: ../../mod/profiles.php:628
msgid ""
"This is your <strong>public</strong> profile.<br />It <strong>may</strong> "
"be visible to anybody using the internet."
msgstr "Aquest és el teu perfil <strong>públic</strong>.<br />El qual <strong>pot</strong> ser visible per qualsevol qui faci servir Internet."
#: ../../mod/profiles.php:426 ../../mod/directory.php:124
#: ../../mod/profiles.php:638 ../../mod/directory.php:111
msgid "Age: "
msgstr "Edat:"
#: ../../mod/profiles.php:461
#: ../../mod/profiles.php:677
msgid "Edit/Manage Profiles"
msgstr "Editar/Gestionar Perfils"
#: ../../mod/profiles.php:462 ../../boot.php:946
#: ../../mod/profiles.php:678 ../../boot.php:1192
msgid "Change profile photo"
msgstr "Canviar la foto del perfil"
#: ../../mod/profiles.php:463 ../../boot.php:947
#: ../../mod/profiles.php:679 ../../boot.php:1193
msgid "Create New Profile"
msgstr "Crear un Nou Perfil"
#: ../../mod/profiles.php:473 ../../boot.php:957
#: ../../mod/profiles.php:690 ../../boot.php:1203
msgid "Profile Image"
msgstr "Imatge del Perfil"
#: ../../mod/profiles.php:475 ../../boot.php:960
#: ../../mod/profiles.php:692 ../../boot.php:1206
msgid "visible to everybody"
msgstr "Visible per tothom"
#: ../../mod/profiles.php:476 ../../boot.php:961
#: ../../mod/profiles.php:693 ../../boot.php:1207
msgid "Edit visibility"
msgstr "Editar visibilitat"
#: ../../mod/tagger.php:103 ../../include/conversation.php:138
#: ../../mod/filer.php:29 ../../include/conversation.php:1209
#: ../../include/conversation.php:1226
msgid "Save to Folder:"
msgstr "Guardar a la Carpeta:"
#: ../../mod/filer.php:29
msgid "- select -"
msgstr "- seleccionar -"
#: ../../mod/tagger.php:95 ../../include/conversation.php:265
#, php-format
msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr "%1$s etiquetats %2$s %3$s amb %4$s"
@ -3631,7 +4475,52 @@ msgstr "Afegir"
msgid "No entries."
msgstr "Sense entrades"
#: ../../mod/suggest.php:38 ../../include/contact_widgets.php:35
#: ../../mod/babel.php:17
msgid "Source (bbcode) text:"
msgstr "Text Codi (bbcode): "
#: ../../mod/babel.php:23
msgid "Source (Diaspora) text to convert to BBcode:"
msgstr "Font (Diaspora) Convertir text a BBcode"
#: ../../mod/babel.php:31
msgid "Source input: "
msgstr "Entrada de Codi:"
#: ../../mod/babel.php:35
msgid "bb2html: "
msgstr "bb2html: "
#: ../../mod/babel.php:39
msgid "bb2html2bb: "
msgstr "bb2html2bb: "
#: ../../mod/babel.php:43
msgid "bb2md: "
msgstr "bb2md: "
#: ../../mod/babel.php:47
msgid "bb2md2html: "
msgstr "bb2md2html: "
#: ../../mod/babel.php:51
msgid "bb2dia2bb: "
msgstr "bb2dia2bb: "
#: ../../mod/babel.php:55
msgid "bb2md2html2bb: "
msgstr "bb2md2html2bb: "
#: ../../mod/babel.php:65
msgid "Source input (Diaspora format): "
msgstr "Font d'entrada (format de Diaspora)"
#: ../../mod/babel.php:70
msgid "diaspora2bb: "
msgstr "diaspora2bb: "
#: ../../mod/suggest.php:38 ../../view/theme/diabook/theme.php:626
#: ../../include/contact_widgets.php:34
msgid "Friend Suggestions"
msgstr "Amics Suggerits"
@ -3645,31 +4534,42 @@ msgstr "Cap suggeriment disponible. Si això és un nou lloc, si us plau torna a
msgid "Ignore/Hide"
msgstr "Ignorar/Amagar"
#: ../../mod/directory.php:51
#: ../../mod/directory.php:49 ../../view/theme/diabook/theme.php:624
msgid "Global Directory"
msgstr "Directori Global"
#: ../../mod/directory.php:57
msgid "Normal site view"
msgstr "Vista normal del lloc"
#: ../../mod/directory.php:59
msgid "Admin - View all site entries"
msgstr "Admin- Veure totes les entrades del lloc"
#: ../../mod/directory.php:65
msgid "Find on this site"
msgstr "Trobat en aquest lloc"
#: ../../mod/directory.php:68
#: ../../mod/directory.php:60
msgid "Site Directory"
msgstr "Directori Local"
#: ../../mod/directory.php:127
#: ../../mod/directory.php:114
msgid "Gender: "
msgstr "Gènere:"
#: ../../mod/directory.php:153
#: ../../mod/directory.php:136 ../../include/profile_advanced.php:17
#: ../../boot.php:1228
msgid "Gender:"
msgstr "Gènere:"
#: ../../mod/directory.php:138 ../../include/profile_advanced.php:37
#: ../../boot.php:1231
msgid "Status:"
msgstr "Estatus:"
#: ../../mod/directory.php:140 ../../include/profile_advanced.php:48
#: ../../boot.php:1233
msgid "Homepage:"
msgstr "Pàgina web:"
#: ../../mod/directory.php:142 ../../include/profile_advanced.php:58
msgid "About:"
msgstr "Acerca de:"
#: ../../mod/directory.php:180
msgid "No entries (some entries may be hidden)."
msgstr "No hi ha entrades (algunes de les entrades poden estar amagades)."
@ -3679,9 +4579,8 @@ msgid "%s : Not a valid email address."
msgstr "%s : No es una adreça de correu vàlida"
#: ../../mod/invite.php:59
#, php-format
msgid "Please join my network on %s"
msgstr "Si us plau, uneix-te a la meva xarxa en %s"
msgid "Please join us on Friendica"
msgstr "Per favor, uneixi's a nosaltres en Friendica"
#: ../../mod/invite.php:69
#, php-format
@ -3699,179 +4598,245 @@ msgstr[1] "%d missatges enviats."
msgid "You have no more invitations available"
msgstr "No te més invitacions disponibles"
#: ../../mod/invite.php:99
msgid "Send invitations"
msgstr "Enviant Invitacions"
#: ../../mod/invite.php:100
msgid "Enter email addresses, one per line:"
msgstr "Entri adreçes de correu, una per línia:"
#, 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 "Visita %s per a una llista de llocs públics on unir-te. Els membres de Friendica d'altres llocs poden connectar-se de forma total, així com amb membres de moltes altres xarxes socials."
#: ../../mod/invite.php:102
#, php-format
msgid "Please join my social network on %s"
msgstr "Per favor, uneix-te a la meva xarxa social en %s"
msgid ""
"To accept this invitation, please visit and register at %s or any other "
"public Friendica website."
msgstr "Per acceptar aquesta invitació, per favor visita i registra't a %s o en qualsevol altre pàgina web pública Friendica."
#: ../../mod/invite.php:103
msgid "To accept this invitation, please visit:"
msgstr "Per acceptar aquesta invitació, si us plau, visiti:"
#, 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 "Tots els llocs Friendica estàn interconnectats per crear una web social amb privacitat millorada, controlada i propietat dels seus membres. També poden connectar amb moltes xarxes socials tradicionals. Consulteu %s per a una llista de llocs de Friendica alternatius en que pot inscriure's."
#: ../../mod/invite.php:104
#: ../../mod/invite.php:106
msgid ""
"Our apologies. This system is not currently configured to connect with other"
" public sites or invite members."
msgstr "Nostres disculpes. Aquest sistema no està configurat actualment per connectar amb altres llocs públics o convidar als membres."
#: ../../mod/invite.php:111
msgid "Send invitations"
msgstr "Enviant Invitacions"
#: ../../mod/invite.php:112
msgid "Enter email addresses, one per line:"
msgstr "Entri adreçes de correu, una per línia:"
#: ../../mod/invite.php:114
msgid ""
"You are cordially invited to join me and other close friends on Friendica - "
"and help us to create a better social web."
msgstr "Estàs cordialment convidat a ajuntarte a mi i altres amics propers en Friendica - i ajudar-nos a crear una millor web social."
#: ../../mod/invite.php:116
msgid "You will need to supply this invitation code: $invite_code"
msgstr "Vostè haurà de proporcionar aquest codi d'invitació: $invite_code"
#: ../../mod/invite.php:104
#: ../../mod/invite.php:116
msgid ""
"Once you have registered, please connect with me via my profile page at:"
msgstr "Un cop registrat, si us plau contactar amb mi a través de la meva pàgina de perfil a:"
#: ../../mod/invite.php:118
msgid ""
"For more information about the Friendica project and why we feel it is "
"important, please visit http://friendica.com"
msgstr "Per a més informació sobre el projecte Friendica i perque creiem que això es important, per favor, visita http://friendica.com"
#: ../../mod/dfrn_confirm.php:119
msgid ""
"This may occasionally happen if contact was requested by both persons and it"
" has already been approved."
msgstr "Això pot ocorre ocasionalment si el contacte fa una petició per ambdues persones i ja han estat aprovades."
#: ../../mod/dfrn_confirm.php:239
#: ../../mod/dfrn_confirm.php:237
msgid "Response from remote site was not understood."
msgstr "La resposta des del lloc remot no s'entenia."
#: ../../mod/dfrn_confirm.php:248
#: ../../mod/dfrn_confirm.php:246
msgid "Unexpected response from remote site: "
msgstr "Resposta inesperada de lloc remot:"
#: ../../mod/dfrn_confirm.php:256
#: ../../mod/dfrn_confirm.php:254
msgid "Confirmation completed successfully."
msgstr "La confirmació s'ha completat correctament."
#: ../../mod/dfrn_confirm.php:258 ../../mod/dfrn_confirm.php:272
#: ../../mod/dfrn_confirm.php:279
#: ../../mod/dfrn_confirm.php:256 ../../mod/dfrn_confirm.php:270
#: ../../mod/dfrn_confirm.php:277
msgid "Remote site reported: "
msgstr "El lloc remot informa:"
#: ../../mod/dfrn_confirm.php:270
#: ../../mod/dfrn_confirm.php:268
msgid "Temporary failure. Please wait and try again."
msgstr "Fallada temporal. Si us plau, espereu i torneu a intentar."
#: ../../mod/dfrn_confirm.php:277
#: ../../mod/dfrn_confirm.php:275
msgid "Introduction failed or was revoked."
msgstr "La presentació va fallar o va ser revocada."
#: ../../mod/dfrn_confirm.php:422
#: ../../mod/dfrn_confirm.php:420
msgid "Unable to set contact photo."
msgstr "No es pot canviar la foto de contacte."
#: ../../mod/dfrn_confirm.php:474 ../../include/diaspora.php:495
#: ../../include/conversation.php:101
#: ../../mod/dfrn_confirm.php:477 ../../include/diaspora.php:608
#: ../../include/conversation.php:171
#, php-format
msgid "%1$s is now friends with %2$s"
msgstr "%1$s és ara amic amb %2$s"
#: ../../mod/dfrn_confirm.php:544
#: ../../mod/dfrn_confirm.php:562
#, php-format
msgid "No user record found for '%s' "
msgstr "No es troben registres d'usuari per a '%s'"
#: ../../mod/dfrn_confirm.php:554
#: ../../mod/dfrn_confirm.php:572
msgid "Our site encryption key is apparently messed up."
msgstr "La nostra clau de xifrat del lloc pel que sembla en mal estat."
#: ../../mod/dfrn_confirm.php:565
#: ../../mod/dfrn_confirm.php:583
msgid "Empty site URL was provided or URL could not be decrypted by us."
msgstr "Es va proporcionar una URL del lloc buida o la URL no va poder ser desxifrada per nosaltres."
#: ../../mod/dfrn_confirm.php:586
#: ../../mod/dfrn_confirm.php:604
msgid "Contact record was not found for you on our site."
msgstr "No s'han trobat registres del contacte al nostre lloc."
#: ../../mod/dfrn_confirm.php:600
#: ../../mod/dfrn_confirm.php:618
#, php-format
msgid "Site public key not available in contact record for URL %s."
msgstr "la clau pública del lloc no disponible en les dades del contacte per URL %s."
#: ../../mod/dfrn_confirm.php:620
#: ../../mod/dfrn_confirm.php:638
msgid ""
"The ID provided by your system is a duplicate on our system. It should work "
"if you try again."
msgstr "La ID proporcionada pel seu sistema és un duplicat en el nostre sistema. Hauria de treballar si intenta de nou."
#: ../../mod/dfrn_confirm.php:631
#: ../../mod/dfrn_confirm.php:649
msgid "Unable to set your contact credentials on our system."
msgstr "No es pot canviar les seves credencials de contacte en el nostre sistema."
#: ../../mod/dfrn_confirm.php:694
#: ../../mod/dfrn_confirm.php:716
msgid "Unable to update your contact profile details on our system"
msgstr "No es pot actualitzar els detalls del seu perfil de contacte en el nostre sistema"
#: ../../mod/dfrn_confirm.php:724
#: ../../mod/dfrn_confirm.php:750
#, php-format
msgid "Connection accepted at %s"
msgstr "Connexió acceptada en %s"
#: ../../addon/facebook/facebook.php:338
#: ../../mod/dfrn_confirm.php:799
#, php-format
msgid "%1$s has joined %2$s"
msgstr "%1$s s'ha unit a %2$s"
#: ../../addon/fromgplus/fromgplus.php:29
msgid "Google+ Import Settings"
msgstr "Ajustos Google+ Import"
#: ../../addon/fromgplus/fromgplus.php:32
msgid "Enable Google+ Import"
msgstr "Habilita Google+ Import"
#: ../../addon/fromgplus/fromgplus.php:35
msgid "Google Account ID"
msgstr "ID del compte Google"
#: ../../addon/fromgplus/fromgplus.php:55
msgid "Google+ Import Settings saved."
msgstr "Ajustos Google+ Import guardats."
#: ../../addon/facebook/facebook.php:523
msgid "Facebook disabled"
msgstr "Facebook deshabilitat"
#: ../../addon/facebook/facebook.php:343
#: ../../addon/facebook/facebook.php:528
msgid "Updating contacts"
msgstr "Actualitzant contactes"
#: ../../addon/facebook/facebook.php:352
#: ../../addon/facebook/facebook.php:551 ../../addon/fbpost/fbpost.php:192
msgid "Facebook API key is missing."
msgstr "La clau del API de Facebook s'ha perdut."
#: ../../addon/facebook/facebook.php:359
#: ../../addon/facebook/facebook.php:558
msgid "Facebook Connect"
msgstr "Facebook Connectat"
#: ../../addon/facebook/facebook.php:365
#: ../../addon/facebook/facebook.php:564
msgid "Install Facebook connector for this account."
msgstr "Instal·lar el connector de Facebook per aquest compte."
#: ../../addon/facebook/facebook.php:372
#: ../../addon/facebook/facebook.php:571
msgid "Remove Facebook connector"
msgstr "Eliminar el connector de Faceboook"
#: ../../addon/facebook/facebook.php:377
#: ../../addon/facebook/facebook.php:576 ../../addon/fbpost/fbpost.php:217
msgid ""
"Re-authenticate [This is necessary whenever your Facebook password is "
"changed.]"
msgstr "Re-autentificar [Això és necessari cada vegada que la contrasenya de Facebook canvia.]"
#: ../../addon/facebook/facebook.php:384
#: ../../addon/facebook/facebook.php:583 ../../addon/fbpost/fbpost.php:224
msgid "Post to Facebook by default"
msgstr "Enviar a Facebook per defecte"
#: ../../addon/facebook/facebook.php:388
#: ../../addon/facebook/facebook.php:589
msgid ""
"Facebook friend linking has been disabled on this site. The following "
"settings will have no effect."
msgstr "La vinculació amb amics de Facebook s'ha deshabilitat en aquest lloc. Els ajustos que facis no faran efecte."
#: ../../addon/facebook/facebook.php:593
msgid ""
"Facebook friend linking has been disabled on this site. If you disable it, "
"you will be unable to re-enable it."
msgstr "La vinculació amb amics de Facebook s'ha deshabilitat en aquest lloc. Si esta deshabilitat, no es pot utilitzar."
#: ../../addon/facebook/facebook.php:596
msgid "Link all your Facebook friends and conversations on this website"
msgstr "Enllaça tots els teus amics i les converses de Facebook en aquest lloc web"
#: ../../addon/facebook/facebook.php:390
#: ../../addon/facebook/facebook.php:598
msgid ""
"Facebook conversations consist of your <em>profile wall</em> and your friend"
" <em>stream</em>."
msgstr "Les converses de Facebook consisteixen en el <em>perfil del mur</em> i en el<em> stream </em> del seu amic."
msgstr "Les converses de Facebook consisteixen en el <em>perfil del mur</em> i en el<em> flux </em> del seu amic."
#: ../../addon/facebook/facebook.php:391
#: ../../addon/facebook/facebook.php:599
msgid "On this website, your Facebook friend stream is only visible to you."
msgstr "En aquesta pàgina web, el stream del seu amic a Facebook només és visible per a vostè."
msgstr "En aquesta pàgina web, el flux del seu amic a Facebook només és visible per a vostè."
#: ../../addon/facebook/facebook.php:392
#: ../../addon/facebook/facebook.php:600
msgid ""
"The following settings determine the privacy of your Facebook profile wall "
"on this website."
msgstr "Les següents opcions determinen la privacitat del mur del seu perfil de Facebook en aquest lloc web."
#: ../../addon/facebook/facebook.php:396
#: ../../addon/facebook/facebook.php:604
msgid ""
"On this website your Facebook profile wall conversations will only be "
"visible to you"
msgstr "En aquesta pàgina web les seves converses al mur del perfil de Facebook només seran visible per a vostè"
#: ../../addon/facebook/facebook.php:401
#: ../../addon/facebook/facebook.php:609
msgid "Do not import your Facebook profile wall conversations"
msgstr "No importi les seves converses del mur del perfil de Facebook"
#: ../../addon/facebook/facebook.php:403
#: ../../addon/facebook/facebook.php:611
msgid ""
"If you choose to link conversations and leave both of these boxes unchecked,"
" your Facebook profile wall will be merged with your profile wall on this "
@ -3879,45 +4844,186 @@ msgid ""
"who may see the conversations."
msgstr "Si opta per vincular les converses i deixar ambdues caselles sense marcar, el mur del seu perfil de Facebook es fusionarà amb el mur del seu perfil en aquest lloc web i la seva configuració de privacitat en aquest website serà utilitzada per determinar qui pot veure les converses."
#: ../../addon/facebook/facebook.php:408
#: ../../addon/facebook/facebook.php:616
msgid "Comma separated applications to ignore"
msgstr "Separats per comes les aplicacions a ignorar"
#: ../../addon/facebook/facebook.php:476
#: ../../include/contact_selectors.php:81
msgid "Facebook"
msgstr "Facebook"
#: ../../addon/facebook/facebook.php:700
msgid "Problems with Facebook Real-Time Updates"
msgstr "Problemes amb Actualitzacions en Temps Real a Facebook"
#: ../../addon/facebook/facebook.php:477
#: ../../addon/facebook/facebook.php:729
msgid "Facebook Connector Settings"
msgstr "Ajustos del Connector de Facebook"
#: ../../addon/facebook/facebook.php:491
#: ../../addon/facebook/facebook.php:744 ../../addon/fbpost/fbpost.php:255
msgid "Facebook API Key"
msgstr "Facebook API Key"
#: ../../addon/facebook/facebook.php:754 ../../addon/fbpost/fbpost.php:262
msgid ""
"Error: it appears that you have specified the App-ID and -Secret in your "
".htconfig.php file. As long as they are specified there, they cannot be set "
"using this form.<br><br>"
msgstr "Error: Apareix que has especificat el App-ID i el Secret en el arxiu .htconfig.php. Per estar especificat allà, no pot ser canviat utilitzant aquest formulari.<br><br>"
#: ../../addon/facebook/facebook.php:759
msgid ""
"Error: the given API Key seems to be incorrect (the application access token"
" could not be retrieved)."
msgstr "Error: la API Key facilitada sembla incorrecta (no es va poder recuperar el token d'accés de l'aplicatiu)."
#: ../../addon/facebook/facebook.php:761
msgid "The given API Key seems to work correctly."
msgstr "La API Key facilitada sembla treballar correctament."
#: ../../addon/facebook/facebook.php:763
msgid ""
"The correctness of the API Key could not be detected. Something strange's "
"going on."
msgstr "La correcció de la API key no pot ser detectada. Quelcom estrany ha succeït."
#: ../../addon/facebook/facebook.php:766 ../../addon/fbpost/fbpost.php:264
msgid "App-ID / API-Key"
msgstr "App-ID / API-Key"
#: ../../addon/facebook/facebook.php:767 ../../addon/fbpost/fbpost.php:265
msgid "Application secret"
msgstr "Application secret"
#: ../../addon/facebook/facebook.php:768
#, php-format
msgid "Polling Interval in minutes (minimum %1$s minutes)"
msgstr "Interval entre sondejos en minuts (mínim %1s minuts)"
#: ../../addon/facebook/facebook.php:769
msgid ""
"Synchronize comments (no comments on Facebook are missed, at the cost of "
"increased system load)"
msgstr "Sincronitzar els comentaris (els comentaris a Facebook es perden, a costa de la major càrrega del sistema)"
#: ../../addon/facebook/facebook.php:773
msgid "Real-Time Updates"
msgstr "Actualitzacions en Temps Real"
#: ../../addon/facebook/facebook.php:777
msgid "Real-Time Updates are activated."
msgstr "Actualitzacions en Temps Real està activat."
#: ../../addon/facebook/facebook.php:778
msgid "Deactivate Real-Time Updates"
msgstr "Actualitzacions en Temps Real Desactivat"
#: ../../addon/facebook/facebook.php:780
msgid "Real-Time Updates not activated."
msgstr "Actualitzacions en Temps Real no activat."
#: ../../addon/facebook/facebook.php:780
msgid "Activate Real-Time Updates"
msgstr "Actualitzacions en Temps Real Activat"
#: ../../addon/facebook/facebook.php:799 ../../addon/fbpost/fbpost.php:282
#: ../../addon/dav/friendica/layout.fnk.php:361
msgid "The new values have been saved."
msgstr "Els nous valors s'han guardat."
#: ../../addon/facebook/facebook.php:823 ../../addon/fbpost/fbpost.php:301
msgid "Post to Facebook"
msgstr "Enviament a Facebook"
#: ../../addon/facebook/facebook.php:582
#: ../../addon/facebook/facebook.php:921 ../../addon/fbpost/fbpost.php:399
msgid ""
"Post to Facebook cancelled because of multi-network access permission "
"conflict."
msgstr "Enviament a Facebook cancel·lat perque hi ha un conflicte de permisos d'accés multi-xarxa."
#: ../../addon/facebook/facebook.php:651
msgid "Image: "
msgstr "Imatge:"
#: ../../addon/facebook/facebook.php:728
#: ../../addon/facebook/facebook.php:1149 ../../addon/fbpost/fbpost.php:610
msgid "View on Friendica"
msgstr "Vist en Friendica"
#: ../../addon/facebook/facebook.php:752
#: ../../addon/facebook/facebook.php:1182 ../../addon/fbpost/fbpost.php:643
msgid "Facebook post failed. Queued for retry."
msgstr "Enviament a Facebook fracassat. En cua per a reintent."
#: ../../addon/facebook/facebook.php:877 ../../addon/facebook/facebook.php:886
#: ../../include/bb2diaspora.php:102
msgid "link"
msgstr "enllaç"
#: ../../addon/facebook/facebook.php:1222 ../../addon/fbpost/fbpost.php:683
msgid "Your Facebook connection became invalid. Please Re-authenticate."
msgstr "La seva connexió a Facebook es va convertir en no vàlida. Per favor, torni a autenticar-se"
#: ../../addon/facebook/facebook.php:1223 ../../addon/fbpost/fbpost.php:684
msgid "Facebook connection became invalid"
msgstr "La seva connexió a Facebook es va convertir en no vàlida"
#: ../../addon/facebook/facebook.php:1224 ../../addon/fbpost/fbpost.php:685
#, php-format
msgid ""
"Hi %1$s,\n"
"\n"
"The connection between your accounts on %2$s and Facebook became invalid. This usually happens after you change your Facebook-password. To enable the connection again, you have to %3$sre-authenticate the Facebook-connector%4$s."
msgstr "Hi %1$s,\n\nLa connexió entre els teus comptes en %2$s i Facebook s'han tornat no vàlides. Això passa normalment quan canvies la contrasenya de Facebook. Per activar la conexió novament has de %3$sre-autenticar el connector de Facebook%4$s."
#: ../../addon/snautofollow/snautofollow.php:32
msgid "StatusNet AutoFollow settings updated."
msgstr "Ajustos de AutoSeguiment a StatusNet actualitzats."
#: ../../addon/snautofollow/snautofollow.php:56
msgid "StatusNet AutoFollow Settings"
msgstr "Ajustos de AutoSeguiment a StatusNet"
#: ../../addon/snautofollow/snautofollow.php:58
msgid "Automatically follow any StatusNet followers/mentioners"
msgstr "Segueix Automaticament qualsevol seguidor/mencionador de StatusNet"
#: ../../addon/bg/bg.php:51
msgid "Bg settings updated."
msgstr "Ajustos de Bg actualitzats."
#: ../../addon/bg/bg.php:82
msgid "Bg Settings"
msgstr "Ajustos de Bg"
#: ../../addon/bg/bg.php:84 ../../addon/numfriends/numfriends.php:79
msgid "How many contacts to display on profile sidebar"
msgstr "Quants contactes per mostrar a la barra lateral el perfil"
#: ../../addon/privacy_image_cache/privacy_image_cache.php:260
msgid "Lifetime of the cache (in hours)"
msgstr "Temps de vida de la caché (en hores)"
#: ../../addon/privacy_image_cache/privacy_image_cache.php:265
msgid "Cache Statistics"
msgstr "Estadístiques de la caché"
#: ../../addon/privacy_image_cache/privacy_image_cache.php:268
msgid "Number of items"
msgstr "Nombre d'elements"
#: ../../addon/privacy_image_cache/privacy_image_cache.php:270
msgid "Size of the cache"
msgstr "Mida de la caché"
#: ../../addon/privacy_image_cache/privacy_image_cache.php:272
msgid "Delete the whole cache"
msgstr "Esborra tota la cachè"
#: ../../addon/fbpost/fbpost.php:172
msgid "Facebook Post disabled"
msgstr ""
#: ../../addon/fbpost/fbpost.php:199
msgid "Facebook Post"
msgstr ""
#: ../../addon/fbpost/fbpost.php:205
msgid "Install Facebook Post connector for this account."
msgstr ""
#: ../../addon/fbpost/fbpost.php:212
msgid "Remove Facebook Post connector"
msgstr ""
#: ../../addon/fbpost/fbpost.php:240
msgid "Facebook Post Settings"
msgstr ""
#: ../../addon/widgets/widget_like.php:58
#, php-format
@ -3933,15 +5039,19 @@ msgid_plural "%d people don't like this"
msgstr[0] "%d persona no li agrada això"
msgstr[1] "%d persones no els agrada això"
#: ../../addon/widgets/widgets.php:55
#: ../../addon/widgets/widget_friendheader.php:40
msgid "Get added to this list!"
msgstr "S'afegeixen a aquesta llista!"
#: ../../addon/widgets/widgets.php:56
msgid "Generate new key"
msgstr "Generar nova clau"
#: ../../addon/widgets/widgets.php:58
#: ../../addon/widgets/widgets.php:59
msgid "Widgets key"
msgstr "Ginys clau"
#: ../../addon/widgets/widgets.php:60
#: ../../addon/widgets/widgets.php:61
msgid "Widgets available"
msgstr "Ginys disponibles"
@ -3949,6 +5059,153 @@ msgstr "Ginys disponibles"
msgid "Connect on Friendica!"
msgstr "Connectar en Friendica"
#: ../../addon/morepokes/morepokes.php:19
msgid "bitchslap"
msgstr ""
#: ../../addon/morepokes/morepokes.php:19
msgid "bitchslapped"
msgstr ""
#: ../../addon/morepokes/morepokes.php:20
msgid "shag"
msgstr ""
#: ../../addon/morepokes/morepokes.php:20
msgid "shagged"
msgstr ""
#: ../../addon/morepokes/morepokes.php:21
msgid "do something obscenely biological to"
msgstr ""
#: ../../addon/morepokes/morepokes.php:21
msgid "did something obscenely biological to"
msgstr ""
#: ../../addon/morepokes/morepokes.php:22
msgid "point out the poke feature to"
msgstr ""
#: ../../addon/morepokes/morepokes.php:22
msgid "pointed out the poke feature to"
msgstr ""
#: ../../addon/morepokes/morepokes.php:23
msgid "declare undying love for"
msgstr ""
#: ../../addon/morepokes/morepokes.php:23
msgid "declared undying love for"
msgstr ""
#: ../../addon/morepokes/morepokes.php:24
msgid "patent"
msgstr ""
#: ../../addon/morepokes/morepokes.php:24
msgid "patented"
msgstr ""
#: ../../addon/morepokes/morepokes.php:25
msgid "stroke beard"
msgstr ""
#: ../../addon/morepokes/morepokes.php:25
msgid "stroked their beard at"
msgstr ""
#: ../../addon/morepokes/morepokes.php:26
msgid ""
"bemoan the declining standards of modern secondary and tertiary education to"
msgstr ""
#: ../../addon/morepokes/morepokes.php:26
msgid ""
"bemoans the declining standards of modern secondary and tertiary education "
"to"
msgstr ""
#: ../../addon/morepokes/morepokes.php:27
msgid "hug"
msgstr ""
#: ../../addon/morepokes/morepokes.php:27
msgid "hugged"
msgstr ""
#: ../../addon/morepokes/morepokes.php:28
msgid "kiss"
msgstr ""
#: ../../addon/morepokes/morepokes.php:28
msgid "kissed"
msgstr ""
#: ../../addon/morepokes/morepokes.php:29
msgid "raise eyebrows at"
msgstr ""
#: ../../addon/morepokes/morepokes.php:29
msgid "raised their eyebrows at"
msgstr ""
#: ../../addon/morepokes/morepokes.php:30
msgid "insult"
msgstr ""
#: ../../addon/morepokes/morepokes.php:30
msgid "insulted"
msgstr ""
#: ../../addon/morepokes/morepokes.php:31
msgid "praise"
msgstr ""
#: ../../addon/morepokes/morepokes.php:31
msgid "praised"
msgstr ""
#: ../../addon/morepokes/morepokes.php:32
msgid "be dubious of"
msgstr ""
#: ../../addon/morepokes/morepokes.php:32
msgid "was dubious of"
msgstr ""
#: ../../addon/morepokes/morepokes.php:33
msgid "eat"
msgstr ""
#: ../../addon/morepokes/morepokes.php:33
msgid "ate"
msgstr ""
#: ../../addon/morepokes/morepokes.php:34
msgid "giggle and fawn at"
msgstr ""
#: ../../addon/morepokes/morepokes.php:34
msgid "giggled and fawned at"
msgstr ""
#: ../../addon/morepokes/morepokes.php:35
msgid "doubt"
msgstr ""
#: ../../addon/morepokes/morepokes.php:35
msgid "doubted"
msgstr ""
#: ../../addon/morepokes/morepokes.php:36
msgid "glare"
msgstr ""
#: ../../addon/morepokes/morepokes.php:36
msgid "glared at"
msgstr ""
#: ../../addon/yourls/yourls.php:55
msgid "YourLS Settings"
msgstr "La Teva Configuració de LS"
@ -3973,60 +5230,107 @@ msgstr "Emprar SSL"
msgid "yourls Settings saved."
msgstr "Guardar la seva configuració."
#: ../../addon/ljpost/ljpost.php:38
#: ../../addon/ljpost/ljpost.php:39
msgid "Post to LiveJournal"
msgstr "Missatge a Livejournal"
#: ../../addon/ljpost/ljpost.php:69
#: ../../addon/ljpost/ljpost.php:70
msgid "LiveJournal Post Settings"
msgstr "Configuració d'enviaments a Livejournal"
#: ../../addon/ljpost/ljpost.php:71
#: ../../addon/ljpost/ljpost.php:72
msgid "Enable LiveJournal Post Plugin"
msgstr "Habilitat el plugin d'enviaments a Livejournal"
#: ../../addon/ljpost/ljpost.php:76
#: ../../addon/ljpost/ljpost.php:77
msgid "LiveJournal username"
msgstr "Nom d'usuari a Livejournal"
#: ../../addon/ljpost/ljpost.php:81
#: ../../addon/ljpost/ljpost.php:82
msgid "LiveJournal password"
msgstr "Contrasenya a Livejournal"
#: ../../addon/ljpost/ljpost.php:86
#: ../../addon/ljpost/ljpost.php:87
msgid "Post to LiveJournal by default"
msgstr "Enviar per defecte a Livejournal"
#: ../../addon/nsfw/nsfw.php:47
msgid "\"Not Safe For Work\" Settings"
msgstr "Configuració de \"Not Safe For Work\""
#: ../../addon/nsfw/nsfw.php:78
msgid "Not Safe For Work (General Purpose Content Filter) settings"
msgstr "Ajustos, Not Safe For Work (Filtre de Contingut de Propòsit General)"
#: ../../addon/nsfw/nsfw.php:50
msgid "Enable NSFW filter"
msgstr "Habilitar el filtre NSFW"
#: ../../addon/nsfw/nsfw.php:80
msgid ""
"This plugin looks in posts for the words/text you specify below, and "
"collapses any content containing those keywords so it is not displayed at "
"inappropriate times, such as sexual innuendo that may be improper in a work "
"setting. It is polite and recommended to tag any content containing nudity "
"with #NSFW. This filter can also match any other word/text you specify, and"
" can thereby be used as a general purpose content filter."
msgstr "Aquest plugin es veu en enviaments amb les paraules/text que s'especifiquen a continuació , i amagarà qualsevol contingut que contingui les paraules clau de manera que no apareguin en moments inapropiats, com ara insinuacions sexuals que poden ser inadequades en un entorn de treball. És de bona educació i es recomana etiquetar qualsevol contingut que contingui nus amb #NSFW. Aquest filtre també es pot fer coincidir amb qualsevol paraula/text que especifiqueu, i per tant pot ser utilitzat com un filtre general de contingut."
#: ../../addon/nsfw/nsfw.php:53
msgid "Comma separated words to treat as NSFW"
msgstr "Tractar com NSFW les paraules separades per comes "
#: ../../addon/nsfw/nsfw.php:81
msgid "Enable Content filter"
msgstr "Activat el filtre de Contingut"
#: ../../addon/nsfw/nsfw.php:58
#: ../../addon/nsfw/nsfw.php:84
msgid "Comma separated list of keywords to hide"
msgstr "Llista separada per comes de paraules clau per ocultar"
#: ../../addon/nsfw/nsfw.php:89
msgid "Use /expression/ to provide regular expressions"
msgstr "Emprar /expressió/ per a proporcionar expressions regulars"
#: ../../addon/nsfw/nsfw.php:74
#: ../../addon/nsfw/nsfw.php:105
msgid "NSFW Settings saved."
msgstr "Configuració NSFW guardada."
#: ../../addon/nsfw/nsfw.php:120
#: ../../addon/nsfw/nsfw.php:157
#, php-format
msgid "%s - Click to open/close"
msgstr "%s - Clicar per obrir/tancar"
#: ../../addon/page/page.php:61 ../../addon/page/page.php:91
#: ../../addon/forumlist/forumlist.php:54
msgid "Forums"
msgstr "Forums"
#: ../../addon/page/page.php:129 ../../addon/forumlist/forumlist.php:88
msgid "Forums:"
msgstr "Fòrums:"
#: ../../addon/page/page.php:165
msgid "Page settings updated."
msgstr "Actualitzats els ajustos de pàgina."
#: ../../addon/page/page.php:194
msgid "Page Settings"
msgstr "Ajustos de pàgina"
#: ../../addon/page/page.php:196 ../../addon/forumlist/forumlist.php:155
msgid "How many forums to display on sidebar without paging"
msgstr "Quants fòrums per mostrar a la barra lateral per pàgina"
#: ../../addon/page/page.php:199
msgid "Randomise Page/Forum list"
msgstr "Aleatoritza la llista de Pàgina/Fòrum"
#: ../../addon/page/page.php:202
msgid "Show pages/forums on profile page"
msgstr "Mostra pàgines/fòrums a la pàgina de perfil"
#: ../../addon/planets/planets.php:150
msgid "Planets Settings"
msgstr "Ajustos de Planet"
#: ../../addon/planets/planets.php:152
msgid "Enable Planets Plugin"
msgstr "Activa Plugin de Planet"
#: ../../addon/communityhome/communityhome.php:28
#: ../../addon/communityhome/communityhome.php:34
#: ../../addon/communityhome/twillingham/communityhome.php:28
#: ../../addon/communityhome/twillingham/communityhome.php:34
#: ../../include/nav.php:62 ../../boot.php:710
#: ../../include/nav.php:64 ../../boot.php:912
msgid "Login"
msgstr "Identifica't"
@ -4036,7 +5340,8 @@ msgid "OpenID"
msgstr "OpenID"
#: ../../addon/communityhome/communityhome.php:38
msgid "Last users"
#: ../../addon/communityhome/twillingham/communityhome.php:38
msgid "Latest users"
msgstr "Últims usuaris"
#: ../../addon/communityhome/communityhome.php:81
@ -4045,21 +5350,560 @@ msgid "Most active users"
msgstr "Usuaris més actius"
#: ../../addon/communityhome/communityhome.php:98
msgid "Last photos"
msgstr "Últimes fotos"
msgid "Latest photos"
msgstr "Darreres fotos"
#: ../../addon/communityhome/communityhome.php:133
msgid "Last likes"
msgstr "Últims \"m'agrada\""
msgid "Latest likes"
msgstr "Darrers agrada"
#: ../../addon/communityhome/communityhome.php:155 ../../include/text.php:1224
#: ../../include/conversation.php:45 ../../include/conversation.php:118
#: ../../addon/communityhome/communityhome.php:155
#: ../../view/theme/diabook/theme.php:562 ../../include/text.php:1437
#: ../../include/conversation.php:117 ../../include/conversation.php:245
msgid "event"
msgstr "esdeveniment"
#: ../../addon/communityhome/twillingham/communityhome.php:38
msgid "Latest users"
msgstr "Últims usuaris"
#: ../../addon/dav/common/wdcal_backend.inc.php:92
#: ../../addon/dav/common/wdcal_backend.inc.php:166
#: ../../addon/dav/common/wdcal_backend.inc.php:178
#: ../../addon/dav/common/wdcal_backend.inc.php:206
#: ../../addon/dav/common/wdcal_backend.inc.php:214
#: ../../addon/dav/common/wdcal_backend.inc.php:229
msgid "No access"
msgstr "Inaccessible"
#: ../../addon/dav/common/wdcal_edit.inc.php:30
#: ../../addon/dav/common/wdcal_edit.inc.php:738
msgid "Could not open component for editing"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:140
#: ../../addon/dav/friendica/layout.fnk.php:143
#: ../../addon/dav/friendica/layout.fnk.php:422
msgid "Go back to the calendar"
msgstr "Tornar al calendari"
#: ../../addon/dav/common/wdcal_edit.inc.php:144
msgid "Event data"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:146
#: ../../addon/dav/friendica/main.php:239
msgid "Calendar"
msgstr "Calendari"
#: ../../addon/dav/common/wdcal_edit.inc.php:163
msgid "Special color"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:169
msgid "Subject"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:173
msgid "Starts"
msgstr "Inicia"
#: ../../addon/dav/common/wdcal_edit.inc.php:178
msgid "Ends"
msgstr "Finalitza"
#: ../../addon/dav/common/wdcal_edit.inc.php:185
msgid "Description"
msgstr "Descripció"
#: ../../addon/dav/common/wdcal_edit.inc.php:188
msgid "Recurrence"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:190
msgid "Frequency"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:194
#: ../../include/contact_selectors.php:59
msgid "Daily"
msgstr "Diari"
#: ../../addon/dav/common/wdcal_edit.inc.php:197
#: ../../include/contact_selectors.php:60
msgid "Weekly"
msgstr "Setmanal"
#: ../../addon/dav/common/wdcal_edit.inc.php:200
#: ../../include/contact_selectors.php:61
msgid "Monthly"
msgstr "Mensual"
#: ../../addon/dav/common/wdcal_edit.inc.php:203
msgid "Yearly"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:214
#: ../../include/datetime.php:288
msgid "days"
msgstr "dies"
#: ../../addon/dav/common/wdcal_edit.inc.php:215
#: ../../include/datetime.php:287
msgid "weeks"
msgstr "setmanes"
#: ../../addon/dav/common/wdcal_edit.inc.php:216
#: ../../include/datetime.php:286
msgid "months"
msgstr "mesos"
#: ../../addon/dav/common/wdcal_edit.inc.php:217
#: ../../include/datetime.php:285
msgid "years"
msgstr "anys"
#: ../../addon/dav/common/wdcal_edit.inc.php:218
msgid "Interval"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:218
msgid "All %select% %time%"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:222
#: ../../addon/dav/common/wdcal_edit.inc.php:260
#: ../../addon/dav/common/wdcal_edit.inc.php:481
msgid "Days"
msgstr "Dies"
#: ../../addon/dav/common/wdcal_edit.inc.php:231
#: ../../addon/dav/common/wdcal_edit.inc.php:254
#: ../../addon/dav/common/wdcal_edit.inc.php:270
#: ../../addon/dav/common/wdcal_edit.inc.php:293
#: ../../addon/dav/common/wdcal_edit.inc.php:305 ../../include/text.php:917
msgid "Sunday"
msgstr "Diumenge"
#: ../../addon/dav/common/wdcal_edit.inc.php:235
#: ../../addon/dav/common/wdcal_edit.inc.php:274
#: ../../addon/dav/common/wdcal_edit.inc.php:308 ../../include/text.php:917
msgid "Monday"
msgstr "Dilluns"
#: ../../addon/dav/common/wdcal_edit.inc.php:238
#: ../../addon/dav/common/wdcal_edit.inc.php:277 ../../include/text.php:917
msgid "Tuesday"
msgstr "Dimarts"
#: ../../addon/dav/common/wdcal_edit.inc.php:241
#: ../../addon/dav/common/wdcal_edit.inc.php:280 ../../include/text.php:917
msgid "Wednesday"
msgstr "Dimecres"
#: ../../addon/dav/common/wdcal_edit.inc.php:244
#: ../../addon/dav/common/wdcal_edit.inc.php:283 ../../include/text.php:917
msgid "Thursday"
msgstr "Dijous"
#: ../../addon/dav/common/wdcal_edit.inc.php:247
#: ../../addon/dav/common/wdcal_edit.inc.php:286 ../../include/text.php:917
msgid "Friday"
msgstr "Divendres"
#: ../../addon/dav/common/wdcal_edit.inc.php:250
#: ../../addon/dav/common/wdcal_edit.inc.php:289 ../../include/text.php:917
msgid "Saturday"
msgstr "Dissabte"
#: ../../addon/dav/common/wdcal_edit.inc.php:297
msgid "First day of week:"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:350
#: ../../addon/dav/common/wdcal_edit.inc.php:373
msgid "Day of month"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:354
msgid "#num#th of each month"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:357
msgid "#num#th-last of each month"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:360
msgid "#num#th #wkday# of each month"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:363
msgid "#num#th-last #wkday# of each month"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:372
#: ../../addon/dav/friendica/layout.fnk.php:255
msgid "Month"
msgstr "Mes"
#: ../../addon/dav/common/wdcal_edit.inc.php:377
msgid "#num#th of the given month"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:380
msgid "#num#th-last of the given month"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:383
msgid "#num#th #wkday# of the given month"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:386
msgid "#num#th-last #wkday# of the given month"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:413
msgid "Repeat until"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:417
msgid "Infinite"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:420
msgid "Until the following date"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:423
msgid "Number of times"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:429
msgid "Exceptions"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:432
msgid "none"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:449
msgid "Notification"
msgstr "Notificació"
#: ../../addon/dav/common/wdcal_edit.inc.php:466
msgid "Notify by"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:469
msgid "E-Mail"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:470
msgid "On Friendica / Display"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:474
msgid "Time"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:478
msgid "Hours"
msgstr "Hores"
#: ../../addon/dav/common/wdcal_edit.inc.php:479
msgid "Minutes"
msgstr "Minuts"
#: ../../addon/dav/common/wdcal_edit.inc.php:480
msgid "Seconds"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:482
msgid "Weeks"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:485
msgid "before the"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:486
msgid "start of the event"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:487
msgid "end of the event"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:492
msgid "Add a notification"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:687
msgid "The event #name# will start at #date"
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:696
msgid "#name# is about to begin."
msgstr ""
#: ../../addon/dav/common/wdcal_edit.inc.php:769
msgid "Saved"
msgstr ""
#: ../../addon/dav/common/wdcal_configuration.php:148
msgid "U.S. Time Format (mm/dd/YYYY)"
msgstr "Data en format U.S. (mm/dd/YYY)"
#: ../../addon/dav/common/wdcal_configuration.php:243
msgid "German Time Format (dd.mm.YYYY)"
msgstr "Data en format Alemany (dd.mm.YYYY)"
#: ../../addon/dav/common/dav_caldav_backend_private.inc.php:39
msgid "Private Events"
msgstr ""
#: ../../addon/dav/common/dav_carddav_backend_private.inc.php:46
msgid "Private Addressbooks"
msgstr ""
#: ../../addon/dav/friendica/dav_caldav_backend_virtual_friendica.inc.php:36
msgid "Friendica-Native events"
msgstr ""
#: ../../addon/dav/friendica/dav_carddav_backend_virtual_friendica.inc.php:36
#: ../../addon/dav/friendica/dav_carddav_backend_virtual_friendica.inc.php:59
msgid "Friendica-Contacts"
msgstr "Friendica-Contactes"
#: ../../addon/dav/friendica/dav_carddav_backend_virtual_friendica.inc.php:60
msgid "Your Friendica-Contacts"
msgstr "Els teus Contactes a Friendica"
#: ../../addon/dav/friendica/layout.fnk.php:99
#: ../../addon/dav/friendica/layout.fnk.php:136
msgid ""
"Something went wrong when trying to import the file. Sorry. Maybe some "
"events were imported anyway."
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:131
msgid "Something went wrong when trying to import the file. Sorry."
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:134
msgid "The ICS-File has been imported."
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:138
msgid "No file was uploaded."
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:147
msgid "Import a ICS-file"
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:150
msgid "ICS-File"
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:151
msgid "Overwrite all #num# existing events"
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:228
msgid "New event"
msgstr "Nou esdeveniment"
#: ../../addon/dav/friendica/layout.fnk.php:232
msgid "Today"
msgstr "Avui"
#: ../../addon/dav/friendica/layout.fnk.php:241
msgid "Day"
msgstr "Dia"
#: ../../addon/dav/friendica/layout.fnk.php:248
msgid "Week"
msgstr "Setmana"
#: ../../addon/dav/friendica/layout.fnk.php:260
msgid "Reload"
msgstr "Recarregar"
#: ../../addon/dav/friendica/layout.fnk.php:271
msgid "Date"
msgstr "Data"
#: ../../addon/dav/friendica/layout.fnk.php:313
msgid "Error"
msgstr "Error"
#: ../../addon/dav/friendica/layout.fnk.php:380
msgid "The calendar has been updated."
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:393
msgid "The new calendar has been created."
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:417
msgid "The calendar has been deleted."
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:424
msgid "Calendar Settings"
msgstr "Ajustos de Calendari"
#: ../../addon/dav/friendica/layout.fnk.php:430
msgid "Date format"
msgstr "Format de la data"
#: ../../addon/dav/friendica/layout.fnk.php:439
msgid "Time zone"
msgstr "Zona horària"
#: ../../addon/dav/friendica/layout.fnk.php:445
msgid "Calendars"
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:487
msgid "Create a new calendar"
msgstr ""
#: ../../addon/dav/friendica/layout.fnk.php:496
msgid "Limitations"
msgstr "Limitacions"
#: ../../addon/dav/friendica/layout.fnk.php:500
#: ../../addon/libravatar/libravatar.php:82
msgid "Warning"
msgstr "Avís"
#: ../../addon/dav/friendica/layout.fnk.php:504
msgid "Synchronization (iPhone, Thunderbird Lightning, Android, ...)"
msgstr "Syncronització (iPhone, Thunderbird Lightning, Android, ...)"
#: ../../addon/dav/friendica/layout.fnk.php:511
msgid "Synchronizing this calendar with the iPhone"
msgstr "Sncronitzant aquest calendari amb el iPhone"
#: ../../addon/dav/friendica/layout.fnk.php:522
msgid "Synchronizing your Friendica-Contacts with the iPhone"
msgstr "Sincronitzant els teus contactes a Friendica amb el iPhone"
#: ../../addon/dav/friendica/main.php:202
msgid ""
"The current version of this plugin has not been set up correctly. Please "
"contact the system administrator of your installation of friendica to fix "
"this."
msgstr ""
#: ../../addon/dav/friendica/main.php:242
msgid "Extended calendar with CalDAV-support"
msgstr "Calendari ampliat amb suport CalDAV"
#: ../../addon/dav/friendica/main.php:279
#: ../../addon/dav/friendica/main.php:280 ../../include/delivery.php:464
#: ../../include/enotify.php:28 ../../include/notifier.php:710
msgid "noreply"
msgstr "no contestar"
#: ../../addon/dav/friendica/main.php:282
msgid "Notification: "
msgstr ""
#: ../../addon/dav/friendica/main.php:309
msgid "The database tables have been installed."
msgstr "Les taules de la base de dades han estat instal·lades."
#: ../../addon/dav/friendica/main.php:310
msgid "An error occurred during the installation."
msgstr "Ha ocorregut un error durant la instal·lació."
#: ../../addon/dav/friendica/main.php:316
msgid "The database tables have been updated."
msgstr ""
#: ../../addon/dav/friendica/main.php:317
msgid "An error occurred during the update."
msgstr ""
#: ../../addon/dav/friendica/main.php:333
msgid "No system-wide settings yet."
msgstr "No tens enllestits els ajustos del sistema."
#: ../../addon/dav/friendica/main.php:336
msgid "Database status"
msgstr "Estat de la base de dades"
#: ../../addon/dav/friendica/main.php:339
msgid "Installed"
msgstr "Instal·lat"
#: ../../addon/dav/friendica/main.php:343
msgid "Upgrade needed"
msgstr "Necessites actualitzar"
#: ../../addon/dav/friendica/main.php:343
msgid ""
"Please back up all calendar data (the tables beginning with dav_*) before "
"proceeding. While all calendar events <i>should</i> be converted to the new "
"database structure, it's always safe to have a backup. Below, you can have a"
" look at the database-queries that will be made when pressing the "
"'update'-button."
msgstr ""
#: ../../addon/dav/friendica/main.php:343
msgid "Upgrade"
msgstr "Actualització"
#: ../../addon/dav/friendica/main.php:346
msgid "Not installed"
msgstr "No instal·lat"
#: ../../addon/dav/friendica/main.php:346
msgid "Install"
msgstr "Instal·lat"
#: ../../addon/dav/friendica/main.php:350
msgid "Unknown"
msgstr ""
#: ../../addon/dav/friendica/main.php:350
msgid ""
"Something really went wrong. I cannot recover from this state automatically,"
" sorry. Please go to the database backend, back up the data, and delete all "
"tables beginning with 'dav_' manually. Afterwards, this installation routine"
" should be able to reinitialize the tables automatically."
msgstr ""
#: ../../addon/dav/friendica/main.php:355
msgid "Troubleshooting"
msgstr "Solució de problemes"
#: ../../addon/dav/friendica/main.php:356
msgid "Manual creation of the database tables:"
msgstr "Creació manual de les taules de la base de dades:"
#: ../../addon/dav/friendica/main.php:357
msgid "Show SQL-statements"
msgstr "Mostrar instruccions de SQL "
#: ../../addon/dav/friendica/calendar.friendica.fnk.php:206
msgid "Private Calendar"
msgstr "Calendari Privat"
#: ../../addon/dav/friendica/calendar.friendica.fnk.php:207
msgid "Friendica Events: Mine"
msgstr "Esdeveniments Friendica: Meus"
#: ../../addon/dav/friendica/calendar.friendica.fnk.php:208
msgid "Friendica Events: Contacts"
msgstr "Esdeveniments Friendica: Contactes"
#: ../../addon/dav/friendica/calendar.friendica.fnk.php:248
msgid "Private Addresses"
msgstr ""
#: ../../addon/dav/friendica/calendar.friendica.fnk.php:249
msgid "Friendica Contacts"
msgstr ""
#: ../../addon/uhremotestorage/uhremotestorage.php:84
#, php-format
@ -4140,35 +5984,35 @@ msgstr "Empat!"
msgid "I won!"
msgstr "Vaig guanyar!"
#: ../../addon/randplace/randplace.php:171
#: ../../addon/randplace/randplace.php:169
msgid "Randplace Settings"
msgstr "Configuració de Randplace"
#: ../../addon/randplace/randplace.php:173
#: ../../addon/randplace/randplace.php:171
msgid "Enable Randplace Plugin"
msgstr "Habilitar el Plugin de Randplace"
#: ../../addon/dwpost/dwpost.php:38
#: ../../addon/dwpost/dwpost.php:39
msgid "Post to Dreamwidth"
msgstr "Missatge a Dreamwidth"
#: ../../addon/dwpost/dwpost.php:69
#: ../../addon/dwpost/dwpost.php:70
msgid "Dreamwidth Post Settings"
msgstr "Configuració d'enviaments a Dreamwidth"
#: ../../addon/dwpost/dwpost.php:71
#: ../../addon/dwpost/dwpost.php:72
msgid "Enable dreamwidth Post Plugin"
msgstr "Habilitat el plugin d'enviaments a Dreamwidth"
#: ../../addon/dwpost/dwpost.php:76
#: ../../addon/dwpost/dwpost.php:77
msgid "dreamwidth username"
msgstr "Nom d'usuari a Dreamwidth"
#: ../../addon/dwpost/dwpost.php:81
#: ../../addon/dwpost/dwpost.php:82
msgid "dreamwidth password"
msgstr "Contrasenya a Dreamwidth"
#: ../../addon/dwpost/dwpost.php:86
#: ../../addon/dwpost/dwpost.php:87
msgid "Post to dreamwidth by default"
msgstr "Enviar per defecte a Dreamwidth"
@ -4208,11 +6052,23 @@ msgstr "el Lloc Drupal empra URLS netes"
msgid "Post to Drupal by default"
msgstr "Enviar a Drupal per defecte"
#: ../../addon/drpost/drpost.php:184 ../../addon/wppost/wppost.php:172
#: ../../addon/posterous/posterous.php:173
#: ../../addon/drpost/drpost.php:184 ../../addon/wppost/wppost.php:201
#: ../../addon/blogger/blogger.php:172 ../../addon/posterous/posterous.php:189
msgid "Post from Friendica"
msgstr "Enviament des de Friendica"
#: ../../addon/startpage/startpage.php:83
msgid "Startpage Settings"
msgstr "Ajustos de la pàgina d'inici"
#: ../../addon/startpage/startpage.php:85
msgid "Home page to load after login - leave blank for profile wall"
msgstr "Pàgina personal a carregar després d'accedir - deixar buit pel perfil del mur"
#: ../../addon/startpage/startpage.php:88
msgid "Examples: &quot;network&quot; or &quot;notifications/system&quot;"
msgstr "Exemples: \"xarxa\" o \"notificacions/sistema\""
#: ../../addon/geonames/geonames.php:143
msgid "Geonames settings updated."
msgstr "Actualitzada la configuració de Geonames."
@ -4225,6 +6081,24 @@ msgstr "Configuració de Geonames"
msgid "Enable Geonames Plugin"
msgstr "Habilitar Plugin de Geonames"
#: ../../addon/public_server/public_server.php:126
#: ../../addon/testdrive/testdrive.php:94
#, php-format
msgid "Your account on %s will expire in a few days."
msgstr "El teu compte en %s expirarà en pocs dies."
#: ../../addon/public_server/public_server.php:127
msgid "Your Friendica account is about to expire."
msgstr "El teu compte de Friendica està a punt de caducar."
#: ../../addon/public_server/public_server.php:128
#, php-format
msgid ""
"Hi %1$s,\n"
"\n"
"Your account on %2$s will expire in less than five days. You may keep your account by logging in at least once every 30 days"
msgstr "Hi %1$s,\n\nEl teu compte en %2$s expirara en menys de cinc dies. Pots mantenir el teu compte accedint al menys una vegada cada 30 dies."
#: ../../addon/js_upload/js_upload.php:43
msgid "Upload a file"
msgstr "Carrega un arxiu"
@ -4265,45 +6139,111 @@ msgstr "Empreu OEmbed per videos YouTube"
msgid "URL to embed:"
msgstr "Adreça URL del recurs"
#: ../../addon/impressum/impressum.php:25
#: ../../addon/forumlist/forumlist.php:57
msgid "show/hide"
msgstr "mostra/amaga"
#: ../../addon/forumlist/forumlist.php:72
msgid "No forum subscriptions"
msgstr ""
#: ../../addon/forumlist/forumlist.php:124
msgid "Forumlist settings updated."
msgstr ""
#: ../../addon/forumlist/forumlist.php:153
msgid "Forumlist Settings"
msgstr ""
#: ../../addon/forumlist/forumlist.php:158
msgid "Randomise Forumlist/Forum list"
msgstr ""
#: ../../addon/forumlist/forumlist.php:161
msgid "Show forumlists/forums on profile forumlist"
msgstr ""
#: ../../addon/impressum/impressum.php:37
msgid "Impressum"
msgstr "Impressum"
#: ../../addon/impressum/impressum.php:38
#: ../../addon/impressum/impressum.php:40
#: ../../addon/impressum/impressum.php:70
#: ../../addon/impressum/impressum.php:50
#: ../../addon/impressum/impressum.php:52
#: ../../addon/impressum/impressum.php:84
msgid "Site Owner"
msgstr "Propietari del lloc"
#: ../../addon/impressum/impressum.php:38
#: ../../addon/impressum/impressum.php:74
#: ../../addon/impressum/impressum.php:50
#: ../../addon/impressum/impressum.php:88
msgid "Email Address"
msgstr "Adreça de correu"
#: ../../addon/impressum/impressum.php:43
#: ../../addon/impressum/impressum.php:72
#: ../../addon/impressum/impressum.php:55
#: ../../addon/impressum/impressum.php:86
msgid "Postal Address"
msgstr "Adreça postal"
#: ../../addon/impressum/impressum.php:49
#: ../../addon/impressum/impressum.php:61
msgid ""
"The impressum addon needs to be configured!<br />Please add at least the "
"<tt>owner</tt> variable to your config file. For other variables please "
"refer to the README file of the addon."
msgstr "El complement impressum s'ha de configurar!<br />Si us plau afegiu almenys la variable <tt>propietari </tt> al fitxer de configuració. Per a les altres variables, consulteu el fitxer README del complement."
#: ../../addon/impressum/impressum.php:71
#: ../../addon/impressum/impressum.php:84
msgid "The page operators name."
msgstr "Nom de la pàgina del gestor."
#: ../../addon/impressum/impressum.php:85
msgid "Site Owners Profile"
msgstr "Perfil del Propietari del Lloc"
#: ../../addon/impressum/impressum.php:73
#: ../../addon/impressum/impressum.php:85
msgid "Profile address of the operator."
msgstr "Adreça del perfil del gestor."
#: ../../addon/impressum/impressum.php:86
msgid "How to contact the operator via snail mail. You can use BBCode here."
msgstr "Com posar-se en contacte amb l'operador a través de correu postal. Vostè pot utilitzar BBCode aquí."
#: ../../addon/impressum/impressum.php:87
msgid "Notes"
msgstr "Notes"
#: ../../addon/impressum/impressum.php:87
msgid ""
"Additional notes that are displayed beneath the contact information. You can"
" use BBCode here."
msgstr "Notes addicionals que es mostren sota de la informació de contacte. Vostè pot usar BBCode aquí."
#: ../../addon/impressum/impressum.php:88
msgid "How to contact the operator via email. (will be displayed obfuscated)"
msgstr "Com contactar amb el gestor via correu electronic. ( es visualitzara ofuscat)"
#: ../../addon/impressum/impressum.php:89
msgid "Footer note"
msgstr "Nota a peu de pàgina"
#: ../../addon/impressum/impressum.php:89
msgid "Text for the footer. You can use BBCode here."
msgstr "Text pel peu de pàgina. Pots emprar BBCode aquí."
#: ../../addon/buglink/buglink.php:15
msgid "Report Bug"
msgstr "Informar de problema"
#: ../../addon/notimeline/notimeline.php:32
msgid "No Timeline settings updated."
msgstr "No s'han actualitzat els ajustos de la línia de temps"
#: ../../addon/notimeline/notimeline.php:56
msgid "No Timeline Settings"
msgstr "No hi han ajustos de la línia de temps"
#: ../../addon/notimeline/notimeline.php:58
msgid "Disable Archive selector on profile wall"
msgstr "Desactivar el selector d'arxius del mur de perfils"
#: ../../addon/blockem/blockem.php:51
msgid "\"Blockem\" Settings"
msgstr "Configuració de \"Bloqueig\""
@ -4381,10 +6321,139 @@ msgstr "Zoom per defecte"
msgid "The default zoom level. (1:world, 18:highest)"
msgstr "Nivell de zoom per defecte. (1: el món, 18: el més alt)"
#: ../../addon/group_text/group_text.php:46
#: ../../addon/editplain/editplain.php:46
msgid "Editplain settings updated."
msgstr "Actualitzar la configuració de Editplain."
#: ../../addon/group_text/group_text.php:76
msgid "Group Text"
msgstr ""
#: ../../addon/group_text/group_text.php:78
msgid "Use a text only (non-image) group selector in the \"group edit\" menu"
msgstr ""
#: ../../addon/libravatar/libravatar.php:14
msgid "Could NOT install Libravatar successfully.<br>It requires PHP >= 5.3"
msgstr "No puc instal·lar Libravatar , <br>requereix PHP>=5.3"
#: ../../addon/libravatar/libravatar.php:73
#: ../../addon/gravatar/gravatar.php:71
msgid "generic profile image"
msgstr "imatge de perfil genérica"
#: ../../addon/libravatar/libravatar.php:74
#: ../../addon/gravatar/gravatar.php:72
msgid "random geometric pattern"
msgstr "Patró geometric aleatori"
#: ../../addon/libravatar/libravatar.php:75
#: ../../addon/gravatar/gravatar.php:73
msgid "monster face"
msgstr "Cara monstruosa"
#: ../../addon/libravatar/libravatar.php:76
#: ../../addon/gravatar/gravatar.php:74
msgid "computer generated face"
msgstr "Cara monstruosa generada per ordinador"
#: ../../addon/libravatar/libravatar.php:77
#: ../../addon/gravatar/gravatar.php:75
msgid "retro arcade style face"
msgstr "Cara d'estil arcade retro"
#: ../../addon/libravatar/libravatar.php:83
#, php-format
msgid "Your PHP version %s is lower than the required PHP >= 5.3."
msgstr "La teva versió de PHP %s es inferior a la requerida, PHP>=5.3"
#: ../../addon/libravatar/libravatar.php:84
msgid "This addon is not functional on your server."
msgstr "Aquest addon no es funcional al teu servidor."
#: ../../addon/libravatar/libravatar.php:93
#: ../../addon/gravatar/gravatar.php:89
msgid "Information"
msgstr "informació"
#: ../../addon/libravatar/libravatar.php:93
msgid ""
"Gravatar addon is installed. Please disable the Gravatar addon.<br>The "
"Libravatar addon will fall back to Gravatar if nothing was found at "
"Libravatar."
msgstr ""
#: ../../addon/libravatar/libravatar.php:100
#: ../../addon/gravatar/gravatar.php:96
msgid "Default avatar image"
msgstr "Imatge d'avatar per defecte"
#: ../../addon/libravatar/libravatar.php:100
msgid "Select default avatar image if none was found. See README"
msgstr ""
#: ../../addon/libravatar/libravatar.php:112
msgid "Libravatar settings updated."
msgstr "Ajustos de Libravatar actualitzats."
#: ../../addon/libertree/libertree.php:36
msgid "Post to libertree"
msgstr "Enviament a libertree"
#: ../../addon/libertree/libertree.php:67
msgid "libertree Post Settings"
msgstr "Ajustos d'enviaments a libertree"
#: ../../addon/libertree/libertree.php:69
msgid "Enable Libertree Post Plugin"
msgstr "Activa el plugin d'enviaments a libertree"
#: ../../addon/libertree/libertree.php:74
msgid "Libertree API token"
msgstr "Libertree API token"
#: ../../addon/libertree/libertree.php:79
msgid "Libertree site URL"
msgstr "lloc URL libertree"
#: ../../addon/libertree/libertree.php:84
msgid "Post to Libertree by default"
msgstr "Enviar a libertree per defecte"
#: ../../addon/altpager/altpager.php:46
msgid "Altpager settings updated."
msgstr "Ajustos de Altpagerr actualitzats."
#: ../../addon/altpager/altpager.php:79
msgid "Alternate Pagination Setting"
msgstr "Alternate Pagination Setting"
#: ../../addon/altpager/altpager.php:81
msgid "Use links to \"newer\" and \"older\" pages in place of page numbers?"
msgstr ""
#: ../../addon/mathjax/mathjax.php:37
msgid ""
"The MathJax addon renders mathematical formulae written using the LaTeX "
"syntax surrounded by the usual $$ or an eqnarray block in the postings of "
"your wall,network tab and private mail."
msgstr "El complement MathJax processa les fórmules matemàtiques escrites utilitzant la sintaxi de LaTeX, envoltades per l'habitual $$ o un bloc de \"eqnarray\" en les publicacions del seu mur, a la fitxa de la xarxa i correu privat."
#: ../../addon/mathjax/mathjax.php:38
msgid "Use the MathJax renderer"
msgstr "Utilitzar el processador Mathjax"
#: ../../addon/mathjax/mathjax.php:74
msgid "MathJax Base URL"
msgstr "URL Base de Mathjax"
#: ../../addon/mathjax/mathjax.php:74
msgid ""
"The URL for the javascript file that should be included to use MathJax. Can "
"be either the MathJax CDN or another installation of MathJax."
msgstr "La URL del fitxer javascript que ha de ser inclòs per a usar Mathjax. Pot ser utilitzat per Mathjax CDN o un altre instal·lació de Mathjax."
#: ../../addon/editplain/editplain.php:76
msgid "Editplain Settings"
msgstr "Configuració de Editplain"
@ -4393,15 +6462,127 @@ msgstr "Configuració de Editplain"
msgid "Disable richtext status editor"
msgstr "Deshabilitar l'editor d'estatus de texte enriquit"
#: ../../addon/pageheader/pageheader.php:47
#: ../../addon/gravatar/gravatar.php:89
msgid ""
"Libravatar addon is installed, too. Please disable Libravatar addon or this "
"Gravatar addon.<br>The Libravatar addon will fall back to Gravatar if "
"nothing was found at Libravatar."
msgstr ""
#: ../../addon/gravatar/gravatar.php:96
msgid "Select default avatar image if none was found at Gravatar. See README"
msgstr "Se selecciona la imatge d'avatar per defecte si no es troba cap en Gravatar. Veure el README"
#: ../../addon/gravatar/gravatar.php:97
msgid "Rating of images"
msgstr "Classificació de les imatges"
#: ../../addon/gravatar/gravatar.php:97
msgid "Select the appropriate avatar rating for your site. See README"
msgstr "Selecciona la classe d'avatar apropiat pel teu lloc. Veure el README"
#: ../../addon/gravatar/gravatar.php:111
msgid "Gravatar settings updated."
msgstr "Ajustos de Gravatar actualitzats."
#: ../../addon/testdrive/testdrive.php:95
msgid "Your Friendica test account is about to expire."
msgstr "La teva provatura de Friendica esta a prop d'expirar."
#: ../../addon/testdrive/testdrive.php:96
#, php-format
msgid ""
"Hi %1$s,\n"
"\n"
"Your test account on %2$s will expire in less than five days. We hope you enjoyed this test drive and use this opportunity to find a permanent Friendica website for your integrated social communications. A list of public sites is available at http://dir.friendica.com/siteinfo - and for more information on setting up your own Friendica server please see the Friendica project website at http://friendica.com."
msgstr "Hola %1$s ,\n\nEl seu compte de prova a %2$s expirarà en menys de cinc dies . Esperem que hagi gaudit d'aquesta prova i aprofita aquesta oportunitat per trobar un lloc web Friendica permanent per a les teves comunicacions socials integrades . Una llista de llocs públics es troba disponible a http://dir.friendica.com/siteinfo - i per obtenir més informació sobre com configurar el vostre servidor Friendica consulteu el lloc web del projecte en el Friendica http://friendica.com ."
#: ../../addon/pageheader/pageheader.php:50
msgid "\"pageheader\" Settings"
msgstr "Configuració de la capçalera de pàgina."
#: ../../addon/pageheader/pageheader.php:65
#: ../../addon/pageheader/pageheader.php:68
msgid "pageheader Settings saved."
msgstr "guardada la configuració de la capçalera de pàgina."
#: ../../addon/viewsrc/viewsrc.php:25
#: ../../addon/ijpost/ijpost.php:39
msgid "Post to Insanejournal"
msgstr "Enviament a Insanejournal"
#: ../../addon/ijpost/ijpost.php:70
msgid "InsaneJournal Post Settings"
msgstr "Ajustos d'Enviament a Insanejournal"
#: ../../addon/ijpost/ijpost.php:72
msgid "Enable InsaneJournal Post Plugin"
msgstr "Habilita el Plugin d'Enviaments a Insanejournal"
#: ../../addon/ijpost/ijpost.php:77
msgid "InsaneJournal username"
msgstr "Nom d'usuari de Insanejournal"
#: ../../addon/ijpost/ijpost.php:82
msgid "InsaneJournal password"
msgstr "Contrasenya de Insanejournal"
#: ../../addon/ijpost/ijpost.php:87
msgid "Post to InsaneJournal by default"
msgstr "Enviar per defecte a Insanejournal"
#: ../../addon/jappixmini/jappixmini.php:266
msgid "Jappix Mini addon settings"
msgstr ""
#: ../../addon/jappixmini/jappixmini.php:268
msgid "Activate addon"
msgstr ""
#: ../../addon/jappixmini/jappixmini.php:271
msgid ""
"Do <em>not</em> insert the Jappixmini Chat-Widget into the webinterface"
msgstr ""
#: ../../addon/jappixmini/jappixmini.php:274
msgid "Jabber username"
msgstr ""
#: ../../addon/jappixmini/jappixmini.php:277
msgid "Jabber server"
msgstr ""
#: ../../addon/jappixmini/jappixmini.php:281
msgid "Jabber BOSH host"
msgstr ""
#: ../../addon/jappixmini/jappixmini.php:285
msgid "Jabber password"
msgstr ""
#: ../../addon/jappixmini/jappixmini.php:290
msgid "Encrypt Jabber password with Friendica password (recommended)"
msgstr ""
#: ../../addon/jappixmini/jappixmini.php:293
msgid "Friendica password"
msgstr ""
#: ../../addon/jappixmini/jappixmini.php:296
msgid "Approve subscription requests from Friendica contacts automatically"
msgstr ""
#: ../../addon/jappixmini/jappixmini.php:299
msgid "Subscribe to Friendica contacts automatically"
msgstr ""
#: ../../addon/jappixmini/jappixmini.php:302
msgid "Purge internal list of jabber addresses of contacts"
msgstr ""
#: ../../addon/jappixmini/jappixmini.php:308
msgid "Add contact"
msgstr ""
#: ../../addon/viewsrc/viewsrc.php:37
msgid "View Source"
msgstr "Veure les Fonts"
@ -4409,40 +6590,40 @@ msgstr "Veure les Fonts"
msgid "Post to StatusNet"
msgstr "Publica-ho a StatusNet"
#: ../../addon/statusnet/statusnet.php:175
#: ../../addon/statusnet/statusnet.php:176
msgid ""
"Please contact your site administrator.<br />The provided API URL is not "
"valid."
msgstr "Si us plau, poseu-vos en contacte amb l'administrador del lloc. <br /> L'adreça URL de l'API proporcionada no és vàlida."
#: ../../addon/statusnet/statusnet.php:203
#: ../../addon/statusnet/statusnet.php:204
msgid "We could not contact the StatusNet API with the Path you entered."
msgstr "No hem pogut posar-nos en contacte amb l'API StatusNet amb la ruta que has introduït."
#: ../../addon/statusnet/statusnet.php:229
#: ../../addon/statusnet/statusnet.php:232
msgid "StatusNet settings updated."
msgstr "La configuració StatusNet actualitzada."
#: ../../addon/statusnet/statusnet.php:252
#: ../../addon/statusnet/statusnet.php:257
msgid "StatusNet Posting Settings"
msgstr "Configuració d'Enviaments per a StatusNet"
#: ../../addon/statusnet/statusnet.php:266
#: ../../addon/statusnet/statusnet.php:271
msgid "Globally Available StatusNet OAuthKeys"
msgstr "OAuthKeys de StatusNet Globalment Disponible"
#: ../../addon/statusnet/statusnet.php:267
#: ../../addon/statusnet/statusnet.php:272
msgid ""
"There are preconfigured OAuth key pairs for some StatusNet servers "
"available. If you are useing one of them, please use these credentials. If "
"not feel free to connect to any other StatusNet instance (see below)."
msgstr "Hi ha preconfigurats parells clau OAuth per a alguns servidors StatusNet disponibles. Si està emprant un d'ells, utilitzi aquestes credencials. Si no és així no dubteu a connectar-se a qualsevol altra instància StatusNet (veure a baix)."
#: ../../addon/statusnet/statusnet.php:275
#: ../../addon/statusnet/statusnet.php:280
msgid "Provide your own OAuth Credentials"
msgstr "Proporcioneu les vostres credencials de OAuth"
#: ../../addon/statusnet/statusnet.php:276
#: ../../addon/statusnet/statusnet.php:281
msgid ""
"No consumer key pair for StatusNet found. Register your Friendica Account as"
" an desktop client on your StatusNet account, copy the consumer key pair "
@ -4451,19 +6632,19 @@ msgid ""
"Friendica installation at your favorited StatusNet installation."
msgstr "no s'ha trobat cap parell \"consumer key\" per StatusNet. Registra el teu compte Friendica com un client d'escriptori en el seu compte StatusNet, copieu el parell de \"consumer key\" aquí i entri a l'arrel de la base de l'API. <br /> Abans de registrar el seu parell de claus OAuth demani a l'administrador si ja hi ha un parell de claus per a aquesta instal·lació de Friendica en la instal·lació del teu favorit StatusNet."
#: ../../addon/statusnet/statusnet.php:278
#: ../../addon/statusnet/statusnet.php:283
msgid "OAuth Consumer Key"
msgstr "OAuth Consumer Key"
#: ../../addon/statusnet/statusnet.php:281
#: ../../addon/statusnet/statusnet.php:286
msgid "OAuth Consumer Secret"
msgstr "OAuth Consumer Secret"
#: ../../addon/statusnet/statusnet.php:284
#: ../../addon/statusnet/statusnet.php:289
msgid "Base API Path (remember the trailing /)"
msgstr "Base API Path (recorda deixar / al final)"
#: ../../addon/statusnet/statusnet.php:305
#: ../../addon/statusnet/statusnet.php:310
msgid ""
"To connect to your StatusNet account click the button below to get a "
"security code from StatusNet which you have to copy into the input box below"
@ -4471,38 +6652,38 @@ msgid ""
" to StatusNet."
msgstr "Per connectar al seu compte StatusNet, feu clic al botó de sota per obtenir un codi de seguretat StatusNet, que has de copiar a la casella de sota, i enviar el formulari. Només els missatges <strong> públics </strong> es publicaran en StatusNet."
#: ../../addon/statusnet/statusnet.php:306
#: ../../addon/statusnet/statusnet.php:311
msgid "Log in with StatusNet"
msgstr "Accedeixi com en StatusNet"
#: ../../addon/statusnet/statusnet.php:308
#: ../../addon/statusnet/statusnet.php:313
msgid "Copy the security code from StatusNet here"
msgstr "Copieu el codi de seguretat StatusNet aquí"
#: ../../addon/statusnet/statusnet.php:314
#: ../../addon/statusnet/statusnet.php:319
msgid "Cancel Connection Process"
msgstr "Cancel·lar el procés de connexió"
#: ../../addon/statusnet/statusnet.php:316
#: ../../addon/statusnet/statusnet.php:321
msgid "Current StatusNet API is"
msgstr "L'Actual StatusNet API és"
#: ../../addon/statusnet/statusnet.php:317
#: ../../addon/statusnet/statusnet.php:322
msgid "Cancel StatusNet Connection"
msgstr "Cancel·lar la connexió amb StatusNet"
#: ../../addon/statusnet/statusnet.php:328 ../../addon/twitter/twitter.php:184
#: ../../addon/statusnet/statusnet.php:333 ../../addon/twitter/twitter.php:189
msgid "Currently connected to: "
msgstr "Actualment connectat a: "
#: ../../addon/statusnet/statusnet.php:329
#: ../../addon/statusnet/statusnet.php:334
msgid ""
"If enabled all your <strong>public</strong> postings can be posted to the "
"associated StatusNet account. You can choose to do so by default (here) or "
"for every posting separately in the posting options when writing the entry."
msgstr "Si està activat, tots els seus anuncis <strong>públics</strong> poden ser publicats en el compte StatusNet associat. Vostè pot optar per fer-ho per defecte (en aquest cas) o per cada missatge per separat en les opcions de comptabilització en escriure l'entrada."
#: ../../addon/statusnet/statusnet.php:331
#: ../../addon/statusnet/statusnet.php:336
msgid ""
"<strong>Note</strong>: Due your privacy settings (<em>Hide your profile "
"details from unknown viewers?</em>) the link potentially included in public "
@ -4510,22 +6691,30 @@ msgid ""
"informing the visitor that the access to your profile has been restricted."
msgstr "<strong>Nota</strong>: A causa de les seves opcions de privacitat (<em>Amaga els detalls del teu perfil dels espectadors desconeguts? </em>) el vincle potencialment inclòs en anuncis públics transmesos a StatusNet conduirà el visitant a una pàgina en blanc en la que informarà al visitants que l'accés al seu perfil s'ha restringit."
#: ../../addon/statusnet/statusnet.php:334
#: ../../addon/statusnet/statusnet.php:339
msgid "Allow posting to StatusNet"
msgstr "Permetre enviaments a StatusNet"
#: ../../addon/statusnet/statusnet.php:337
#: ../../addon/statusnet/statusnet.php:342
msgid "Send public postings to StatusNet by default"
msgstr "Enviar missatges públics a StatusNet per defecte"
#: ../../addon/statusnet/statusnet.php:342 ../../addon/twitter/twitter.php:198
#: ../../addon/statusnet/statusnet.php:345
msgid "Send linked #-tags and @-names to StatusNet"
msgstr "Enviar enllaços #-etiquetes i @-noms a StatusNet"
#: ../../addon/statusnet/statusnet.php:350 ../../addon/twitter/twitter.php:206
msgid "Clear OAuth configuration"
msgstr "Esborrar configuració de OAuth"
#: ../../addon/statusnet/statusnet.php:524
#: ../../addon/statusnet/statusnet.php:568
msgid "API URL"
msgstr "API URL"
#: ../../addon/infiniteimprobabilitydrive/infiniteimprobabilitydrive.php:19
msgid "Infinite Improbability Drive"
msgstr "Infinite Improbability Drive"
#: ../../addon/tumblr/tumblr.php:36
msgid "Post to Tumblr"
msgstr "Publica-ho al Tumblr"
@ -4558,10 +6747,6 @@ msgstr "Actualitzar la configuració de Numfriends."
msgid "Numfriends Settings"
msgstr "Configuració de Numfriends"
#: ../../addon/numfriends/numfriends.php:79
msgid "How many contacts to display on profile sidebar"
msgstr "Quants contactes per mostrar a la barra lateral el perfil"
#: ../../addon/gnot/gnot.php:48
msgid "Gnot settings updated."
msgstr "Configuració de Gnot actualitzada"
@ -4589,30 +6774,38 @@ msgstr "[Friendica: Notifica] Conversació comentada #%d"
msgid "Post to Wordpress"
msgstr "Publica-ho al Wordpress"
#: ../../addon/wppost/wppost.php:74
#: ../../addon/wppost/wppost.php:76
msgid "WordPress Post Settings"
msgstr "Configuració d'enviaments a WordPress"
#: ../../addon/wppost/wppost.php:76
#: ../../addon/wppost/wppost.php:78
msgid "Enable WordPress Post Plugin"
msgstr "Habilitar Configuració d'Enviaments a WordPress"
#: ../../addon/wppost/wppost.php:81
#: ../../addon/wppost/wppost.php:83
msgid "WordPress username"
msgstr "Nom d'usuari de WordPress"
#: ../../addon/wppost/wppost.php:86
#: ../../addon/wppost/wppost.php:88
msgid "WordPress password"
msgstr "Contrasenya de WordPress"
#: ../../addon/wppost/wppost.php:91
#: ../../addon/wppost/wppost.php:93
msgid "WordPress API URL"
msgstr "WordPress API URL"
#: ../../addon/wppost/wppost.php:96
#: ../../addon/wppost/wppost.php:98
msgid "Post to WordPress by default"
msgstr "Enviar a WordPress per defecte"
#: ../../addon/wppost/wppost.php:103
msgid "Provide a backlink to the Friendica post"
msgstr "Proveeix un retroenllaç al missatge de Friendica"
#: ../../addon/wppost/wppost.php:207
msgid "Read the original post and comment stream on Friendica"
msgstr "Llegeix el missatge original i el flux de comentaris en Friendica"
#: ../../addon/showmore/showmore.php:38
msgid "\"Show more\" Settings"
msgstr "Configuració de \"Mostrar més\""
@ -4625,14 +6818,10 @@ msgstr "Habilita Mostrar Més"
msgid "Cutting posts after how much characters"
msgstr "Tallar els missatges després de quants caràcters"
#: ../../addon/showmore/showmore.php:64
#: ../../addon/showmore/showmore.php:65
msgid "Show More Settings saved."
msgstr "Guardada la configuració de \"Mostra Més\"."
#: ../../addon/showmore/showmore.php:86
msgid "Show More"
msgstr "Mostra Més"
#: ../../addon/piwik/piwik.php:79
msgid ""
"This website is tracked using the <a href='http://www.piwik.org'>Piwik</a> "
@ -4645,7 +6834,7 @@ msgid ""
"If you do not want that your visits are logged this way you <a href='%s'>can"
" set a cookie to prevent Piwik from tracking further visits of the site</a> "
"(opt-out)."
msgstr "Si no vol que les seves visites es transcribin d'aquesta manera vostè <a href='%s'> pot establir una cookie per evitar a Piwik a partir de noves visites del lloc web </a> (opt-out)."
msgstr "Si no vol que les seves visites es registrin d'aquesta manera vostè <a href='%s'> pot establir una cookie per evitar a Piwik a partir de noves visites del lloc web </a> (opt-out)."
#: ../../addon/piwik/piwik.php:90
msgid "Piwik Base URL"
@ -4673,21 +6862,21 @@ msgstr "Seguiment asíncrono"
msgid "Post to Twitter"
msgstr "Publica-ho al Twitter"
#: ../../addon/twitter/twitter.php:119
#: ../../addon/twitter/twitter.php:122
msgid "Twitter settings updated."
msgstr "La configuració de Twitter actualitzada."
#: ../../addon/twitter/twitter.php:141
#: ../../addon/twitter/twitter.php:146
msgid "Twitter Posting Settings"
msgstr "Configuració d'Enviaments per a Twitter"
#: ../../addon/twitter/twitter.php:148
#: ../../addon/twitter/twitter.php:153
msgid ""
"No consumer key pair for Twitter found. Please contact your site "
"administrator."
msgstr "No s'ha pogut emparellar cap clau \"consumer key\" per a Twitter. Si us plau, poseu-vos en contacte amb l'administrador del lloc."
#: ../../addon/twitter/twitter.php:167
#: ../../addon/twitter/twitter.php:172
msgid ""
"At this Friendica instance the Twitter plugin was enabled but you have not "
"yet connected your account to your Twitter account. To do so click the "
@ -4696,22 +6885,22 @@ msgid ""
" be posted to Twitter."
msgstr "En aquesta instància Friendica el plugin Twitter va ser habilitat, però encara no ha connectat el compte al seu compte de Twitter. Per a això feu clic al botó de sota per obtenir un PIN de Twitter que ha de copiar a la casella de sota i enviar el formulari. Només els missatges <strong> públics </strong> es publicaran a Twitter."
#: ../../addon/twitter/twitter.php:168
#: ../../addon/twitter/twitter.php:173
msgid "Log in with Twitter"
msgstr "Accedeixi com en Twitter"
#: ../../addon/twitter/twitter.php:170
#: ../../addon/twitter/twitter.php:175
msgid "Copy the PIN from Twitter here"
msgstr "Copieu el codi PIN de Twitter aquí"
#: ../../addon/twitter/twitter.php:185
#: ../../addon/twitter/twitter.php:190
msgid ""
"If enabled all your <strong>public</strong> postings can be posted to the "
"associated Twitter account. You can choose to do so by default (here) or for"
" every posting separately in the posting options when writing the entry."
msgstr "Si està activat, tots els seus anuncis <strong> públics </strong> poden ser publicats en el corresponent compte de Twitter. Vostè pot optar per fer-ho per defecte (en aquest cas) o per cada missatge per separat en les opcions de comptabilització en escriure l'entrada."
#: ../../addon/twitter/twitter.php:187
#: ../../addon/twitter/twitter.php:192
msgid ""
"<strong>Note</strong>: Due your privacy settings (<em>Hide your profile "
"details from unknown viewers?</em>) the link potentially included in public "
@ -4719,69 +6908,338 @@ msgid ""
"the visitor that the access to your profile has been restricted."
msgstr "<strong>Nota</strong>: donada la seva configuració de privacitat (<em> Amaga els detalls del teu perfil dels espectadors desconeguts? </em>) el vincle potencialment inclòs en anuncis públics retransmesos a Twitter conduirà al visitant a una pàgina en blanc informar als visitants que l'accés al seu perfil s'ha restringit."
#: ../../addon/twitter/twitter.php:190
#: ../../addon/twitter/twitter.php:195
msgid "Allow posting to Twitter"
msgstr "Permetre anunci a Twitter"
#: ../../addon/twitter/twitter.php:193
#: ../../addon/twitter/twitter.php:198
msgid "Send public postings to Twitter by default"
msgstr "Enviar anuncis públics a Twitter per defecte"
#: ../../addon/twitter/twitter.php:357
#: ../../addon/twitter/twitter.php:201
msgid "Send linked #-tags and @-names to Twitter"
msgstr "Enviar enllaços #-etiquetes i @-noms a Twitter"
#: ../../addon/twitter/twitter.php:396
msgid "Consumer key"
msgstr "Consumer key"
#: ../../addon/twitter/twitter.php:358
#: ../../addon/twitter/twitter.php:397
msgid "Consumer secret"
msgstr "Consumer secret"
#: ../../addon/irc/irc.php:20
msgid "irc Chatroom"
msgstr "irc Chatroom"
#: ../../addon/irc/irc.php:44
msgid "IRC Settings"
msgstr "Ajustos de IRC"
#: ../../addon/posterous/posterous.php:36
#: ../../addon/irc/irc.php:46
msgid "Channel(s) to auto connect (comma separated)"
msgstr "Canal(s) per auto connectar (separats per comes)"
#: ../../addon/irc/irc.php:51
msgid "Popular Channels (comma separated)"
msgstr "Canals Populars (separats per comes)"
#: ../../addon/irc/irc.php:69
msgid "IRC settings saved."
msgstr "Ajustos del IRC guardats."
#: ../../addon/irc/irc.php:74
msgid "IRC Chatroom"
msgstr "IRC Chatroom"
#: ../../addon/irc/irc.php:96
msgid "Popular Channels"
msgstr "Canals Populars"
#: ../../addon/fromapp/fromapp.php:38
msgid "Fromapp settings updated."
msgstr ""
#: ../../addon/fromapp/fromapp.php:64
msgid "FromApp Settings"
msgstr ""
#: ../../addon/fromapp/fromapp.php:66
msgid ""
"The application name you would like to show your posts originating from."
msgstr ""
#: ../../addon/fromapp/fromapp.php:70
msgid "Use this application name even if another application was used."
msgstr ""
#: ../../addon/blogger/blogger.php:42
msgid "Post to blogger"
msgstr "Enviament a blogger"
#: ../../addon/blogger/blogger.php:74
msgid "Blogger Post Settings"
msgstr "Ajustos d'enviament a blogger"
#: ../../addon/blogger/blogger.php:76
msgid "Enable Blogger Post Plugin"
msgstr "Habilita el Plugin d'Enviaments a Blogger"
#: ../../addon/blogger/blogger.php:81
msgid "Blogger username"
msgstr "Nom d'usuari a blogger"
#: ../../addon/blogger/blogger.php:86
msgid "Blogger password"
msgstr "Contrasenya a blogger"
#: ../../addon/blogger/blogger.php:91
msgid "Blogger API URL"
msgstr "Blogger API URL"
#: ../../addon/blogger/blogger.php:96
msgid "Post to Blogger by default"
msgstr "Enviament a Blogger per defecte"
#: ../../addon/posterous/posterous.php:37
msgid "Post to Posterous"
msgstr "enviament a Posterous"
#: ../../addon/posterous/posterous.php:67
#: ../../addon/posterous/posterous.php:70
msgid "Posterous Post Settings"
msgstr "Configuració d'Enviaments a Posterous"
#: ../../addon/posterous/posterous.php:69
#: ../../addon/posterous/posterous.php:72
msgid "Enable Posterous Post Plugin"
msgstr "Habilitar plugin d'Enviament de Posterous"
#: ../../addon/posterous/posterous.php:74
#: ../../addon/posterous/posterous.php:77
msgid "Posterous login"
msgstr "Inici de sessió a Posterous"
#: ../../addon/posterous/posterous.php:79
#: ../../addon/posterous/posterous.php:82
msgid "Posterous password"
msgstr "Contrasenya a Posterous"
#: ../../addon/posterous/posterous.php:84
#: ../../addon/posterous/posterous.php:87
msgid "Posterous site ID"
msgstr "ID al lloc Posterous"
#: ../../addon/posterous/posterous.php:92
msgid "Posterous API token"
msgstr "Posterous API token"
#: ../../addon/posterous/posterous.php:97
msgid "Post to Posterous by default"
msgstr "Enviar a Posterous per defecte"
#: ../../view/theme/quattro/theme.php:17
#: ../../view/theme/cleanzero/config.php:82
#: ../../view/theme/diabook/config.php:192
#: ../../view/theme/quattro/config.php:55 ../../view/theme/dispy/config.php:72
msgid "Theme settings"
msgstr "Configuració de Temes"
#: ../../view/theme/quattro/theme.php:18
#: ../../view/theme/cleanzero/config.php:83
msgid "Set resize level for images in posts and comments (width and height)"
msgstr "Ajusteu el nivell de canvi de mida d'imatges en els missatges i comentaris ( amplada i alçada"
#: ../../view/theme/cleanzero/config.php:84
#: ../../view/theme/diabook/config.php:193
#: ../../view/theme/dispy/config.php:73
msgid "Set font-size for posts and comments"
msgstr "Canvia la mida del tipus de lletra per enviaments i comentaris"
#: ../../view/theme/cleanzero/config.php:85
msgid "Set theme width"
msgstr "Ajustar l'ample del tema"
#: ../../view/theme/cleanzero/config.php:86
#: ../../view/theme/quattro/config.php:57
msgid "Color scheme"
msgstr "Esquema de colors"
#: ../../view/theme/diabook/theme.php:127 ../../include/nav.php:49
#: ../../include/nav.php:115
msgid "Your posts and conversations"
msgstr "Els teus anuncis i converses"
#: ../../view/theme/diabook/theme.php:128 ../../include/nav.php:50
msgid "Your profile page"
msgstr "La seva pàgina de perfil"
#: ../../view/theme/diabook/theme.php:129
msgid "Your contacts"
msgstr "Els teus contactes"
#: ../../view/theme/diabook/theme.php:130 ../../include/nav.php:51
msgid "Your photos"
msgstr "Les seves fotos"
#: ../../view/theme/diabook/theme.php:131 ../../include/nav.php:52
msgid "Your events"
msgstr "Els seus esdeveniments"
#: ../../view/theme/diabook/theme.php:132 ../../include/nav.php:53
msgid "Personal notes"
msgstr "Notes personals"
#: ../../view/theme/diabook/theme.php:132 ../../include/nav.php:53
msgid "Your personal photos"
msgstr "Les seves fotos personals"
#: ../../view/theme/diabook/theme.php:134
#: ../../view/theme/diabook/theme.php:643
#: ../../view/theme/diabook/theme.php:747
#: ../../view/theme/diabook/config.php:201
msgid "Community Pages"
msgstr "Pàgines de la Comunitat"
#: ../../view/theme/diabook/theme.php:490
#: ../../view/theme/diabook/theme.php:749
#: ../../view/theme/diabook/config.php:203
msgid "Community Profiles"
msgstr "Perfils de Comunitat"
#: ../../view/theme/diabook/theme.php:511
#: ../../view/theme/diabook/theme.php:754
#: ../../view/theme/diabook/config.php:208
msgid "Last users"
msgstr "Últims usuaris"
#: ../../view/theme/diabook/theme.php:540
#: ../../view/theme/diabook/theme.php:756
#: ../../view/theme/diabook/config.php:210
msgid "Last likes"
msgstr "Últims \"m'agrada\""
#: ../../view/theme/diabook/theme.php:585
#: ../../view/theme/diabook/theme.php:755
#: ../../view/theme/diabook/config.php:209
msgid "Last photos"
msgstr "Últimes fotos"
#: ../../view/theme/diabook/theme.php:622
#: ../../view/theme/diabook/theme.php:752
#: ../../view/theme/diabook/config.php:206
msgid "Find Friends"
msgstr "Trobar Amistats"
#: ../../view/theme/diabook/theme.php:623
msgid "Local Directory"
msgstr "Directori Local"
#: ../../view/theme/diabook/theme.php:625 ../../include/contact_widgets.php:35
msgid "Similar Interests"
msgstr "Aficions Similars"
#: ../../view/theme/diabook/theme.php:627 ../../include/contact_widgets.php:37
msgid "Invite Friends"
msgstr "Invita Amics"
#: ../../view/theme/diabook/theme.php:678
#: ../../view/theme/diabook/theme.php:748
#: ../../view/theme/diabook/config.php:202
msgid "Earth Layers"
msgstr "Earth Layers"
#: ../../view/theme/diabook/theme.php:683
msgid "Set zoomfactor for Earth Layers"
msgstr "Ajustar el factor de zoom per Earth Layers"
#: ../../view/theme/diabook/theme.php:684
#: ../../view/theme/diabook/config.php:199
msgid "Set longitude (X) for Earth Layers"
msgstr "Ajustar longitud (X) per Earth Layers"
#: ../../view/theme/diabook/theme.php:685
#: ../../view/theme/diabook/config.php:200
msgid "Set latitude (Y) for Earth Layers"
msgstr "Ajustar latitud (Y) per Earth Layers"
#: ../../view/theme/diabook/theme.php:698
#: ../../view/theme/diabook/theme.php:750
#: ../../view/theme/diabook/config.php:204
msgid "Help or @NewHere ?"
msgstr "Ajuda o @NouAqui?"
#: ../../view/theme/diabook/theme.php:705
#: ../../view/theme/diabook/theme.php:751
#: ../../view/theme/diabook/config.php:205
msgid "Connect Services"
msgstr "Serveis Connectats"
#: ../../view/theme/diabook/theme.php:712
#: ../../view/theme/diabook/theme.php:753
msgid "Last Tweets"
msgstr "Últims Tweets"
#: ../../view/theme/diabook/theme.php:715
#: ../../view/theme/diabook/config.php:197
msgid "Set twitter search term"
msgstr "Ajustar el terme de cerca de twitter"
#: ../../view/theme/diabook/theme.php:735
#: ../../view/theme/diabook/theme.php:736
#: ../../view/theme/diabook/theme.php:737
#: ../../view/theme/diabook/theme.php:738
#: ../../view/theme/diabook/theme.php:739
#: ../../view/theme/diabook/theme.php:740
#: ../../view/theme/diabook/theme.php:741
#: ../../view/theme/diabook/theme.php:742
#: ../../view/theme/diabook/theme.php:743
#: ../../view/theme/diabook/theme.php:744 ../../include/acl_selectors.php:288
msgid "don't show"
msgstr "no mostris"
#: ../../view/theme/diabook/theme.php:735
#: ../../view/theme/diabook/theme.php:736
#: ../../view/theme/diabook/theme.php:737
#: ../../view/theme/diabook/theme.php:738
#: ../../view/theme/diabook/theme.php:739
#: ../../view/theme/diabook/theme.php:740
#: ../../view/theme/diabook/theme.php:741
#: ../../view/theme/diabook/theme.php:742
#: ../../view/theme/diabook/theme.php:743
#: ../../view/theme/diabook/theme.php:744 ../../include/acl_selectors.php:287
msgid "show"
msgstr "mostra"
#: ../../view/theme/diabook/theme.php:745
msgid "Show/hide boxes at right-hand column:"
msgstr "Mostra/amaga els marcs de la columna a ma dreta"
#: ../../view/theme/diabook/config.php:194
#: ../../view/theme/dispy/config.php:74
msgid "Set line-height for posts and comments"
msgstr "Canvia l'espaiat de línia per enviaments i comentaris"
#: ../../view/theme/diabook/config.php:195
msgid "Set resolution for middle column"
msgstr "canvia la resolució per a la columna central"
#: ../../view/theme/diabook/config.php:196
msgid "Set color scheme"
msgstr "Canvia l'esquema de color"
#: ../../view/theme/diabook/config.php:198
msgid "Set zoomfactor for Earth Layer"
msgstr "Ajustar el factor de zoom de Earth Layers"
#: ../../view/theme/diabook/config.php:207
msgid "Last tweets"
msgstr "Últims tweets"
#: ../../view/theme/quattro/config.php:56
msgid "Alignment"
msgstr "Adaptació"
#: ../../view/theme/quattro/theme.php:18
#: ../../view/theme/quattro/config.php:56
msgid "Left"
msgstr "Esquerra"
#: ../../view/theme/quattro/theme.php:18
#: ../../view/theme/quattro/config.php:56
msgid "Center"
msgstr "Centre"
#: ../../include/profile_advanced.php:17 ../../boot.php:982
msgid "Gender:"
msgstr "Gènere:"
#: ../../view/theme/dispy/config.php:75
msgid "Set colour scheme"
msgstr "Establir l'esquema de color"
#: ../../include/profile_advanced.php:22
msgid "j F, Y"
@ -4791,8 +7249,7 @@ msgstr "j F, Y"
msgid "j F"
msgstr "j F"
#: ../../include/profile_advanced.php:30 ../../include/datetime.php:438
#: ../../include/items.php:1349
#: ../../include/profile_advanced.php:30
msgid "Birthday:"
msgstr "Aniversari:"
@ -4800,59 +7257,52 @@ msgstr "Aniversari:"
msgid "Age:"
msgstr "Edat:"
#: ../../include/profile_advanced.php:37 ../../boot.php:985
msgid "Status:"
msgstr "Estatus:"
#: ../../include/profile_advanced.php:43
#, php-format
msgid "for %1$d %2$s"
msgstr "per a %1$d %2$s"
#: ../../include/profile_advanced.php:45 ../../boot.php:987
msgid "Homepage:"
msgstr "Pàgina web:"
#: ../../include/profile_advanced.php:47
#: ../../include/profile_advanced.php:52
msgid "Tags:"
msgstr "Etiquetes:"
#: ../../include/profile_advanced.php:51
#: ../../include/profile_advanced.php:56
msgid "Religion:"
msgstr "Religió:"
#: ../../include/profile_advanced.php:53
msgid "About:"
msgstr "Acerca de:"
#: ../../include/profile_advanced.php:55
#: ../../include/profile_advanced.php:60
msgid "Hobbies/Interests:"
msgstr "Aficiones/Intereses:"
#: ../../include/profile_advanced.php:57
#: ../../include/profile_advanced.php:67
msgid "Contact information and Social Networks:"
msgstr "Informació de contacte i Xarxes Socials:"
#: ../../include/profile_advanced.php:59
#: ../../include/profile_advanced.php:69
msgid "Musical interests:"
msgstr "Gustos musicals:"
#: ../../include/profile_advanced.php:61
#: ../../include/profile_advanced.php:71
msgid "Books, literature:"
msgstr "Llibres, literatura:"
#: ../../include/profile_advanced.php:63
#: ../../include/profile_advanced.php:73
msgid "Television:"
msgstr "Televisió:"
#: ../../include/profile_advanced.php:65
#: ../../include/profile_advanced.php:75
msgid "Film/dance/culture/entertainment:"
msgstr "Cinema/ball/cultura/entreteniments:"
#: ../../include/profile_advanced.php:67
#: ../../include/profile_advanced.php:77
msgid "Love/Romance:"
msgstr "Amor/sentiments:"
#: ../../include/profile_advanced.php:69
#: ../../include/profile_advanced.php:79
msgid "Work/employment:"
msgstr "Treball/ocupació:"
#: ../../include/profile_advanced.php:71
#: ../../include/profile_advanced.php:81
msgid "School/education:"
msgstr "Escola/formació"
@ -4866,7 +7316,7 @@ msgstr "Bloquejar immediatament"
#: ../../include/contact_selectors.php:34
msgid "Shady, spammer, self-marketer"
msgstr "Sospitós, Femater, auto-publicitat"
msgstr "Sospitós, Spam, auto-publicitat"
#: ../../include/contact_selectors.php:35
msgid "Known to me, but no opinion"
@ -4892,18 +7342,6 @@ msgstr "Cada hora"
msgid "Twice daily"
msgstr "Dues vegades al dia"
#: ../../include/contact_selectors.php:59
msgid "Daily"
msgstr "Diari"
#: ../../include/contact_selectors.php:60
msgid "Weekly"
msgstr "Setmanal"
#: ../../include/contact_selectors.php:61
msgid "Monthly"
msgstr "Mensual"
#: ../../include/contact_selectors.php:77
msgid "OStatus"
msgstr "OStatus"
@ -4984,332 +7422,455 @@ msgstr "Altres"
msgid "Undecided"
msgstr "No Decidit"
#: ../../include/profile_selectors.php:19
#: ../../include/profile_selectors.php:23
msgid "Males"
msgstr "Home"
#: ../../include/profile_selectors.php:19
#: ../../include/profile_selectors.php:23
msgid "Females"
msgstr "Dona"
#: ../../include/profile_selectors.php:19
#: ../../include/profile_selectors.php:23
msgid "Gay"
msgstr "Gay"
#: ../../include/profile_selectors.php:19
#: ../../include/profile_selectors.php:23
msgid "Lesbian"
msgstr "Lesbiana"
#: ../../include/profile_selectors.php:19
#: ../../include/profile_selectors.php:23
msgid "No Preference"
msgstr "Sense Preferències"
#: ../../include/profile_selectors.php:19
#: ../../include/profile_selectors.php:23
msgid "Bisexual"
msgstr "Bisexual"
#: ../../include/profile_selectors.php:19
#: ../../include/profile_selectors.php:23
msgid "Autosexual"
msgstr "Autosexual"
#: ../../include/profile_selectors.php:19
#: ../../include/profile_selectors.php:23
msgid "Abstinent"
msgstr "Abstinent/a"
#: ../../include/profile_selectors.php:19
#: ../../include/profile_selectors.php:23
msgid "Virgin"
msgstr "Verge"
#: ../../include/profile_selectors.php:19
#: ../../include/profile_selectors.php:23
msgid "Deviant"
msgstr "Desviat/da"
#: ../../include/profile_selectors.php:19
#: ../../include/profile_selectors.php:23
msgid "Fetish"
msgstr "Fetixiste"
#: ../../include/profile_selectors.php:19
#: ../../include/profile_selectors.php:23
msgid "Oodles"
msgstr "Orgies"
#: ../../include/profile_selectors.php:19
#: ../../include/profile_selectors.php:23
msgid "Nonsexual"
msgstr "Asexual"
#: ../../include/profile_selectors.php:33
#: ../../include/profile_selectors.php:42
msgid "Single"
msgstr "Solter/a"
#: ../../include/profile_selectors.php:33
#: ../../include/profile_selectors.php:42
msgid "Lonely"
msgstr "Solitari"
#: ../../include/profile_selectors.php:33
#: ../../include/profile_selectors.php:42
msgid "Available"
msgstr "Disponible"
#: ../../include/profile_selectors.php:33
#: ../../include/profile_selectors.php:42
msgid "Unavailable"
msgstr "No Disponible"
#: ../../include/profile_selectors.php:33
#: ../../include/profile_selectors.php:42
msgid "Has crush"
msgstr "Compromés"
#: ../../include/profile_selectors.php:42
msgid "Infatuated"
msgstr "Enamorat"
#: ../../include/profile_selectors.php:42
msgid "Dating"
msgstr "De cites"
#: ../../include/profile_selectors.php:33
#: ../../include/profile_selectors.php:42
msgid "Unfaithful"
msgstr "Infidel"
#: ../../include/profile_selectors.php:33
#: ../../include/profile_selectors.php:42
msgid "Sex Addict"
msgstr "Adicte al sexe"
#: ../../include/profile_selectors.php:33
#: ../../include/profile_selectors.php:42 ../../include/user.php:278
#: ../../include/user.php:282
msgid "Friends"
msgstr "Amics/Amigues"
#: ../../include/profile_selectors.php:33
#: ../../include/profile_selectors.php:42
msgid "Friends/Benefits"
msgstr "Amics íntims"
#: ../../include/profile_selectors.php:33
#: ../../include/profile_selectors.php:42
msgid "Casual"
msgstr "Oportunista"
#: ../../include/profile_selectors.php:33
#: ../../include/profile_selectors.php:42
msgid "Engaged"
msgstr "Promès"
#: ../../include/profile_selectors.php:33
#: ../../include/profile_selectors.php:42
msgid "Married"
msgstr "Casat"
#: ../../include/profile_selectors.php:33
#: ../../include/profile_selectors.php:42
msgid "Imaginarily married"
msgstr "Matrimoni imaginari"
#: ../../include/profile_selectors.php:42
msgid "Partners"
msgstr "Socis"
#: ../../include/profile_selectors.php:33
#: ../../include/profile_selectors.php:42
msgid "Cohabiting"
msgstr "Cohabitant"
#: ../../include/profile_selectors.php:33
#: ../../include/profile_selectors.php:42
msgid "Common law"
msgstr "Segons costums"
#: ../../include/profile_selectors.php:42
msgid "Happy"
msgstr "Feliç"
#: ../../include/profile_selectors.php:33
msgid "Not Looking"
msgstr "No Cerco"
#: ../../include/profile_selectors.php:42
msgid "Not looking"
msgstr "No cerco"
#: ../../include/profile_selectors.php:33
#: ../../include/profile_selectors.php:42
msgid "Swinger"
msgstr "Parella Liberal"
#: ../../include/profile_selectors.php:33
#: ../../include/profile_selectors.php:42
msgid "Betrayed"
msgstr "Traït/da"
#: ../../include/profile_selectors.php:33
#: ../../include/profile_selectors.php:42
msgid "Separated"
msgstr "Separat/da"
#: ../../include/profile_selectors.php:33
#: ../../include/profile_selectors.php:42
msgid "Unstable"
msgstr "Inestable"
#: ../../include/profile_selectors.php:33
#: ../../include/profile_selectors.php:42
msgid "Divorced"
msgstr "Divorciat/da"
#: ../../include/profile_selectors.php:33
#: ../../include/profile_selectors.php:42
msgid "Imaginarily divorced"
msgstr "Divorci imaginari"
#: ../../include/profile_selectors.php:42
msgid "Widowed"
msgstr "Vidu/a"
#: ../../include/profile_selectors.php:33
#: ../../include/profile_selectors.php:42
msgid "Uncertain"
msgstr "Incert"
#: ../../include/profile_selectors.php:33
msgid "Complicated"
msgstr "Complicat"
#: ../../include/profile_selectors.php:42
msgid "It's complicated"
msgstr "Es complicat"
#: ../../include/profile_selectors.php:33
#: ../../include/profile_selectors.php:42
msgid "Don't care"
msgstr "No t'interessa"
#: ../../include/profile_selectors.php:33
#: ../../include/profile_selectors.php:42
msgid "Ask me"
msgstr "Pregunta'm"
#: ../../include/event.php:17 ../../include/bb2diaspora.php:244
#: ../../include/event.php:20 ../../include/bb2diaspora.php:396
msgid "Starts:"
msgstr "Inici:"
#: ../../include/event.php:27 ../../include/bb2diaspora.php:252
#: ../../include/event.php:30 ../../include/bb2diaspora.php:404
msgid "Finishes:"
msgstr "Acaba:"
#: ../../include/delivery.php:425 ../../include/notifier.php:638
#: ../../include/delivery.php:457 ../../include/notifier.php:703
msgid "(no subject)"
msgstr "(sense assumpte)"
#: ../../include/delivery.php:432 ../../include/enotify.php:17
#: ../../include/notifier.php:645
msgid "noreply"
msgstr "no contestar"
#: ../../include/Scrape.php:576
msgid " on Last.fm"
msgstr " a Last.fm"
#: ../../include/text.php:238
#: ../../include/text.php:243
msgid "prev"
msgstr "Prev"
#: ../../include/text.php:240
#: ../../include/text.php:245
msgid "first"
msgstr "primer"
msgstr "Primer"
#: ../../include/text.php:269
#: ../../include/text.php:274
msgid "last"
msgstr "Últim"
#: ../../include/text.php:272
#: ../../include/text.php:277
msgid "next"
msgstr "Proper"
msgstr "següent"
#: ../../include/text.php:563
#: ../../include/text.php:295
msgid "newer"
msgstr "Més nou"
#: ../../include/text.php:299
msgid "older"
msgstr "més vell"
#: ../../include/text.php:597
msgid "No contacts"
msgstr "Sense contactes"
#: ../../include/text.php:572
#: ../../include/text.php:606
#, php-format
msgid "%d Contact"
msgid_plural "%d Contacts"
msgstr[0] "%d Contacte"
msgstr[1] "%d Contactes"
#: ../../include/text.php:643 ../../include/nav.php:87
msgid "Search"
msgstr "Cercar"
#: ../../include/text.php:719
msgid "poke"
msgstr ""
#: ../../include/text.php:831
msgid "Monday"
msgstr "Dilluns"
#: ../../include/text.php:719 ../../include/conversation.php:210
msgid "poked"
msgstr ""
#: ../../include/text.php:831
msgid "Tuesday"
msgstr "Dimarts"
#: ../../include/text.php:720
msgid "ping"
msgstr ""
#: ../../include/text.php:831
msgid "Wednesday"
msgstr "Dimecres"
#: ../../include/text.php:720
msgid "pinged"
msgstr ""
#: ../../include/text.php:831
msgid "Thursday"
msgstr "Dijous"
#: ../../include/text.php:721
msgid "prod"
msgstr ""
#: ../../include/text.php:831
msgid "Friday"
msgstr "Divendres"
#: ../../include/text.php:721
msgid "prodded"
msgstr ""
#: ../../include/text.php:831
msgid "Saturday"
msgstr "Dissabte"
#: ../../include/text.php:722
msgid "slap"
msgstr ""
#: ../../include/text.php:831
msgid "Sunday"
msgstr "Diumenge"
#: ../../include/text.php:722
msgid "slapped"
msgstr ""
#: ../../include/text.php:835
#: ../../include/text.php:723
msgid "finger"
msgstr "dit"
#: ../../include/text.php:723
msgid "fingered"
msgstr ""
#: ../../include/text.php:724
msgid "rebuff"
msgstr ""
#: ../../include/text.php:724
msgid "rebuffed"
msgstr ""
#: ../../include/text.php:736
msgid "happy"
msgstr ""
#: ../../include/text.php:737
msgid "sad"
msgstr ""
#: ../../include/text.php:738
msgid "mellow"
msgstr ""
#: ../../include/text.php:739
msgid "tired"
msgstr ""
#: ../../include/text.php:740
msgid "perky"
msgstr ""
#: ../../include/text.php:741
msgid "angry"
msgstr ""
#: ../../include/text.php:742
msgid "stupified"
msgstr ""
#: ../../include/text.php:743
msgid "puzzled"
msgstr ""
#: ../../include/text.php:744
msgid "interested"
msgstr ""
#: ../../include/text.php:745
msgid "bitter"
msgstr ""
#: ../../include/text.php:746
msgid "cheerful"
msgstr ""
#: ../../include/text.php:747
msgid "alive"
msgstr ""
#: ../../include/text.php:748
msgid "annoyed"
msgstr ""
#: ../../include/text.php:749
msgid "anxious"
msgstr ""
#: ../../include/text.php:750
msgid "cranky"
msgstr ""
#: ../../include/text.php:751
msgid "disturbed"
msgstr ""
#: ../../include/text.php:752
msgid "frustrated"
msgstr ""
#: ../../include/text.php:753
msgid "motivated"
msgstr ""
#: ../../include/text.php:754
msgid "relaxed"
msgstr ""
#: ../../include/text.php:755
msgid "surprised"
msgstr ""
#: ../../include/text.php:921
msgid "January"
msgstr "Gener"
#: ../../include/text.php:835
#: ../../include/text.php:921
msgid "February"
msgstr "Febrer"
#: ../../include/text.php:835
#: ../../include/text.php:921
msgid "March"
msgstr "Març"
#: ../../include/text.php:835
#: ../../include/text.php:921
msgid "April"
msgstr "Abril"
#: ../../include/text.php:835
#: ../../include/text.php:921
msgid "May"
msgstr "Maig"
#: ../../include/text.php:835
#: ../../include/text.php:921
msgid "June"
msgstr "Juny"
#: ../../include/text.php:835
#: ../../include/text.php:921
msgid "July"
msgstr "Juliol"
#: ../../include/text.php:835
#: ../../include/text.php:921
msgid "August"
msgstr "Agost"
#: ../../include/text.php:835
#: ../../include/text.php:921
msgid "September"
msgstr "Setembre"
#: ../../include/text.php:835
#: ../../include/text.php:921
msgid "October"
msgstr "Octubre"
#: ../../include/text.php:835
#: ../../include/text.php:921
msgid "November"
msgstr "Novembre"
#: ../../include/text.php:835
#: ../../include/text.php:921
msgid "December"
msgstr "Desembre"
#: ../../include/text.php:905
#: ../../include/text.php:1007
msgid "bytes"
msgstr "bytes"
#: ../../include/text.php:1000
msgid "Select an alternate language"
msgstr "Sel·lecciona un idioma alternatiu"
#: ../../include/text.php:1034 ../../include/text.php:1046
msgid "Click to open/close"
msgstr "Clicar per a obrir/tancar"
#: ../../include/text.php:1012
#: ../../include/text.php:1219 ../../include/user.php:236
msgid "default"
msgstr "per defecte"
#: ../../include/text.php:1228
#: ../../include/text.php:1231
msgid "Select an alternate language"
msgstr "Sel·lecciona un idioma alternatiu"
#: ../../include/text.php:1441
msgid "activity"
msgstr "activitat"
#: ../../include/text.php:1230
msgid "comment"
msgstr "comentari"
#: ../../include/text.php:1231
#: ../../include/text.php:1444
msgid "post"
msgstr "missatge"
#: ../../include/diaspora.php:570
#: ../../include/text.php:1599
msgid "Item filed"
msgstr "Element arxivat"
#: ../../include/diaspora.php:691
msgid "Sharing notification from Diaspora network"
msgstr "Compartint la notificació de la xarxa Diàspora"
#: ../../include/diaspora.php:1911
#: ../../include/diaspora.php:2211
msgid "Attachments:"
msgstr "Adjunts:"
#: ../../include/diaspora.php:2094
#, php-format
msgid "[Relayed] Comment authored by %s from network %s"
msgstr "[Retransmès] Comentari escrit per %s des de la xarxa %s"
#: ../../include/network.php:814
#: ../../include/network.php:849
msgid "view full size"
msgstr "Veure a mida completa"
#: ../../include/oembed.php:128
#: ../../include/oembed.php:137
msgid "Embedded content"
msgstr "Contingut incrustat"
#: ../../include/oembed.php:137
#: ../../include/oembed.php:146
msgid "Embedding disabled"
msgstr "Incrustacions deshabilitades"
@ -5320,155 +7881,135 @@ msgid ""
"not what you intended, please create another group with a different name."
msgstr "Un grup eliminat amb aquest nom va ser restablert. Els permisos dels elements existents <strong>poden</strong> aplicar-se a aquest grup i tots els futurs membres. Si això no és el que pretén, si us plau, crei un altre grup amb un nom diferent."
#: ../../include/group.php:168
#: ../../include/group.php:176
msgid "Default privacy group for new contacts"
msgstr "Privacitat per defecte per a nous contactes"
#: ../../include/group.php:195
msgid "Everybody"
msgstr "Tothom"
#: ../../include/group.php:191
#: ../../include/group.php:218
msgid "edit"
msgstr "editar"
#: ../../include/group.php:212
msgid "Groups"
msgstr "Grups"
#: ../../include/group.php:213
#: ../../include/group.php:240
msgid "Edit group"
msgstr "Editar grup"
#: ../../include/group.php:214
#: ../../include/group.php:241
msgid "Create a new group"
msgstr "Crear un nou grup"
#: ../../include/nav.php:44 ../../boot.php:709
#: ../../include/group.php:242
msgid "Contacts not in any group"
msgstr "Contactes en cap grup"
#: ../../include/nav.php:46 ../../boot.php:911
msgid "Logout"
msgstr "Sortir"
#: ../../include/nav.php:44
#: ../../include/nav.php:46
msgid "End this session"
msgstr "Termina sessió"
#: ../../include/nav.php:47 ../../boot.php:1331
#: ../../include/nav.php:49 ../../boot.php:1665
msgid "Status"
msgstr "Estatus"
#: ../../include/nav.php:47 ../../include/nav.php:111
msgid "Your posts and conversations"
msgstr "Els teus anuncis i converses"
#: ../../include/nav.php:48
msgid "Your profile page"
msgstr "La seva pàgina de perfil"
#: ../../include/nav.php:49 ../../boot.php:1341
msgid "Photos"
msgstr "Fotos"
#: ../../include/nav.php:49
msgid "Your photos"
msgstr "Les seves fotos"
#: ../../include/nav.php:50
msgid "Your events"
msgstr "Els seus esdeveniments"
#: ../../include/nav.php:51
msgid "Personal notes"
msgstr "Notes personals"
#: ../../include/nav.php:51
msgid "Your personal photos"
msgstr "Les seves fotos personals"
#: ../../include/nav.php:62
#: ../../include/nav.php:64
msgid "Sign in"
msgstr "Accedeix"
#: ../../include/nav.php:73
#: ../../include/nav.php:77
msgid "Home Page"
msgstr "Pàgina d'Inici"
#: ../../include/nav.php:77
#: ../../include/nav.php:81
msgid "Create an account"
msgstr "Crear un compte"
#: ../../include/nav.php:82
#: ../../include/nav.php:86
msgid "Help and documentation"
msgstr "Ajuda i documentació"
#: ../../include/nav.php:85
#: ../../include/nav.php:89
msgid "Apps"
msgstr "Aplicacions"
#: ../../include/nav.php:85
#: ../../include/nav.php:89
msgid "Addon applications, utilities, games"
msgstr "Afegits: aplicacions, utilitats, jocs"
#: ../../include/nav.php:87
#: ../../include/nav.php:91
msgid "Search site content"
msgstr "Busca contingut en el lloc"
#: ../../include/nav.php:97
#: ../../include/nav.php:101
msgid "Conversations on this site"
msgstr "Converses en aquest lloc"
#: ../../include/nav.php:99
#: ../../include/nav.php:103
msgid "Directory"
msgstr "Directori"
#: ../../include/nav.php:99
#: ../../include/nav.php:103
msgid "People directory"
msgstr "Directori de gent"
#: ../../include/nav.php:109
#: ../../include/nav.php:113
msgid "Conversations from your friends"
msgstr "Converses dels teus amics"
#: ../../include/nav.php:117
#: ../../include/nav.php:121
msgid "Friend Requests"
msgstr "Sol·licitud d'Amistat"
#: ../../include/nav.php:119
#: ../../include/nav.php:123
msgid "See all notifications"
msgstr "Veure totes les notificacions"
#: ../../include/nav.php:120
#: ../../include/nav.php:124
msgid "Mark all system notifications seen"
msgstr "Marcar totes les notificacions del sistema com a vistes"
#: ../../include/nav.php:124
#: ../../include/nav.php:128
msgid "Private mail"
msgstr "Correu privat"
#: ../../include/nav.php:127
#: ../../include/nav.php:129
msgid "Inbox"
msgstr "Safata d'entrada"
#: ../../include/nav.php:130
msgid "Outbox"
msgstr "Safata de sortida"
#: ../../include/nav.php:134
msgid "Manage"
msgstr "Gestionar"
#: ../../include/nav.php:127
#: ../../include/nav.php:134
msgid "Manage other pages"
msgstr "Gestiona altres pàgines"
#: ../../include/nav.php:131 ../../boot.php:940
#: ../../include/nav.php:138 ../../boot.php:1186
msgid "Profiles"
msgstr "Perfils"
#: ../../include/nav.php:131 ../../boot.php:940
#: ../../include/nav.php:138 ../../boot.php:1186
msgid "Manage/edit profiles"
msgstr "Gestiona/edita perfils"
#: ../../include/nav.php:132
#: ../../include/nav.php:139
msgid "Manage/edit friends and contacts"
msgstr "Gestiona/edita amics i contactes"
#: ../../include/nav.php:139
msgid "Admin"
msgstr "Admin"
#: ../../include/nav.php:139
#: ../../include/nav.php:146
msgid "Site setup and configuration"
msgstr "Ajustos i configuració del lloc"
#: ../../include/nav.php:162
#: ../../include/nav.php:170
msgid "Nothing new here"
msgstr "Res nou aquí"
@ -5484,36 +8025,32 @@ msgstr "Introdueixi adreça o ubicació web"
msgid "Example: bob@example.com, http://example.com/barbara"
msgstr "Exemple: bob@example.com, http://example.com/barbara"
#: ../../include/contact_widgets.php:18
msgid "Invite Friends"
msgstr "Invita Amics"
#: ../../include/contact_widgets.php:24
#: ../../include/contact_widgets.php:23
#, php-format
msgid "%d invitation available"
msgid_plural "%d invitations available"
msgstr[0] "%d invitació disponible"
msgstr[1] "%d invitacions disponibles"
#: ../../include/contact_widgets.php:30
#: ../../include/contact_widgets.php:29
msgid "Find People"
msgstr "Trobar Gent"
#: ../../include/contact_widgets.php:31
#: ../../include/contact_widgets.php:30
msgid "Enter name or interest"
msgstr "Introdueixi nom o aficions"
#: ../../include/contact_widgets.php:32
#: ../../include/contact_widgets.php:31
msgid "Connect/Follow"
msgstr "Connectar/Seguir"
#: ../../include/contact_widgets.php:33
#: ../../include/contact_widgets.php:32
msgid "Examples: Robert Morgenstein, Fishing"
msgstr "Exemples: Robert Morgenstein, Pescar"
#: ../../include/contact_widgets.php:36
msgid "Similar Interests"
msgstr "Aficions Similars"
msgid "Random Profile"
msgstr "Perfi Aleatori"
#: ../../include/contact_widgets.php:68
msgid "Networks"
@ -5523,605 +8060,739 @@ msgstr "Xarxes"
msgid "All Networks"
msgstr "totes les Xarxes"
#: ../../include/auth.php:29
#: ../../include/contact_widgets.php:98
msgid "Saved Folders"
msgstr "Carpetes Guardades"
#: ../../include/contact_widgets.php:101 ../../include/contact_widgets.php:129
msgid "Everything"
msgstr "Tot"
#: ../../include/contact_widgets.php:126
msgid "Categories"
msgstr "Categories"
#: ../../include/auth.php:35
msgid "Logged out."
msgstr "Has sortit"
#: ../../include/auth.php:114
msgid ""
"We encountered a problem while logging in with the OpenID you provided. "
"Please check the correct spelling of the ID."
msgstr "Em trobat un problema quan accedies amb la OpenID que has proporcionat. Per favor, revisa la cadena del ID."
#: ../../include/auth.php:114
msgid "The error message was:"
msgstr "El missatge d'error fou: "
#: ../../include/datetime.php:43 ../../include/datetime.php:45
msgid "Miscellaneous"
msgstr "Miscel·lania"
#: ../../include/datetime.php:121 ../../include/datetime.php:253
#: ../../include/datetime.php:153 ../../include/datetime.php:285
msgid "year"
msgstr "any"
#: ../../include/datetime.php:126 ../../include/datetime.php:254
#: ../../include/datetime.php:158 ../../include/datetime.php:286
msgid "month"
msgstr "mes"
#: ../../include/datetime.php:131 ../../include/datetime.php:256
#: ../../include/datetime.php:163 ../../include/datetime.php:288
msgid "day"
msgstr "dia"
#: ../../include/datetime.php:244
#: ../../include/datetime.php:276
msgid "never"
msgstr "mai"
#: ../../include/datetime.php:250
#: ../../include/datetime.php:282
msgid "less than a second ago"
msgstr "Fa menys d'un segon"
#: ../../include/datetime.php:253
msgid "years"
msgstr "anys"
#: ../../include/datetime.php:254
msgid "months"
msgstr "mesos"
#: ../../include/datetime.php:255
#: ../../include/datetime.php:287
msgid "week"
msgstr "setmana"
#: ../../include/datetime.php:255
msgid "weeks"
msgstr "setmanes"
#: ../../include/datetime.php:256
msgid "days"
msgstr "dies"
#: ../../include/datetime.php:257
#: ../../include/datetime.php:289
msgid "hour"
msgstr "hora"
#: ../../include/datetime.php:257
#: ../../include/datetime.php:289
msgid "hours"
msgstr "hores"
#: ../../include/datetime.php:258
#: ../../include/datetime.php:290
msgid "minute"
msgstr "minut"
#: ../../include/datetime.php:258
#: ../../include/datetime.php:290
msgid "minutes"
msgstr "minuts"
#: ../../include/datetime.php:259
#: ../../include/datetime.php:291
msgid "second"
msgstr "segon"
#: ../../include/datetime.php:259
#: ../../include/datetime.php:291
msgid "seconds"
msgstr "segons"
#: ../../include/datetime.php:267
#: ../../include/datetime.php:300
#, php-format
msgid "%1$d %2$s ago"
msgstr " fa %1$d %2$s"
#: ../../include/poller.php:513
#: ../../include/datetime.php:472 ../../include/items.php:1683
#, php-format
msgid "%s's birthday"
msgstr "%s aniversari"
#: ../../include/datetime.php:473 ../../include/items.php:1684
#, php-format
msgid "Happy Birthday %s"
msgstr "Feliç Aniversari %s"
#: ../../include/onepoll.php:399
msgid "From: "
msgstr "Des de:"
#: ../../include/bbcode.php:202
msgid "$1 wrote:"
msgstr "$1 va escrivir:"
#: ../../include/bbcode.php:216 ../../include/bbcode.php:282
#: ../../include/bbcode.php:185 ../../include/bbcode.php:406
msgid "Image/photo"
msgstr "Imatge/foto"
#: ../../include/dba.php:39
#: ../../include/bbcode.php:371 ../../include/bbcode.php:391
msgid "$1 wrote:"
msgstr "$1 va escriure:"
#: ../../include/bbcode.php:410 ../../include/bbcode.php:411
msgid "Encrypted content"
msgstr ""
#: ../../include/dba.php:41
#, php-format
msgid "Cannot locate DNS info for database server '%s'"
msgstr "No put trobar informació de DNS del servidor de base de dades '%s'"
#: ../../include/message.php:14
#: ../../include/message.php:15 ../../include/message.php:171
msgid "[no subject]"
msgstr "[Sense assumpte]"
#: ../../include/acl_selectors.php:284
#: ../../include/acl_selectors.php:286
msgid "Visible to everybody"
msgstr "Visible per tothom"
#: ../../include/acl_selectors.php:285
msgid "show"
msgstr "mostra"
#: ../../include/acl_selectors.php:286
msgid "don't show"
msgstr "no mostris"
#: ../../include/enotify.php:8
#: ../../include/enotify.php:16
msgid "Friendica Notification"
msgstr "Notificacions de Friendica"
#: ../../include/enotify.php:11
#: ../../include/enotify.php:19
msgid "Thank You,"
msgstr "Gràcies,"
#: ../../include/enotify.php:13
#: ../../include/enotify.php:21
#, php-format
msgid "%s Administrator"
msgstr "%s Administrador"
#: ../../include/enotify.php:29
#: ../../include/enotify.php:40
#, php-format
msgid "%s <!item_type!>"
msgstr "%s <!item_type!>"
#: ../../include/enotify.php:33
#: ../../include/enotify.php:44
#, php-format
msgid "[Friendica:Notify] New mail received at %s"
msgstr "[Friendica: Notifica] nou correu rebut a %s"
#: ../../include/enotify.php:35
#: ../../include/enotify.php:46
#, php-format
msgid "%s sent you a new private message at %s."
msgstr "%s t'ha enviat un nou missatge privat en %s"
msgid "%1$s sent you a new private message at %2$s."
msgstr "%1$s t'ha enviat un missatge privat nou en %2$s."
#: ../../include/enotify.php:36
#: ../../include/enotify.php:47
#, php-format
msgid "%s sent you %s."
msgstr "%s t'ha enviat %s."
msgid "%1$s sent you %2$s."
msgstr "%1$s t'ha enviat %2$s."
#: ../../include/enotify.php:36
#: ../../include/enotify.php:47
msgid "a private message"
msgstr "un missatge privat"
#: ../../include/enotify.php:37
#: ../../include/enotify.php:48
#, php-format
msgid "Please visit %s to view and/or reply to your private messages."
msgstr "Per favor, visiteu %s per a veure i/o respondre els teus missatges privats."
#: ../../include/enotify.php:67
#: ../../include/enotify.php:89
#, php-format
msgid "%s's"
msgstr "%s's"
msgid "%1$s commented on [url=%2$s]a %3$s[/url]"
msgstr "%1$s ha comentat en [url=%2$s]a %3$s[/url]"
#: ../../include/enotify.php:71
msgid "your"
msgstr "tu"
#: ../../include/enotify.php:78
#: ../../include/enotify.php:96
#, php-format
msgid "[Friendica:Notify] Comment to conversation #%d by %s"
msgstr "[Friendica:Notifica] Conversació comentada #%d per %s"
msgid "%1$s commented on [url=%2$s]%3$s's %4$s[/url]"
msgstr "%1$s ha comentat en [url=%2$s]%3$s de %4$s[/url]"
#: ../../include/enotify.php:79
#: ../../include/enotify.php:104
#, php-format
msgid "%1$s commented on [url=%2$s]your %3$s[/url]"
msgstr "%1$s ha comentat en [url=%2$s] el teu %3$s[/url]"
#: ../../include/enotify.php:114
#, php-format
msgid "[Friendica:Notify] Comment to conversation #%1$d by %2$s"
msgstr "[Friendica:Notificació] Comentaris a la conversació #%1$d per %2$s"
#: ../../include/enotify.php:115
#, php-format
msgid "%s commented on an item/conversation you have been following."
msgstr "%s ha comentat un element/conversació que estas seguint."
#: ../../include/enotify.php:80
#, php-format
msgid "%s commented on %s."
msgstr "%s comentat a %s."
#: ../../include/enotify.php:82 ../../include/enotify.php:95
#: ../../include/enotify.php:106 ../../include/enotify.php:117
#: ../../include/enotify.php:118 ../../include/enotify.php:133
#: ../../include/enotify.php:146 ../../include/enotify.php:164
#: ../../include/enotify.php:177
#, php-format
msgid "Please visit %s to view and/or reply to the conversation."
msgstr "Si us pau, visiteu %s per a veure i/o respondre la conversació."
#: ../../include/enotify.php:89
#: ../../include/enotify.php:125
#, php-format
msgid "[Friendica:Notify] %s posted to your profile wall"
msgstr "[Friendica:Notifica] %s enviat al teu mur del perfil"
#: ../../include/enotify.php:91
#: ../../include/enotify.php:127
#, php-format
msgid "%s posted to your profile wall at %s"
msgstr "%s enviat al teu mur de perfil %s"
msgid "%1$s posted to your profile wall at %2$s"
msgstr "%1$s ha fet un enviament al teu mur de perfils en %2$s"
#: ../../include/enotify.php:93
#: ../../include/enotify.php:129
#, php-format
msgid "%s posted to %s"
msgstr "%s enviat a %s"
msgid "%1$s posted to [url=%2$s]your wall[/url]"
msgstr ""
#: ../../include/enotify.php:93
msgid "your profile wall."
msgstr "El teu perfil del mur."
#: ../../include/enotify.php:102
#: ../../include/enotify.php:140
#, php-format
msgid "[Friendica:Notify] %s tagged you"
msgstr "[Friendica:Notifica] %s t'ha etiquetat"
#: ../../include/enotify.php:103
#: ../../include/enotify.php:141
#, php-format
msgid "%s tagged you at %s"
msgstr "%s t'ha etiquetat en %s"
msgid "%1$s tagged you at %2$s"
msgstr "%1$s t'ha etiquetat a %2$s"
#: ../../include/enotify.php:104
#: ../../include/enotify.php:142
#, php-format
msgid "%s %s."
msgstr "%s %s."
msgid "%1$s [url=%2$s]tagged you[/url]."
msgstr "%1$s [url=%2$s] t'ha etiquetat[/url]."
#: ../../include/enotify.php:104
msgid "tagged you"
msgstr "Etiquetat"
#: ../../include/enotify.php:154
#, php-format
msgid "[Friendica:Notify] %1$s poked you"
msgstr ""
#: ../../include/enotify.php:113
#: ../../include/enotify.php:155
#, php-format
msgid "%1$s poked you at %2$s"
msgstr ""
#: ../../include/enotify.php:156
#, php-format
msgid "%1$s [url=%2$s]poked you[/url]."
msgstr ""
#: ../../include/enotify.php:171
#, php-format
msgid "[Friendica:Notify] %s tagged your post"
msgstr "[Friendica:Notifica] %s ha etiquetat el teu missatge"
#: ../../include/enotify.php:114
#: ../../include/enotify.php:172
#, php-format
msgid "%s tagged your post at %s"
msgstr "%s Ha etiquetat un missatge teu en %s"
msgid "%1$s tagged your post at %2$s"
msgstr "%1$s ha etiquetat un missatge teu a %2$s"
#: ../../include/enotify.php:115
#: ../../include/enotify.php:173
#, php-format
msgid "%s tagged %s"
msgstr "%s etiquetat %s"
msgid "%1$s tagged [url=%2$s]your post[/url]"
msgstr "%1$s etiquetà [url=%2$s] el teu enviament[/url]"
#: ../../include/enotify.php:115
msgid "your post"
msgstr "El teu missatge"
#: ../../include/enotify.php:124
#: ../../include/enotify.php:184
msgid "[Friendica:Notify] Introduction received"
msgstr "[Friendica:Notifica] Presentacio rebuda"
#: ../../include/enotify.php:125
#: ../../include/enotify.php:185
#, php-format
msgid "You've received an introduction from '%s' at %s"
msgstr "Has rebut una presentació de %s en %s"
msgid "You've received an introduction from '%1$s' at %2$s"
msgstr "Has rebut una presentació des de '%1$s' en %2$s"
#: ../../include/enotify.php:126
#: ../../include/enotify.php:186
#, php-format
msgid "You've received %s from %s."
msgstr "Has rebut %s de %s"
msgid "You've received [url=%1$s]an introduction[/url] from %2$s."
msgstr "Has rebut [url=%1$s] com a presentació[/url] des de %2$s."
#: ../../include/enotify.php:126
msgid "an introduction"
msgstr "Una presentació"
#: ../../include/enotify.php:127 ../../include/enotify.php:144
#: ../../include/enotify.php:189 ../../include/enotify.php:207
#, php-format
msgid "You may visit their profile at %s"
msgstr "Pot visitar el seu perfil en %s"
#: ../../include/enotify.php:129
#: ../../include/enotify.php:191
#, php-format
msgid "Please visit %s to approve or reject the introduction."
msgstr "Si us plau visiteu %s per aprovar o rebutjar la presentació."
#: ../../include/enotify.php:136
#: ../../include/enotify.php:198
msgid "[Friendica:Notify] Friend suggestion received"
msgstr "[Friendica:Notifica] Suggerencia d'amistat rebuda"
#: ../../include/enotify.php:137
#: ../../include/enotify.php:199
#, php-format
msgid "You've received a friend suggestion from '%s' at %s"
msgstr "Has rebut una suggerencia d'amistat de %s en %s"
msgid "You've received a friend suggestion from '%1$s' at %2$s"
msgstr "Has rebut una suggerencia d'amistat des de '%1$s' en %2$s"
#: ../../include/enotify.php:138
#: ../../include/enotify.php:200
#, php-format
msgid "You've received %s for %s from %s."
msgstr "Has rebut %s per %s de %s."
msgid ""
"You've received [url=%1$s]a friend suggestion[/url] for %2$s from %3$s."
msgstr "Has rebut [url=%1$s] com a suggerencia d'amistat[/url] per a %2$s des de %3$s."
#: ../../include/enotify.php:139
msgid "a friend suggestion"
msgstr "Un suggerencia d'amistat"
#: ../../include/enotify.php:142
#: ../../include/enotify.php:205
msgid "Name:"
msgstr "Nom:"
#: ../../include/enotify.php:143
#: ../../include/enotify.php:206
msgid "Photo:"
msgstr "Foto:"
#: ../../include/enotify.php:146
#: ../../include/enotify.php:209
#, php-format
msgid "Please visit %s to approve or reject the suggestion."
msgstr "Si us plau, visiteu %s per aprovar o rebutjar la suggerencia."
#: ../../include/items.php:2573
#: ../../include/follow.php:32
msgid "Connect URL missing."
msgstr "URL del connector perduda."
#: ../../include/follow.php:59
msgid ""
"This site is not configured to allow communications with other networks."
msgstr "Aquest lloc no està configurat per permetre les comunicacions amb altres xarxes."
#: ../../include/follow.php:60 ../../include/follow.php:80
msgid "No compatible communication protocols or feeds were discovered."
msgstr "Protocol de comunnicació no compatible o alimentador descobert."
#: ../../include/follow.php:78
msgid "The profile address specified does not provide adequate information."
msgstr "L'adreça de perfil especificada no proveeix informació adient."
#: ../../include/follow.php:82
msgid "An author or name was not found."
msgstr "Un autor o nom no va ser trobat"
#: ../../include/follow.php:84
msgid "No browser URL could be matched to this address."
msgstr "Cap direcció URL del navegador coincideix amb aquesta adreça."
#: ../../include/follow.php:86
msgid ""
"Unable to match @-style Identity Address with a known protocol or email "
"contact."
msgstr "Incapaç de trobar coincidències amb la Adreça d'Identitat estil @ amb els protocols coneguts o contactes de correu. "
#: ../../include/follow.php:87
msgid "Use mailto: in front of address to force email check."
msgstr "Emprar mailto: davant la adreça per a forçar la comprovació del correu."
#: ../../include/follow.php:93
msgid ""
"The profile address specified belongs to a network which has been disabled "
"on this site."
msgstr "La direcció del perfil especificat pertany a una xarxa que ha estat desactivada en aquest lloc."
#: ../../include/follow.php:103
msgid ""
"Limited profile. This person will be unable to receive direct/personal "
"notifications from you."
msgstr "Perfil limitat. Aquesta persona no podrà rebre notificacions personals/directes de tu."
#: ../../include/follow.php:205
msgid "Unable to retrieve contact information."
msgstr "No es pot recuperar la informació de contacte."
#: ../../include/follow.php:259
msgid "following"
msgstr "seguint"
#: ../../include/items.php:3294
msgid "A new person is sharing with you at "
msgstr "Una persona nova està compartint amb tú en"
#: ../../include/items.php:2573
#: ../../include/items.php:3294
msgid "You have a new follower at "
msgstr "Tens un nou seguidor a "
#: ../../include/bb2diaspora.php:102 ../../include/bb2diaspora.php:112
#: ../../include/bb2diaspora.php:113
msgid "image/photo"
msgstr "Imatge/foto"
#: ../../include/items.php:3975
msgid "Archives"
msgstr "Arxius"
#: ../../include/security.php:20
#: ../../include/user.php:38
msgid "An invitation is required."
msgstr "Es requereix invitació."
#: ../../include/user.php:43
msgid "Invitation could not be verified."
msgstr "La invitació no ha pogut ser verificada."
#: ../../include/user.php:51
msgid "Invalid OpenID url"
msgstr "OpenID url no vàlid"
#: ../../include/user.php:66
msgid "Please enter the required information."
msgstr "Per favor, introdueixi la informació requerida."
#: ../../include/user.php:80
msgid "Please use a shorter name."
msgstr "Per favor, empri un nom més curt."
#: ../../include/user.php:82
msgid "Name too short."
msgstr "Nom massa curt."
#: ../../include/user.php:97
msgid "That doesn't appear to be your full (First Last) name."
msgstr "Això no sembla ser el teu nom complet."
#: ../../include/user.php:102
msgid "Your email domain is not among those allowed on this site."
msgstr "El seu domini de correu electrònic no es troba entre els permesos en aquest lloc."
#: ../../include/user.php:105
msgid "Not a valid email address."
msgstr "Adreça de correu no vàlida."
#: ../../include/user.php:115
msgid "Cannot use that email."
msgstr "No es pot utilitzar aquest correu electrònic."
#: ../../include/user.php:121
msgid ""
"Your \"nickname\" can only contain \"a-z\", \"0-9\", \"-\", and \"_\", and "
"must also begin with a letter."
msgstr "El teu sobrenom nomes pot contenir \"a-z\", \"0-9\", \"-\", i \"_\", i començar amb lletra."
#: ../../include/user.php:127 ../../include/user.php:225
msgid "Nickname is already registered. Please choose another."
msgstr "àlies ja registrat. Tria un altre."
#: ../../include/user.php:137
msgid ""
"Nickname was once registered here and may not be re-used. Please choose "
"another."
msgstr "L'àlies emprat ja està registrat alguna vegada i no es pot reutilitzar "
#: ../../include/user.php:153
msgid "SERIOUS ERROR: Generation of security keys failed."
msgstr "ERROR IMPORTANT: La generació de claus de seguretat ha fallat."
#: ../../include/user.php:211
msgid "An error occurred during registration. Please try again."
msgstr "Un error ha succeït durant el registre. Intenta-ho de nou."
#: ../../include/user.php:246
msgid "An error occurred creating your default profile. Please try again."
msgstr "Un error ha succeit durant la creació del teu perfil per defecte. Intenta-ho de nou."
#: ../../include/security.php:22
msgid "Welcome "
msgstr "Benvingut"
#: ../../include/security.php:21
#: ../../include/security.php:23
msgid "Please upload a profile photo."
msgstr "Per favor, carrega una foto per al perfil"
#: ../../include/security.php:24
#: ../../include/security.php:26
msgid "Welcome back "
msgstr "Benvingut de nou "
#: ../../include/Contact.php:131 ../../include/conversation.php:788
msgid "View status"
msgstr "Veure estatus"
#: ../../include/security.php:344
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 "El formulari del token de seguretat no es correcte. Això probablement passa perquè el formulari ha estat massa temps obert (>3 hores) abans d'enviat-lo."
#: ../../include/Contact.php:132 ../../include/conversation.php:789
msgid "View profile"
msgstr "Veure perfil"
#: ../../include/Contact.php:111
msgid "stopped following"
msgstr "Deixar de seguir"
#: ../../include/Contact.php:133 ../../include/conversation.php:790
msgid "View photos"
msgstr "Veure fotos"
#: ../../include/Contact.php:220 ../../include/conversation.php:1106
msgid "Poke"
msgstr ""
#: ../../include/Contact.php:134 ../../include/Contact.php:147
#: ../../include/conversation.php:791
msgid "View recent"
msgstr "Veure recent"
#: ../../include/Contact.php:221 ../../include/conversation.php:1100
msgid "View Status"
msgstr "Veure Estatus"
#: ../../include/Contact.php:136 ../../include/Contact.php:147
#: ../../include/conversation.php:793
#: ../../include/Contact.php:222 ../../include/conversation.php:1101
msgid "View Profile"
msgstr "Veure Perfil"
#: ../../include/Contact.php:223 ../../include/conversation.php:1102
msgid "View Photos"
msgstr "Veure Fotos"
#: ../../include/Contact.php:224 ../../include/Contact.php:237
#: ../../include/conversation.php:1103
msgid "Network Posts"
msgstr "Enviaments a la Xarxa"
#: ../../include/Contact.php:225 ../../include/Contact.php:237
#: ../../include/conversation.php:1104
msgid "Edit Contact"
msgstr "Editat Contacte"
#: ../../include/Contact.php:226 ../../include/Contact.php:237
#: ../../include/conversation.php:1105
msgid "Send PM"
msgstr "Enviar Missatge Privat"
#: ../../include/conversation.php:163
#: ../../include/conversation.php:206
#, php-format
msgid "%1$s poked %2$s"
msgstr ""
#: ../../include/conversation.php:290
msgid "post/item"
msgstr "anunci/element"
#: ../../include/conversation.php:164
#: ../../include/conversation.php:291
#, php-format
msgid "%1$s marked %2$s's %3$s as favorite"
msgstr "%1$s marcat %2$s's %3$s com favorit"
#: ../../include/conversation.php:303 ../../include/conversation.php:572
msgid "Select"
msgstr "Selecionar"
#: ../../include/conversation.php:645 ../../include/conversation.php:919
#: ../../object/Item.php:217
msgid "Categories:"
msgstr ""
#: ../../include/conversation.php:320 ../../include/conversation.php:665
#: ../../include/conversation.php:666
#, php-format
msgid "View %s's profile @ %s"
msgstr "Veure perfil de %s @ %s"
#: ../../include/conversation.php:646 ../../include/conversation.php:920
#: ../../object/Item.php:218
msgid "Filed under:"
msgstr ""
#: ../../include/conversation.php:330 ../../include/conversation.php:677
#, php-format
msgid "%s from %s"
msgstr "%s des de %s"
#: ../../include/conversation.php:1002
msgid "remove"
msgstr "esborrar"
#: ../../include/conversation.php:346
msgid "View in context"
msgstr "Veure en context"
#: ../../include/conversation.php:467
#, php-format
msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] "%d comentari"
msgstr[1] "%d comentaris"
#: ../../include/conversation.php:468 ../../boot.php:448
msgid "show more"
msgstr "Mostrar més"
#: ../../include/conversation.php:529
msgid "like"
msgstr "Agrada"
#: ../../include/conversation.php:530
msgid "dislike"
msgstr "Desagrada"
#: ../../include/conversation.php:532
msgid "Share this"
msgstr "Compartir això"
#: ../../include/conversation.php:532
msgid "share"
msgstr "Compartir"
#: ../../include/conversation.php:582
msgid "add star"
msgstr "Afegir a favorits"
#: ../../include/conversation.php:583
msgid "remove star"
msgstr "Esborrar favorit"
#: ../../include/conversation.php:584
msgid "toggle star status"
msgstr "Canviar estatus de favorit"
#: ../../include/conversation.php:587
msgid "starred"
msgstr "favorit"
#: ../../include/conversation.php:588
msgid "add tag"
msgstr "afegir etiqueta"
#: ../../include/conversation.php:667
msgid "to"
msgstr "a"
#: ../../include/conversation.php:668
msgid "Wall-to-Wall"
msgstr "Mur-a-Mur"
#: ../../include/conversation.php:669
msgid "via Wall-To-Wall:"
msgstr "via Mur-a-Mur"
#: ../../include/conversation.php:713
#: ../../include/conversation.php:1006
msgid "Delete Selected Items"
msgstr "Esborra els Elements Seleccionats"
#: ../../include/conversation.php:845
#: ../../include/conversation.php:1164
#, php-format
msgid "%s likes this."
msgstr "a %s agrada això."
#: ../../include/conversation.php:845
#: ../../include/conversation.php:1164
#, php-format
msgid "%s doesn't like this."
msgstr "a %s desagrada això."
#: ../../include/conversation.php:849
#: ../../include/conversation.php:1168
#, php-format
msgid "<span %1$s>%2$d people</span> like this."
msgstr "Li agrada a<span %1$s>%2$d persones</span> ."
msgstr "Li agrada a <span %1$s>%2$d persones</span> ."
#: ../../include/conversation.php:851
#: ../../include/conversation.php:1170
#, php-format
msgid "<span %1$s>%2$d people</span> don't like this."
msgstr "No li agrada<span %1$s>%2$d persones</span> ."
msgstr "No li agrada <span %1$s>%2$d persones</span> ."
#: ../../include/conversation.php:857
#: ../../include/conversation.php:1176
msgid "and"
msgstr "i"
#: ../../include/conversation.php:860
#: ../../include/conversation.php:1179
#, php-format
msgid ", and %d other people"
msgstr ", i altres %d persones"
#: ../../include/conversation.php:861
#: ../../include/conversation.php:1180
#, php-format
msgid "%s like this."
msgstr "a %s le gusta esto."
msgstr "a %s li agrada això."
#: ../../include/conversation.php:861
#: ../../include/conversation.php:1180
#, php-format
msgid "%s don't like this."
msgstr "a %s no le gusta esto."
msgstr "a %s no li agrada això."
#: ../../include/conversation.php:886
#: ../../include/conversation.php:1204 ../../include/conversation.php:1221
msgid "Visible to <strong>everybody</strong>"
msgstr "Visible per a <strong>tothom</strong>"
#: ../../include/conversation.php:888
#: ../../include/conversation.php:1206 ../../include/conversation.php:1223
msgid "Please enter a video link/URL:"
msgstr "Per favor , introdueixi el enllaç/URL del video"
#: ../../include/conversation.php:889
#: ../../include/conversation.php:1207 ../../include/conversation.php:1224
msgid "Please enter an audio link/URL:"
msgstr "Per favor , introdueixi el enllaç/URL del audio:"
#: ../../include/conversation.php:890
#: ../../include/conversation.php:1208 ../../include/conversation.php:1225
msgid "Tag term:"
msgstr "Terminis de l'etiqueta:"
#: ../../include/conversation.php:891
#: ../../include/conversation.php:1210 ../../include/conversation.php:1227
msgid "Where are you right now?"
msgstr "On ets ara?"
#: ../../include/conversation.php:892
msgid "Enter a title for this item"
msgstr "Escriviu un títol per a aquest article"
#: ../../include/conversation.php:935
#: ../../include/conversation.php:1270
msgid "upload photo"
msgstr "carregar fotos"
#: ../../include/conversation.php:937
#: ../../include/conversation.php:1272
msgid "attach file"
msgstr "adjuntar arxiu"
#: ../../include/conversation.php:939
#: ../../include/conversation.php:1274
msgid "web link"
msgstr "enllaç de web"
#: ../../include/conversation.php:940
#: ../../include/conversation.php:1275
msgid "Insert video link"
msgstr "Insertar enllaç de video"
#: ../../include/conversation.php:941
#: ../../include/conversation.php:1276
msgid "video link"
msgstr "enllaç de video"
#: ../../include/conversation.php:942
#: ../../include/conversation.php:1277
msgid "Insert audio link"
msgstr "Insertar enllaç de audio"
#: ../../include/conversation.php:943
#: ../../include/conversation.php:1278
msgid "audio link"
msgstr "enllaç de audio"
#: ../../include/conversation.php:945
#: ../../include/conversation.php:1280
msgid "set location"
msgstr "establir la ubicació"
#: ../../include/conversation.php:947
#: ../../include/conversation.php:1282
msgid "clear location"
msgstr "netejar ubicació"
#: ../../include/conversation.php:952
#: ../../include/conversation.php:1289
msgid "permissions"
msgstr "Permissos"
#: ../../boot.php:446
#: ../../include/plugin.php:389 ../../include/plugin.php:391
msgid "Click here to upgrade."
msgstr "Clica aquí per actualitzar."
#: ../../include/plugin.php:397
msgid "This action exceeds the limits set by your subscription plan."
msgstr "Aquesta acció excedeix els límits del teu plan de subscripció."
#: ../../include/plugin.php:402
msgid "This action is not available under your subscription plan."
msgstr "Aquesta acció no està disponible en el teu plan de subscripció."
#: ../../boot.php:573
msgid "Delete this item?"
msgstr "Esborrar aquest element?"
#: ../../boot.php:449
#: ../../boot.php:576
msgid "show fewer"
msgstr "Mostrar menys"
#: ../../boot.php:692
#: ../../boot.php:783
#, php-format
msgid "Update %s failed. See error logs."
msgstr "Actualització de %s fracassà. Mira el registre d'errors."
#: ../../boot.php:785
#, php-format
msgid "Update Error at %s"
msgstr "Error d'actualització en %s"
#: ../../boot.php:886
msgid "Create a New Account"
msgstr "Crear un Nou Compte"
#: ../../boot.php:712
#: ../../boot.php:914
msgid "Nickname or Email address: "
msgstr "Malnom o Adreça de correu:"
msgstr "Àlies o Adreça de correu:"
#: ../../boot.php:713
#: ../../boot.php:915
msgid "Password: "
msgstr "Contrasenya:"
#: ../../boot.php:716
#: ../../boot.php:918
msgid "Or login using OpenID: "
msgstr "O accedixi emprant OpenID:"
#: ../../boot.php:722
#: ../../boot.php:924
msgid "Forgot your password?"
msgstr "Oblidà la contrasenya?"
#: ../../boot.php:879
#: ../../boot.php:1035
msgid "Requested account is not available."
msgstr ""
#: ../../boot.php:1112
msgid "Edit profile"
msgstr "Editar perfil"
#: ../../boot.php:1046 ../../boot.php:1117
#: ../../boot.php:1178
msgid "Message"
msgstr "Missatge"
#: ../../boot.php:1300 ../../boot.php:1386
msgid "g A l F d"
msgstr "g A l F d"
#: ../../boot.php:1047 ../../boot.php:1118
#: ../../boot.php:1301 ../../boot.php:1387
msgid "F d"
msgstr "F d"
#: ../../boot.php:1072
msgid "Birthday Reminders"
msgstr "Recordatori d'Aniversaris"
#: ../../boot.php:1073
msgid "Birthdays this week:"
msgstr "Aniversari aquesta setmana"
#: ../../boot.php:1096 ../../boot.php:1160
#: ../../boot.php:1346 ../../boot.php:1427
msgid "[today]"
msgstr "[avui]"
#: ../../boot.php:1141
#: ../../boot.php:1358
msgid "Birthday Reminders"
msgstr "Recordatori d'Aniversaris"
#: ../../boot.php:1359
msgid "Birthdays this week:"
msgstr "Aniversari aquesta setmana"
#: ../../boot.php:1420
msgid "[No description]"
msgstr "[sense descripció]"
#: ../../boot.php:1438
msgid "Event Reminders"
msgstr "Recordatori d'Esdeveniments"
#: ../../boot.php:1142
#: ../../boot.php:1439
msgid "Events this week:"
msgstr "Esdeveniments aquesta setmana"
#: ../../boot.php:1154
msgid "[No description]"
msgstr "[sense descripció]"
#: ../../boot.php:1668
msgid "Status Messages and Posts"
msgstr "Missatges i Enviaments d'Estatus"
#: ../../boot.php:1675
msgid "Profile Details"
msgstr "Detalls del Perfil"
#: ../../boot.php:1692
msgid "Events and Calendar"
msgstr "Esdeveniments i Calendari"
#: ../../boot.php:1699
msgid "Only You Can See This"
msgstr "Només ho pots veure tu"

View file

@ -1,7 +1,7 @@
<?php
function string_plural_select_ca($n){
return ($n != 1);
return ($n != 1);;
}
;
$a->strings["Post successful."] = "Publicat amb éxit.";
@ -15,8 +15,8 @@ $a->strings["<strong>WARNING: This is highly advanced</strong> and if you enter
$a->strings["Please use your browser 'Back' button <strong>now</strong> if you are uncertain what to do on this page."] = "Si us plau, prem el botó 'Tornar' <strong>ara</strong> si no saps segur que has de fer aqui.";
$a->strings["Return to contact editor"] = "Tornar al editor de contactes";
$a->strings["Name"] = "Nom";
$a->strings["Account Nickname"] = "Malnom de Compte";
$a->strings["@Tagname - overrides Name/Nickname"] = "@Tagname - té prel·lació sobre Nom/Malnom";
$a->strings["Account Nickname"] = "Àlies del Compte";
$a->strings["@Tagname - overrides Name/Nickname"] = "@Tagname - té prel·lació sobre Nom/Àlies";
$a->strings["Account URL"] = "Adreça URL del Compte";
$a->strings["Friend Request URL"] = "Adreça URL de sol·licitud d'Amistat";
$a->strings["Friend Confirm URL"] = "Adreça URL de confirmació d'Amic";
@ -32,24 +32,26 @@ $a->strings["File exceeds size limit of %d"] = "L'arxiu excedeix la mida límit
$a->strings["File upload failed."] = "La càrrega de fitxers ha fallat.";
$a->strings["Friend suggestion sent."] = "Enviat suggeriment d'amic.";
$a->strings["Suggest Friends"] = "Suggerir Amics";
$a->strings["Suggest a friend for %s"] = "Suggerir una amic per a %s";
$a->strings["Event description and start time are required."] = "Es requereix descripció de l'esdeveniment i l'hora d'inici.";
$a->strings["Suggest a friend for %s"] = "Suggerir un amic per a %s";
$a->strings["Event title and start time are required."] = "Títol d'esdeveniment i hora d'inici requerits.";
$a->strings["l, F j"] = "l, F j";
$a->strings["Edit event"] = "Editar esdeveniment";
$a->strings["link to source"] = "Enllaç al origen";
$a->strings["Events"] = "Esdeveniments";
$a->strings["Create New Event"] = "Crear un nou esdeveniment";
$a->strings["Previous"] = "Previ";
$a->strings["Next"] = "Proper";
$a->strings["Next"] = "Següent";
$a->strings["hour:minute"] = "hora:minut";
$a->strings["Event details"] = "Detalls del esdeveniment";
$a->strings["Format is %s %s. Starting date and Description are required."] = "El format és %s %s. Es requereix Data d'inici i Descripció.";
$a->strings["Format is %s %s. Starting date and Title are required."] = "El Format és %s %s. Data d'inici i títol requerits.";
$a->strings["Event Starts:"] = "Inici d'Esdeveniment:";
$a->strings["Required"] = "Requerit";
$a->strings["Finish date/time is not known or not relevant"] = "La data/hora de finalització no es coneixen o no són relevants";
$a->strings["Event Finishes:"] = "L'esdeveniment Finalitza:";
$a->strings["Adjust for viewer timezone"] = "Ajustar a la zona horaria de l'espectador";
$a->strings["Description:"] = "Descripció:";
$a->strings["Location:"] = "Ubicació:";
$a->strings["Title:"] = "Títol:";
$a->strings["Share this event"] = "Compartir aquest esdeveniment";
$a->strings["Cancel"] = "Cancel·lar";
$a->strings["Tag removed"] = "Etiqueta eliminada";
@ -82,12 +84,16 @@ $a->strings["Image upload failed."] = "Actualització de la imatge fracassada.";
$a->strings["Public access denied."] = "Accés públic denegat.";
$a->strings["No photos selected"] = "No s'han seleccionat fotos";
$a->strings["Access to this item is restricted."] = "L'accés a aquest element està restringit.";
$a->strings["You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."] = "Has emprat %1$.2f Mbytes de %2$.2f Mbytes del magatzem de fotos.";
$a->strings["You have used %1$.2f Mbytes of photo storage."] = "Has emprat %1$.2f Mbytes del magatzem de fotos.";
$a->strings["Upload Photos"] = "Carregar Fotos";
$a->strings["New album name: "] = "Nou nom d'àlbum:";
$a->strings["or existing album name: "] = "o nom d'àlbum existent:";
$a->strings["Do not show a status post for this upload"] = "No tornis a mostrar un missatge d'estat d'aquesta pujada";
$a->strings["Permissions"] = "Permisos";
$a->strings["Edit Album"] = "Editar Àlbum";
$a->strings["Show Newest First"] = "";
$a->strings["Show Oldest First"] = "";
$a->strings["View Photo"] = "Veure Foto";
$a->strings["Permission denied. Access to this item may be restricted."] = "Permís denegat. L'accés a aquest element pot estar restringit.";
$a->strings["Photo not available"] = "Foto no disponible";
@ -98,6 +104,8 @@ $a->strings["Private Message"] = "Missatge Privat";
$a->strings["View Full Size"] = "Veure'l a Mida Completa";
$a->strings["Tags: "] = "Etiquetes:";
$a->strings["[Remove any tag]"] = "Treure etiquetes";
$a->strings["Rotate CW (right)"] = "Rotar CW (dreta)";
$a->strings["Rotate CCW (left)"] = "Rotar CCW (esquerra)";
$a->strings["New album name"] = "Nou nom d'àlbum";
$a->strings["Caption"] = "Títol";
$a->strings["Add a Tag"] = "Afegir una etiqueta";
@ -120,7 +128,7 @@ $a->strings["running at web location"] = "funcionant en la ubicació web";
$a->strings["Please visit <a href=\"http://friendica.com\">Friendica.com</a> to learn more about the Friendica project."] = "Si us plau, visiteu <a href=\"http://friendica.com\">Friendica.com</a> per obtenir més informació sobre el projecte Friendica.";
$a->strings["Bug reports and issues: please visit"] = "Pels informes d'error i problemes: si us plau, visiteu";
$a->strings["Suggestions, praise, donations, etc. - please email \"Info\" at Friendica - dot com"] = "Suggeriments, elogis, donacions, etc si us plau escrigui a \"Info\" en Friendica - dot com";
$a->strings["Installed plugins/addons/apps"] = "plugins/addons/apps instal·lats";
$a->strings["Installed plugins/addons/apps:"] = "plugins/addons/apps instal·lats:";
$a->strings["No installed plugins/addons/apps"] = "plugins/addons/apps no instal·lats";
$a->strings["Item not found"] = "Element no trobat";
$a->strings["Edit post"] = "Editar Enviament";
@ -138,6 +146,7 @@ $a->strings["Permission settings"] = "Configuració de permisos";
$a->strings["CC: email addresses"] = "CC: Adreça de correu";
$a->strings["Public post"] = "Enviament públic";
$a->strings["Set title"] = "Canviar títol";
$a->strings["Categories (comma-separated list)"] = "Categories (lista separada per comes)";
$a->strings["Example: bob@example.com, mary@example.com"] = "Exemple: bob@example.com, mary@example.com";
$a->strings["This introduction has already been accepted."] = "Aquesta presentació ha estat acceptada.";
$a->strings["Profile location is not valid or does not contain profile information."] = "El perfil de situació no és vàlid o no contè informació de perfil";
@ -154,6 +163,8 @@ $a->strings["%s has received too many connection requests today."] = "%s avui ha
$a->strings["Spam protection measures have been invoked."] = "Mesures de protecció contra spam han estat invocades.";
$a->strings["Friends are advised to please try again in 24 hours."] = "S'aconsellà els amics que probin pasades 24 hores.";
$a->strings["Invalid locator"] = "Localitzador no vàlid";
$a->strings["Invalid email address."] = "Adreça de correu no vàlida.";
$a->strings["This account has not been configured for email. Request failed."] = "Aquest compte no s'ha configurat per al correu electrònic. Ha fallat la sol·licitud.";
$a->strings["Unable to resolve your name at the provided location."] = "Incapaç de resoldre el teu nom al lloc facilitat.";
$a->strings["You have already introduced yourself here."] = "Has fer la teva presentació aquí.";
$a->strings["Apparently you are already friends with %s."] = "Aparentment, ja tens amistat amb %s";
@ -163,12 +174,14 @@ $a->strings["Failed to update contact record."] = "Error en actualitzar registre
$a->strings["Your introduction has been sent."] = "La teva presentació ha estat enviada.";
$a->strings["Please login to confirm introduction."] = "Si us plau, entri per confirmar la presentació.";
$a->strings["Incorrect identity currently logged in. Please login to <strong>this</strong> profile."] = "Sesió iniciada amb la identificació incorrecta. Entra en <strong>aquest</strong> perfil.";
$a->strings["Hide this contact"] = "Amaga aquest contacte";
$a->strings["Welcome home %s."] = "Benvingut de nou %s";
$a->strings["Please confirm your introduction/connection request to %s."] = "Si us plau, confirmi la seva sol·licitud de Presentació/Amistat a %s.";
$a->strings["Confirm"] = "Confirmar";
$a->strings["[Name Withheld]"] = "[Nom Amagat]";
$a->strings["Diaspora members: Please do not use this form. Instead, enter \"%s\" into your Diaspora search bar."] = "Membres de Diàspora: Si us plau, no utilitzi aquest formulari. Pel contrari, escriviu \"%s\" a la barra de cerca de Diàspora.";
$a->strings["Please enter your 'Identity Address' from one of the following supported social networks:"] = "Si us plau, introdueixi la seva \"Adreça Identificativa\" d'una de les següents xarxes socials suportades:";
$a->strings["Please enter your 'Identity Address' from one of the following supported communications networks:"] = "Si us plau, introdueixi la seva \"Adreça Identificativa\" d'una de les següents xarxes socials suportades:";
$a->strings["<strike>Connect as an email follower</strike> (Coming soon)"] = "<strike>Connectar com un seguidor de correu</strike> (Disponible aviat)";
$a->strings["If you are not yet a member of the free social web, <a href=\"http://dir.friendica.com/siteinfo\">follow this link to find a public Friendica site and join us today</a>."] = "Si encara no ets membre de la web social lliure, <a href=\"http://dir.friendica.com/siteinfo\">segueix aquest enllaç per a trobar un lloc Friendica públic i uneix-te avui</a>.";
$a->strings["Friend/Connection Request"] = "Sol·licitud d'Amistat";
$a->strings["Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca"] = "Exemples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca";
$a->strings["Please answer the following:"] = "Si us plau, contesti les següents preguntes:";
@ -177,22 +190,18 @@ $a->strings["Add a personal note:"] = "Afegir una nota personal:";
$a->strings["Friendica"] = "Friendica";
$a->strings["StatusNet/Federated Social Web"] = "Web Social StatusNet/Federated ";
$a->strings["Diaspora"] = "Diaspora";
$a->strings["- please share from your own site as noted above"] = "- si us plau, Comparteix des del teu propi lloc tal com s'ha dit abans.";
$a->strings[" - please do not use this form. Instead, enter %s into your Diaspora search bar."] = " - per favor no utilitzi aquest formulari. Al contrari, entra %s en la barra de cerques de Diaspora.";
$a->strings["Your Identity Address:"] = "La Teva Adreça Identificativa:";
$a->strings["Submit Request"] = "Sol·licitud Enviada";
$a->strings["Friendica Social Communications Server - Setup"] = "Friendica Social Communications Server - Ajustos";
$a->strings["Database connection"] = "Conexió a la base de dades";
$a->strings["Could not connect to database."] = "No puc connectar a la base de dades.";
$a->strings["Could not create table."] = "No puc creat taula.";
$a->strings["Your Friendica site database has been installed."] = "La base de dades del teu lloc Friendica ha estat instal·lada.";
$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "IMPORTANT: necessitarà configurar [manualment] el programar una tasca pel sondejador (poller.php)";
$a->strings["Please see the file \"INSTALL.txt\"."] = "Per favor, consulti l'arxiu \"INSTALL.txt\".";
$a->strings["Proceed to registration"] = "Procedir a la inscripció";
$a->strings["Proceed with Installation"] = "Procedeixi amb la Instal·lació";
$a->strings["You may need to import the file \"database.sql\" manually using phpmyadmin or mysql."] = "Pot ser que hagi d'importar l'arxiu \"database.sql\" manualment amb phpmyadmin o mysql.";
$a->strings["Database import failed."] = "La importació de base de dades ha fallat.";
$a->strings["Please see the file \"INSTALL.txt\"."] = "Per favor, consulti l'arxiu \"INSTALL.txt\".";
$a->strings["System check"] = "Comprovació del Sistema";
$a->strings["Check again"] = "Comprovi de nou";
$a->strings["Database connection"] = "Conexió a la base de dades";
$a->strings["In order to install Friendica we need to know how to connect to your database."] = "Per a instal·lar Friendica necessitem conèixer com connectar amb la deva base de dades.";
$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Per favor, posi's en contacte amb el seu proveïdor de hosting o administrador del lloc si té alguna pregunta sobre aquestes opcions.";
$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "La base de dades que especifiques ja hauria d'existir. Si no és així, crea-la abans de continuar.";
@ -205,12 +214,13 @@ $a->strings["Your account email address must match this in order to use the web
$a->strings["Please select a default timezone for your website"] = "Per favor, seleccioni una zona horària per defecte per al seu lloc web";
$a->strings["Site settings"] = "Configuracions del lloc";
$a->strings["Could not find a command line version of PHP in the web server PATH."] = "No es va poder trobar una versió de línia de comandos de PHP en la ruta del servidor web.";
$a->strings["If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron. See <a href='http://friendica.com/node/27'>'Activating scheduled tasks'</a>"] = "Si no tens una versió de línia de comandos instal·lada al teu servidor PHP, no podràs fer córrer els sondejos via cron. Mira <a href='http://friendica.com/node/27'>'Activating scheduled tasks'</a>";
$a->strings["PHP executable path"] = "Direcció del executable PHP";
$a->strings["Enter full path to php executable"] = "Introdueixi el camí complet del executable php";
$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Entra la ruta sencera fins l'executable de php. Pots deixar això buit per continuar l'instal·lació.";
$a->strings["Command line PHP"] = "Linia de comandos PHP";
$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "La versió de línia de comandos de PHP en el seu sistema no té \"register_argc_argv\" habilitat.";
$a->strings["This is required for message delivery to work."] = "Això és necessari perquè funcioni el lliurament de missatges.";
$a->strings["PHP \"register_argc_argv\""] = "PHP \"register_argc_argv\"";
$a->strings["PHP register_argc_argv"] = "PHP register_argc_argv";
$a->strings["Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"] = "Error: la funció \"openssl_pkey_new\" en aquest sistema no és capaç de generar claus de xifrat";
$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Si s'executa en Windows, per favor consulti la secció \"http://www.php.net/manual/en/openssl.installation.php\".";
$a->strings["Generate encryption keys"] = "Generar claus d'encripció";
@ -219,7 +229,7 @@ $a->strings["GD graphics PHP module"] = "Mòdul GD de gràfics de PHP";
$a->strings["OpenSSL PHP module"] = "Mòdul OpenSSl de PHP";
$a->strings["mysqli PHP module"] = "Mòdul mysqli de PHP";
$a->strings["mb_string PHP module"] = "Mòdul mb_string de PHP";
$a->strings["Apace mod_rewrite module"] = "Mòdul mod_rewrite de Apache";
$a->strings["Apache mod_rewrite module"] = "Apache mod_rewrite modul ";
$a->strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Error: el mòdul mod-rewrite del servidor web Apache és necessari però no està instal·lat.";
$a->strings["Error: libCURL PHP module required but not installed."] = "Error: El mòdul libCURL de PHP és necessari però no està instal·lat.";
$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Error: el mòdul gràfic GD de PHP amb support per JPEG és necessari però no està instal·lat.";
@ -228,18 +238,27 @@ $a->strings["Error: mysqli PHP module required but not installed."] = "Error: El
$a->strings["Error: mb_string PHP module required but not installed."] = "Error: mòdul mb_string de PHP requerit però no instal·lat.";
$a->strings["The web installer needs to be able to create a file called \".htconfig.php\ in the top folder of your web server and it is unable to do so."] = "L'instal·lador web necessita crear un arxiu anomenat \".htconfig.php\" en la carpeta superior del seu servidor web però alguna cosa ho va impedir.";
$a->strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "Això freqüentment és a causa d'una configuració de permisos; el servidor web no pot escriure arxius en la carpeta - encara que sigui possible.";
$a->strings["Please check with your site documentation or support people to see if this situation can be corrected."] = "Per favor, consulti amb la documentació del seu lloc o persones de suport per veure si aquesta situació es pot corregir.";
$a->strings["If not, you may be required to perform a manual installation. Please see the file \"INSTALL.txt\" for instructions."] = "Si no, vostè pot ser requerit per realitzar una instal·lació manual. Per favor, consulti l'arxiu \"INSTALL.txt\" per obtenir instruccions.";
$a->strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Friendica top folder."] = "Al final d'aquest procediment, et facilitarem un text que hauràs de guardar en un arxiu que s'anomena .htconfig.php que hi es a la carpeta principal del teu Friendica.";
$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"INSTALL.txt\" for instructions."] = "Alternativament, pots saltar-te aquest procediment i configurar-ho manualment. Per favor, mira l'arxiu \"INTALL.txt\" per a instruccions.";
$a->strings[".htconfig.php is writable"] = ".htconfig.php és escribible";
$a->strings["Url rewrite in .htaccess is not working. Check your server configuration."] = "URL rewrite en .htaccess no esta treballant. Comprova la configuració del teu servidor.";
$a->strings["Url rewrite is working"] = "URL rewrite està treballant";
$a->strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "L'arxiu per a la configuració de la base de dades \".htconfig.php\" no es pot escriure. Per favor, usi el text adjunt per crear un arxiu de configuració en l'arrel del servidor web.";
$a->strings["Errors encountered creating database tables."] = "Trobats errors durant la creació de les taules de la base de dades.";
$a->strings["<h1>What next</h1>"] = "<h1>Que es següent</h1>";
$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "IMPORTANT: necessitarà configurar [manualment] el programar una tasca pel sondejador (poller.php)";
$a->strings["l F d, Y \\@ g:i A"] = "l F d, Y \\@ g:i A";
$a->strings["Time Conversion"] = "Temps de Conversió";
$a->strings["Friendika provides this service for sharing events with other networks and friends in unknown timezones."] = "Friendica ofereix aquest servei per compartir esdeveniments amb altres xarxes i amics a les zones horàries desconegudes.";
$a->strings["Friendica provides this service for sharing events with other networks and friends in unknown timezones."] = "Friendica ofereix aquest servei per compartir esdeveniments amb altres xarxes i amics a les zones horàries desconegudes.";
$a->strings["UTC time: %s"] = "hora UTC: %s";
$a->strings["Current timezone: %s"] = "Zona horària actual: %s";
$a->strings["Converted localtime: %s"] = "Conversión de hora local: %s";
$a->strings["Please select your timezone:"] = "Si us plau, seleccioneu la vostra zona horària:";
$a->strings["Poke/Prod"] = "";
$a->strings["poke, prod or do other things to somebody"] = "";
$a->strings["Recipient"] = "Recipient";
$a->strings["Choose what you wish to do to recipient"] = "";
$a->strings["Make this post private"] = "";
$a->strings["Profile Match"] = "Perfil Aconseguit";
$a->strings["No keywords to match. Please add keywords to your default profile."] = "No hi ha paraules clau que coincideixin. Si us plau, afegeixi paraules clau al teu perfil predeterminat.";
$a->strings["is interested in:"] = "està interessat en:";
@ -247,6 +266,43 @@ $a->strings["Connect"] = "Connexió";
$a->strings["No matches"] = "No hi ha coincidències";
$a->strings["Remote privacy information not available."] = "Informació de privacitat remota no disponible.";
$a->strings["Visible to:"] = "Visible per a:";
$a->strings["No such group"] = "Cap grup com";
$a->strings["Group is empty"] = "El Grup es buit";
$a->strings["Group: "] = "Grup:";
$a->strings["Select"] = "Selecionar";
$a->strings["View %s's profile @ %s"] = "Veure perfil de %s @ %s";
$a->strings["%s from %s"] = "%s des de %s";
$a->strings["View in context"] = "Veure en context";
$a->strings["%d comment"] = array(
0 => "%d comentari",
1 => "%d comentaris",
);
$a->strings["comment"] = array(
0 => "",
1 => "comentari",
);
$a->strings["show more"] = "Mostrar més";
$a->strings["like"] = "Agrada";
$a->strings["dislike"] = "Desagrada";
$a->strings["Share this"] = "Compartir això";
$a->strings["share"] = "Compartir";
$a->strings["Bold"] = "Negreta";
$a->strings["Italic"] = "Itallica";
$a->strings["Underline"] = "Subratllat";
$a->strings["Quote"] = "Cometes";
$a->strings["Code"] = "Codi";
$a->strings["Image"] = "Imatge";
$a->strings["Link"] = "Enllaç";
$a->strings["Video"] = "Video";
$a->strings["add star"] = "Afegir a favorits";
$a->strings["remove star"] = "Esborrar favorit";
$a->strings["toggle star status"] = "Canviar estatus de favorit";
$a->strings["starred"] = "favorit";
$a->strings["add tag"] = "afegir etiqueta";
$a->strings["save to folder"] = "guardat a la carpeta";
$a->strings["to"] = "a";
$a->strings["Wall-to-Wall"] = "Mur-a-Mur";
$a->strings["via Wall-To-Wall:"] = "via Mur-a-Mur";
$a->strings["Welcome to %s"] = "Benvingut a %s";
$a->strings["Invalid request identifier."] = "Sol·licitud d'identificació no vàlida.";
$a->strings["Discard"] = "Descartar";
@ -297,7 +353,8 @@ $a->strings["Contact has been blocked"] = "Elcontacte ha estat bloquejat";
$a->strings["Contact has been unblocked"] = "El contacte ha estat desbloquejat";
$a->strings["Contact has been ignored"] = "El contacte ha estat ignorat";
$a->strings["Contact has been unignored"] = "El contacte ha estat recordat";
$a->strings["stopped following"] = "Deixar de seguir";
$a->strings["Contact has been archived"] = "El contacte ha estat arxivat";
$a->strings["Contact has been unarchived"] = "El contacte ha estat desarxivat";
$a->strings["Contact has been removed."] = "El contacte ha estat tret";
$a->strings["You are mutual friends with %s"] = "Ara te una amistat mutua amb %s";
$a->strings["You are sharing with %s"] = "Estas compartint amb %s";
@ -315,8 +372,15 @@ $a->strings["%d contact in common"] = array(
$a->strings["View all contacts"] = "Veure tots els contactes";
$a->strings["Unblock"] = "Desbloquejar";
$a->strings["Block"] = "Bloquejar";
$a->strings["Toggle Blocked status"] = "Canvi de estatus blocat";
$a->strings["Unignore"] = "Treure d'Ignorats";
$a->strings["Toggle Ignored status"] = "Canvi de estatus ignorat";
$a->strings["Unarchive"] = "Desarxivat";
$a->strings["Archive"] = "Arxivat";
$a->strings["Toggle Archive status"] = "Canvi de estatus del arxiu";
$a->strings["Repair"] = "Reparar";
$a->strings["Advanced Contact Settings"] = "Ajustos Avançats per als Contactes";
$a->strings["Communications lost with this contact!"] = "La comunicació amb aquest contacte s'ha perdut!";
$a->strings["Contact Editor"] = "Editor de Contactes";
$a->strings["Profile Visibility"] = "Perfil de Visibilitat";
$a->strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Si us plau triï el perfil que voleu mostrar a %s quan estigui veient el teu de forma segura.";
@ -333,12 +397,22 @@ $a->strings["Update public posts"] = "Actualitzar enviament públic";
$a->strings["Update now"] = "Actualitza ara";
$a->strings["Currently blocked"] = "Bloquejat actualment";
$a->strings["Currently ignored"] = "Ignorat actualment";
$a->strings["Currently archived"] = "Actualment arxivat";
$a->strings["Replies/likes to your public posts <strong>may</strong> still be visible"] = "Répliques/agraiments per als teus missatges públics <strong>poden</strong> romandre visibles";
$a->strings["Suggestions"] = "Suggeriments";
$a->strings["Suggest potential friends"] = "Suggerir amics potencials";
$a->strings["All Contacts"] = "Tots els Contactes";
$a->strings["Unblocked Contacts"] = "Contactes Desbloquejats";
$a->strings["Blocked Contacts"] = "Contactes Bloquejats";
$a->strings["Ignored Contacts"] = "Contactes Ignorats";
$a->strings["Hidden Contacts"] = "Contactes Amagats";
$a->strings["Show all contacts"] = "Mostrar tots els contactes";
$a->strings["Unblocked"] = "Desblocat";
$a->strings["Only show unblocked contacts"] = "Mostrar únicament els contactes no blocats";
$a->strings["Blocked"] = "Blocat";
$a->strings["Only show blocked contacts"] = "Mostrar únicament els contactes blocats";
$a->strings["Ignored"] = "Ignorat";
$a->strings["Only show ignored contacts"] = "Mostrar únicament els contactes ignorats";
$a->strings["Archived"] = "Arxivat";
$a->strings["Only show archived contacts"] = "Mostrar únicament els contactes arxivats";
$a->strings["Hidden"] = "Amagat";
$a->strings["Only show hidden contacts"] = "Mostrar únicament els contactes amagats";
$a->strings["Mutual Friendship"] = "Amistat Mutua";
$a->strings["is a fan of yours"] = "Es un fan teu";
$a->strings["you are a fan of"] = "ets fan de";
@ -360,8 +434,16 @@ $a->strings["click here to login"] = "clica aquí per identificarte";
$a->strings["Your password may be changed from the <em>Settings</em> page after successful login."] = "Pots camviar la contrasenya des de la pàgina de <em>Configuración</em> desprès d'accedir amb èxit.";
$a->strings["Forgot your Password?"] = "Has Oblidat la Contrasenya?";
$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Introdueixi la seva adreça de correu i enivii-la per restablir la seva contrasenya. Llavors comprovi el seu correu per a les següents instruccións. ";
$a->strings["Nickname or Email: "] = "Malnom o Correu:";
$a->strings["Nickname or Email: "] = "Àlies o Correu:";
$a->strings["Reset"] = "Restablir";
$a->strings["Account settings"] = "Configuració del compte";
$a->strings["Display settings"] = "Ajustos de pantalla";
$a->strings["Connector settings"] = "Configuració dels connectors";
$a->strings["Plugin settings"] = "Configuració del plugin";
$a->strings["Connected apps"] = "App connectada";
$a->strings["Export personal data"] = "Exportar dades personals";
$a->strings["Remove account"] = "Esborrar compte";
$a->strings["Settings"] = "Ajustos";
$a->strings["Missing some important data!"] = "Perdudes algunes dades importants!";
$a->strings["Update"] = "Actualitzar";
$a->strings["Failed to connect with email account using the settings provided."] = "Connexió fracassada amb el compte de correu emprant la configuració proveïda.";
@ -374,12 +456,9 @@ $a->strings[" Please use a shorter name."] = "Si us plau, faci servir un nom mé
$a->strings[" Name too short."] = "Nom massa curt.";
$a->strings[" Not valid email."] = "Correu no vàlid.";
$a->strings[" Cannot change to that email."] = "No puc canviar a aquest correu.";
$a->strings["Private forum has no privacy permissions. Using default privacy group."] = "Els Fòrums privats no tenen permisos de privacitat. Empra la privacitat de grup per defecte.";
$a->strings["Private forum has no privacy permissions and no default privacy group."] = "Els Fòrums privats no tenen permisos de privacitat i tampoc privacitat per defecte de grup.";
$a->strings["Settings updated."] = "Ajustos actualitzats.";
$a->strings["Account settings"] = "Configuració del compte";
$a->strings["Connector settings"] = "Configuració dels connectors";
$a->strings["Plugin settings"] = "Configuració del plugin";
$a->strings["Connections"] = "Connexions";
$a->strings["Export personal data"] = "Exportar dades personals";
$a->strings["Add application"] = "Afegir aplicació";
$a->strings["Consumer Key"] = "Consumer Key";
$a->strings["Consumer Secret"] = "Consumer Secret";
@ -396,11 +475,11 @@ $a->strings["Built-in support for %s connectivity is %s"] = "El suport integrat
$a->strings["enabled"] = "habilitat";
$a->strings["disabled"] = "deshabilitat";
$a->strings["StatusNet"] = "StatusNet";
$a->strings["Email access is disabled on this site."] = "L'accés al correu està deshabilitat en aquest lloc.";
$a->strings["Connector Settings"] = "Configuració de connectors";
$a->strings["Email/Mailbox Setup"] = "Preparació de Correu/Bústia";
$a->strings["If you wish to communicate with email contacts using this service (optional), please specify how to connect to your mailbox."] = "Si vol comunicar-se amb els contactes de correu emprant aquest servei (opcional), Si us plau, especifiqui com connectar amb la seva bústia.";
$a->strings["Last successful email check:"] = "Última comprovació de correu amb èxit:";
$a->strings["Email access is disabled on this site."] = "L'accés al correu està deshabilitat en aquest lloc.";
$a->strings["IMAP server name:"] = "Nom del servidor IMAP:";
$a->strings["IMAP port:"] = "Port IMAP:";
$a->strings["Security:"] = "Seguretat:";
@ -413,14 +492,25 @@ $a->strings["Action after import:"] = "Acció després d'importar:";
$a->strings["Mark as seen"] = "Marcar com a vist";
$a->strings["Move to folder"] = "Moure a la carpeta";
$a->strings["Move to folder:"] = "Moure a la carpeta:";
$a->strings["Normal Account"] = "Compte Normal";
$a->strings["No special theme for mobile devices"] = "";
$a->strings["Display Settings"] = "Ajustos de Pantalla";
$a->strings["Display Theme:"] = "Visualitzar el Tema:";
$a->strings["Mobile Theme:"] = "";
$a->strings["Update browser every xx seconds"] = "Actualitzar navegador cada xx segons";
$a->strings["Minimum of 10 seconds, no maximum"] = "Mínim cada 10 segons, no hi ha màxim";
$a->strings["Number of items to display per page:"] = "";
$a->strings["Maximum of 100 items"] = "Màxim de 100 elements";
$a->strings["Don't show emoticons"] = "No mostrar emoticons";
$a->strings["Normal Account Page"] = "Pàgina Normal del Compte ";
$a->strings["This account is a normal personal profile"] = "Aques compte es un compte personal normal";
$a->strings["Soapbox Account"] = "Compte Tribuna";
$a->strings["Soapbox Page"] = "Pàgina de Soapbox";
$a->strings["Automatically approve all connection/friend requests as read-only fans"] = "Aprova automàticament totes les sol·licituds de amistat/connexió com a fans de només lectura.";
$a->strings["Community/Celebrity Account"] = "Compte de Comunitat/Celebritat";
$a->strings["Community Forum/Celebrity Account"] = "Compte de Comunitat/Celebritat";
$a->strings["Automatically approve all connection/friend requests as read-write fans"] = "Aprova automàticament totes les sol·licituds de amistat/connexió com a fans de lectura-escriptura";
$a->strings["Automatic Friend Account"] = "Compte d'Amistat Automàtic";
$a->strings["Automatic Friend Page"] = "Compte d'Amistat Automàtica";
$a->strings["Automatically approve all connection/friend requests as friends"] = "Aprova totes les sol·licituds de amistat/connexió com a amic automàticament";
$a->strings["Private Forum [Experimental]"] = "Fòrum Privat [Experimental]";
$a->strings["Private forum - approved members only"] = "Fòrum privat - Només membres aprovats";
$a->strings["OpenID:"] = "OpenID:";
$a->strings["(Optional) Allow this OpenID to login to this account."] = "(Opcional) Permetre a aquest OpenID iniciar sessió en aquest compte.";
$a->strings["Publish your default profile in your local site directory?"] = "Publicar el teu perfil predeterminat en el directori del lloc local?";
@ -430,6 +520,7 @@ $a->strings["Hide your profile details from unknown viewers?"] = "Amagar els det
$a->strings["Allow friends to post to your profile page?"] = "Permet als amics publicar en la seva pàgina de perfil?";
$a->strings["Allow friends to tag your posts?"] = "Permet als amics d'etiquetar els teus missatges?";
$a->strings["Allow us to suggest you as a potential friend to new members?"] = "Permeteu-nos suggerir-li com un amic potencial dels nous membres?";
$a->strings["Permit unknown people to send you private mail?"] = "Permetre a desconeguts enviar missatges al teu correu privat?";
$a->strings["Profile is <strong>not published</strong>."] = "El Perfil <strong>no està publicat</strong>.";
$a->strings["or"] = "o";
$a->strings["Your Identity Address is"] = "La seva Adreça d'Identitat és";
@ -441,6 +532,7 @@ $a->strings["Expire posts:"] = "Expiració d'enviaments";
$a->strings["Expire personal notes:"] = "Expiració de notes personals";
$a->strings["Expire starred posts:"] = "Expiració de enviaments de favorits";
$a->strings["Expire photos:"] = "Expiració de fotos";
$a->strings["Only expire posts by others:"] = "Només expiren els enviaments dels altres:";
$a->strings["Account Settings"] = "Ajustos de Compte";
$a->strings["Password Settings"] = "Ajustos de Contrasenya";
$a->strings["New Password:"] = "Nova Contrasenya:";
@ -452,15 +544,17 @@ $a->strings["Email Address:"] = "Adreça de Correu:";
$a->strings["Your Timezone:"] = "La teva zona Horària:";
$a->strings["Default Post Location:"] = "Localització per Defecte del Missatge:";
$a->strings["Use Browser Location:"] = "Ubicar-se amb el Navegador:";
$a->strings["Display Theme:"] = "Visualitzar el Tema:";
$a->strings["Update browser every xx seconds"] = "Actualitzar navegador cada xx segons";
$a->strings["Minimum of 10 seconds, no maximum"] = "Mínim cada 10 segons, no hi ha màxim";
$a->strings["Security and Privacy Settings"] = "Ajustos de Seguretat i Privacitat";
$a->strings["Maximum Friend Requests/Day:"] = "Nombre Màxim de Sol·licituds per Dia";
$a->strings["(to prevent spam abuse)"] = "(per a prevenir abusos de spam)";
$a->strings["Default Post Permissions"] = "Permisos de Correu per Defecte";
$a->strings["(click to open/close)"] = "(clicar per a obrir/tancar)";
$a->strings["Maximum private messages per day from unknown people:"] = "Màxim nombre de missatges, per dia, de desconeguts:";
$a->strings["Notification Settings"] = "Ajustos de Notificació";
$a->strings["By default post a status message when:"] = "Enviar per defecte un missatge de estatus quan:";
$a->strings["accepting a friend request"] = "Acceptar una sol·licitud d'amistat";
$a->strings["joining a forum/community"] = "Unint-se a un fòrum/comunitat";
$a->strings["making an <em>interesting</em> profile change"] = "fent un <em interesant</em> canvi al perfil";
$a->strings["Send a notification email when:"] = "Envia un correu notificant quan:";
$a->strings["You receive an introduction"] = "Has rebut una presentació";
$a->strings["Your introductions are confirmed"] = "La teva presentació està confirmada";
@ -469,7 +563,9 @@ $a->strings["Someone writes a followup comment"] = "Algú ha escrit un comentari
$a->strings["You receive a private message"] = "Has rebut un missatge privat";
$a->strings["You receive a friend suggestion"] = "Has rebut una suggerencia d'un amic";
$a->strings["You are tagged in a post"] = "Estàs etiquetat en un enviament";
$a->strings["Advanced Page Settings"] = "Ajustos Avançats de Pàgina";
$a->strings["You are poked/prodded/etc. in a post"] = "";
$a->strings["Advanced Account/Page Type Settings"] = "Ajustos Avançats de Compte/ Pàgina";
$a->strings["Change the behaviour of this account for special situations"] = "Canviar el comportament d'aquest compte en situacions especials";
$a->strings["Manage Identities and/or Pages"] = "Administrar Identitats i/o Pàgines";
$a->strings["Toggle between different identities or community/group pages which share your account details or which you have been granted \"manage\" permissions"] = "Alternar entre les diferents identitats o les pàgines de comunitats/grups que comparteixen les dades del seu compte o que se li ha concedit els permisos de \"administrar\"";
$a->strings["Select an identity to manage: "] = "Seleccionar identitat a administrar:";
@ -478,38 +574,74 @@ $a->strings["Remove term"] = "Traieu termini";
$a->strings["Saved Searches"] = "Cerques Guardades";
$a->strings["add"] = "afegir";
$a->strings["Commented Order"] = "Ordre dels Comentaris";
$a->strings["Sort by Comment Date"] = "Ordenar per Data de Comentari";
$a->strings["Posted Order"] = "Ordre dels Enviaments";
$a->strings["Sort by Post Date"] = "Ordenar per Data d'Enviament";
$a->strings["Posts that mention or involve you"] = "Missatge que et menciona o t'impliquen";
$a->strings["New"] = "Nou";
$a->strings["Activity Stream - by date"] = "Activitat del Flux - per data";
$a->strings["Starred"] = "Favorits";
$a->strings["Bookmarks"] = "Marcadors";
$a->strings["Favourite Posts"] = "Enviaments Favorits";
$a->strings["Shared Links"] = "Enllaços Compartits";
$a->strings["Interesting Links"] = "Enllaços Interesants";
$a->strings["Warning: This group contains %s member from an insecure network."] = array(
0 => "Advertència: Aquest grup conté el membre %s en una xarxa insegura.",
1 => "Advertència: Aquest grup conté %s membres d'una xarxa insegura.",
);
$a->strings["Private messages to this group are at risk of public disclosure."] = "Els missatges privats a aquest grup es troben en risc de divulgació pública.";
$a->strings["No such group"] = "Cap grup com";
$a->strings["Group is empty"] = "El Grup es buit";
$a->strings["Group: "] = "Grup:";
$a->strings["Contact: "] = "Contacte:";
$a->strings["Private messages to this person are at risk of public disclosure."] = "Els missatges privats a aquesta persona es troben en risc de divulgació pública.";
$a->strings["Invalid contact."] = "Contacte no vàlid.";
$a->strings["Personal Notes"] = "Notes Personals";
$a->strings["Save"] = "Guardar";
$a->strings["Number of daily wall messages for %s exceeded. Message failed."] = "Nombre diari de missatges al mur per %s excedit. El missatge ha fallat.";
$a->strings["No recipient selected."] = "No s'ha seleccionat destinatari.";
$a->strings["Unable to check your home location."] = "Incapaç de comprovar la localització.";
$a->strings["Message could not be sent."] = "El Missatge no ha estat enviat.";
$a->strings["Message collection failure."] = "Ha fallat la recollida del missatge.";
$a->strings["Message sent."] = "Missatge enviat.";
$a->strings["No recipient."] = "Sense destinatari.";
$a->strings["Please enter a link URL:"] = "Sius plau, entri l'enllaç URL:";
$a->strings["Send Private Message"] = "Enviant Missatge Privat";
$a->strings["If you wish for %s to respond, please check that the privacy settings on your site allow private mail from unknown senders."] = "si vols respondre a %s, comprova que els ajustos de privacitat del lloc permeten correus privats de remitents desconeguts.";
$a->strings["To:"] = "Per a:";
$a->strings["Subject:"] = "Assumpte::";
$a->strings["Your message:"] = "El teu missatge:";
$a->strings["Welcome to Friendica"] = "Benvingut a Friendica";
$a->strings["New Member Checklist"] = "Llista de Verificació dels Nous Membres";
$a->strings["We would like to offer some tips and links to help make your experience enjoyable. Click any item to visit the relevant page. A link to this page will be visible from your home page for two weeks after your initial registration and then will quietly disappear."] = "Ens agradaria oferir alguns consells i enllaços per ajudar a fer la seva experiència agradable. Feu clic a qualsevol element per visitar la pàgina corresponent. Un enllaç a aquesta pàgina serà visible des de la pàgina d'inici durant dues setmanes després de la seva inscripció inicial i després desapareixerà en silenci.";
$a->strings["We would like to offer some tips and links to help make your experience enjoyable. Click any item to visit the relevant page. A link to this page will be visible from your home page for two weeks after your initial registration and then will quietly disappear."] = "Ens agradaria oferir alguns consells i enllaços per ajudar a fer la teva experiència agradable. Feu clic a qualsevol element per visitar la pàgina corresponent. Un enllaç a aquesta pàgina serà visible des de la pàgina d'inici durant dues setmanes després de la teva inscripció inicial i després desapareixerà en silenci.";
$a->strings["Getting Started"] = "";
$a->strings["Friendica Walk-Through"] = "";
$a->strings["On your <em>Quick Start</em> page - find a brief introduction to your profile and network tabs, make some new connections, and find some groups to join."] = "";
$a->strings["Go to Your Settings"] = "";
$a->strings["On your <em>Settings</em> page - change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web."] = "En la de la seva <em>configuració</em> de la pàgina - canviï la contrasenya inicial. També prengui nota de la Adreça d'Identitat. Això s'assembla a una adreça de correu electrònic - i serà útil per fer amics a la xarxa social lliure.";
$a->strings["Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you."] = "Reviseu les altres configuracions, en particular la configuració de privadesa. Una llista de directoris no publicada és com tenir un número de telèfon no llistat. Normalment, hauria de publicar la seva llista - a menys que tots els seus amics i els amics potencials sàpiguen exactament com trobar-li.";
$a->strings["Profile"] = "Perfil";
$a->strings["Upload Profile Photo"] = "Pujar Foto del Perfil";
$a->strings["Upload a profile photo if you have not done so already. Studies have shown that people with real photos of themselves are ten times more likely to make friends than people who do not."] = "Puji una foto del seu perfil si encara no ho ha fet. Els estudis han demostrat que les persones amb fotos reals de ells mateixos tenen deu vegades més probabilitats de fer amics que les persones que no ho fan.";
$a->strings["Edit Your Profile"] = "";
$a->strings["Edit your <strong>default</strong> profile to your liking. Review the settings for hiding your list of friends and hiding the profile from unknown visitors."] = "Editi el perfil per <strong>defecte</strong> al seu gust. Reviseu la configuració per ocultar la seva llista d'amics i ocultar el perfil dels visitants desconeguts.";
$a->strings["Profile Keywords"] = "";
$a->strings["Set some public keywords for your default profile which describe your interests. We may be able to find other people with similar interests and suggest friendships."] = "Estableix algunes paraules clau públiques al teu perfil predeterminat que descriguin els teus interessos. Podem ser capaços de trobar altres persones amb interessos similars i suggerir amistats.";
$a->strings["Connecting"] = "";
$a->strings["Facebook"] = "Facebook";
$a->strings["Authorise the Facebook Connector if you currently have a Facebook account and we will (optionally) import all your Facebook friends and conversations."] = "Autoritzi el connector de Facebook si vostè té un compte al Facebook i nosaltres (opcionalment) importarem tots els teus amics de Facebook i les converses.";
$a->strings["<em>If</em> this is your own personal server, installing the Facebook addon may ease your transition to the free social web."] = "<em>Si </em> aquesta és el seu servidor personal, la instal·lació del complement de Facebook pot facilitar la transició a la web social lliure.";
$a->strings["Importing Emails"] = "";
$a->strings["Enter your email access information on your Connector Settings page if you wish to import and interact with friends or mailing lists from your email INBOX"] = "Introduïu les dades d'accés al correu electrònic a la seva pàgina de configuració de connector, si es desitja importar i relacionar-se amb amics o llistes de correu de la seva bústia d'email";
$a->strings["Edit your <strong>default</strong> profile to your liking. Review the settings for hiding your list of friends and hiding the profile from unknown visitors."] = "Editi el perfil per <strong>defecte</strong> al seu gust. Reviseu la configuració per ocultar la seva llista d'amics i ocultar el perfil dels visitants desconeguts.";
$a->strings["Set some public keywords for your default profile which describe your interests. We may be able to find other people with similar interests and suggest friendships."] = "Estableix algunes paraules clau públiques al teu perfil predeterminat que descriguin els teus interessos. Podem ser capaços de trobar altres persones amb interessos similars i suggerir amistats.";
$a->strings["Go to Your Contacts Page"] = "";
$a->strings["Your Contacts page is your gateway to managing friendships and connecting with friends on other networks. Typically you enter their address or site URL in the <em>Add New Contact</em> dialog."] = "La seva pàgina de Contactes és la seva porta d'entrada a la gestió de l'amistat i la connexió amb amics d'altres xarxes. Normalment, vostè entrar en la seva direcció o URL del lloc al diàleg <em>Afegir Nou Contacte</em>.";
$a->strings["Go to Your Site's Directory"] = "";
$a->strings["The Directory page lets you find other people in this network or other federated sites. Look for a <em>Connect</em> or <em>Follow</em> link on their profile page. Provide your own Identity Address if requested."] = "La pàgina del Directori li permet trobar altres persones en aquesta xarxa o altres llocs federats. Busqui un enllaç <em>Connectar</em> o <em>Seguir</em> a la seva pàgina de perfil. Proporcioni la seva pròpia Adreça de Identitat si així ho sol·licita.";
$a->strings["Finding New People"] = "";
$a->strings["On the side panel of the Contacts page are several tools to find new friends. We can match people by interest, look up people by name or interest, and provide suggestions based on network relationships. On a brand new site, friend suggestions will usually begin to be populated within 24 hours."] = "Al tauler lateral de la pàgina de contacte Hi ha diverses eines per trobar nous amics. Podem coincidir amb les persones per interesos, buscar persones pel nom o per interès, i oferir suggeriments basats en les relacions de la xarxa. En un nou lloc, els suggeriments d'amics, en general comencen a poblar el lloc a les 24 hores.";
$a->strings["Groups"] = "Grups";
$a->strings["Group Your Contacts"] = "";
$a->strings["Once you have made some friends, organize them into private conversation groups from the sidebar of your Contacts page and then you can interact with each group privately on your Network page."] = "Una vegada que s'han fet alguns amics, organitzi'ls en grups de conversa privada a la barra lateral de la seva pàgina de contactes i després pot interactuar amb cada grup de forma privada a la pàgina de la xarxa.";
$a->strings["Why Aren't My Posts Public?"] = "";
$a->strings["Friendica respects your privacy. By default, your posts will only show up to people you've added as friends. For more information, see the help section from the link above."] = "";
$a->strings["Getting Help"] = "";
$a->strings["Go to the Help Section"] = "";
$a->strings["Our <strong>help</strong> pages may be consulted for detail on other program features and resources."] = "A les nostres pàgines <strong>d'ajuda</strong> es poden consultar detalls sobre les característiques d'altres programes i recursos.";
$a->strings["Item not available."] = "Element no disponible";
$a->strings["Item was not found."] = "Element no trobat.";
@ -527,26 +659,10 @@ $a->strings["Members"] = "Membres";
$a->strings["Click on a contact to add or remove."] = "Clicar sobre el contacte per afegir o esborrar.";
$a->strings["Invalid profile identifier."] = "Identificador del perfil no vàlid.";
$a->strings["Profile Visibility Editor"] = "Editor de Visibilitat del Perfil";
$a->strings["Profile"] = "Perfil";
$a->strings["Visible To"] = "Visible Per";
$a->strings["All Contacts (with secure profile access)"] = "Tots els Contactes (amb accés segur al perfil)";
$a->strings["No contacts."] = "Sense Contactes";
$a->strings["View Contacts"] = "Veure Contactes";
$a->strings["An invitation is required."] = "Es requereix invitació.";
$a->strings["Invitation could not be verified."] = "La invitació no ha pogut ser verificada.";
$a->strings["Invalid OpenID url"] = "OpenID url no vàlid";
$a->strings["Please enter the required information."] = "Per favor, introdueixi la informació requerida.";
$a->strings["Please use a shorter name."] = "Per favor, empri un nom més curt.";
$a->strings["Name too short."] = "Nom massa curt.";
$a->strings["That doesn't appear to be your full (First Last) name."] = "Això no sembla ser el teu nom complet.";
$a->strings["Your email domain is not among those allowed on this site."] = "El seu domini de correu electrònic no es troba entre els permesos en aquest lloc.";
$a->strings["Not a valid email address."] = "Adreça de correu no vàlida.";
$a->strings["Cannot use that email."] = "No es pot utilitzar aquest correu electrònic.";
$a->strings["Your \"nickname\" can only contain \"a-z\", \"0-9\", \"-\", and \"_\", and must also begin with a letter."] = "El teu sobrenom nomes pot contenir \"a-z\", \"0-9\", \"-\", i \"_\", i començar amb lletra.";
$a->strings["Nickname is already registered. Please choose another."] = "malnom ja registrat. Tria un altre.";
$a->strings["SERIOUS ERROR: Generation of security keys failed."] = "ERROR IMPORTANT: La generació de claus de seguretat ha fallat.";
$a->strings["An error occurred during registration. Please try again."] = "Un error ha succeït durant el registre. Intenta-ho de nou.";
$a->strings["An error occurred creating your default profile. Please try again."] = "Un error ha succeit durant la creació del teu perfil per defecte. Intenta-ho de nou.";
$a->strings["Registration details for %s"] = "Detalls del registre per a %s";
$a->strings["Registration successful. Please check your email for further instructions."] = "Registrat amb èxit. Per favor, comprovi el seu correu per a posteriors instruccions.";
$a->strings["Failed to send email message. Here is the message that failed."] = "Error en enviar missatge de correu electrònic. Aquí està el missatge que ha fallat.";
@ -563,8 +679,8 @@ $a->strings["Your invitation ID: "] = "El teu ID de invitació:";
$a->strings["Registration"] = "Procés de Registre";
$a->strings["Your Full Name (e.g. Joe Smith): "] = "El seu nom complet (per exemple, Joan Ningú):";
$a->strings["Your Email Address: "] = "La Seva Adreça de Correu:";
$a->strings["Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be '<strong>nickname@\$sitename</strong>'."] = "Tria un nom de perfil. Això ha de començar amb un caràcter de text. La seva adreça de perfil en aquest lloc serà '<strong>malnom@\$sitename</strong>'.";
$a->strings["Choose a nickname: "] = "Tria un malnom:";
$a->strings["Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be '<strong>nickname@\$sitename</strong>'."] = "Tria un nom de perfil. Això ha de començar amb un caràcter de text. La seva adreça de perfil en aquest lloc serà '<strong>alies@\$sitename</strong>'.";
$a->strings["Choose a nickname: "] = "Tria un àlies:";
$a->strings["Register"] = "Registrar";
$a->strings["People Search"] = "Cercant Gent";
$a->strings["status"] = "estatus";
@ -572,6 +688,8 @@ $a->strings["%1\$s likes %2\$s's %3\$s"] = "a %1\$s agrada %2\$s de %3\$s";
$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "a %1\$s no agrada %2\$s de %3\$s";
$a->strings["Item not found."] = "Article no trobat.";
$a->strings["Access denied."] = "Accés denegat.";
$a->strings["Photos"] = "Fotos";
$a->strings["Files"] = "Arxius";
$a->strings["Account approved."] = "Compte aprovat.";
$a->strings["Registration revoked for %s"] = "Procés de Registre revocat per a %s";
$a->strings["Please login."] = "Si us plau, ingressa.";
@ -583,13 +701,16 @@ $a->strings["This message was sent to you by %s, a member of the Friendica socia
$a->strings["You may visit them online at %s"] = "El pot visitar en línia a %s";
$a->strings["Please contact the sender by replying to this post if you do not wish to receive these messages."] = "Si us plau, poseu-vos en contacte amb el remitent responent a aquest missatge si no voleu rebre aquests missatges.";
$a->strings["%s posted an update."] = "%s ha publicat una actualització.";
$a->strings["%1\$s is currently %2\$s"] = "";
$a->strings["Mood"] = "";
$a->strings["Set your current mood and tell your friends"] = "";
$a->strings["Image uploaded but image cropping failed."] = "Imatge pujada però no es va poder retallar.";
$a->strings["Image size reduction [%s] failed."] = "La reducció de la imatge [%s] va fracassar.";
$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Recarregui la pàgina o netegi la caché del navegador si la nova foto no apareix immediatament.";
$a->strings["Unable to process image"] = "No es pot processar la imatge";
$a->strings["Image exceeds size limit of %d"] = "La imatge sobrepassa el límit de mida de %d";
$a->strings["Upload File:"] = "Pujar arxiu:";
$a->strings["Upload Profile Photo"] = "Pujar Foto del Perfil";
$a->strings["Select a profile:"] = "";
$a->strings["Upload"] = "Pujar";
$a->strings["skip this step"] = "saltar aquest pas";
$a->strings["select a photo from your photo albums"] = "tria una foto dels teus àlbums";
@ -601,35 +722,43 @@ $a->strings["No profile"] = "Sense perfil";
$a->strings["Remove My Account"] = "Eliminar el Meu Compte";
$a->strings["This will completely remove your account. Once this has been done it is not recoverable."] = "Això eliminarà per complet el seu compte. Quan s'hagi fet això, no serà recuperable.";
$a->strings["Please enter your password for verification:"] = "Si us plau, introduïu la contrasenya per a la verificació:";
$a->strings["No recipient selected."] = "No s'ha seleccionat destinatari.";
$a->strings["Unable to locate contact information."] = "No es pot trobar informació de contacte.";
$a->strings["Message could not be sent."] = "El Missatge no ha estat enviat.";
$a->strings["Message collection failure."] = "Ha fallat la recollida del missatge.";
$a->strings["Message sent."] = "Missatge enviat.";
$a->strings["Inbox"] = "Safata d'entrada";
$a->strings["Outbox"] = "Safata de sortida";
$a->strings["New Message"] = "Nou Missatge";
$a->strings["Unable to locate contact information."] = "No es pot trobar informació de contacte.";
$a->strings["Message deleted."] = "Missatge eliminat.";
$a->strings["Conversation removed."] = "Conversació esborrada.";
$a->strings["Please enter a link URL:"] = "Sius plau, entri l'enllaç URL:";
$a->strings["Send Private Message"] = "Enviant Missatge Privat";
$a->strings["To:"] = "Per a:";
$a->strings["Subject:"] = "Assumpte::";
$a->strings["Your message:"] = "El teu missatge:";
$a->strings["No messages."] = "Sense missatges.";
$a->strings["Unknown sender - %s"] = "remitent desconegut - %s";
$a->strings["You and %s"] = "Tu i %s";
$a->strings["%s and You"] = "%s i Tu";
$a->strings["Delete conversation"] = "Esborrar conversació";
$a->strings["D, d M Y - g:i A"] = "D, d M Y - g:i A";
$a->strings["%d message"] = array(
0 => "%d missatge",
1 => "%d missatges",
);
$a->strings["Message not available."] = "Missatge no disponible.";
$a->strings["Delete message"] = "Esborra missatge";
$a->strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Comunicacions degures no disponibles. Tú <strong>pots</strong> respondre des de la pàgina de perfil del remitent.";
$a->strings["Send Reply"] = "Enviar Resposta";
$a->strings["Friends of %s"] = "Amics de %s";
$a->strings["No friends to display."] = "No hi ha amics que mostrar";
$a->strings["Theme settings updated."] = "Ajustos de Tema actualitzats";
$a->strings["Site"] = "Lloc";
$a->strings["Users"] = "Usuaris";
$a->strings["Plugins"] = "Plugins";
$a->strings["Themes"] = "Temes";
$a->strings["Logs"] = "Transcripcions";
$a->strings["DB updates"] = "Actualitzacions de BD";
$a->strings["Logs"] = "Registres";
$a->strings["Admin"] = "Admin";
$a->strings["Plugin Features"] = "Característiques del Plugin";
$a->strings["User registrations waiting for confirmation"] = "Registre d'usuari a l'espera de confirmació";
$a->strings["Normal Account"] = "Compte Normal";
$a->strings["Soapbox Account"] = "Compte Tribuna";
$a->strings["Community/Celebrity Account"] = "Compte de Comunitat/Celebritat";
$a->strings["Automatic Friend Account"] = "Compte d'Amistat Automàtic";
$a->strings["Blog Account"] = "Compte de Blog";
$a->strings["Private Forum"] = "Fòrum Privat";
$a->strings["Message queues"] = "Cues de missatges";
$a->strings["Administration"] = "Administració";
$a->strings["Summary"] = "Sumari";
$a->strings["Registered users"] = "Usuaris registrats";
@ -640,39 +769,52 @@ $a->strings["Site settings updated."] = "Ajustos del lloc actualitzats.";
$a->strings["Closed"] = "Tancat";
$a->strings["Requires approval"] = "Requereix aprovació";
$a->strings["Open"] = "Obert";
$a->strings["No SSL policy, links will track page SSL state"] = "No existe una política de SSL, se hará un seguimiento de los vínculos de la página con SSL";
$a->strings["Force all links to use SSL"] = "Forzar a tots els enllaços a utilitzar SSL";
$a->strings["Self-signed certificate, use SSL for local links only (discouraged)"] = "Certificat auto-signat, utilitzar SSL només per a enllaços locals (desaconsellat)";
$a->strings["File upload"] = "Fitxer carregat";
$a->strings["Policies"] = "Polítiques";
$a->strings["Advanced"] = "Avançat";
$a->strings["Site name"] = "Nom del lloc";
$a->strings["Banner/Logo"] = "Senyera/Logo";
$a->strings["System language"] = "Idioma del Systema";
$a->strings["System language"] = "Idioma del Sistema";
$a->strings["System theme"] = "Tema del sistema";
$a->strings["Default system theme - may be over-ridden by user profiles"] = "Tema per defecte del sitema - pot ser canviat als perfils dels usuaris";
$a->strings["Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"] = "Tema per defecte del sistema - pot ser obviat pels perfils del usuari - <a href='#' id='cnftheme'>Canviar ajustos de tema</a>";
$a->strings["Mobile system theme"] = "";
$a->strings["Theme for mobile devices"] = "";
$a->strings["SSL link policy"] = "Política SSL per als enllaços";
$a->strings["Determines whether generated links should be forced to use SSL"] = "Determina si els enllaços generats han de ser forçats a utilitzar SSL";
$a->strings["Maximum image size"] = "Mida màxima de les imatges";
$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "Mida màxima en bytes de les imatges a pujar. Per defecte es 0, que vol dir sense límits.";
$a->strings["Maximum image length"] = "";
$a->strings["Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits."] = "";
$a->strings["JPEG image quality"] = "";
$a->strings["Uploaded JPEGS will be saved at this quality setting [0-100]. Default is 100, which is full quality."] = "";
$a->strings["Register policy"] = "Política per a registrar";
$a->strings["Register text"] = "Text al registrar";
$a->strings["Will be displayed prominently on the registration page."] = "Sea mostrat de forma peminent a la pagina durant el procés de registre.";
$a->strings["Will be displayed prominently on the registration page."] = "Serà mostrat de forma preminent a la pàgina durant el procés de registre.";
$a->strings["Accounts abandoned after x days"] = "Comptes abandonats després de x dies";
$a->strings["Will not waste system resources polling external sites for abandoned accounts. Enter 0 for no time limit."] = "No gastará recursos del sistema creant enquestes des de llocs externos per a comptes abandonats. Introdueixi 0 per a cap límit temporal.";
$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "No gastará recursos del sistema creant enquestes des de llocs externos per a comptes abandonats. Introdueixi 0 per a cap límit temporal.";
$a->strings["Allowed friend domains"] = "Dominis amics permesos";
$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = "Llista de dominis separada per comes, de adreçes de correu que són permeses per establir amistats. S'admeten comodins. Deixa'l buit per a acceptar tots els dominis.";
$a->strings["Allowed email domains"] = "Dominis de correu permesos";
$a->strings["Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains"] = "Llista de dominis separada per comes, de adreçes de correu que són permeses per registrtar-se. S'admeten comodins. Deixa'l buit per a acceptar tots els dominis.";
$a->strings["Block public"] = "Bloqueig públic";
$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "Bloqueija l'accés públic a qualsevol pàgina del lloc fins que t'hagis identificat.";
$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "Bloqueja l'accés públic a qualsevol pàgina del lloc fins que t'hagis identificat.";
$a->strings["Force publish"] = "Forçar publicació";
$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Obliga a que tots el perfils en aquest lloc siguin mostrats en el directori del lloc.";
$a->strings["Global directory update URL"] = "Actualitzar URL del directori global";
$a->strings["URL to update the global directory. If this is not set, the global directory is completely unavailable to the application."] = "URL per actualitzar el directori global. Si no es configura, el directori global serà completament inaccesible per a l'aplicació. ";
$a->strings["Allow threaded items"] = "";
$a->strings["Allow infinite level threading for items on this site."] = "";
$a->strings["Private posts by default for new users"] = "";
$a->strings["Set default post permissions for all new members to the default privacy group rather than public."] = "";
$a->strings["Block multiple registrations"] = "Bloquejar multiples registracions";
$a->strings["Disallow users to register additional accounts for use as pages."] = "Inhabilita als usuaris el crear comptes adicionals per a usar com a pàgines.";
$a->strings["OpenID support"] = "Suport per a OpenID";
$a->strings["OpenID support for registration and logins."] = "Suport per a registre i validació a OpenID.";
$a->strings["Gravatar support"] = "Suport per a gravatar";
$a->strings["Search new user's photo on Gravatar."] = "Cerca la nova foto d'usuari a Gravatar.";
$a->strings["Fullname check"] = "Comprobació de nom complet";
$a->strings["Force users to register with a space between firstname and lastname in Full name, as an antispam measure"] = "Obliga els usuaris a col·locar un espai en blanc entre nom i cognoms, com a mesura antifemater";
$a->strings["Force users to register with a space between firstname and lastname in Full name, as an antispam measure"] = "Obliga els usuaris a col·locar un espai en blanc entre nom i cognoms, com a mesura antispam";
$a->strings["UTF-8 Regular expressions"] = "expresions regulars UTF-8";
$a->strings["Use PHP UTF8 regular expressions"] = "Empri expresions regulars de PHP amb format UTF8";
$a->strings["Show Community Page"] = "Mostra la Pàgina de Comunitat";
@ -689,6 +831,22 @@ $a->strings["Proxy user"] = "proxy d'usuari";
$a->strings["Proxy URL"] = "URL del proxy";
$a->strings["Network timeout"] = "Temps excedit a la xarxa";
$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Valor en segons. Canviat a 0 es sense límits (no recomenat)";
$a->strings["Delivery interval"] = "Interval d'entrega";
$a->strings["Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers."] = "Retardar processos d'entrega, en segon pla, en aquesta quantitat de segons, per reduir la càrrega del sistema . Recomanem : 4-5 per als servidors compartits , 2-3 per a servidors privats virtuals . 0-1 per els grans servidors dedicats.";
$a->strings["Poll interval"] = "Interval entre sondejos";
$a->strings["Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval."] = "Endarrerir els processos de sondeig en segon pla durant aquest període, en segons, per tal de reduir la càrrega de treball del sistema, Si s'empra 0, s'utilitza l'interval d'entregues. ";
$a->strings["Maximum Load Average"] = "Càrrega Màxima Sostinguda";
$a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Càrrega màxima del sistema abans d'apaçar els processos d'entrega i sondeig - predeterminat a 50.";
$a->strings["Update has been marked successful"] = "L'actualització ha estat marcada amb èxit";
$a->strings["Executing %s failed. Check system logs."] = "Ha fracassat l'execució de %s. Comprova el registre del sistema.";
$a->strings["Update %s was successfully applied."] = "L'actualització de %s es va aplicar amb èxit.";
$a->strings["Update %s did not return a status. Unknown if it succeeded."] = "L'actualització de %s no ha retornat el seu estatus. Es desconeix si ha estat amb èxit.";
$a->strings["Update function %s could not be found."] = "L'actualització de la funció %s no es pot trobar.";
$a->strings["No failed updates."] = "No hi ha actualitzacions fallides.";
$a->strings["Failed Updates"] = "Actualitzacions Fallides";
$a->strings["This does not include updates prior to 1139, which did not return a status."] = "Això no inclou actualitzacions anteriors a 1139, raó per la que no ha retornat l'estatus.";
$a->strings["Mark success (if update was manually applied)"] = "Marcat am èxit (si l'actualització es va fer manualment)";
$a->strings["Attempt to execute this update step automatically"] = "Intentant executar aquest pas d'actualització automàticament";
$a->strings["%s user blocked/unblocked"] = array(
0 => "%s usuari bloquejar/desbloquejar",
1 => "%s usuaris bloquejar/desbloquejar",
@ -706,6 +864,7 @@ $a->strings["Request date"] = "Data de sol·licitud";
$a->strings["Email"] = "Correu";
$a->strings["No registrations."] = "Sense registres.";
$a->strings["Deny"] = "Denegar";
$a->strings["Site admin"] = "";
$a->strings["Register date"] = "Data de registre";
$a->strings["Last login"] = "Últim accés";
$a->strings["Last item"] = "Últim element";
@ -717,16 +876,16 @@ $a->strings["Plugin %s enabled."] = "Plugin %s habilitat.";
$a->strings["Disable"] = "Deshabilitar";
$a->strings["Enable"] = "Habilitar";
$a->strings["Toggle"] = "Canviar";
$a->strings["Settings"] = "Ajustos";
$a->strings["Author: "] = "Autor:";
$a->strings["Maintainer: "] = "Encarregat:";
$a->strings["No themes found."] = "No s'ha trobat temes.";
$a->strings["Screenshot"] = "Captura de pantalla";
$a->strings["[Experimental]"] = "[Experimental]";
$a->strings["[Unsupported]"] = "[No soportat]";
$a->strings["Log settings updated."] = "Configuració del transcriptor actualitzada.";
$a->strings["Log settings updated."] = "Configuració del registre actualitzada.";
$a->strings["Clear"] = "Netejar";
$a->strings["Debugging"] = "Esplugar";
$a->strings["Log file"] = "Arxiu de transcripció";
$a->strings["Log file"] = "Arxiu de registre";
$a->strings["Must be writable by web server. Relative to your Friendica top-level directory."] = "Ha de tenir permisos d'escriptura pel servidor web. En relació amb el seu directori Friendica de nivell superior.";
$a->strings["Log level"] = "Nivell de transcripció";
$a->strings["Close"] = "Tancar";
@ -747,26 +906,39 @@ $a->strings["{0} is now friends with %s"] = "{0} ara és amic de %s";
$a->strings["{0} posted"] = "{0} publicat";
$a->strings["{0} tagged %s's post with #%s"] = "{0} va etiquetar la publicació de %s com #%s";
$a->strings["{0} mentioned you in a post"] = "{0} et menciona en un missatge";
$a->strings["Contacts who are not members of a group"] = "Contactes que no pertanyen a cap grup";
$a->strings["OpenID protocol error. No ID returned."] = "Error al protocol OpenID. No ha retornat ID.";
$a->strings["Account not found and OpenID registration is not permitted on this site."] = "Compte no trobat i el registrar-se amb OpenID no està permès en aquest lloc.";
$a->strings["Login failed."] = "Error d'accés.";
$a->strings["Connect URL missing."] = "URL del connector perduda.";
$a->strings["This site is not configured to allow communications with other networks."] = "Aquest lloc no està configurat per permetre les comunicacions amb altres xarxes.";
$a->strings["No compatible communication protocols or feeds were discovered."] = "Protocol de comunnicació no compatible o alimentador descobert.";
$a->strings["The profile address specified does not provide adequate information."] = "L'adreça de perfil especificada no proveeix informació adient.";
$a->strings["An author or name was not found."] = "Un autor o nom no va ser trobat";
$a->strings["No browser URL could be matched to this address."] = "Cap direcció URL del navegador coincideix amb aquesta adreça.";
$a->strings["The profile address specified belongs to a network which has been disabled on this site."] = "La direcció del perfil especificat pertany a una xarxa que ha estat desactivada en aquest lloc.";
$a->strings["Limited profile. This person will be unable to receive direct/personal notifications from you."] = "Perfil limitat. Aquesta persona no podrà rebre notificacions personals/directes de tu.";
$a->strings["Unable to retrieve contact information."] = "No es pot recuperar la informació de contacte.";
$a->strings["following"] = "seguint";
$a->strings["Contact added"] = "Contacte afegit";
$a->strings["Common Friends"] = "Amics Comuns";
$a->strings["No friends in common."] = "No hi ha amics en comú.";
$a->strings["No contacts in common."] = "Sense contactes en comú.";
$a->strings["link"] = "enllaç";
$a->strings["Item has been removed."] = "El element ha estat esborrat.";
$a->strings["Applications"] = "Aplicacions";
$a->strings["No installed applications."] = "Aplicacions no instal·lades.";
$a->strings["Search This Site"] = "Cerca en Aquest Lloc";
$a->strings["Search"] = "Cercar";
$a->strings["Profile not found."] = "Perfil no trobat.";
$a->strings["Profile Name is required."] = "Nom de perfil requerit.";
$a->strings["Marital Status"] = "Estatus Marital";
$a->strings["Romantic Partner"] = "Soci Romàntic";
$a->strings["Likes"] = "Agrada";
$a->strings["Dislikes"] = "No agrada";
$a->strings["Work/Employment"] = "Treball/Ocupació";
$a->strings["Religion"] = "Religió";
$a->strings["Political Views"] = "Idees Polítiques";
$a->strings["Gender"] = "Gènere";
$a->strings["Sexual Preference"] = "Preferència sexual";
$a->strings["Homepage"] = "Inici";
$a->strings["Interests"] = "Interesos";
$a->strings["Address"] = "Adreça";
$a->strings["Location"] = "Ubicació";
$a->strings["Profile updated."] = "Perfil actualitzat.";
$a->strings[" and "] = " i ";
$a->strings["public profile"] = "perfil públic";
$a->strings["%1\$s changed %2\$s to &ldquo;%3\$s&rdquo;"] = "%1\$s s'ha canviat de %2\$s a &ldquo;%3\$s&rdquo;";
$a->strings[" - Visit %1\$s's %2\$s"] = " - Visita %1\$s de %2\$s";
$a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s te una actualització %2\$s, canviant %3\$s.";
$a->strings["Profile deleted."] = "Perfil esborrat.";
$a->strings["Profile-"] = "Perfil-";
$a->strings["New profile created."] = "Nou perfil creat.";
@ -786,16 +958,20 @@ $a->strings["Street Address:"] = "Direcció:";
$a->strings["Locality/City:"] = "Localitat/Ciutat:";
$a->strings["Postal/Zip Code:"] = "Codi Postal:";
$a->strings["Country:"] = "País";
$a->strings["Region/State:"] = "Región/Estat:";
$a->strings["Region/State:"] = "Regió/Estat:";
$a->strings["<span class=\"heart\">&hearts;</span> Marital Status:"] = "<span class=\"heart\">&hearts;</span> Estat Civil:";
$a->strings["Who: (if applicable)"] = "Qui? (si és aplicable)";
$a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Exemples: cathy123, Cathy Williams, cathy@example.com";
$a->strings["Since [date]:"] = "Des de [data]";
$a->strings["Sexual Preference:"] = "Preferència Sexual:";
$a->strings["Homepage URL:"] = "Pàgina web URL:";
$a->strings["Hometown:"] = "Lloc de residència:";
$a->strings["Political Views:"] = "Idees Polítiques:";
$a->strings["Religious Views:"] = "Creencies Religioses:";
$a->strings["Public Keywords:"] = "Paraules Clau Públiques";
$a->strings["Private Keywords:"] = "Paraules Clau Privades:";
$a->strings["Likes:"] = "Agrada:";
$a->strings["Dislikes:"] = "No Agrada";
$a->strings["Example: fishing photography software"] = "Exemple: pesca fotografia programari";
$a->strings["(Used for suggesting potential friends, can be seen by others)"] = "(Emprat per suggerir potencials amics, Altres poden veure-ho)";
$a->strings["(Used for searching profiles, never shown to others)"] = "(Emprat durant la cerca de perfils, mai mostrat a ningú)";
@ -817,6 +993,8 @@ $a->strings["Create New Profile"] = "Crear un Nou Perfil";
$a->strings["Profile Image"] = "Imatge del Perfil";
$a->strings["visible to everybody"] = "Visible per tothom";
$a->strings["Edit visibility"] = "Editar visibilitat";
$a->strings["Save to Folder:"] = "Guardar a la Carpeta:";
$a->strings["- select -"] = "- seleccionar -";
$a->strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s etiquetats %2\$s %3\$s amb %4\$s";
$a->strings["No potential page delegates located."] = "No es troben pàgines potencialment delegades.";
$a->strings["Delegate Page Management"] = "Gestió de les Pàgines Delegades";
@ -826,30 +1004,47 @@ $a->strings["Existing Page Delegates"] = "Actuals Delegats de Pàgina";
$a->strings["Potential Delegates"] = "Delegats Potencials";
$a->strings["Add"] = "Afegir";
$a->strings["No entries."] = "Sense entrades";
$a->strings["Source (bbcode) text:"] = "Text Codi (bbcode): ";
$a->strings["Source (Diaspora) text to convert to BBcode:"] = "Font (Diaspora) Convertir text a BBcode";
$a->strings["Source input: "] = "Entrada de Codi:";
$a->strings["bb2html: "] = "bb2html: ";
$a->strings["bb2html2bb: "] = "bb2html2bb: ";
$a->strings["bb2md: "] = "bb2md: ";
$a->strings["bb2md2html: "] = "bb2md2html: ";
$a->strings["bb2dia2bb: "] = "bb2dia2bb: ";
$a->strings["bb2md2html2bb: "] = "bb2md2html2bb: ";
$a->strings["Source input (Diaspora format): "] = "Font d'entrada (format de Diaspora)";
$a->strings["diaspora2bb: "] = "diaspora2bb: ";
$a->strings["Friend Suggestions"] = "Amics Suggerits";
$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Cap suggeriment disponible. Si això és un nou lloc, si us plau torna a intentar en 24 hores.";
$a->strings["Ignore/Hide"] = "Ignorar/Amagar";
$a->strings["Global Directory"] = "Directori Global";
$a->strings["Normal site view"] = "Vista normal del lloc";
$a->strings["Admin - View all site entries"] = "Admin- Veure totes les entrades del lloc";
$a->strings["Find on this site"] = "Trobat en aquest lloc";
$a->strings["Site Directory"] = "Directori Local";
$a->strings["Gender: "] = "Gènere:";
$a->strings["Gender:"] = "Gènere:";
$a->strings["Status:"] = "Estatus:";
$a->strings["Homepage:"] = "Pàgina web:";
$a->strings["About:"] = "Acerca de:";
$a->strings["No entries (some entries may be hidden)."] = "No hi ha entrades (algunes de les entrades poden estar amagades).";
$a->strings["%s : Not a valid email address."] = "%s : No es una adreça de correu vàlida";
$a->strings["Please join my network on %s"] = "Si us plau, uneix-te a la meva xarxa en %s";
$a->strings["Please join us on Friendica"] = "Per favor, uneixi's a nosaltres en Friendica";
$a->strings["%s : Message delivery failed."] = "%s : Ha fallat l'entrega del missatge.";
$a->strings["%d message sent."] = array(
0 => "%d missatge enviat",
1 => "%d missatges enviats.",
);
$a->strings["You have no more invitations available"] = "No te més invitacions disponibles";
$a->strings["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."] = "Visita %s per a una llista de llocs públics on unir-te. Els membres de Friendica d'altres llocs poden connectar-se de forma total, així com amb membres de moltes altres xarxes socials.";
$a->strings["To accept this invitation, please visit and register at %s or any other public Friendica website."] = "Per acceptar aquesta invitació, per favor visita i registra't a %s o en qualsevol altre pàgina web pública Friendica.";
$a->strings["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."] = "Tots els llocs Friendica estàn interconnectats per crear una web social amb privacitat millorada, controlada i propietat dels seus membres. També poden connectar amb moltes xarxes socials tradicionals. Consulteu %s per a una llista de llocs de Friendica alternatius en que pot inscriure's.";
$a->strings["Our apologies. This system is not currently configured to connect with other public sites or invite members."] = "Nostres disculpes. Aquest sistema no està configurat actualment per connectar amb altres llocs públics o convidar als membres.";
$a->strings["Send invitations"] = "Enviant Invitacions";
$a->strings["Enter email addresses, one per line:"] = "Entri adreçes de correu, una per línia:";
$a->strings["Please join my social network on %s"] = "Per favor, uneix-te a la meva xarxa social en %s";
$a->strings["To accept this invitation, please visit:"] = "Per acceptar aquesta invitació, si us plau, visiti:";
$a->strings["You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web."] = "Estàs cordialment convidat a ajuntarte a mi i altres amics propers en Friendica - i ajudar-nos a crear una millor web social.";
$a->strings["You will need to supply this invitation code: \$invite_code"] = "Vostè haurà de proporcionar aquest codi d'invitació: \$invite_code";
$a->strings["Once you have registered, please connect with me via my profile page at:"] = "Un cop registrat, si us plau contactar amb mi a través de la meva pàgina de perfil a:";
$a->strings["For more information about the Friendica project and why we feel it is important, please visit http://friendica.com"] = "Per a més informació sobre el projecte Friendica i perque creiem que això es important, per favor, visita http://friendica.com";
$a->strings["This may occasionally happen if contact was requested by both persons and it has already been approved."] = "Això pot ocorre ocasionalment si el contacte fa una petició per ambdues persones i ja han estat aprovades.";
$a->strings["Response from remote site was not understood."] = "La resposta des del lloc remot no s'entenia.";
$a->strings["Unexpected response from remote site: "] = "Resposta inesperada de lloc remot:";
@ -868,6 +1063,11 @@ $a->strings["The ID provided by your system is a duplicate on our system. It sho
$a->strings["Unable to set your contact credentials on our system."] = "No es pot canviar les seves credencials de contacte en el nostre sistema.";
$a->strings["Unable to update your contact profile details on our system"] = "No es pot actualitzar els detalls del seu perfil de contacte en el nostre sistema";
$a->strings["Connection accepted at %s"] = "Connexió acceptada en %s";
$a->strings["%1\$s has joined %2\$s"] = "%1\$s s'ha unit a %2\$s";
$a->strings["Google+ Import Settings"] = "Ajustos Google+ Import";
$a->strings["Enable Google+ Import"] = "Habilita Google+ Import";
$a->strings["Google Account ID"] = "ID del compte Google";
$a->strings["Google+ Import Settings saved."] = "Ajustos Google+ Import guardats.";
$a->strings["Facebook disabled"] = "Facebook deshabilitat";
$a->strings["Updating contacts"] = "Actualitzant contactes";
$a->strings["Facebook API key is missing."] = "La clau del API de Facebook s'ha perdut.";
@ -876,22 +1076,56 @@ $a->strings["Install Facebook connector for this account."] = "Instal·lar el co
$a->strings["Remove Facebook connector"] = "Eliminar el connector de Faceboook";
$a->strings["Re-authenticate [This is necessary whenever your Facebook password is changed.]"] = "Re-autentificar [Això és necessari cada vegada que la contrasenya de Facebook canvia.]";
$a->strings["Post to Facebook by default"] = "Enviar a Facebook per defecte";
$a->strings["Facebook friend linking has been disabled on this site. The following settings will have no effect."] = "La vinculació amb amics de Facebook s'ha deshabilitat en aquest lloc. Els ajustos que facis no faran efecte.";
$a->strings["Facebook friend linking has been disabled on this site. If you disable it, you will be unable to re-enable it."] = "La vinculació amb amics de Facebook s'ha deshabilitat en aquest lloc. Si esta deshabilitat, no es pot utilitzar.";
$a->strings["Link all your Facebook friends and conversations on this website"] = "Enllaça tots els teus amics i les converses de Facebook en aquest lloc web";
$a->strings["Facebook conversations consist of your <em>profile wall</em> and your friend <em>stream</em>."] = "Les converses de Facebook consisteixen en el <em>perfil del mur</em> i en el<em> stream </em> del seu amic.";
$a->strings["On this website, your Facebook friend stream is only visible to you."] = "En aquesta pàgina web, el stream del seu amic a Facebook només és visible per a vostè.";
$a->strings["Facebook conversations consist of your <em>profile wall</em> and your friend <em>stream</em>."] = "Les converses de Facebook consisteixen en el <em>perfil del mur</em> i en el<em> flux </em> del seu amic.";
$a->strings["On this website, your Facebook friend stream is only visible to you."] = "En aquesta pàgina web, el flux del seu amic a Facebook només és visible per a vostè.";
$a->strings["The following settings determine the privacy of your Facebook profile wall on this website."] = "Les següents opcions determinen la privacitat del mur del seu perfil de Facebook en aquest lloc web.";
$a->strings["On this website your Facebook profile wall conversations will only be visible to you"] = "En aquesta pàgina web les seves converses al mur del perfil de Facebook només seran visible per a vostè";
$a->strings["Do not import your Facebook profile wall conversations"] = "No importi les seves converses del mur del perfil de Facebook";
$a->strings["If you choose to link conversations and leave both of these boxes unchecked, your Facebook profile wall will be merged with your profile wall on this website and your privacy settings on this website will be used to determine who may see the conversations."] = "Si opta per vincular les converses i deixar ambdues caselles sense marcar, el mur del seu perfil de Facebook es fusionarà amb el mur del seu perfil en aquest lloc web i la seva configuració de privacitat en aquest website serà utilitzada per determinar qui pot veure les converses.";
$a->strings["Comma separated applications to ignore"] = "Separats per comes les aplicacions a ignorar";
$a->strings["Facebook"] = "Facebook";
$a->strings["Problems with Facebook Real-Time Updates"] = "Problemes amb Actualitzacions en Temps Real a Facebook";
$a->strings["Facebook Connector Settings"] = "Ajustos del Connector de Facebook";
$a->strings["Facebook API Key"] = "Facebook API Key";
$a->strings["Error: it appears that you have specified the App-ID and -Secret in your .htconfig.php file. As long as they are specified there, they cannot be set using this form.<br><br>"] = "Error: Apareix que has especificat el App-ID i el Secret en el arxiu .htconfig.php. Per estar especificat allà, no pot ser canviat utilitzant aquest formulari.<br><br>";
$a->strings["Error: the given API Key seems to be incorrect (the application access token could not be retrieved)."] = "Error: la API Key facilitada sembla incorrecta (no es va poder recuperar el token d'accés de l'aplicatiu).";
$a->strings["The given API Key seems to work correctly."] = "La API Key facilitada sembla treballar correctament.";
$a->strings["The correctness of the API Key could not be detected. Something strange's going on."] = "La correcció de la API key no pot ser detectada. Quelcom estrany ha succeït.";
$a->strings["App-ID / API-Key"] = "App-ID / API-Key";
$a->strings["Application secret"] = "Application secret";
$a->strings["Polling Interval in minutes (minimum %1\$s minutes)"] = "Interval entre sondejos en minuts (mínim %1s minuts)";
$a->strings["Synchronize comments (no comments on Facebook are missed, at the cost of increased system load)"] = "Sincronitzar els comentaris (els comentaris a Facebook es perden, a costa de la major càrrega del sistema)";
$a->strings["Real-Time Updates"] = "Actualitzacions en Temps Real";
$a->strings["Real-Time Updates are activated."] = "Actualitzacions en Temps Real està activat.";
$a->strings["Deactivate Real-Time Updates"] = "Actualitzacions en Temps Real Desactivat";
$a->strings["Real-Time Updates not activated."] = "Actualitzacions en Temps Real no activat.";
$a->strings["Activate Real-Time Updates"] = "Actualitzacions en Temps Real Activat";
$a->strings["The new values have been saved."] = "Els nous valors s'han guardat.";
$a->strings["Post to Facebook"] = "Enviament a Facebook";
$a->strings["Post to Facebook cancelled because of multi-network access permission conflict."] = "Enviament a Facebook cancel·lat perque hi ha un conflicte de permisos d'accés multi-xarxa.";
$a->strings["Image: "] = "Imatge:";
$a->strings["View on Friendica"] = "Vist en Friendica";
$a->strings["Facebook post failed. Queued for retry."] = "Enviament a Facebook fracassat. En cua per a reintent.";
$a->strings["link"] = "enllaç";
$a->strings["Your Facebook connection became invalid. Please Re-authenticate."] = "La seva connexió a Facebook es va convertir en no vàlida. Per favor, torni a autenticar-se";
$a->strings["Facebook connection became invalid"] = "La seva connexió a Facebook es va convertir en no vàlida";
$a->strings["Hi %1\$s,\n\nThe connection between your accounts on %2\$s and Facebook became invalid. This usually happens after you change your Facebook-password. To enable the connection again, you have to %3\$sre-authenticate the Facebook-connector%4\$s."] = "Hi %1\$s,\n\nLa connexió entre els teus comptes en %2\$s i Facebook s'han tornat no vàlides. Això passa normalment quan canvies la contrasenya de Facebook. Per activar la conexió novament has de %3\$sre-autenticar el connector de Facebook%4\$s.";
$a->strings["StatusNet AutoFollow settings updated."] = "Ajustos de AutoSeguiment a StatusNet actualitzats.";
$a->strings["StatusNet AutoFollow Settings"] = "Ajustos de AutoSeguiment a StatusNet";
$a->strings["Automatically follow any StatusNet followers/mentioners"] = "Segueix Automaticament qualsevol seguidor/mencionador de StatusNet";
$a->strings["Bg settings updated."] = "Ajustos de Bg actualitzats.";
$a->strings["Bg Settings"] = "Ajustos de Bg";
$a->strings["How many contacts to display on profile sidebar"] = "Quants contactes per mostrar a la barra lateral el perfil";
$a->strings["Lifetime of the cache (in hours)"] = "Temps de vida de la caché (en hores)";
$a->strings["Cache Statistics"] = "Estadístiques de la caché";
$a->strings["Number of items"] = "Nombre d'elements";
$a->strings["Size of the cache"] = "Mida de la caché";
$a->strings["Delete the whole cache"] = "Esborra tota la cachè";
$a->strings["Facebook Post disabled"] = "";
$a->strings["Facebook Post"] = "";
$a->strings["Install Facebook Post connector for this account."] = "";
$a->strings["Remove Facebook Post connector"] = "";
$a->strings["Facebook Post Settings"] = "";
$a->strings["%d person likes this"] = array(
0 => "%d persona li agrada això",
1 => "%d persones els agrada això",
@ -900,10 +1134,47 @@ $a->strings["%d person doesn't like this"] = array(
0 => "%d persona no li agrada això",
1 => "%d persones no els agrada això",
);
$a->strings["Get added to this list!"] = "S'afegeixen a aquesta llista!";
$a->strings["Generate new key"] = "Generar nova clau";
$a->strings["Widgets key"] = "Ginys clau";
$a->strings["Widgets available"] = "Ginys disponibles";
$a->strings["Connect on Friendica!"] = "Connectar en Friendica";
$a->strings["bitchslap"] = "";
$a->strings["bitchslapped"] = "";
$a->strings["shag"] = "";
$a->strings["shagged"] = "";
$a->strings["do something obscenely biological to"] = "";
$a->strings["did something obscenely biological to"] = "";
$a->strings["point out the poke feature to"] = "";
$a->strings["pointed out the poke feature to"] = "";
$a->strings["declare undying love for"] = "";
$a->strings["declared undying love for"] = "";
$a->strings["patent"] = "";
$a->strings["patented"] = "";
$a->strings["stroke beard"] = "";
$a->strings["stroked their beard at"] = "";
$a->strings["bemoan the declining standards of modern secondary and tertiary education to"] = "";
$a->strings["bemoans the declining standards of modern secondary and tertiary education to"] = "";
$a->strings["hug"] = "";
$a->strings["hugged"] = "";
$a->strings["kiss"] = "";
$a->strings["kissed"] = "";
$a->strings["raise eyebrows at"] = "";
$a->strings["raised their eyebrows at"] = "";
$a->strings["insult"] = "";
$a->strings["insulted"] = "";
$a->strings["praise"] = "";
$a->strings["praised"] = "";
$a->strings["be dubious of"] = "";
$a->strings["was dubious of"] = "";
$a->strings["eat"] = "";
$a->strings["ate"] = "";
$a->strings["giggle and fawn at"] = "";
$a->strings["giggled and fawned at"] = "";
$a->strings["doubt"] = "";
$a->strings["doubted"] = "";
$a->strings["glare"] = "";
$a->strings["glared at"] = "";
$a->strings["YourLS Settings"] = "La Teva Configuració de LS";
$a->strings["URL: http://"] = "URL: http://";
$a->strings["Username:"] = "Nom d'usuari:";
@ -916,20 +1187,152 @@ $a->strings["Enable LiveJournal Post Plugin"] = "Habilitat el plugin d'enviament
$a->strings["LiveJournal username"] = "Nom d'usuari a Livejournal";
$a->strings["LiveJournal password"] = "Contrasenya a Livejournal";
$a->strings["Post to LiveJournal by default"] = "Enviar per defecte a Livejournal";
$a->strings["\"Not Safe For Work\" Settings"] = "Configuració de \"Not Safe For Work\"";
$a->strings["Enable NSFW filter"] = "Habilitar el filtre NSFW";
$a->strings["Comma separated words to treat as NSFW"] = "Tractar com NSFW les paraules separades per comes ";
$a->strings["Not Safe For Work (General Purpose Content Filter) settings"] = "Ajustos, Not Safe For Work (Filtre de Contingut de Propòsit General)";
$a->strings["This plugin looks in posts for the words/text you specify below, and collapses any content containing those keywords so it is not displayed at inappropriate times, such as sexual innuendo that may be improper in a work setting. It is polite and recommended to tag any content containing nudity with #NSFW. This filter can also match any other word/text you specify, and can thereby be used as a general purpose content filter."] = "Aquest plugin es veu en enviaments amb les paraules/text que s'especifiquen a continuació , i amagarà qualsevol contingut que contingui les paraules clau de manera que no apareguin en moments inapropiats, com ara insinuacions sexuals que poden ser inadequades en un entorn de treball. És de bona educació i es recomana etiquetar qualsevol contingut que contingui nus amb #NSFW. Aquest filtre també es pot fer coincidir amb qualsevol paraula/text que especifiqueu, i per tant pot ser utilitzat com un filtre general de contingut.";
$a->strings["Enable Content filter"] = "Activat el filtre de Contingut";
$a->strings["Comma separated list of keywords to hide"] = "Llista separada per comes de paraules clau per ocultar";
$a->strings["Use /expression/ to provide regular expressions"] = "Emprar /expressió/ per a proporcionar expressions regulars";
$a->strings["NSFW Settings saved."] = "Configuració NSFW guardada.";
$a->strings["%s - Click to open/close"] = "%s - Clicar per obrir/tancar";
$a->strings["Forums"] = "Forums";
$a->strings["Forums:"] = "Fòrums:";
$a->strings["Page settings updated."] = "Actualitzats els ajustos de pàgina.";
$a->strings["Page Settings"] = "Ajustos de pàgina";
$a->strings["How many forums to display on sidebar without paging"] = "Quants fòrums per mostrar a la barra lateral per pàgina";
$a->strings["Randomise Page/Forum list"] = "Aleatoritza la llista de Pàgina/Fòrum";
$a->strings["Show pages/forums on profile page"] = "Mostra pàgines/fòrums a la pàgina de perfil";
$a->strings["Planets Settings"] = "Ajustos de Planet";
$a->strings["Enable Planets Plugin"] = "Activa Plugin de Planet";
$a->strings["Login"] = "Identifica't";
$a->strings["OpenID"] = "OpenID";
$a->strings["Last users"] = "Últims usuaris";
$a->strings["Most active users"] = "Usuaris més actius";
$a->strings["Last photos"] = "Últimes fotos";
$a->strings["Last likes"] = "Últims \"m'agrada\"";
$a->strings["event"] = "esdeveniment";
$a->strings["Latest users"] = "Últims usuaris";
$a->strings["Most active users"] = "Usuaris més actius";
$a->strings["Latest photos"] = "Darreres fotos";
$a->strings["Latest likes"] = "Darrers agrada";
$a->strings["event"] = "esdeveniment";
$a->strings["No access"] = "Inaccessible";
$a->strings["Could not open component for editing"] = "";
$a->strings["Go back to the calendar"] = "Tornar al calendari";
$a->strings["Event data"] = "";
$a->strings["Calendar"] = "Calendari";
$a->strings["Special color"] = "";
$a->strings["Subject"] = "";
$a->strings["Starts"] = "Inicia";
$a->strings["Ends"] = "Finalitza";
$a->strings["Description"] = "Descripció";
$a->strings["Recurrence"] = "";
$a->strings["Frequency"] = "";
$a->strings["Daily"] = "Diari";
$a->strings["Weekly"] = "Setmanal";
$a->strings["Monthly"] = "Mensual";
$a->strings["Yearly"] = "";
$a->strings["days"] = "dies";
$a->strings["weeks"] = "setmanes";
$a->strings["months"] = "mesos";
$a->strings["years"] = "anys";
$a->strings["Interval"] = "";
$a->strings["All %select% %time%"] = "";
$a->strings["Days"] = "Dies";
$a->strings["Sunday"] = "Diumenge";
$a->strings["Monday"] = "Dilluns";
$a->strings["Tuesday"] = "Dimarts";
$a->strings["Wednesday"] = "Dimecres";
$a->strings["Thursday"] = "Dijous";
$a->strings["Friday"] = "Divendres";
$a->strings["Saturday"] = "Dissabte";
$a->strings["First day of week:"] = "";
$a->strings["Day of month"] = "";
$a->strings["#num#th of each month"] = "";
$a->strings["#num#th-last of each month"] = "";
$a->strings["#num#th #wkday# of each month"] = "";
$a->strings["#num#th-last #wkday# of each month"] = "";
$a->strings["Month"] = "Mes";
$a->strings["#num#th of the given month"] = "";
$a->strings["#num#th-last of the given month"] = "";
$a->strings["#num#th #wkday# of the given month"] = "";
$a->strings["#num#th-last #wkday# of the given month"] = "";
$a->strings["Repeat until"] = "";
$a->strings["Infinite"] = "";
$a->strings["Until the following date"] = "";
$a->strings["Number of times"] = "";
$a->strings["Exceptions"] = "";
$a->strings["none"] = "";
$a->strings["Notification"] = "Notificació";
$a->strings["Notify by"] = "";
$a->strings["E-Mail"] = "";
$a->strings["On Friendica / Display"] = "";
$a->strings["Time"] = "";
$a->strings["Hours"] = "Hores";
$a->strings["Minutes"] = "Minuts";
$a->strings["Seconds"] = "";
$a->strings["Weeks"] = "";
$a->strings["before the"] = "";
$a->strings["start of the event"] = "";
$a->strings["end of the event"] = "";
$a->strings["Add a notification"] = "";
$a->strings["The event #name# will start at #date"] = "";
$a->strings["#name# is about to begin."] = "";
$a->strings["Saved"] = "";
$a->strings["U.S. Time Format (mm/dd/YYYY)"] = "Data en format U.S. (mm/dd/YYY)";
$a->strings["German Time Format (dd.mm.YYYY)"] = "Data en format Alemany (dd.mm.YYYY)";
$a->strings["Private Events"] = "";
$a->strings["Private Addressbooks"] = "";
$a->strings["Friendica-Native events"] = "";
$a->strings["Friendica-Contacts"] = "Friendica-Contactes";
$a->strings["Your Friendica-Contacts"] = "Els teus Contactes a Friendica";
$a->strings["Something went wrong when trying to import the file. Sorry. Maybe some events were imported anyway."] = "";
$a->strings["Something went wrong when trying to import the file. Sorry."] = "";
$a->strings["The ICS-File has been imported."] = "";
$a->strings["No file was uploaded."] = "";
$a->strings["Import a ICS-file"] = "";
$a->strings["ICS-File"] = "";
$a->strings["Overwrite all #num# existing events"] = "";
$a->strings["New event"] = "Nou esdeveniment";
$a->strings["Today"] = "Avui";
$a->strings["Day"] = "Dia";
$a->strings["Week"] = "Setmana";
$a->strings["Reload"] = "Recarregar";
$a->strings["Date"] = "Data";
$a->strings["Error"] = "Error";
$a->strings["The calendar has been updated."] = "";
$a->strings["The new calendar has been created."] = "";
$a->strings["The calendar has been deleted."] = "";
$a->strings["Calendar Settings"] = "Ajustos de Calendari";
$a->strings["Date format"] = "Format de la data";
$a->strings["Time zone"] = "Zona horària";
$a->strings["Calendars"] = "";
$a->strings["Create a new calendar"] = "";
$a->strings["Limitations"] = "Limitacions";
$a->strings["Warning"] = "Avís";
$a->strings["Synchronization (iPhone, Thunderbird Lightning, Android, ...)"] = "Syncronització (iPhone, Thunderbird Lightning, Android, ...)";
$a->strings["Synchronizing this calendar with the iPhone"] = "Sncronitzant aquest calendari amb el iPhone";
$a->strings["Synchronizing your Friendica-Contacts with the iPhone"] = "Sincronitzant els teus contactes a Friendica amb el iPhone";
$a->strings["The current version of this plugin has not been set up correctly. Please contact the system administrator of your installation of friendica to fix this."] = "";
$a->strings["Extended calendar with CalDAV-support"] = "Calendari ampliat amb suport CalDAV";
$a->strings["noreply"] = "no contestar";
$a->strings["Notification: "] = "";
$a->strings["The database tables have been installed."] = "Les taules de la base de dades han estat instal·lades.";
$a->strings["An error occurred during the installation."] = "Ha ocorregut un error durant la instal·lació.";
$a->strings["The database tables have been updated."] = "";
$a->strings["An error occurred during the update."] = "";
$a->strings["No system-wide settings yet."] = "No tens enllestits els ajustos del sistema.";
$a->strings["Database status"] = "Estat de la base de dades";
$a->strings["Installed"] = "Instal·lat";
$a->strings["Upgrade needed"] = "Necessites actualitzar";
$a->strings["Please back up all calendar data (the tables beginning with dav_*) before proceeding. While all calendar events <i>should</i> be converted to the new database structure, it's always safe to have a backup. Below, you can have a look at the database-queries that will be made when pressing the 'update'-button."] = "";
$a->strings["Upgrade"] = "Actualització";
$a->strings["Not installed"] = "No instal·lat";
$a->strings["Install"] = "Instal·lat";
$a->strings["Unknown"] = "";
$a->strings["Something really went wrong. I cannot recover from this state automatically, sorry. Please go to the database backend, back up the data, and delete all tables beginning with 'dav_' manually. Afterwards, this installation routine should be able to reinitialize the tables automatically."] = "";
$a->strings["Troubleshooting"] = "Solució de problemes";
$a->strings["Manual creation of the database tables:"] = "Creació manual de les taules de la base de dades:";
$a->strings["Show SQL-statements"] = "Mostrar instruccions de SQL ";
$a->strings["Private Calendar"] = "Calendari Privat";
$a->strings["Friendica Events: Mine"] = "Esdeveniments Friendica: Meus";
$a->strings["Friendica Events: Contacts"] = "Esdeveniments Friendica: Contactes";
$a->strings["Private Addresses"] = "";
$a->strings["Friendica Contacts"] = "";
$a->strings["Allow to use your friendica id (%s) to connecto to external unhosted-enabled storage (like ownCloud). See <a href=\"http://www.w3.org/community/unhosted/wiki/RemoteStorage#WebFinger\">RemoteStorage WebFinger</a>"] = "Permetre l'ús del seu ID de friendica (%s) per Connectar a l'emmagatzematge extern (com ownCloud). Veure <a href=\"http://www.w3.org/community/unhosted/wiki/RemoteStorage#WebFinger\"> WebFinger RemoteStorage </a>";
$a->strings["Template URL (with {category})"] = "Plantilles de URL (amb {categoria})";
$a->strings["OAuth end-point"] = "OAuth end-point";
@ -965,9 +1368,15 @@ $a->strings["Drupal site URL"] = "URL del lloc Drupal";
$a->strings["Drupal site uses clean URLS"] = "el Lloc Drupal empra URLS netes";
$a->strings["Post to Drupal by default"] = "Enviar a Drupal per defecte";
$a->strings["Post from Friendica"] = "Enviament des de Friendica";
$a->strings["Startpage Settings"] = "Ajustos de la pàgina d'inici";
$a->strings["Home page to load after login - leave blank for profile wall"] = "Pàgina personal a carregar després d'accedir - deixar buit pel perfil del mur";
$a->strings["Examples: &quot;network&quot; or &quot;notifications/system&quot;"] = "Exemples: \"xarxa\" o \"notificacions/sistema\"";
$a->strings["Geonames settings updated."] = "Actualitzada la configuració de Geonames.";
$a->strings["Geonames Settings"] = "Configuració de Geonames";
$a->strings["Enable Geonames Plugin"] = "Habilitar Plugin de Geonames";
$a->strings["Your account on %s will expire in a few days."] = "El teu compte en %s expirarà en pocs dies.";
$a->strings["Your Friendica account is about to expire."] = "El teu compte de Friendica està a punt de caducar.";
$a->strings["Hi %1\$s,\n\nYour account on %2\$s will expire in less than five days. You may keep your account by logging in at least once every 30 days"] = "Hi %1\$s,\n\nEl teu compte en %2\$s expirara en menys de cinc dies. Pots mantenir el teu compte accedint al menys una vegada cada 30 dies.";
$a->strings["Upload a file"] = "Carrega un arxiu";
$a->strings["Drop files here to upload"] = "Deixa aquí el arxiu a carregar";
$a->strings["Failed"] = "Fracassar";
@ -978,14 +1387,30 @@ $a->strings["Upload was cancelled, or server error encountered"] = "La pujada va
$a->strings["OEmbed settings updated"] = "Actualitzar la configuració OEmbed";
$a->strings["Use OEmbed for YouTube videos"] = "Empreu OEmbed per videos YouTube";
$a->strings["URL to embed:"] = "Adreça URL del recurs";
$a->strings["show/hide"] = "mostra/amaga";
$a->strings["No forum subscriptions"] = "";
$a->strings["Forumlist settings updated."] = "";
$a->strings["Forumlist Settings"] = "";
$a->strings["Randomise Forumlist/Forum list"] = "";
$a->strings["Show forumlists/forums on profile forumlist"] = "";
$a->strings["Impressum"] = "Impressum";
$a->strings["Site Owner"] = "Propietari del lloc";
$a->strings["Email Address"] = "Adreça de correu";
$a->strings["Postal Address"] = "Adreça postal";
$a->strings["The impressum addon needs to be configured!<br />Please add at least the <tt>owner</tt> variable to your config file. For other variables please refer to the README file of the addon."] = "El complement impressum s'ha de configurar!<br />Si us plau afegiu almenys la variable <tt>propietari </tt> al fitxer de configuració. Per a les altres variables, consulteu el fitxer README del complement.";
$a->strings["The page operators name."] = "Nom de la pàgina del gestor.";
$a->strings["Site Owners Profile"] = "Perfil del Propietari del Lloc";
$a->strings["Profile address of the operator."] = "Adreça del perfil del gestor.";
$a->strings["How to contact the operator via snail mail. You can use BBCode here."] = "Com posar-se en contacte amb l'operador a través de correu postal. Vostè pot utilitzar BBCode aquí.";
$a->strings["Notes"] = "Notes";
$a->strings["Additional notes that are displayed beneath the contact information. You can use BBCode here."] = "Notes addicionals que es mostren sota de la informació de contacte. Vostè pot usar BBCode aquí.";
$a->strings["How to contact the operator via email. (will be displayed obfuscated)"] = "Com contactar amb el gestor via correu electronic. ( es visualitzara ofuscat)";
$a->strings["Footer note"] = "Nota a peu de pàgina";
$a->strings["Text for the footer. You can use BBCode here."] = "Text pel peu de pàgina. Pots emprar BBCode aquí.";
$a->strings["Report Bug"] = "Informar de problema";
$a->strings["No Timeline settings updated."] = "No s'han actualitzat els ajustos de la línia de temps";
$a->strings["No Timeline Settings"] = "No hi han ajustos de la línia de temps";
$a->strings["Disable Archive selector on profile wall"] = "Desactivar el selector d'arxius del mur de perfils";
$a->strings["\"Blockem\" Settings"] = "Configuració de \"Bloqueig\"";
$a->strings["Comma separated profile URLS to block"] = "URLS dels perfils a bloquejar, separats per comes";
$a->strings["BLOCKEM Settings saved."] = "Guardada la configuració de BLOQUEIG.";
@ -1005,10 +1430,64 @@ $a->strings["A list of <a href=\"http://wiki.openstreetmap.org/wiki/TMS\" target
$a->strings["Default zoom"] = "Zoom per defecte";
$a->strings["The default zoom level. (1:world, 18:highest)"] = "Nivell de zoom per defecte. (1: el món, 18: el més alt)";
$a->strings["Editplain settings updated."] = "Actualitzar la configuració de Editplain.";
$a->strings["Group Text"] = "";
$a->strings["Use a text only (non-image) group selector in the \"group edit\" menu"] = "";
$a->strings["Could NOT install Libravatar successfully.<br>It requires PHP >= 5.3"] = "No puc instal·lar Libravatar , <br>requereix PHP>=5.3";
$a->strings["generic profile image"] = "imatge de perfil genérica";
$a->strings["random geometric pattern"] = "Patró geometric aleatori";
$a->strings["monster face"] = "Cara monstruosa";
$a->strings["computer generated face"] = "Cara monstruosa generada per ordinador";
$a->strings["retro arcade style face"] = "Cara d'estil arcade retro";
$a->strings["Your PHP version %s is lower than the required PHP >= 5.3."] = "La teva versió de PHP %s es inferior a la requerida, PHP>=5.3";
$a->strings["This addon is not functional on your server."] = "Aquest addon no es funcional al teu servidor.";
$a->strings["Information"] = "informació";
$a->strings["Gravatar addon is installed. Please disable the Gravatar addon.<br>The Libravatar addon will fall back to Gravatar if nothing was found at Libravatar."] = "";
$a->strings["Default avatar image"] = "Imatge d'avatar per defecte";
$a->strings["Select default avatar image if none was found. See README"] = "";
$a->strings["Libravatar settings updated."] = "Ajustos de Libravatar actualitzats.";
$a->strings["Post to libertree"] = "Enviament a libertree";
$a->strings["libertree Post Settings"] = "Ajustos d'enviaments a libertree";
$a->strings["Enable Libertree Post Plugin"] = "Activa el plugin d'enviaments a libertree";
$a->strings["Libertree API token"] = "Libertree API token";
$a->strings["Libertree site URL"] = "lloc URL libertree";
$a->strings["Post to Libertree by default"] = "Enviar a libertree per defecte";
$a->strings["Altpager settings updated."] = "Ajustos de Altpagerr actualitzats.";
$a->strings["Alternate Pagination Setting"] = "Alternate Pagination Setting";
$a->strings["Use links to \"newer\" and \"older\" pages in place of page numbers?"] = "";
$a->strings["The MathJax addon renders mathematical formulae written using the LaTeX syntax surrounded by the usual $$ or an eqnarray block in the postings of your wall,network tab and private mail."] = "El complement MathJax processa les fórmules matemàtiques escrites utilitzant la sintaxi de LaTeX, envoltades per l'habitual $$ o un bloc de \"eqnarray\" en les publicacions del seu mur, a la fitxa de la xarxa i correu privat.";
$a->strings["Use the MathJax renderer"] = "Utilitzar el processador Mathjax";
$a->strings["MathJax Base URL"] = "URL Base de Mathjax";
$a->strings["The URL for the javascript file that should be included to use MathJax. Can be either the MathJax CDN or another installation of MathJax."] = "La URL del fitxer javascript que ha de ser inclòs per a usar Mathjax. Pot ser utilitzat per Mathjax CDN o un altre instal·lació de Mathjax.";
$a->strings["Editplain Settings"] = "Configuració de Editplain";
$a->strings["Disable richtext status editor"] = "Deshabilitar l'editor d'estatus de texte enriquit";
$a->strings["Libravatar addon is installed, too. Please disable Libravatar addon or this Gravatar addon.<br>The Libravatar addon will fall back to Gravatar if nothing was found at Libravatar."] = "";
$a->strings["Select default avatar image if none was found at Gravatar. See README"] = "Se selecciona la imatge d'avatar per defecte si no es troba cap en Gravatar. Veure el README";
$a->strings["Rating of images"] = "Classificació de les imatges";
$a->strings["Select the appropriate avatar rating for your site. See README"] = "Selecciona la classe d'avatar apropiat pel teu lloc. Veure el README";
$a->strings["Gravatar settings updated."] = "Ajustos de Gravatar actualitzats.";
$a->strings["Your Friendica test account is about to expire."] = "La teva provatura de Friendica esta a prop d'expirar.";
$a->strings["Hi %1\$s,\n\nYour test account on %2\$s will expire in less than five days. We hope you enjoyed this test drive and use this opportunity to find a permanent Friendica website for your integrated social communications. A list of public sites is available at http://dir.friendica.com/siteinfo - and for more information on setting up your own Friendica server please see the Friendica project website at http://friendica.com."] = "Hola %1\$s ,\n\nEl seu compte de prova a %2\$s expirarà en menys de cinc dies . Esperem que hagi gaudit d'aquesta prova i aprofita aquesta oportunitat per trobar un lloc web Friendica permanent per a les teves comunicacions socials integrades . Una llista de llocs públics es troba disponible a http://dir.friendica.com/siteinfo - i per obtenir més informació sobre com configurar el vostre servidor Friendica consulteu el lloc web del projecte en el Friendica http://friendica.com .";
$a->strings["\"pageheader\" Settings"] = "Configuració de la capçalera de pàgina.";
$a->strings["pageheader Settings saved."] = "guardada la configuració de la capçalera de pàgina.";
$a->strings["Post to Insanejournal"] = "Enviament a Insanejournal";
$a->strings["InsaneJournal Post Settings"] = "Ajustos d'Enviament a Insanejournal";
$a->strings["Enable InsaneJournal Post Plugin"] = "Habilita el Plugin d'Enviaments a Insanejournal";
$a->strings["InsaneJournal username"] = "Nom d'usuari de Insanejournal";
$a->strings["InsaneJournal password"] = "Contrasenya de Insanejournal";
$a->strings["Post to InsaneJournal by default"] = "Enviar per defecte a Insanejournal";
$a->strings["Jappix Mini addon settings"] = "";
$a->strings["Activate addon"] = "";
$a->strings["Do <em>not</em> insert the Jappixmini Chat-Widget into the webinterface"] = "";
$a->strings["Jabber username"] = "";
$a->strings["Jabber server"] = "";
$a->strings["Jabber BOSH host"] = "";
$a->strings["Jabber password"] = "";
$a->strings["Encrypt Jabber password with Friendica password (recommended)"] = "";
$a->strings["Friendica password"] = "";
$a->strings["Approve subscription requests from Friendica contacts automatically"] = "";
$a->strings["Subscribe to Friendica contacts automatically"] = "";
$a->strings["Purge internal list of jabber addresses of contacts"] = "";
$a->strings["Add contact"] = "";
$a->strings["View Source"] = "Veure les Fonts";
$a->strings["Post to StatusNet"] = "Publica-ho a StatusNet";
$a->strings["Please contact your site administrator.<br />The provided API URL is not valid."] = "Si us plau, poseu-vos en contacte amb l'administrador del lloc. <br /> L'adreça URL de l'API proporcionada no és vàlida.";
@ -1033,8 +1512,10 @@ $a->strings["If enabled all your <strong>public</strong> postings can be posted
$a->strings["<strong>Note</strong>: Due your privacy settings (<em>Hide your profile details from unknown viewers?</em>) the link potentially included in public postings relayed to StatusNet will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = "<strong>Nota</strong>: A causa de les seves opcions de privacitat (<em>Amaga els detalls del teu perfil dels espectadors desconeguts? </em>) el vincle potencialment inclòs en anuncis públics transmesos a StatusNet conduirà el visitant a una pàgina en blanc en la que informarà al visitants que l'accés al seu perfil s'ha restringit.";
$a->strings["Allow posting to StatusNet"] = "Permetre enviaments a StatusNet";
$a->strings["Send public postings to StatusNet by default"] = "Enviar missatges públics a StatusNet per defecte";
$a->strings["Send linked #-tags and @-names to StatusNet"] = "Enviar enllaços #-etiquetes i @-noms a StatusNet";
$a->strings["Clear OAuth configuration"] = "Esborrar configuració de OAuth";
$a->strings["API URL"] = "API URL";
$a->strings["Infinite Improbability Drive"] = "Infinite Improbability Drive";
$a->strings["Post to Tumblr"] = "Publica-ho al Tumblr";
$a->strings["Tumblr Post Settings"] = "Configuració d'Enviaments de Tumblr";
$a->strings["Enable Tumblr Post Plugin"] = "Habilita el plugin de enviaments de Tumblr";
@ -1043,7 +1524,6 @@ $a->strings["Tumblr password"] = "Caontrasenya de Tumblr";
$a->strings["Post to Tumblr by default"] = "Enviar a Tumblr per defecte";
$a->strings["Numfriends settings updated."] = "Actualitzar la configuració de Numfriends.";
$a->strings["Numfriends Settings"] = "Configuració de Numfriends";
$a->strings["How many contacts to display on profile sidebar"] = "Quants contactes per mostrar a la barra lateral el perfil";
$a->strings["Gnot settings updated."] = "Configuració de Gnot actualitzada";
$a->strings["Gnot Settings"] = "Configuració de Gnot";
$a->strings["Allows threading of email comment notifications on Gmail and anonymising the subject line."] = "Permet crear fils de les notificacions de comentaris de correu electrònic a Gmail i anonimat de la línia d'assumpte.";
@ -1056,13 +1536,14 @@ $a->strings["WordPress username"] = "Nom d'usuari de WordPress";
$a->strings["WordPress password"] = "Contrasenya de WordPress";
$a->strings["WordPress API URL"] = "WordPress API URL";
$a->strings["Post to WordPress by default"] = "Enviar a WordPress per defecte";
$a->strings["Provide a backlink to the Friendica post"] = "Proveeix un retroenllaç al missatge de Friendica";
$a->strings["Read the original post and comment stream on Friendica"] = "Llegeix el missatge original i el flux de comentaris en Friendica";
$a->strings["\"Show more\" Settings"] = "Configuració de \"Mostrar més\"";
$a->strings["Enable Show More"] = "Habilita Mostrar Més";
$a->strings["Cutting posts after how much characters"] = "Tallar els missatges després de quants caràcters";
$a->strings["Show More Settings saved."] = "Guardada la configuració de \"Mostra Més\".";
$a->strings["Show More"] = "Mostra Més";
$a->strings["This website is tracked using the <a href='http://www.piwik.org'>Piwik</a> analytics tool."] = "Aquest lloc web realitza un seguiment mitjançant la eina d'anàlisi <a href='http://www.piwik.org'>Piwik</a>.";
$a->strings["If you do not want that your visits are logged this way you <a href='%s'>can set a cookie to prevent Piwik from tracking further visits of the site</a> (opt-out)."] = "Si no vol que les seves visites es transcribin d'aquesta manera vostè <a href='%s'> pot establir una cookie per evitar a Piwik a partir de noves visites del lloc web </a> (opt-out).";
$a->strings["If you do not want that your visits are logged this way you <a href='%s'>can set a cookie to prevent Piwik from tracking further visits of the site</a> (opt-out)."] = "Si no vol que les seves visites es registrin d'aquesta manera vostè <a href='%s'> pot establir una cookie per evitar a Piwik a partir de noves visites del lloc web </a> (opt-out).";
$a->strings["Piwik Base URL"] = "URL Piwik Base";
$a->strings["Absolute path to your Piwik installation. (without protocol (http/s), with trailing slash)"] = "Trajectoria absoluta per a la instal·lació de Piwik (sense el protocol (http/s), amb la barra final )";
$a->strings["Site ID"] = "Lloc ID";
@ -1079,29 +1560,82 @@ $a->strings["If enabled all your <strong>public</strong> postings can be posted
$a->strings["<strong>Note</strong>: Due your privacy settings (<em>Hide your profile details from unknown viewers?</em>) the link potentially included in public postings relayed to Twitter will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = "<strong>Nota</strong>: donada la seva configuració de privacitat (<em> Amaga els detalls del teu perfil dels espectadors desconeguts? </em>) el vincle potencialment inclòs en anuncis públics retransmesos a Twitter conduirà al visitant a una pàgina en blanc informar als visitants que l'accés al seu perfil s'ha restringit.";
$a->strings["Allow posting to Twitter"] = "Permetre anunci a Twitter";
$a->strings["Send public postings to Twitter by default"] = "Enviar anuncis públics a Twitter per defecte";
$a->strings["Send linked #-tags and @-names to Twitter"] = "Enviar enllaços #-etiquetes i @-noms a Twitter";
$a->strings["Consumer key"] = "Consumer key";
$a->strings["Consumer secret"] = "Consumer secret";
$a->strings["irc Chatroom"] = "irc Chatroom";
$a->strings["IRC Settings"] = "Ajustos de IRC";
$a->strings["Channel(s) to auto connect (comma separated)"] = "Canal(s) per auto connectar (separats per comes)";
$a->strings["Popular Channels (comma separated)"] = "Canals Populars (separats per comes)";
$a->strings["IRC settings saved."] = "Ajustos del IRC guardats.";
$a->strings["IRC Chatroom"] = "IRC Chatroom";
$a->strings["Popular Channels"] = "Canals Populars";
$a->strings["Fromapp settings updated."] = "";
$a->strings["FromApp Settings"] = "";
$a->strings["The application name you would like to show your posts originating from."] = "";
$a->strings["Use this application name even if another application was used."] = "";
$a->strings["Post to blogger"] = "Enviament a blogger";
$a->strings["Blogger Post Settings"] = "Ajustos d'enviament a blogger";
$a->strings["Enable Blogger Post Plugin"] = "Habilita el Plugin d'Enviaments a Blogger";
$a->strings["Blogger username"] = "Nom d'usuari a blogger";
$a->strings["Blogger password"] = "Contrasenya a blogger";
$a->strings["Blogger API URL"] = "Blogger API URL";
$a->strings["Post to Blogger by default"] = "Enviament a Blogger per defecte";
$a->strings["Post to Posterous"] = "enviament a Posterous";
$a->strings["Posterous Post Settings"] = "Configuració d'Enviaments a Posterous";
$a->strings["Enable Posterous Post Plugin"] = "Habilitar plugin d'Enviament de Posterous";
$a->strings["Posterous login"] = "Inici de sessió a Posterous";
$a->strings["Posterous password"] = "Contrasenya a Posterous";
$a->strings["Posterous site ID"] = "ID al lloc Posterous";
$a->strings["Posterous API token"] = "Posterous API token";
$a->strings["Post to Posterous by default"] = "Enviar a Posterous per defecte";
$a->strings["Theme settings"] = "Configuració de Temes";
$a->strings["Set resize level for images in posts and comments (width and height)"] = "Ajusteu el nivell de canvi de mida d'imatges en els missatges i comentaris ( amplada i alçada";
$a->strings["Set font-size for posts and comments"] = "Canvia la mida del tipus de lletra per enviaments i comentaris";
$a->strings["Set theme width"] = "Ajustar l'ample del tema";
$a->strings["Color scheme"] = "Esquema de colors";
$a->strings["Your posts and conversations"] = "Els teus anuncis i converses";
$a->strings["Your profile page"] = "La seva pàgina de perfil";
$a->strings["Your contacts"] = "Els teus contactes";
$a->strings["Your photos"] = "Les seves fotos";
$a->strings["Your events"] = "Els seus esdeveniments";
$a->strings["Personal notes"] = "Notes personals";
$a->strings["Your personal photos"] = "Les seves fotos personals";
$a->strings["Community Pages"] = "Pàgines de la Comunitat";
$a->strings["Community Profiles"] = "Perfils de Comunitat";
$a->strings["Last users"] = "Últims usuaris";
$a->strings["Last likes"] = "Últims \"m'agrada\"";
$a->strings["Last photos"] = "Últimes fotos";
$a->strings["Find Friends"] = "Trobar Amistats";
$a->strings["Local Directory"] = "Directori Local";
$a->strings["Similar Interests"] = "Aficions Similars";
$a->strings["Invite Friends"] = "Invita Amics";
$a->strings["Earth Layers"] = "Earth Layers";
$a->strings["Set zoomfactor for Earth Layers"] = "Ajustar el factor de zoom per Earth Layers";
$a->strings["Set longitude (X) for Earth Layers"] = "Ajustar longitud (X) per Earth Layers";
$a->strings["Set latitude (Y) for Earth Layers"] = "Ajustar latitud (Y) per Earth Layers";
$a->strings["Help or @NewHere ?"] = "Ajuda o @NouAqui?";
$a->strings["Connect Services"] = "Serveis Connectats";
$a->strings["Last Tweets"] = "Últims Tweets";
$a->strings["Set twitter search term"] = "Ajustar el terme de cerca de twitter";
$a->strings["don't show"] = "no mostris";
$a->strings["show"] = "mostra";
$a->strings["Show/hide boxes at right-hand column:"] = "Mostra/amaga els marcs de la columna a ma dreta";
$a->strings["Set line-height for posts and comments"] = "Canvia l'espaiat de línia per enviaments i comentaris";
$a->strings["Set resolution for middle column"] = "canvia la resolució per a la columna central";
$a->strings["Set color scheme"] = "Canvia l'esquema de color";
$a->strings["Set zoomfactor for Earth Layer"] = "Ajustar el factor de zoom de Earth Layers";
$a->strings["Last tweets"] = "Últims tweets";
$a->strings["Alignment"] = "Adaptació";
$a->strings["Left"] = "Esquerra";
$a->strings["Center"] = "Centre";
$a->strings["Gender:"] = "Gènere:";
$a->strings["Set colour scheme"] = "Establir l'esquema de color";
$a->strings["j F, Y"] = "j F, Y";
$a->strings["j F"] = "j F";
$a->strings["Birthday:"] = "Aniversari:";
$a->strings["Age:"] = "Edat:";
$a->strings["Status:"] = "Estatus:";
$a->strings["Homepage:"] = "Pàgina web:";
$a->strings["for %1\$d %2\$s"] = "per a %1\$d %2\$s";
$a->strings["Tags:"] = "Etiquetes:";
$a->strings["Religion:"] = "Religió:";
$a->strings["About:"] = "Acerca de:";
$a->strings["Hobbies/Interests:"] = "Aficiones/Intereses:";
$a->strings["Contact information and Social Networks:"] = "Informació de contacte i Xarxes Socials:";
$a->strings["Musical interests:"] = "Gustos musicals:";
@ -1113,16 +1647,13 @@ $a->strings["Work/employment:"] = "Treball/ocupació:";
$a->strings["School/education:"] = "Escola/formació";
$a->strings["Unknown | Not categorised"] = "Desconegut/No categoritzat";
$a->strings["Block immediately"] = "Bloquejar immediatament";
$a->strings["Shady, spammer, self-marketer"] = "Sospitós, Femater, auto-publicitat";
$a->strings["Shady, spammer, self-marketer"] = "Sospitós, Spam, auto-publicitat";
$a->strings["Known to me, but no opinion"] = "Conegut per mi, però sense opinió";
$a->strings["OK, probably harmless"] = "Bé, probablement inofensiu";
$a->strings["Reputable, has my trust"] = "Bona reputació, té la meva confiança";
$a->strings["Frequently"] = "Freqüentment";
$a->strings["Hourly"] = "Cada hora";
$a->strings["Twice daily"] = "Dues vegades al dia";
$a->strings["Daily"] = "Diari";
$a->strings["Weekly"] = "Setmanal";
$a->strings["Monthly"] = "Mensual";
$a->strings["OStatus"] = "OStatus";
$a->strings["RSS/Atom"] = "RSS/Atom";
$a->strings["Zot!"] = "Zot!";
@ -1160,6 +1691,8 @@ $a->strings["Single"] = "Solter/a";
$a->strings["Lonely"] = "Solitari";
$a->strings["Available"] = "Disponible";
$a->strings["Unavailable"] = "No Disponible";
$a->strings["Has crush"] = "Compromés";
$a->strings["Infatuated"] = "Enamorat";
$a->strings["Dating"] = "De cites";
$a->strings["Unfaithful"] = "Infidel";
$a->strings["Sex Addict"] = "Adicte al sexe";
@ -1168,41 +1701,70 @@ $a->strings["Friends/Benefits"] = "Amics íntims";
$a->strings["Casual"] = "Oportunista";
$a->strings["Engaged"] = "Promès";
$a->strings["Married"] = "Casat";
$a->strings["Imaginarily married"] = "Matrimoni imaginari";
$a->strings["Partners"] = "Socis";
$a->strings["Cohabiting"] = "Cohabitant";
$a->strings["Common law"] = "Segons costums";
$a->strings["Happy"] = "Feliç";
$a->strings["Not Looking"] = "No Cerco";
$a->strings["Not looking"] = "No cerco";
$a->strings["Swinger"] = "Parella Liberal";
$a->strings["Betrayed"] = "Traït/da";
$a->strings["Separated"] = "Separat/da";
$a->strings["Unstable"] = "Inestable";
$a->strings["Divorced"] = "Divorciat/da";
$a->strings["Imaginarily divorced"] = "Divorci imaginari";
$a->strings["Widowed"] = "Vidu/a";
$a->strings["Uncertain"] = "Incert";
$a->strings["Complicated"] = "Complicat";
$a->strings["It's complicated"] = "Es complicat";
$a->strings["Don't care"] = "No t'interessa";
$a->strings["Ask me"] = "Pregunta'm";
$a->strings["Starts:"] = "Inici:";
$a->strings["Finishes:"] = "Acaba:";
$a->strings["(no subject)"] = "(sense assumpte)";
$a->strings["noreply"] = "no contestar";
$a->strings[" on Last.fm"] = " a Last.fm";
$a->strings["prev"] = "Prev";
$a->strings["first"] = "primer";
$a->strings["first"] = "Primer";
$a->strings["last"] = "Últim";
$a->strings["next"] = "Proper";
$a->strings["next"] = "següent";
$a->strings["newer"] = "Més nou";
$a->strings["older"] = "més vell";
$a->strings["No contacts"] = "Sense contactes";
$a->strings["%d Contact"] = array(
0 => "%d Contacte",
1 => "%d Contactes",
);
$a->strings["Search"] = "Cercar";
$a->strings["Monday"] = "Dilluns";
$a->strings["Tuesday"] = "Dimarts";
$a->strings["Wednesday"] = "Dimecres";
$a->strings["Thursday"] = "Dijous";
$a->strings["Friday"] = "Divendres";
$a->strings["Saturday"] = "Dissabte";
$a->strings["Sunday"] = "Diumenge";
$a->strings["poke"] = "";
$a->strings["poked"] = "";
$a->strings["ping"] = "";
$a->strings["pinged"] = "";
$a->strings["prod"] = "";
$a->strings["prodded"] = "";
$a->strings["slap"] = "";
$a->strings["slapped"] = "";
$a->strings["finger"] = "dit";
$a->strings["fingered"] = "";
$a->strings["rebuff"] = "";
$a->strings["rebuffed"] = "";
$a->strings["happy"] = "";
$a->strings["sad"] = "";
$a->strings["mellow"] = "";
$a->strings["tired"] = "";
$a->strings["perky"] = "";
$a->strings["angry"] = "";
$a->strings["stupified"] = "";
$a->strings["puzzled"] = "";
$a->strings["interested"] = "";
$a->strings["bitter"] = "";
$a->strings["cheerful"] = "";
$a->strings["alive"] = "";
$a->strings["annoyed"] = "";
$a->strings["anxious"] = "";
$a->strings["cranky"] = "";
$a->strings["disturbed"] = "";
$a->strings["frustrated"] = "";
$a->strings["motivated"] = "";
$a->strings["relaxed"] = "";
$a->strings["surprised"] = "";
$a->strings["January"] = "Gener";
$a->strings["February"] = "Febrer";
$a->strings["March"] = "Març";
@ -1216,33 +1778,27 @@ $a->strings["October"] = "Octubre";
$a->strings["November"] = "Novembre";
$a->strings["December"] = "Desembre";
$a->strings["bytes"] = "bytes";
$a->strings["Select an alternate language"] = "Sel·lecciona un idioma alternatiu";
$a->strings["Click to open/close"] = "Clicar per a obrir/tancar";
$a->strings["default"] = "per defecte";
$a->strings["Select an alternate language"] = "Sel·lecciona un idioma alternatiu";
$a->strings["activity"] = "activitat";
$a->strings["comment"] = "comentari";
$a->strings["post"] = "missatge";
$a->strings["Item filed"] = "Element arxivat";
$a->strings["Sharing notification from Diaspora network"] = "Compartint la notificació de la xarxa Diàspora";
$a->strings["Attachments:"] = "Adjunts:";
$a->strings["[Relayed] Comment authored by %s from network %s"] = "[Retransmès] Comentari escrit per %s des de la xarxa %s";
$a->strings["view full size"] = "Veure a mida completa";
$a->strings["Embedded content"] = "Contingut incrustat";
$a->strings["Embedding disabled"] = "Incrustacions deshabilitades";
$a->strings["A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "Un grup eliminat amb aquest nom va ser restablert. Els permisos dels elements existents <strong>poden</strong> aplicar-se a aquest grup i tots els futurs membres. Si això no és el que pretén, si us plau, crei un altre grup amb un nom diferent.";
$a->strings["Default privacy group for new contacts"] = "Privacitat per defecte per a nous contactes";
$a->strings["Everybody"] = "Tothom";
$a->strings["edit"] = "editar";
$a->strings["Groups"] = "Grups";
$a->strings["Edit group"] = "Editar grup";
$a->strings["Create a new group"] = "Crear un nou grup";
$a->strings["Contacts not in any group"] = "Contactes en cap grup";
$a->strings["Logout"] = "Sortir";
$a->strings["End this session"] = "Termina sessió";
$a->strings["Status"] = "Estatus";
$a->strings["Your posts and conversations"] = "Els teus anuncis i converses";
$a->strings["Your profile page"] = "La seva pàgina de perfil";
$a->strings["Photos"] = "Fotos";
$a->strings["Your photos"] = "Les seves fotos";
$a->strings["Your events"] = "Els seus esdeveniments";
$a->strings["Personal notes"] = "Notes personals";
$a->strings["Your personal photos"] = "Les seves fotos personals";
$a->strings["Sign in"] = "Accedeix";
$a->strings["Home Page"] = "Pàgina d'Inici";
$a->strings["Create an account"] = "Crear un compte";
@ -1258,18 +1814,18 @@ $a->strings["Friend Requests"] = "Sol·licitud d'Amistat";
$a->strings["See all notifications"] = "Veure totes les notificacions";
$a->strings["Mark all system notifications seen"] = "Marcar totes les notificacions del sistema com a vistes";
$a->strings["Private mail"] = "Correu privat";
$a->strings["Inbox"] = "Safata d'entrada";
$a->strings["Outbox"] = "Safata de sortida";
$a->strings["Manage"] = "Gestionar";
$a->strings["Manage other pages"] = "Gestiona altres pàgines";
$a->strings["Profiles"] = "Perfils";
$a->strings["Manage/edit profiles"] = "Gestiona/edita perfils";
$a->strings["Manage/edit friends and contacts"] = "Gestiona/edita amics i contactes";
$a->strings["Admin"] = "Admin";
$a->strings["Site setup and configuration"] = "Ajustos i configuració del lloc";
$a->strings["Nothing new here"] = "Res nou aquí";
$a->strings["Add New Contact"] = "Afegir Nou Contacte";
$a->strings["Enter address or web location"] = "Introdueixi adreça o ubicació web";
$a->strings["Example: bob@example.com, http://example.com/barbara"] = "Exemple: bob@example.com, http://example.com/barbara";
$a->strings["Invite Friends"] = "Invita Amics";
$a->strings["%d invitation available"] = array(
0 => "%d invitació disponible",
1 => "%d invitacions disponibles",
@ -1278,21 +1834,22 @@ $a->strings["Find People"] = "Trobar Gent";
$a->strings["Enter name or interest"] = "Introdueixi nom o aficions";
$a->strings["Connect/Follow"] = "Connectar/Seguir";
$a->strings["Examples: Robert Morgenstein, Fishing"] = "Exemples: Robert Morgenstein, Pescar";
$a->strings["Similar Interests"] = "Aficions Similars";
$a->strings["Random Profile"] = "Perfi Aleatori";
$a->strings["Networks"] = "Xarxes";
$a->strings["All Networks"] = "totes les Xarxes";
$a->strings["Saved Folders"] = "Carpetes Guardades";
$a->strings["Everything"] = "Tot";
$a->strings["Categories"] = "Categories";
$a->strings["Logged out."] = "Has sortit";
$a->strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Em trobat un problema quan accedies amb la OpenID que has proporcionat. Per favor, revisa la cadena del ID.";
$a->strings["The error message was:"] = "El missatge d'error fou: ";
$a->strings["Miscellaneous"] = "Miscel·lania";
$a->strings["year"] = "any";
$a->strings["month"] = "mes";
$a->strings["day"] = "dia";
$a->strings["never"] = "mai";
$a->strings["less than a second ago"] = "Fa menys d'un segon";
$a->strings["years"] = "anys";
$a->strings["months"] = "mesos";
$a->strings["week"] = "setmana";
$a->strings["weeks"] = "setmanes";
$a->strings["days"] = "dies";
$a->strings["hour"] = "hora";
$a->strings["hours"] = "hores";
$a->strings["minute"] = "minut";
@ -1300,103 +1857,116 @@ $a->strings["minutes"] = "minuts";
$a->strings["second"] = "segon";
$a->strings["seconds"] = "segons";
$a->strings["%1\$d %2\$s ago"] = " fa %1\$d %2\$s";
$a->strings["%s's birthday"] = "%s aniversari";
$a->strings["Happy Birthday %s"] = "Feliç Aniversari %s";
$a->strings["From: "] = "Des de:";
$a->strings["$1 wrote:"] = "$1 va escrivir:";
$a->strings["Image/photo"] = "Imatge/foto";
$a->strings["$1 wrote:"] = "$1 va escriure:";
$a->strings["Encrypted content"] = "";
$a->strings["Cannot locate DNS info for database server '%s'"] = "No put trobar informació de DNS del servidor de base de dades '%s'";
$a->strings["[no subject]"] = "[Sense assumpte]";
$a->strings["Visible to everybody"] = "Visible per tothom";
$a->strings["show"] = "mostra";
$a->strings["don't show"] = "no mostris";
$a->strings["Friendica Notification"] = "Notificacions de Friendica";
$a->strings["Thank You,"] = "Gràcies,";
$a->strings["%s Administrator"] = "%s Administrador";
$a->strings["%s <!item_type!>"] = "%s <!item_type!>";
$a->strings["[Friendica:Notify] New mail received at %s"] = "[Friendica: Notifica] nou correu rebut a %s";
$a->strings["%s sent you a new private message at %s."] = "%s t'ha enviat un nou missatge privat en %s";
$a->strings["%s sent you %s."] = "%s t'ha enviat %s.";
$a->strings["%1\$s sent you a new private message at %2\$s."] = "%1\$s t'ha enviat un missatge privat nou en %2\$s.";
$a->strings["%1\$s sent you %2\$s."] = "%1\$s t'ha enviat %2\$s.";
$a->strings["a private message"] = "un missatge privat";
$a->strings["Please visit %s to view and/or reply to your private messages."] = "Per favor, visiteu %s per a veure i/o respondre els teus missatges privats.";
$a->strings["%s's"] = "%s's";
$a->strings["your"] = "tu";
$a->strings["[Friendica:Notify] Comment to conversation #%d by %s"] = "[Friendica:Notifica] Conversació comentada #%d per %s";
$a->strings["%1\$s commented on [url=%2\$s]a %3\$s[/url]"] = "%1\$s ha comentat en [url=%2\$s]a %3\$s[/url]";
$a->strings["%1\$s commented on [url=%2\$s]%3\$s's %4\$s[/url]"] = "%1\$s ha comentat en [url=%2\$s]%3\$s de %4\$s[/url]";
$a->strings["%1\$s commented on [url=%2\$s]your %3\$s[/url]"] = "%1\$s ha comentat en [url=%2\$s] el teu %3\$s[/url]";
$a->strings["[Friendica:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Friendica:Notificació] Comentaris a la conversació #%1\$d per %2\$s";
$a->strings["%s commented on an item/conversation you have been following."] = "%s ha comentat un element/conversació que estas seguint.";
$a->strings["%s commented on %s."] = "%s comentat a %s.";
$a->strings["Please visit %s to view and/or reply to the conversation."] = "Si us pau, visiteu %s per a veure i/o respondre la conversació.";
$a->strings["[Friendica:Notify] %s posted to your profile wall"] = "[Friendica:Notifica] %s enviat al teu mur del perfil";
$a->strings["%s posted to your profile wall at %s"] = "%s enviat al teu mur de perfil %s";
$a->strings["%s posted to %s"] = "%s enviat a %s";
$a->strings["your profile wall."] = "El teu perfil del mur.";
$a->strings["%1\$s posted to your profile wall at %2\$s"] = "%1\$s ha fet un enviament al teu mur de perfils en %2\$s";
$a->strings["%1\$s posted to [url=%2\$s]your wall[/url]"] = "";
$a->strings["[Friendica:Notify] %s tagged you"] = "[Friendica:Notifica] %s t'ha etiquetat";
$a->strings["%s tagged you at %s"] = "%s t'ha etiquetat en %s";
$a->strings["%s %s."] = "%s %s.";
$a->strings["tagged you"] = "Etiquetat";
$a->strings["%1\$s tagged you at %2\$s"] = "%1\$s t'ha etiquetat a %2\$s";
$a->strings["%1\$s [url=%2\$s]tagged you[/url]."] = "%1\$s [url=%2\$s] t'ha etiquetat[/url].";
$a->strings["[Friendica:Notify] %1\$s poked you"] = "";
$a->strings["%1\$s poked you at %2\$s"] = "";
$a->strings["%1\$s [url=%2\$s]poked you[/url]."] = "";
$a->strings["[Friendica:Notify] %s tagged your post"] = "[Friendica:Notifica] %s ha etiquetat el teu missatge";
$a->strings["%s tagged your post at %s"] = "%s Ha etiquetat un missatge teu en %s";
$a->strings["%s tagged %s"] = "%s etiquetat %s";
$a->strings["your post"] = "El teu missatge";
$a->strings["%1\$s tagged your post at %2\$s"] = "%1\$s ha etiquetat un missatge teu a %2\$s";
$a->strings["%1\$s tagged [url=%2\$s]your post[/url]"] = "%1\$s etiquetà [url=%2\$s] el teu enviament[/url]";
$a->strings["[Friendica:Notify] Introduction received"] = "[Friendica:Notifica] Presentacio rebuda";
$a->strings["You've received an introduction from '%s' at %s"] = "Has rebut una presentació de %s en %s";
$a->strings["You've received %s from %s."] = "Has rebut %s de %s";
$a->strings["an introduction"] = "Una presentació";
$a->strings["You've received an introduction from '%1\$s' at %2\$s"] = "Has rebut una presentació des de '%1\$s' en %2\$s";
$a->strings["You've received [url=%1\$s]an introduction[/url] from %2\$s."] = "Has rebut [url=%1\$s] com a presentació[/url] des de %2\$s.";
$a->strings["You may visit their profile at %s"] = "Pot visitar el seu perfil en %s";
$a->strings["Please visit %s to approve or reject the introduction."] = "Si us plau visiteu %s per aprovar o rebutjar la presentació.";
$a->strings["[Friendica:Notify] Friend suggestion received"] = "[Friendica:Notifica] Suggerencia d'amistat rebuda";
$a->strings["You've received a friend suggestion from '%s' at %s"] = "Has rebut una suggerencia d'amistat de %s en %s";
$a->strings["You've received %s for %s from %s."] = "Has rebut %s per %s de %s.";
$a->strings["a friend suggestion"] = "Un suggerencia d'amistat";
$a->strings["You've received a friend suggestion from '%1\$s' at %2\$s"] = "Has rebut una suggerencia d'amistat des de '%1\$s' en %2\$s";
$a->strings["You've received [url=%1\$s]a friend suggestion[/url] for %2\$s from %3\$s."] = "Has rebut [url=%1\$s] com a suggerencia d'amistat[/url] per a %2\$s des de %3\$s.";
$a->strings["Name:"] = "Nom:";
$a->strings["Photo:"] = "Foto:";
$a->strings["Please visit %s to approve or reject the suggestion."] = "Si us plau, visiteu %s per aprovar o rebutjar la suggerencia.";
$a->strings["Connect URL missing."] = "URL del connector perduda.";
$a->strings["This site is not configured to allow communications with other networks."] = "Aquest lloc no està configurat per permetre les comunicacions amb altres xarxes.";
$a->strings["No compatible communication protocols or feeds were discovered."] = "Protocol de comunnicació no compatible o alimentador descobert.";
$a->strings["The profile address specified does not provide adequate information."] = "L'adreça de perfil especificada no proveeix informació adient.";
$a->strings["An author or name was not found."] = "Un autor o nom no va ser trobat";
$a->strings["No browser URL could be matched to this address."] = "Cap direcció URL del navegador coincideix amb aquesta adreça.";
$a->strings["Unable to match @-style Identity Address with a known protocol or email contact."] = "Incapaç de trobar coincidències amb la Adreça d'Identitat estil @ amb els protocols coneguts o contactes de correu. ";
$a->strings["Use mailto: in front of address to force email check."] = "Emprar mailto: davant la adreça per a forçar la comprovació del correu.";
$a->strings["The profile address specified belongs to a network which has been disabled on this site."] = "La direcció del perfil especificat pertany a una xarxa que ha estat desactivada en aquest lloc.";
$a->strings["Limited profile. This person will be unable to receive direct/personal notifications from you."] = "Perfil limitat. Aquesta persona no podrà rebre notificacions personals/directes de tu.";
$a->strings["Unable to retrieve contact information."] = "No es pot recuperar la informació de contacte.";
$a->strings["following"] = "seguint";
$a->strings["A new person is sharing with you at "] = "Una persona nova està compartint amb tú en";
$a->strings["You have a new follower at "] = "Tens un nou seguidor a ";
$a->strings["image/photo"] = "Imatge/foto";
$a->strings["Archives"] = "Arxius";
$a->strings["An invitation is required."] = "Es requereix invitació.";
$a->strings["Invitation could not be verified."] = "La invitació no ha pogut ser verificada.";
$a->strings["Invalid OpenID url"] = "OpenID url no vàlid";
$a->strings["Please enter the required information."] = "Per favor, introdueixi la informació requerida.";
$a->strings["Please use a shorter name."] = "Per favor, empri un nom més curt.";
$a->strings["Name too short."] = "Nom massa curt.";
$a->strings["That doesn't appear to be your full (First Last) name."] = "Això no sembla ser el teu nom complet.";
$a->strings["Your email domain is not among those allowed on this site."] = "El seu domini de correu electrònic no es troba entre els permesos en aquest lloc.";
$a->strings["Not a valid email address."] = "Adreça de correu no vàlida.";
$a->strings["Cannot use that email."] = "No es pot utilitzar aquest correu electrònic.";
$a->strings["Your \"nickname\" can only contain \"a-z\", \"0-9\", \"-\", and \"_\", and must also begin with a letter."] = "El teu sobrenom nomes pot contenir \"a-z\", \"0-9\", \"-\", i \"_\", i començar amb lletra.";
$a->strings["Nickname is already registered. Please choose another."] = "àlies ja registrat. Tria un altre.";
$a->strings["Nickname was once registered here and may not be re-used. Please choose another."] = "L'àlies emprat ja està registrat alguna vegada i no es pot reutilitzar ";
$a->strings["SERIOUS ERROR: Generation of security keys failed."] = "ERROR IMPORTANT: La generació de claus de seguretat ha fallat.";
$a->strings["An error occurred during registration. Please try again."] = "Un error ha succeït durant el registre. Intenta-ho de nou.";
$a->strings["An error occurred creating your default profile. Please try again."] = "Un error ha succeit durant la creació del teu perfil per defecte. Intenta-ho de nou.";
$a->strings["Welcome "] = "Benvingut";
$a->strings["Please upload a profile photo."] = "Per favor, carrega una foto per al perfil";
$a->strings["Welcome back "] = "Benvingut de nou ";
$a->strings["View status"] = "Veure estatus";
$a->strings["View profile"] = "Veure perfil";
$a->strings["View photos"] = "Veure fotos";
$a->strings["View recent"] = "Veure recent";
$a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "El formulari del token de seguretat no es correcte. Això probablement passa perquè el formulari ha estat massa temps obert (>3 hores) abans d'enviat-lo.";
$a->strings["stopped following"] = "Deixar de seguir";
$a->strings["Poke"] = "";
$a->strings["View Status"] = "Veure Estatus";
$a->strings["View Profile"] = "Veure Perfil";
$a->strings["View Photos"] = "Veure Fotos";
$a->strings["Network Posts"] = "Enviaments a la Xarxa";
$a->strings["Edit Contact"] = "Editat Contacte";
$a->strings["Send PM"] = "Enviar Missatge Privat";
$a->strings["%1\$s poked %2\$s"] = "";
$a->strings["post/item"] = "anunci/element";
$a->strings["%1\$s marked %2\$s's %3\$s as favorite"] = "%1\$s marcat %2\$s's %3\$s com favorit";
$a->strings["Select"] = "Selecionar";
$a->strings["View %s's profile @ %s"] = "Veure perfil de %s @ %s";
$a->strings["%s from %s"] = "%s des de %s";
$a->strings["View in context"] = "Veure en context";
$a->strings["%d comment"] = array(
0 => "%d comentari",
1 => "%d comentaris",
);
$a->strings["show more"] = "Mostrar més";
$a->strings["like"] = "Agrada";
$a->strings["dislike"] = "Desagrada";
$a->strings["Share this"] = "Compartir això";
$a->strings["share"] = "Compartir";
$a->strings["add star"] = "Afegir a favorits";
$a->strings["remove star"] = "Esborrar favorit";
$a->strings["toggle star status"] = "Canviar estatus de favorit";
$a->strings["starred"] = "favorit";
$a->strings["add tag"] = "afegir etiqueta";
$a->strings["to"] = "a";
$a->strings["Wall-to-Wall"] = "Mur-a-Mur";
$a->strings["via Wall-To-Wall:"] = "via Mur-a-Mur";
$a->strings["Categories:"] = "";
$a->strings["Filed under:"] = "";
$a->strings["remove"] = "esborrar";
$a->strings["Delete Selected Items"] = "Esborra els Elements Seleccionats";
$a->strings["%s likes this."] = "a %s agrada això.";
$a->strings["%s doesn't like this."] = "a %s desagrada això.";
$a->strings["<span %1\$s>%2\$d people</span> like this."] = "Li agrada a<span %1\$s>%2\$d persones</span> .";
$a->strings["<span %1\$s>%2\$d people</span> don't like this."] = "No li agrada<span %1\$s>%2\$d persones</span> .";
$a->strings["<span %1\$s>%2\$d people</span> like this."] = "Li agrada a <span %1\$s>%2\$d persones</span> .";
$a->strings["<span %1\$s>%2\$d people</span> don't like this."] = "No li agrada <span %1\$s>%2\$d persones</span> .";
$a->strings["and"] = "i";
$a->strings[", and %d other people"] = ", i altres %d persones";
$a->strings["%s like this."] = "a %s le gusta esto.";
$a->strings["%s don't like this."] = "a %s no le gusta esto.";
$a->strings["%s like this."] = "a %s li agrada això.";
$a->strings["%s don't like this."] = "a %s no li agrada això.";
$a->strings["Visible to <strong>everybody</strong>"] = "Visible per a <strong>tothom</strong>";
$a->strings["Please enter a video link/URL:"] = "Per favor , introdueixi el enllaç/URL del video";
$a->strings["Please enter an audio link/URL:"] = "Per favor , introdueixi el enllaç/URL del audio:";
$a->strings["Tag term:"] = "Terminis de l'etiqueta:";
$a->strings["Where are you right now?"] = "On ets ara?";
$a->strings["Enter a title for this item"] = "Escriviu un títol per a aquest article";
$a->strings["upload photo"] = "carregar fotos";
$a->strings["attach file"] = "adjuntar arxiu";
$a->strings["web link"] = "enllaç de web";
@ -1407,19 +1977,30 @@ $a->strings["audio link"] = "enllaç de audio";
$a->strings["set location"] = "establir la ubicació";
$a->strings["clear location"] = "netejar ubicació";
$a->strings["permissions"] = "Permissos";
$a->strings["Click here to upgrade."] = "Clica aquí per actualitzar.";
$a->strings["This action exceeds the limits set by your subscription plan."] = "Aquesta acció excedeix els límits del teu plan de subscripció.";
$a->strings["This action is not available under your subscription plan."] = "Aquesta acció no està disponible en el teu plan de subscripció.";
$a->strings["Delete this item?"] = "Esborrar aquest element?";
$a->strings["show fewer"] = "Mostrar menys";
$a->strings["Update %s failed. See error logs."] = "Actualització de %s fracassà. Mira el registre d'errors.";
$a->strings["Update Error at %s"] = "Error d'actualització en %s";
$a->strings["Create a New Account"] = "Crear un Nou Compte";
$a->strings["Nickname or Email address: "] = "Malnom o Adreça de correu:";
$a->strings["Nickname or Email address: "] = "Àlies o Adreça de correu:";
$a->strings["Password: "] = "Contrasenya:";
$a->strings["Or login using OpenID: "] = "O accedixi emprant OpenID:";
$a->strings["Forgot your password?"] = "Oblidà la contrasenya?";
$a->strings["Requested account is not available."] = "";
$a->strings["Edit profile"] = "Editar perfil";
$a->strings["Message"] = "Missatge";
$a->strings["g A l F d"] = "g A l F d";
$a->strings["F d"] = "F d";
$a->strings["[today]"] = "[avui]";
$a->strings["Birthday Reminders"] = "Recordatori d'Aniversaris";
$a->strings["Birthdays this week:"] = "Aniversari aquesta setmana";
$a->strings["[today]"] = "[avui]";
$a->strings["[No description]"] = "[sense descripció]";
$a->strings["Event Reminders"] = "Recordatori d'Esdeveniments";
$a->strings["Events this week:"] = "Esdeveniments aquesta setmana";
$a->strings["[No description]"] = "[sense descripció]";
$a->strings["Status Messages and Posts"] = "Missatges i Enviaments d'Estatus";
$a->strings["Profile Details"] = "Detalls del Perfil";
$a->strings["Events and Calendar"] = "Esdeveniments i Calendari";
$a->strings["Only You Can See This"] = "Només ho pots veure tu";

View file

@ -1,11 +1,16 @@
{{ if $threaded }}
<div class="comment-wwedit-wrapper threaded" id="comment-edit-wrapper-$id" style="display: block;">
{{ else }}
<div class="comment-wwedit-wrapper" id="comment-edit-wrapper-$id" style="display: block;">
<form class="comment-edit-form" id="comment-edit-form-$id" action="item" method="post" onsubmit="post_comment($id); return false;">
{{ endif }}
<form class="comment-edit-form" style="display: block;" id="comment-edit-form-$id" action="item" method="post" onsubmit="post_comment($id); return false;">
<input type="hidden" name="type" value="$type" />
<input type="hidden" name="profile_uid" value="$profile_uid" />
<input type="hidden" name="parent" value="$parent" />
<input type="hidden" name="return" value="$return_path" />
<input type="hidden" name="jsreload" value="$jsreload" />
<input type="hidden" name="preview" id="comment-preview-inp-$id" value="0" />
<input type="hidden" name="post_id_random" value="$rand_num" />
<div class="comment-edit-photo" id="comment-edit-photo-$id" >
<a class="comment-edit-photo-link" href="$mylink" title="$mytitle"><img class="my-comment-photo" src="$myphoto" alt="$mytitle" title="$mytitle" /></a>

View file

@ -1,5 +1,5 @@
<ul class="tabs">
{{ for $tabs as $tab }}
<li><a href="$tab.url" class="tab button $tab.sel"{{ if $tab.title }} title="$tab.title"{{ endif }}>$tab.label</a></li>
<li id="$tab.id"><a href="$tab.url" class="tab button $tab.sel"{{ if $tab.title }} title="$tab.title"{{ endif }}>$tab.label</a></li>
{{ endfor }}
</ul>

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