Merge remote-tracking branch 'upstream/develop' into app-user2

This commit is contained in:
Michael 2021-08-09 15:32:32 +00:00
commit 4495e83eca
36 changed files with 446 additions and 312 deletions

View file

@ -1,6 +1,6 @@
-- ------------------------------------------ -- ------------------------------------------
-- Friendica 2021.09-dev (Siberian Iris) -- Friendica 2021.09-dev (Siberian Iris)
-- DB_UPDATE_VERSION 1431 -- DB_UPDATE_VERSION 1432
-- ------------------------------------------ -- ------------------------------------------
@ -126,7 +126,8 @@ CREATE TABLE IF NOT EXISTS `contact` (
`about` text COMMENT '', `about` text COMMENT '',
`keywords` text COMMENT 'public keywords (interests) of the contact', `keywords` text COMMENT 'public keywords (interests) of the contact',
`gender` varchar(32) NOT NULL DEFAULT '' COMMENT 'Deprecated', `gender` varchar(32) NOT NULL DEFAULT '' COMMENT 'Deprecated',
`xmpp` varchar(255) NOT NULL DEFAULT '' COMMENT '', `xmpp` varchar(255) NOT NULL DEFAULT '' COMMENT 'XMPP address',
`matrix` varchar(255) NOT NULL DEFAULT '' COMMENT 'Matrix address',
`attag` varchar(255) NOT NULL DEFAULT '' COMMENT '', `attag` varchar(255) NOT NULL DEFAULT '' COMMENT '',
`avatar` varchar(255) NOT NULL DEFAULT '' COMMENT '', `avatar` varchar(255) NOT NULL DEFAULT '' COMMENT '',
`photo` varchar(255) DEFAULT '' COMMENT 'Link to the profile photo of the contact', `photo` varchar(255) DEFAULT '' COMMENT 'Link to the profile photo of the contact',
@ -1366,7 +1367,8 @@ CREATE TABLE IF NOT EXISTS `profile` (
`education` text COMMENT 'Deprecated', `education` text COMMENT 'Deprecated',
`contact` text COMMENT 'Deprecated', `contact` text COMMENT 'Deprecated',
`homepage` varchar(255) NOT NULL DEFAULT '' COMMENT '', `homepage` varchar(255) NOT NULL DEFAULT '' COMMENT '',
`xmpp` varchar(255) NOT NULL DEFAULT '' COMMENT '', `xmpp` varchar(255) NOT NULL DEFAULT '' COMMENT 'XMPP address',
`matrix` varchar(255) NOT NULL DEFAULT '' COMMENT 'Matrix address',
`photo` varchar(255) NOT NULL DEFAULT '' COMMENT '', `photo` varchar(255) NOT NULL DEFAULT '' COMMENT '',
`thumb` varchar(255) NOT NULL DEFAULT '' COMMENT '', `thumb` varchar(255) NOT NULL DEFAULT '' COMMENT '',
`publish` boolean NOT NULL DEFAULT '0' COMMENT 'publish default profile in local directory', `publish` boolean NOT NULL DEFAULT '0' COMMENT 'publish default profile in local directory',
@ -2199,6 +2201,7 @@ CREATE VIEW `owner-view` AS SELECT
`contact`.`keywords` AS `keywords`, `contact`.`keywords` AS `keywords`,
`contact`.`gender` AS `gender`, `contact`.`gender` AS `gender`,
`contact`.`xmpp` AS `xmpp`, `contact`.`xmpp` AS `xmpp`,
`contact`.`matrix` AS `matrix`,
`contact`.`attag` AS `attag`, `contact`.`attag` AS `attag`,
`contact`.`avatar` AS `avatar`, `contact`.`avatar` AS `avatar`,
`contact`.`photo` AS `photo`, `contact`.`photo` AS `photo`,
@ -2325,6 +2328,7 @@ CREATE VIEW `account-view` AS SELECT
`contact`.`about` AS `about`, `contact`.`about` AS `about`,
`contact`.`keywords` AS `keywords`, `contact`.`keywords` AS `keywords`,
`contact`.`xmpp` AS `xmpp`, `contact`.`xmpp` AS `xmpp`,
`contact`.`matrix` AS `matrix`,
`contact`.`avatar` AS `avatar`, `contact`.`avatar` AS `avatar`,
`contact`.`photo` AS `photo`, `contact`.`photo` AS `photo`,
`contact`.`thumb` AS `thumb`, `contact`.`thumb` AS `thumb`,
@ -2408,6 +2412,7 @@ CREATE VIEW `account-user-view` AS SELECT
`contact`.`about` AS `about`, `contact`.`about` AS `about`,
`contact`.`keywords` AS `keywords`, `contact`.`keywords` AS `keywords`,
`contact`.`xmpp` AS `xmpp`, `contact`.`xmpp` AS `xmpp`,
`contact`.`matrix` AS `matrix`,
`contact`.`avatar` AS `avatar`, `contact`.`avatar` AS `avatar`,
`contact`.`photo` AS `photo`, `contact`.`photo` AS `photo`,
`contact`.`thumb` AS `thumb`, `contact`.`thumb` AS `thumb`,

View file

@ -24,7 +24,8 @@ Fields
| about | | text | YES | | NULL | | | about | | text | YES | | NULL | |
| keywords | public keywords (interests) of the contact | text | YES | | NULL | | | keywords | public keywords (interests) of the contact | text | YES | | NULL | |
| gender | Deprecated | varchar(32) | NO | | | | | gender | Deprecated | varchar(32) | NO | | | |
| xmpp | | varchar(255) | NO | | | | | xmpp | XMPP address | varchar(255) | NO | | | |
| matrix | Matrix address | varchar(255) | NO | | | |
| attag | | varchar(255) | NO | | | | | attag | | varchar(255) | NO | | | |
| avatar | | varchar(255) | NO | | | | | avatar | | varchar(255) | NO | | | |
| photo | Link to the profile photo of the contact | varchar(255) | YES | | | | | photo | Link to the profile photo of the contact | varchar(255) | YES | | | |

View file

@ -45,7 +45,8 @@ Fields
| education | Deprecated | text | YES | | NULL | | | education | Deprecated | text | YES | | NULL | |
| contact | Deprecated | text | YES | | NULL | | | contact | Deprecated | text | YES | | NULL | |
| homepage | | varchar(255) | NO | | | | | homepage | | varchar(255) | NO | | | |
| xmpp | | varchar(255) | NO | | | | | xmpp | XMPP address | varchar(255) | NO | | | |
| matrix | Matrix address | varchar(255) | NO | | | |
| photo | | varchar(255) | NO | | | | | photo | | varchar(255) | NO | | | |
| thumb | | varchar(255) | NO | | | | | thumb | | varchar(255) | NO | | | |
| publish | publish default profile in local directory | boolean | NO | | 0 | | | publish | publish default profile in local directory | boolean | NO | | 0 | |

View file

@ -680,7 +680,11 @@ function item_post(App $a) {
$o = conversation($a, [array_merge($contact_record, $datarray)], 'search', false, true); $o = conversation($a, [array_merge($contact_record, $datarray)], 'search', false, true);
System::jsonExit(['preview' => $o]); System::jsonExit(['preview' => $o]);
} elseif (!empty($_REQUEST['scheduled_at'])) { }
Hook::callAll('post_local',$datarray);
if (!empty($_REQUEST['scheduled_at'])) {
$scheduled_at = DateTimeFormat::convert($_REQUEST['scheduled_at'], 'UTC', $a->getTimezone()); $scheduled_at = DateTimeFormat::convert($_REQUEST['scheduled_at'], 'UTC', $a->getTimezone());
if ($scheduled_at > DateTimeFormat::utcNow()) { if ($scheduled_at > DateTimeFormat::utcNow()) {
unset($datarray['created']); unset($datarray['created']);
@ -691,16 +695,12 @@ function item_post(App $a) {
unset($datarray['edit']); unset($datarray['edit']);
unset($datarray['self']); unset($datarray['self']);
unset($datarray['api_source']); unset($datarray['api_source']);
Post\Delayed::add($datarray['uri'], $datarray, PRIORITY_HIGH, false, $scheduled_at); Post\Delayed::add($datarray['uri'], $datarray, PRIORITY_HIGH, Post\Delayed::PREPARED_NO_HOOK, $scheduled_at);
item_post_return(DI::baseUrl(), $api_source, $return_path); item_post_return(DI::baseUrl(), $api_source, $return_path);
} }
} }
$datarray['uri-id'] = ItemURI::getIdByURI($datarray['uri']);
Hook::callAll('post_local',$datarray);
if (!empty($datarray['cancel'])) { if (!empty($datarray['cancel'])) {
Logger::info('mod_item: post cancelled by addon.'); Logger::info('mod_item: post cancelled by addon.');
if ($return_path) { if ($return_path) {
@ -715,6 +715,8 @@ function item_post(App $a) {
System::jsonExit($json); System::jsonExit($json);
} }
$datarray['uri-id'] = ItemURI::getIdByURI($datarray['uri']);
if ($orig_post) { if ($orig_post) {
// Fill the cache field // Fill the cache field
// This could be done in Item::update as well - but we have to check for the existance of some fields. // This could be done in Item::update as well - but we have to check for the existance of some fields.

View file

@ -94,6 +94,7 @@ class VCard
'$url' => Contact::magicLinkByContact($contact, $contact['url']), '$url' => Contact::magicLinkByContact($contact, $contact['url']),
'$about' => BBCode::convertForUriId($contact['uri-id'] ?? 0, $contact['about'] ?? ''), '$about' => BBCode::convertForUriId($contact['uri-id'] ?? 0, $contact['about'] ?? ''),
'$xmpp' => DI::l10n()->t('XMPP:'), '$xmpp' => DI::l10n()->t('XMPP:'),
'$matrix' => DI::l10n()->t('Matrix:'),
'$location' => DI::l10n()->t('Location:'), '$location' => DI::l10n()->t('Location:'),
'$network_link' => $network_link, '$network_link' => $network_link,
'$network_avatar' => $network_avatar, '$network_avatar' => $network_avatar,

View file

@ -676,7 +676,7 @@ class Contact
public static function updateSelfFromUserID($uid, $update_avatar = false) public static function updateSelfFromUserID($uid, $update_avatar = false)
{ {
$fields = ['id', 'name', 'nick', 'location', 'about', 'keywords', 'avatar', 'prvkey', 'pubkey', $fields = ['id', 'name', 'nick', 'location', 'about', 'keywords', 'avatar', 'prvkey', 'pubkey',
'xmpp', 'contact-type', 'forum', 'prv', 'avatar-date', 'url', 'nurl', 'unsearchable', 'xmpp', 'matrix', 'contact-type', 'forum', 'prv', 'avatar-date', 'url', 'nurl', 'unsearchable',
'photo', 'thumb', 'micro', 'addr', 'request', 'notify', 'poll', 'confirm', 'poco', 'network']; 'photo', 'thumb', 'micro', 'addr', 'request', 'notify', 'poll', 'confirm', 'poco', 'network'];
$self = DBA::selectFirst('contact', $fields, ['uid' => $uid, 'self' => true]); $self = DBA::selectFirst('contact', $fields, ['uid' => $uid, 'self' => true]);
if (!DBA::isResult($self)) { if (!DBA::isResult($self)) {
@ -690,7 +690,7 @@ class Contact
} }
$fields = ['name', 'photo', 'thumb', 'about', 'address', 'locality', 'region', $fields = ['name', 'photo', 'thumb', 'about', 'address', 'locality', 'region',
'country-name', 'pub_keywords', 'xmpp', 'net-publish']; 'country-name', 'pub_keywords', 'xmpp', 'matrix', 'net-publish'];
$profile = DBA::selectFirst('profile', $fields, ['uid' => $uid]); $profile = DBA::selectFirst('profile', $fields, ['uid' => $uid]);
if (!DBA::isResult($profile)) { if (!DBA::isResult($profile)) {
return false; return false;
@ -702,7 +702,7 @@ class Contact
'avatar-date' => $self['avatar-date'], 'location' => Profile::formatLocation($profile), 'avatar-date' => $self['avatar-date'], 'location' => Profile::formatLocation($profile),
'about' => $profile['about'], 'keywords' => $profile['pub_keywords'], 'about' => $profile['about'], 'keywords' => $profile['pub_keywords'],
'contact-type' => $user['account-type'], 'prvkey' => $user['prvkey'], 'contact-type' => $user['account-type'], 'prvkey' => $user['prvkey'],
'pubkey' => $user['pubkey'], 'xmpp' => $profile['xmpp'], 'network' => Protocol::DFRN]; 'pubkey' => $user['pubkey'], 'xmpp' => $profile['xmpp'], 'matrix' => $profile['matrix'], 'network' => Protocol::DFRN];
// it seems as if ported accounts can have wrong values, so we make sure that now everything is fine. // it seems as if ported accounts can have wrong values, so we make sure that now everything is fine.
$fields['url'] = DI::baseUrl() . '/profile/' . $user['nickname']; $fields['url'] = DI::baseUrl() . '/profile/' . $user['nickname'];
@ -2064,11 +2064,11 @@ class Contact
*/ */
// These fields aren't updated by this routine: // These fields aren't updated by this routine:
// 'xmpp', 'sensitive' // 'sensitive'
$fields = ['uid', 'uri-id', 'avatar', 'header', 'name', 'nick', 'location', 'keywords', 'about', 'subscribe', $fields = ['uid', 'uri-id', 'avatar', 'header', 'name', 'nick', 'location', 'keywords', 'about', 'subscribe',
'manually-approve', 'unsearchable', 'url', 'addr', 'batch', 'notify', 'poll', 'request', 'confirm', 'poco', 'manually-approve', 'unsearchable', 'url', 'addr', 'batch', 'notify', 'poll', 'request', 'confirm', 'poco',
'network', 'alias', 'baseurl', 'gsid', 'forum', 'prv', 'contact-type', 'pubkey', 'last-item']; 'network', 'alias', 'baseurl', 'gsid', 'forum', 'prv', 'contact-type', 'pubkey', 'last-item', 'xmpp', 'matrix'];
$contact = DBA::selectFirst('contact', $fields, ['id' => $id]); $contact = DBA::selectFirst('contact', $fields, ['id' => $id]);
if (!DBA::isResult($contact)) { if (!DBA::isResult($contact)) {
return false; return false;

View file

@ -706,7 +706,7 @@ class Item
return GRAVITY_UNKNOWN; // Should not happen return GRAVITY_UNKNOWN; // Should not happen
} }
public static function insert($item, $notify = false, $dontcache = false) public static function insert(array $item, bool $notify = false, bool $post_local = true)
{ {
$orig_item = $item; $orig_item = $item;
@ -931,7 +931,7 @@ class Item
$item["private"] = self::PRIVATE; $item["private"] = self::PRIVATE;
} }
if ($notify) { if ($notify && $post_local) {
$item['edit'] = false; $item['edit'] = false;
$item['parent'] = $parent_id; $item['parent'] = $parent_id;
@ -953,7 +953,7 @@ class Item
unset($_SESSION['authenticated']); unset($_SESSION['authenticated']);
unset($_SESSION['uid']); unset($_SESSION['uid']);
} }
} else { } elseif (!$notify) {
Hook::callAll('post_remote', $item); Hook::callAll('post_remote', $item);
} }
@ -1141,15 +1141,13 @@ class Item
return 0; return 0;
} }
if (!$dontcache) { if ($notify) {
if ($notify) { if (!\Friendica\Content\Feature::isEnabled($posted_item['uid'], 'explicit_mentions') && ($posted_item['gravity'] == GRAVITY_COMMENT)) {
if (!\Friendica\Content\Feature::isEnabled($posted_item['uid'], 'explicit_mentions') && ($posted_item['gravity'] == GRAVITY_COMMENT)) { Tag::createImplicitMentions($posted_item['uri-id'], $posted_item['thr-parent-id']);
Tag::createImplicitMentions($posted_item['uri-id'], $posted_item['thr-parent-id']);
}
Hook::callAll('post_local_end', $posted_item);
} else {
Hook::callAll('post_remote_end', $posted_item);
} }
Hook::callAll('post_local_end', $posted_item);
} else {
Hook::callAll('post_remote_end', $posted_item);
} }
if ($posted_item['gravity'] === GRAVITY_PARENT) { if ($posted_item['gravity'] === GRAVITY_PARENT) {
@ -1465,7 +1463,7 @@ class Item
} }
} }
$distributed = self::insert($item, $notify, true); $distributed = self::insert($item, $notify);
if (!$distributed) { if (!$distributed) {
Logger::info("Distributed item wasn't stored", ['uri-id' => $item['uri-id'], 'user' => $uid]); Logger::info("Distributed item wasn't stored", ['uri-id' => $item['uri-id'], 'user' => $uid]);
@ -1534,7 +1532,7 @@ class Item
$item['contact-id'] = $item['author-id']; $item['contact-id'] = $item['author-id'];
} }
$public_shadow = self::insert($item, false, true); $public_shadow = self::insert($item);
Logger::info('Stored public shadow', ['thread' => $itemid, 'id' => $public_shadow]); Logger::info('Stored public shadow', ['thread' => $itemid, 'id' => $public_shadow]);
} }
@ -1593,7 +1591,7 @@ class Item
unset($item['post-reason']); unset($item['post-reason']);
$item['contact-id'] = Contact::getIdForURL($item['author-link']); $item['contact-id'] = Contact::getIdForURL($item['author-link']);
$public_shadow = self::insert($item, false, true); $public_shadow = self::insert($item);
Logger::info('Stored public shadow', ['uri-id' => $item['uri-id'], 'id' => $public_shadow]); Logger::info('Stored public shadow', ['uri-id' => $item['uri-id'], 'id' => $public_shadow]);

View file

@ -33,19 +33,36 @@ use Friendica\Util\DateTimeFormat;
class Delayed class Delayed
{ {
/**
* The content of the post is posted as is. Connector settings are using the default settings.
* This is used for automated scheduled posts via feeds or from the API.
*/
const PREPARED = 0;
/**
* The content is posted like a manual post. Means some processing of body will be done.
* Also it is posted with default permissions and default connector settings.
* This is used for mirrored connector posts.
*/
const UNPREPARED = 1;
/**
* Like PREPARED, but additionally the connector settings can differ.
* This is used when manually publishing scheduled posts.
*/
const PREPARED_NO_HOOK = 2;
/** /**
* Insert a new delayed post * Insert a new delayed post
* *
* @param string $uri * @param string $uri
* @param array $item * @param array $item
* @param integer $notify * @param int $notify
* @param bool $unprepared * @param int $preparation_mode
* @param string $delayed * @param string $delayed
* @param array $taglist * @param array $taglist
* @param array $attachments * @param array $attachments
* @return int ID of the created delayed post entry * @return int ID of the created delayed post entry
*/ */
public static function add(string $uri, array $item, int $notify = 0, bool $unprepared = false, string $delayed = '', array $taglist = [], array $attachments = []) public static function add(string $uri, array $item, int $notify = 0, int $preparation_mode = self::PREPARED, string $delayed = '', array $taglist = [], array $attachments = [])
{ {
if (empty($item['uid']) || self::exists($uri, $item['uid'])) { if (empty($item['uid']) || self::exists($uri, $item['uid'])) {
Logger::notice('No uid or already found'); Logger::notice('No uid or already found');
@ -63,7 +80,7 @@ class Delayed
Logger::notice('Adding post for delayed publishing', ['uid' => $item['uid'], 'delayed' => $delayed, 'uri' => $uri]); Logger::notice('Adding post for delayed publishing', ['uid' => $item['uid'], 'delayed' => $delayed, 'uri' => $uri]);
$wid = Worker::add(['priority' => PRIORITY_HIGH, 'delayed' => $delayed], 'DelayedPublish', $item, $notify, $taglist, $attachments, $unprepared, $uri); $wid = Worker::add(['priority' => PRIORITY_HIGH, 'delayed' => $delayed], 'DelayedPublish', $item, $notify, $taglist, $attachments, $preparation_mode, $uri);
if (!$wid) { if (!$wid) {
return 0; return 0;
} }
@ -168,21 +185,21 @@ class Delayed
/** /**
* Publish a delayed post * Publish a delayed post
* *
* @param array $item * @param array $item
* @param integer $notify * @param int $notify
* @param array $taglist * @param array $taglist
* @param array $attachments * @param array $attachments
* @param bool $unprepared * @param int $preparation_mode
* @param string $uri * @param string $uri
* @return bool * @return bool
*/ */
public static function publish(array $item, int $notify = 0, array $taglist = [], array $attachments = [], bool $unprepared = false, string $uri = '') public static function publish(array $item, int $notify = 0, array $taglist = [], array $attachments = [], int $preparation_mode = self::PREPARED, string $uri = '')
{ {
if (!empty($attachments)) { if (!empty($attachments)) {
$item['attachments'] = $attachments; $item['attachments'] = $attachments;
} }
if ($unprepared) { if ($preparation_mode == self::UNPREPARED) {
$_SESSION['authenticated'] = true; $_SESSION['authenticated'] = true;
$_SESSION['uid'] = $item['uid']; $_SESSION['uid'] = $item['uid'];
@ -209,7 +226,8 @@ class Delayed
return $id; return $id;
} }
$id = Item::insert($item, $notify);
$id = Item::insert($item, $notify, $preparation_mode == self::PREPARED);
Logger::notice('Post stored', ['id' => $id, 'uid' => $item['uid'], 'cid' => $item['contact-id']]); Logger::notice('Post stored', ['id' => $id, 'uid' => $item['uid'], 'cid' => $item['contact-id']]);

View file

@ -361,6 +361,7 @@ class Profile
$homepage = !empty($profile['homepage']) ? DI::l10n()->t('Homepage:') : false; $homepage = !empty($profile['homepage']) ? DI::l10n()->t('Homepage:') : false;
$about = !empty($profile['about']) ? DI::l10n()->t('About:') : false; $about = !empty($profile['about']) ? DI::l10n()->t('About:') : false;
$xmpp = !empty($profile['xmpp']) ? DI::l10n()->t('XMPP:') : false; $xmpp = !empty($profile['xmpp']) ? DI::l10n()->t('XMPP:') : false;
$matrix = !empty($profile['matrix']) ? DI::l10n()->t('Matrix:') : false;
if ((!empty($profile['hidewall']) || $block) && !Session::isAuthenticated()) { if ((!empty($profile['hidewall']) || $block) && !Session::isAuthenticated()) {
$location = $homepage = $about = false; $location = $homepage = $about = false;
@ -439,6 +440,7 @@ class Profile
$o .= Renderer::replaceMacros($tpl, [ $o .= Renderer::replaceMacros($tpl, [
'$profile' => $p, '$profile' => $p,
'$xmpp' => $xmpp, '$xmpp' => $xmpp,
'$matrix' => $matrix,
'$follow' => DI::l10n()->t('Follow'), '$follow' => DI::l10n()->t('Follow'),
'$follow_link' => $follow_link, '$follow_link' => $follow_link,
'$unfollow' => DI::l10n()->t('Unfollow'), '$unfollow' => DI::l10n()->t('Unfollow'),

View file

@ -186,7 +186,7 @@ class Statuses extends BaseApi
if (!empty($request['scheduled_at'])) { if (!empty($request['scheduled_at'])) {
$item['guid'] = Item::guid($item, true); $item['guid'] = Item::guid($item, true);
$item['uri'] = Item::newURI($item['uid'], $item['guid']); $item['uri'] = Item::newURI($item['uid'], $item['guid']);
$id = Post\Delayed::add($item['uri'], $item, PRIORITY_HIGH, false, $request['scheduled_at']); $id = Post\Delayed::add($item['uri'], $item, PRIORITY_HIGH, Post\Delayed::PREPARED, $request['scheduled_at']);
if (empty($id)) { if (empty($id)) {
DI::mstdnError()->InternalError(); DI::mstdnError()->InternalError();
} }

View file

@ -607,6 +607,8 @@ class Contact extends BaseModule
'$location_label' => DI::l10n()->t('Location:'), '$location_label' => DI::l10n()->t('Location:'),
'$xmpp' => BBCode::convertForUriId($contact['uri-id'] ?? 0, $contact['xmpp']), '$xmpp' => BBCode::convertForUriId($contact['uri-id'] ?? 0, $contact['xmpp']),
'$xmpp_label' => DI::l10n()->t('XMPP:'), '$xmpp_label' => DI::l10n()->t('XMPP:'),
'$matrix' => BBCode::convertForUriId($contact['uri-id'] ?? 0, $contact['matrix']),
'$matrix_label' => DI::l10n()->t('Matrix:'),
'$about' => BBCode::convertForUriId($contact['uri-id'] ?? 0, $contact['about'], BBCode::EXTERNAL), '$about' => BBCode::convertForUriId($contact['uri-id'] ?? 0, $contact['about'], BBCode::EXTERNAL),
'$about_label' => DI::l10n()->t('About:'), '$about_label' => DI::l10n()->t('About:'),
'$keywords' => $contact['keywords'], '$keywords' => $contact['keywords'],

View file

@ -120,7 +120,7 @@ class NoScrape extends BaseModule
$json_info['last-activity'] = date('o-W', $last_active); $json_info['last-activity'] = date('o-W', $last_active);
//These are optional fields. //These are optional fields.
$profile_fields = ['about', 'locality', 'region', 'postal-code', 'country-name']; $profile_fields = ['about', 'locality', 'region', 'postal-code', 'country-name', 'xmpp', 'matrix'];
foreach ($profile_fields as $field) { foreach ($profile_fields as $field) {
if (!empty($profile[$field])) { if (!empty($profile[$field])) {
$json_info["$field"] = $profile[$field]; $json_info["$field"] = $profile[$field];

View file

@ -176,6 +176,10 @@ class Profile extends BaseProfile
$basic_fields += self::buildField('xmpp', DI::l10n()->t('XMPP:'), $profile['xmpp']); $basic_fields += self::buildField('xmpp', DI::l10n()->t('XMPP:'), $profile['xmpp']);
} }
if ($profile['matrix']) {
$basic_fields += self::buildField('matrix', DI::l10n()->t('Matrix:'), $profile['matrix']);
}
if ($profile['homepage']) { if ($profile['homepage']) {
$basic_fields += self::buildField('homepage', DI::l10n()->t('Homepage:'), HTML::toLink($profile['homepage'])); $basic_fields += self::buildField('homepage', DI::l10n()->t('Homepage:'), HTML::toLink($profile['homepage']));
} }

View file

@ -92,6 +92,7 @@ class Index extends BaseSettings
$pub_keywords = self::cleanKeywords(Strings::escapeTags(trim($_POST['pub_keywords']))); $pub_keywords = self::cleanKeywords(Strings::escapeTags(trim($_POST['pub_keywords'])));
$prv_keywords = self::cleanKeywords(Strings::escapeTags(trim($_POST['prv_keywords']))); $prv_keywords = self::cleanKeywords(Strings::escapeTags(trim($_POST['prv_keywords'])));
$xmpp = Strings::escapeTags(trim($_POST['xmpp'])); $xmpp = Strings::escapeTags(trim($_POST['xmpp']));
$matrix = Strings::escapeTags(trim($_POST['matrix']));
$homepage = Strings::escapeTags(trim($_POST['homepage'])); $homepage = Strings::escapeTags(trim($_POST['homepage']));
if ((strpos($homepage, 'http') !== 0) && (strlen($homepage))) { if ((strpos($homepage, 'http') !== 0) && (strlen($homepage))) {
// neither http nor https in URL, add them // neither http nor https in URL, add them
@ -120,6 +121,7 @@ class Index extends BaseSettings
'postal-code' => $postal_code, 'postal-code' => $postal_code,
'country-name' => $country_name, 'country-name' => $country_name,
'xmpp' => $xmpp, 'xmpp' => $xmpp,
'matrix' => $matrix,
'homepage' => $homepage, 'homepage' => $homepage,
'pub_keywords' => $pub_keywords, 'pub_keywords' => $pub_keywords,
'prv_keywords' => $prv_keywords, 'prv_keywords' => $prv_keywords,
@ -240,6 +242,7 @@ class Index extends BaseSettings
'$country_name' => ['country_name', DI::l10n()->t('Country:'), $profile['country-name']], '$country_name' => ['country_name', DI::l10n()->t('Country:'), $profile['country-name']],
'$age' => ((intval($profile['dob'])) ? '(' . DI::l10n()->t('Age: ') . DI::l10n()->tt('%d year old', '%d years old', Temporal::getAgeByTimezone($profile['dob'], $profile['timezone'])) . ')' : ''), '$age' => ((intval($profile['dob'])) ? '(' . DI::l10n()->t('Age: ') . DI::l10n()->tt('%d year old', '%d years old', Temporal::getAgeByTimezone($profile['dob'], $profile['timezone'])) . ')' : ''),
'$xmpp' => ['xmpp', DI::l10n()->t('XMPP (Jabber) address:'), $profile['xmpp'], DI::l10n()->t('The XMPP address will be propagated to your contacts so that they can follow you.')], '$xmpp' => ['xmpp', DI::l10n()->t('XMPP (Jabber) address:'), $profile['xmpp'], DI::l10n()->t('The XMPP address will be propagated to your contacts so that they can follow you.')],
'$matrix' => ['matrix', DI::l10n()->t('Matrix (Element) address:'), $profile['matrix'], DI::l10n()->t('The Matrix address will be published so that people can follow you there.')],
'$homepage' => ['homepage', DI::l10n()->t('Homepage URL:'), $profile['homepage']], '$homepage' => ['homepage', DI::l10n()->t('Homepage URL:'), $profile['homepage']],
'$pub_keywords' => ['pub_keywords', DI::l10n()->t('Public Keywords:'), $profile['pub_keywords'], DI::l10n()->t('(Used for suggesting potential friends, can be seen by others)')], '$pub_keywords' => ['pub_keywords', DI::l10n()->t('Public Keywords:'), $profile['pub_keywords'], DI::l10n()->t('(Used for suggesting potential friends, can be seen by others)')],
'$prv_keywords' => ['prv_keywords', DI::l10n()->t('Private Keywords:'), $profile['prv_keywords'], DI::l10n()->t('(Used for searching profiles, never shown to others)')], '$prv_keywords' => ['prv_keywords', DI::l10n()->t('Private Keywords:'), $profile['prv_keywords'], DI::l10n()->t('(Used for searching profiles, never shown to others)')],

View file

@ -47,7 +47,7 @@ class Xrd extends BaseModule
} }
$uri = urldecode(Strings::escapeTags(trim($_GET['uri']))); $uri = urldecode(Strings::escapeTags(trim($_GET['uri'])));
if (($_SERVER['HTTP_ACCEPT'] ?? '') == 'application/jrd+json') { if (strpos($_SERVER['HTTP_ACCEPT'] ?? '', 'application/jrd+json') !== false) {
$mode = 'json'; $mode = 'json';
} else { } else {
$mode = 'xml'; $mode = 'xml';
@ -58,7 +58,7 @@ class Xrd extends BaseModule
} }
$uri = urldecode(Strings::escapeTags(trim($_GET['resource']))); $uri = urldecode(Strings::escapeTags(trim($_GET['resource'])));
if (($_SERVER['HTTP_ACCEPT'] ?? '') == 'application/xrd+xml') { if (strpos($_SERVER['HTTP_ACCEPT'] ?? '', 'application/xrd+xml') !== false) {
$mode = 'xml'; $mode = 'xml';
} else { } else {
$mode = 'json'; $mode = 'json';
@ -159,9 +159,6 @@ class Xrd extends BaseModule
{ {
$salmon_key = Salmon::salmonKey($owner['spubkey']); $salmon_key = Salmon::salmonKey($owner['spubkey']);
header('Access-Control-Allow-Origin: *');
header('Content-type: application/json; charset=utf-8');
$json = [ $json = [
'subject' => 'acct:' . $owner['addr'], 'subject' => 'acct:' . $owner['addr'],
'aliases' => [ 'aliases' => [
@ -235,8 +232,8 @@ class Xrd extends BaseModule
], ],
]; ];
echo json_encode($json); header('Access-Control-Allow-Origin: *');
exit(); System::jsonExit($json, 'application/jrd+json; charset=utf-8');
} }
private static function printXML($alias, $baseURL, $user, $owner, $avatar) private static function printXML($alias, $baseURL, $user, $owner, $avatar)

View file

@ -89,8 +89,8 @@ class Probe
private static function rearrangeData($data) private static function rearrangeData($data)
{ {
$fields = ["name", "nick", "guid", "url", "addr", "alias", "photo", "header", $fields = ["name", "nick", "guid", "url", "addr", "alias", "photo", "header",
"account-type", "community", "keywords", "location", "about", "hide", "account-type", "community", "keywords", "location", "about", "xmpp", "matrix",
"batch", "notify", "poll", "request", "confirm", "subscribe", "poco", "hide", "batch", "notify", "poll", "request", "confirm", "subscribe", "poco",
"following", "followers", "inbox", "outbox", "sharedinbox", "following", "followers", "inbox", "outbox", "sharedinbox",
"priority", "network", "pubkey", "manually-approve", "baseurl", "gsid"]; "priority", "network", "pubkey", "manually-approve", "baseurl", "gsid"];
@ -1067,6 +1067,14 @@ class Probe
$data["about"] = $json["about"]; $data["about"] = $json["about"];
} }
if (!empty($json["xmpp"])) {
$data["xmpp"] = $json["xmpp"];
}
if (!empty($json["matrix"])) {
$data["matrix"] = $json["matrix"];
}
if (!empty($json["key"])) { if (!empty($json["key"])) {
$data["pubkey"] = $json["key"]; $data["pubkey"] = $json["key"];
} }
@ -2230,6 +2238,7 @@ class Probe
'header' => $profile['header'] ? Contact::getHeaderUrlForId($profile['id'], $profile['updated']) : '', 'header' => $profile['header'] ? Contact::getHeaderUrlForId($profile['id'], $profile['updated']) : '',
'account-type' => $profile['contact-type'], 'community' => ($profile['contact-type'] == User::ACCOUNT_TYPE_COMMUNITY), 'account-type' => $profile['contact-type'], 'community' => ($profile['contact-type'] == User::ACCOUNT_TYPE_COMMUNITY),
'keywords' => $profile['keywords'], 'location' => $profile['location'], 'about' => $profile['about'], 'keywords' => $profile['keywords'], 'location' => $profile['location'], 'about' => $profile['about'],
'xmpp' => $profile['xmpp'], 'matrix' => $profile['matrix'],
'hide' => !$profile['net-publish'], 'batch' => '', 'notify' => $profile['notify'], 'hide' => !$profile['net-publish'], 'batch' => '', 'notify' => $profile['notify'],
'poll' => $profile['poll'], 'request' => $profile['request'], 'confirm' => $profile['confirm'], 'poll' => $profile['poll'], 'request' => $profile['request'], 'confirm' => $profile['confirm'],
'subscribe' => $approfile['generator']['url'] . '/follow?url={uri}', 'poco' => $profile['poco'], 'subscribe' => $approfile['generator']['url'] . '/follow?url={uri}', 'poco' => $profile['poco'],

View file

@ -354,7 +354,7 @@ class Transmitter
$data['url'] = $owner['url']; $data['url'] = $owner['url'];
$data['manuallyApprovesFollowers'] = in_array($owner['page-flags'], [User::PAGE_FLAGS_NORMAL, User::PAGE_FLAGS_PRVGROUP]); $data['manuallyApprovesFollowers'] = in_array($owner['page-flags'], [User::PAGE_FLAGS_NORMAL, User::PAGE_FLAGS_PRVGROUP]);
$data['discoverable'] = $owner['net-publish']; $data['discoverable'] = (bool)$owner['net-publish'];
$data['publicKey'] = ['id' => $owner['url'] . '#main-key', $data['publicKey'] = ['id' => $owner['url'] . '#main-key',
'owner' => $owner['url'], 'owner' => $owner['url'],
'publicKeyPem' => $owner['pubkey']]; 'publicKeyPem' => $owner['pubkey']];

View file

@ -601,7 +601,7 @@ class Feed
} }
$publish_at = date(DateTimeFormat::MYSQL, $publish_time); $publish_at = date(DateTimeFormat::MYSQL, $publish_time);
if (Post\Delayed::add($posting['item']['uri'], $posting['item'], $posting['notify'], false, $publish_at, $posting['taglist'], $posting['attachments'])) { if (Post\Delayed::add($posting['item']['uri'], $posting['item'], $posting['notify'], Post\Delayed::PREPARED, $publish_at, $posting['taglist'], $posting['attachments'])) {
DI::pConfig()->set($item['uid'], 'system', 'last_publish', $publish_time); DI::pConfig()->set($item['uid'], 'system', 'last_publish', $publish_time);
} }
} }

View file

@ -29,17 +29,17 @@ class DelayedPublish
/** /**
* Publish a post, used for delayed postings * Publish a post, used for delayed postings
* *
* @param array $item * @param array $item
* @param integer $notify * @param int $notify
* @param array $taglist * @param array $taglist
* @param array $attachments * @param array $attachments
* @param bool $unprepared * @param int $preparation_mode
* @param string $uri * @param string $uri
* @return void * @return void
*/ */
public static function execute(array $item, int $notify = 0, array $taglist = [], array $attachments = [], bool $unprepared = false, string $uri = '') public static function execute(array $item, int $notify = 0, array $taglist = [], array $attachments = [], int $preparation_mode = Post\Delayed::PREPARED, string $uri = '')
{ {
$id = Post\Delayed::publish($item, $notify, $taglist, $attachments, $unprepared, $uri); $id = Post\Delayed::publish($item, $notify, $taglist, $attachments, $preparation_mode, $uri);
Logger::notice('Post published', ['id' => $id, 'uid' => $item['uid'], 'notify' => $notify, 'unprepared' => $unprepared]); Logger::notice('Post published', ['id' => $id, 'uid' => $item['uid'], 'notify' => $notify, 'unprepared' => $preparation_mode]);
} }
} }

View file

@ -55,7 +55,7 @@
use Friendica\Database\DBA; use Friendica\Database\DBA;
if (!defined('DB_UPDATE_VERSION')) { if (!defined('DB_UPDATE_VERSION')) {
define('DB_UPDATE_VERSION', 1431); define('DB_UPDATE_VERSION', 1432);
} }
return [ return [
@ -184,7 +184,8 @@ return [
"about" => ["type" => "text", "comment" => ""], "about" => ["type" => "text", "comment" => ""],
"keywords" => ["type" => "text", "comment" => "public keywords (interests) of the contact"], "keywords" => ["type" => "text", "comment" => "public keywords (interests) of the contact"],
"gender" => ["type" => "varchar(32)", "not null" => "1", "default" => "", "comment" => "Deprecated"], "gender" => ["type" => "varchar(32)", "not null" => "1", "default" => "", "comment" => "Deprecated"],
"xmpp" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], "xmpp" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "XMPP address"],
"matrix" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "Matrix address"],
"attag" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], "attag" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
"avatar" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], "avatar" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
"photo" => ["type" => "varchar(255)", "default" => "", "comment" => "Link to the profile photo of the contact"], "photo" => ["type" => "varchar(255)", "default" => "", "comment" => "Link to the profile photo of the contact"],
@ -1384,7 +1385,8 @@ return [
"education" => ["type" => "text", "comment" => "Deprecated"], "education" => ["type" => "text", "comment" => "Deprecated"],
"contact" => ["type" => "text", "comment" => "Deprecated"], "contact" => ["type" => "text", "comment" => "Deprecated"],
"homepage" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], "homepage" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
"xmpp" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], "xmpp" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "XMPP address"],
"matrix" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "Matrix address"],
"photo" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], "photo" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
"thumb" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], "thumb" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
"publish" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "publish default profile in local directory"], "publish" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "publish default profile in local directory"],

View file

@ -713,6 +713,7 @@
"keywords" => ["contact", "keywords"], "keywords" => ["contact", "keywords"],
"gender" => ["contact", "gender"], "gender" => ["contact", "gender"],
"xmpp" => ["contact", "xmpp"], "xmpp" => ["contact", "xmpp"],
"matrix" => ["contact", "matrix"],
"attag" => ["contact", "attag"], "attag" => ["contact", "attag"],
"avatar" => ["contact", "avatar"], "avatar" => ["contact", "avatar"],
"photo" => ["contact", "photo"], "photo" => ["contact", "photo"],
@ -837,6 +838,7 @@
"about" => ["contact", "about"], "about" => ["contact", "about"],
"keywords" => ["contact", "keywords"], "keywords" => ["contact", "keywords"],
"xmpp" => ["contact", "xmpp"], "xmpp" => ["contact", "xmpp"],
"matrix" => ["contact", "matrix"],
"avatar" => ["contact", "avatar"], "avatar" => ["contact", "avatar"],
"photo" => ["contact", "photo"], "photo" => ["contact", "photo"],
"thumb" => ["contact", "thumb"], "thumb" => ["contact", "thumb"],
@ -918,6 +920,7 @@
"about" => ["contact", "about"], "about" => ["contact", "about"],
"keywords" => ["contact", "keywords"], "keywords" => ["contact", "keywords"],
"xmpp" => ["contact", "xmpp"], "xmpp" => ["contact", "xmpp"],
"matrix" => ["contact", "matrix"],
"avatar" => ["contact", "avatar"], "avatar" => ["contact", "avatar"],
"photo" => ["contact", "photo"], "photo" => ["contact", "photo"],
"thumb" => ["contact", "thumb"], "thumb" => ["contact", "thumb"],

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 2021.09-dev\n" "Project-Id-Version: 2021.09-dev\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-08-06 05:58+0000\n" "POT-Creation-Date: 2021-08-09 01:36+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -54,7 +54,7 @@ msgstr ""
msgid "%1$s poked %2$s" msgid "%1$s poked %2$s"
msgstr "" msgstr ""
#: include/conversation.php:140 src/Model/Item.php:2613 #: include/conversation.php:140 src/Model/Item.php:2611
msgid "event" msgid "event"
msgstr "" msgstr ""
@ -62,7 +62,7 @@ msgstr ""
msgid "status" msgid "status"
msgstr "" msgstr ""
#: include/conversation.php:148 mod/tagger.php:90 src/Model/Item.php:2615 #: include/conversation.php:148 mod/tagger.php:90 src/Model/Item.php:2613
msgid "photo" msgid "photo"
msgstr "" msgstr ""
@ -77,8 +77,8 @@ msgstr ""
#: include/conversation.php:466 mod/photos.php:1459 mod/settings.php:576 #: include/conversation.php:466 mod/photos.php:1459 mod/settings.php:576
#: src/Module/Admin/Users/Active.php:139 src/Module/Admin/Users/Blocked.php:140 #: src/Module/Admin/Users/Active.php:139 src/Module/Admin/Users/Blocked.php:140
#: src/Module/Admin/Users/Index.php:153 src/Module/Contact.php:849 #: src/Module/Admin/Users/Index.php:153 src/Module/Contact.php:851
#: src/Module/Contact.php:1151 #: src/Module/Contact.php:1153
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
@ -104,7 +104,7 @@ msgstr ""
msgid "View in context" msgid "View in context"
msgstr "" msgstr ""
#: include/conversation.php:539 include/conversation.php:1129 #: include/conversation.php:539 include/conversation.php:1128
#: mod/editpost.php:104 mod/message.php:203 mod/message.php:368 #: mod/editpost.php:104 mod/message.php:203 mod/message.php:368
#: mod/photos.php:1523 mod/wallmessage.php:155 src/Module/Item/Compose.php:165 #: mod/photos.php:1523 mod/wallmessage.php:155 src/Module/Item/Compose.php:165
#: src/Object/Post.php:501 #: src/Object/Post.php:501
@ -134,8 +134,8 @@ msgstr ""
msgid "Tagged" msgid "Tagged"
msgstr "" msgstr ""
#: include/conversation.php:673 include/conversation.php:1012 #: include/conversation.php:673 include/conversation.php:1011
#: include/conversation.php:1050 #: include/conversation.php:1049
#, php-format #, php-format
msgid "%s reshared this." msgid "%s reshared this."
msgstr "" msgstr ""
@ -180,324 +180,324 @@ msgstr ""
msgid "Fetched because of %s <%s>" msgid "Fetched because of %s <%s>"
msgstr "" msgstr ""
#: include/conversation.php:843 view/theme/frio/theme.php:323 #: include/conversation.php:842 view/theme/frio/theme.php:323
msgid "Follow Thread" msgid "Follow Thread"
msgstr "" msgstr ""
#: include/conversation.php:844 src/Model/Contact.php:1047 #: include/conversation.php:843 src/Model/Contact.php:1047
msgid "View Status" msgid "View Status"
msgstr "" msgstr ""
#: include/conversation.php:845 include/conversation.php:867 #: include/conversation.php:844 include/conversation.php:866
#: src/Model/Contact.php:973 src/Model/Contact.php:1039 #: src/Model/Contact.php:973 src/Model/Contact.php:1039
#: src/Model/Contact.php:1048 src/Module/Directory.php:160 #: src/Model/Contact.php:1048 src/Module/Directory.php:160
#: src/Module/Settings/Profile/Index.php:224 #: src/Module/Settings/Profile/Index.php:226
msgid "View Profile" msgid "View Profile"
msgstr "" msgstr ""
#: include/conversation.php:846 src/Model/Contact.php:1049 #: include/conversation.php:845 src/Model/Contact.php:1049
msgid "View Photos" msgid "View Photos"
msgstr "" msgstr ""
#: include/conversation.php:847 src/Model/Contact.php:1040 #: include/conversation.php:846 src/Model/Contact.php:1040
#: src/Model/Contact.php:1050 #: src/Model/Contact.php:1050
msgid "Network Posts" msgid "Network Posts"
msgstr "" msgstr ""
#: include/conversation.php:848 src/Model/Contact.php:1041 #: include/conversation.php:847 src/Model/Contact.php:1041
#: src/Model/Contact.php:1051 #: src/Model/Contact.php:1051
msgid "View Contact" msgid "View Contact"
msgstr "" msgstr ""
#: include/conversation.php:849 src/Model/Contact.php:1053 #: include/conversation.php:848 src/Model/Contact.php:1053
msgid "Send PM" msgid "Send PM"
msgstr "" msgstr ""
#: include/conversation.php:850 src/Module/Admin/Blocklist/Contact.php:84 #: include/conversation.php:849 src/Module/Admin/Blocklist/Contact.php:84
#: src/Module/Admin/Users/Active.php:140 src/Module/Admin/Users/Index.php:154 #: src/Module/Admin/Users/Active.php:140 src/Module/Admin/Users/Index.php:154
#: src/Module/Contact.php:588 src/Module/Contact.php:846 #: src/Module/Contact.php:588 src/Module/Contact.php:848
#: src/Module/Contact.php:1126 #: src/Module/Contact.php:1128
msgid "Block" msgid "Block"
msgstr "" msgstr ""
#: include/conversation.php:851 src/Module/Contact.php:589 #: include/conversation.php:850 src/Module/Contact.php:589
#: src/Module/Contact.php:847 src/Module/Contact.php:1134 #: src/Module/Contact.php:849 src/Module/Contact.php:1136
#: src/Module/Notifications/Introductions.php:113 #: src/Module/Notifications/Introductions.php:113
#: src/Module/Notifications/Introductions.php:185 #: src/Module/Notifications/Introductions.php:185
#: src/Module/Notifications/Notification.php:59 #: src/Module/Notifications/Notification.php:59
msgid "Ignore" msgid "Ignore"
msgstr "" msgstr ""
#: include/conversation.php:855 src/Object/Post.php:428 #: include/conversation.php:854 src/Object/Post.php:428
msgid "Languages" msgid "Languages"
msgstr "" msgstr ""
#: include/conversation.php:859 src/Model/Contact.php:1054 #: include/conversation.php:858 src/Model/Contact.php:1054
msgid "Poke" msgid "Poke"
msgstr "" msgstr ""
#: include/conversation.php:864 mod/follow.php:139 src/Content/Widget.php:76 #: include/conversation.php:863 mod/follow.php:139 src/Content/Widget.php:76
#: src/Model/Contact.php:1042 src/Model/Contact.php:1055 #: src/Model/Contact.php:1042 src/Model/Contact.php:1055
#: view/theme/vier/theme.php:172 #: view/theme/vier/theme.php:172
msgid "Connect/Follow" msgid "Connect/Follow"
msgstr "" msgstr ""
#: include/conversation.php:997 #: include/conversation.php:996
#, php-format #, php-format
msgid "%s likes this." msgid "%s likes this."
msgstr "" msgstr ""
#: include/conversation.php:1000 #: include/conversation.php:999
#, php-format #, php-format
msgid "%s doesn't like this." msgid "%s doesn't like this."
msgstr "" msgstr ""
#: include/conversation.php:1003 #: include/conversation.php:1002
#, php-format #, php-format
msgid "%s attends." msgid "%s attends."
msgstr "" msgstr ""
#: include/conversation.php:1006 #: include/conversation.php:1005
#, php-format #, php-format
msgid "%s doesn't attend." msgid "%s doesn't attend."
msgstr "" msgstr ""
#: include/conversation.php:1009 #: include/conversation.php:1008
#, php-format #, php-format
msgid "%s attends maybe." msgid "%s attends maybe."
msgstr "" msgstr ""
#: include/conversation.php:1018 #: include/conversation.php:1017
msgid "and" msgid "and"
msgstr "" msgstr ""
#: include/conversation.php:1021 #: include/conversation.php:1020
#, php-format #, php-format
msgid "and %d other people" msgid "and %d other people"
msgstr "" msgstr ""
#: include/conversation.php:1029 #: include/conversation.php:1028
#, php-format #, php-format
msgid "<span %1$s>%2$d people</span> like this" msgid "<span %1$s>%2$d people</span> like this"
msgstr "" msgstr ""
#: include/conversation.php:1030 #: include/conversation.php:1029
#, php-format #, php-format
msgid "%s like this." msgid "%s like this."
msgstr "" msgstr ""
#: include/conversation.php:1033 #: include/conversation.php:1032
#, php-format #, php-format
msgid "<span %1$s>%2$d people</span> don't like this" msgid "<span %1$s>%2$d people</span> don't like this"
msgstr "" msgstr ""
#: include/conversation.php:1034 #: include/conversation.php:1033
#, php-format #, php-format
msgid "%s don't like this." msgid "%s don't like this."
msgstr "" msgstr ""
#: include/conversation.php:1037 #: include/conversation.php:1036
#, php-format #, php-format
msgid "<span %1$s>%2$d people</span> attend" msgid "<span %1$s>%2$d people</span> attend"
msgstr "" msgstr ""
#: include/conversation.php:1038 #: include/conversation.php:1037
#, php-format #, php-format
msgid "%s attend." msgid "%s attend."
msgstr "" msgstr ""
#: include/conversation.php:1041 #: include/conversation.php:1040
#, php-format #, php-format
msgid "<span %1$s>%2$d people</span> don't attend" msgid "<span %1$s>%2$d people</span> don't attend"
msgstr "" msgstr ""
#: include/conversation.php:1042 #: include/conversation.php:1041
#, php-format #, php-format
msgid "%s don't attend." msgid "%s don't attend."
msgstr "" msgstr ""
#: include/conversation.php:1045 #: include/conversation.php:1044
#, php-format #, php-format
msgid "<span %1$s>%2$d people</span> attend maybe" msgid "<span %1$s>%2$d people</span> attend maybe"
msgstr "" msgstr ""
#: include/conversation.php:1046 #: include/conversation.php:1045
#, php-format #, php-format
msgid "%s attend maybe." msgid "%s attend maybe."
msgstr "" msgstr ""
#: include/conversation.php:1049 #: include/conversation.php:1048
#, php-format #, php-format
msgid "<span %1$s>%2$d people</span> reshared this" msgid "<span %1$s>%2$d people</span> reshared this"
msgstr "" msgstr ""
#: include/conversation.php:1081 #: include/conversation.php:1080
msgid "Visible to <strong>everybody</strong>" msgid "Visible to <strong>everybody</strong>"
msgstr "" msgstr ""
#: include/conversation.php:1082 src/Module/Item/Compose.php:159 #: include/conversation.php:1081 src/Module/Item/Compose.php:159
#: src/Object/Post.php:972 #: src/Object/Post.php:972
msgid "Please enter a image/video/audio/webpage URL:" msgid "Please enter a image/video/audio/webpage URL:"
msgstr "" msgstr ""
#: include/conversation.php:1083 #: include/conversation.php:1082
msgid "Tag term:" msgid "Tag term:"
msgstr "" msgstr ""
#: include/conversation.php:1084 src/Module/Filer/SaveTag.php:68 #: include/conversation.php:1083 src/Module/Filer/SaveTag.php:68
msgid "Save to Folder:" msgid "Save to Folder:"
msgstr "" msgstr ""
#: include/conversation.php:1085 #: include/conversation.php:1084
msgid "Where are you right now?" msgid "Where are you right now?"
msgstr "" msgstr ""
#: include/conversation.php:1086 #: include/conversation.php:1085
msgid "Delete item(s)?" msgid "Delete item(s)?"
msgstr "" msgstr ""
#: include/conversation.php:1096 #: include/conversation.php:1095
msgid "New Post" msgid "New Post"
msgstr "" msgstr ""
#: include/conversation.php:1099 #: include/conversation.php:1098
msgid "Share" msgid "Share"
msgstr "" msgstr ""
#: include/conversation.php:1100 mod/editpost.php:89 mod/photos.php:1372 #: include/conversation.php:1099 mod/editpost.php:89 mod/photos.php:1372
#: src/Module/Contact/Poke.php:156 src/Object/Post.php:963 #: src/Module/Contact/Poke.php:156 src/Object/Post.php:963
msgid "Loading..." msgid "Loading..."
msgstr "" msgstr ""
#: include/conversation.php:1101 mod/editpost.php:90 mod/message.php:201 #: include/conversation.php:1100 mod/editpost.php:90 mod/message.php:201
#: mod/message.php:365 mod/wallmessage.php:153 #: mod/message.php:365 mod/wallmessage.php:153
msgid "Upload photo" msgid "Upload photo"
msgstr "" msgstr ""
#: include/conversation.php:1102 mod/editpost.php:91 #: include/conversation.php:1101 mod/editpost.php:91
msgid "upload photo" msgid "upload photo"
msgstr "" msgstr ""
#: include/conversation.php:1103 mod/editpost.php:92 #: include/conversation.php:1102 mod/editpost.php:92
msgid "Attach file" msgid "Attach file"
msgstr "" msgstr ""
#: include/conversation.php:1104 mod/editpost.php:93 #: include/conversation.php:1103 mod/editpost.php:93
msgid "attach file" msgid "attach file"
msgstr "" msgstr ""
#: include/conversation.php:1105 src/Module/Item/Compose.php:151 #: include/conversation.php:1104 src/Module/Item/Compose.php:151
#: src/Object/Post.php:964 #: src/Object/Post.php:964
msgid "Bold" msgid "Bold"
msgstr "" msgstr ""
#: include/conversation.php:1106 src/Module/Item/Compose.php:152 #: include/conversation.php:1105 src/Module/Item/Compose.php:152
#: src/Object/Post.php:965 #: src/Object/Post.php:965
msgid "Italic" msgid "Italic"
msgstr "" msgstr ""
#: include/conversation.php:1107 src/Module/Item/Compose.php:153 #: include/conversation.php:1106 src/Module/Item/Compose.php:153
#: src/Object/Post.php:966 #: src/Object/Post.php:966
msgid "Underline" msgid "Underline"
msgstr "" msgstr ""
#: include/conversation.php:1108 src/Module/Item/Compose.php:154 #: include/conversation.php:1107 src/Module/Item/Compose.php:154
#: src/Object/Post.php:967 #: src/Object/Post.php:967
msgid "Quote" msgid "Quote"
msgstr "" msgstr ""
#: include/conversation.php:1109 src/Module/Item/Compose.php:155 #: include/conversation.php:1108 src/Module/Item/Compose.php:155
#: src/Object/Post.php:968 #: src/Object/Post.php:968
msgid "Code" msgid "Code"
msgstr "" msgstr ""
#: include/conversation.php:1110 src/Module/Item/Compose.php:156 #: include/conversation.php:1109 src/Module/Item/Compose.php:156
#: src/Object/Post.php:969 #: src/Object/Post.php:969
msgid "Image" msgid "Image"
msgstr "" msgstr ""
#: include/conversation.php:1111 src/Module/Item/Compose.php:157 #: include/conversation.php:1110 src/Module/Item/Compose.php:157
#: src/Object/Post.php:970 #: src/Object/Post.php:970
msgid "Link" msgid "Link"
msgstr "" msgstr ""
#: include/conversation.php:1112 src/Module/Item/Compose.php:158 #: include/conversation.php:1111 src/Module/Item/Compose.php:158
#: src/Object/Post.php:971 #: src/Object/Post.php:971
msgid "Link or Media" msgid "Link or Media"
msgstr "" msgstr ""
#: include/conversation.php:1113 #: include/conversation.php:1112
msgid "Video" msgid "Video"
msgstr "" msgstr ""
#: include/conversation.php:1114 mod/editpost.php:100 #: include/conversation.php:1113 mod/editpost.php:100
#: src/Module/Item/Compose.php:161 #: src/Module/Item/Compose.php:161
msgid "Set your location" msgid "Set your location"
msgstr "" msgstr ""
#: include/conversation.php:1115 mod/editpost.php:101 #: include/conversation.php:1114 mod/editpost.php:101
msgid "set location" msgid "set location"
msgstr "" msgstr ""
#: include/conversation.php:1116 mod/editpost.php:102 #: include/conversation.php:1115 mod/editpost.php:102
msgid "Clear browser location" msgid "Clear browser location"
msgstr "" msgstr ""
#: include/conversation.php:1117 mod/editpost.php:103 #: include/conversation.php:1116 mod/editpost.php:103
msgid "clear location" msgid "clear location"
msgstr "" msgstr ""
#: include/conversation.php:1119 mod/editpost.php:117 #: include/conversation.php:1118 mod/editpost.php:117
#: src/Module/Item/Compose.php:166 #: src/Module/Item/Compose.php:166
msgid "Set title" msgid "Set title"
msgstr "" msgstr ""
#: include/conversation.php:1121 mod/editpost.php:119 #: include/conversation.php:1120 mod/editpost.php:119
#: src/Module/Item/Compose.php:167 #: src/Module/Item/Compose.php:167
msgid "Categories (comma-separated list)" msgid "Categories (comma-separated list)"
msgstr "" msgstr ""
#: include/conversation.php:1126 src/Module/Item/Compose.php:172 #: include/conversation.php:1125 src/Module/Item/Compose.php:172
msgid "Scheduled at" msgid "Scheduled at"
msgstr "" msgstr ""
#: include/conversation.php:1130 mod/editpost.php:105 #: include/conversation.php:1129 mod/editpost.php:105
msgid "Permission settings" msgid "Permission settings"
msgstr "" msgstr ""
#: include/conversation.php:1131 mod/editpost.php:133 mod/events.php:583 #: include/conversation.php:1130 mod/editpost.php:133 mod/events.php:583
#: mod/photos.php:959 mod/photos.php:1325 #: mod/photos.php:959 mod/photos.php:1325
msgid "Permissions" msgid "Permissions"
msgstr "" msgstr ""
#: include/conversation.php:1140 mod/editpost.php:114 #: include/conversation.php:1139 mod/editpost.php:114
msgid "Public post" msgid "Public post"
msgstr "" msgstr ""
#: include/conversation.php:1144 mod/editpost.php:125 mod/events.php:578 #: include/conversation.php:1143 mod/editpost.php:125 mod/events.php:578
#: mod/photos.php:1371 mod/photos.php:1427 mod/photos.php:1501 #: mod/photos.php:1371 mod/photos.php:1427 mod/photos.php:1501
#: src/Module/Item/Compose.php:160 src/Object/Post.php:973 #: src/Module/Item/Compose.php:160 src/Object/Post.php:973
msgid "Preview" msgid "Preview"
msgstr "" msgstr ""
#: include/conversation.php:1147 mod/editpost.php:127 mod/fbrowser.php:105 #: include/conversation.php:1146 mod/editpost.php:127 mod/fbrowser.php:105
#: mod/fbrowser.php:134 mod/follow.php:145 mod/photos.php:1027 #: mod/fbrowser.php:134 mod/follow.php:145 mod/photos.php:1027
#: mod/photos.php:1133 mod/tagrm.php:37 mod/tagrm.php:129 mod/unfollow.php:97 #: mod/photos.php:1133 mod/tagrm.php:37 mod/tagrm.php:129 mod/unfollow.php:97
#: src/Module/Contact.php:424 src/Module/RemoteFollow.php:112 #: src/Module/Contact.php:424 src/Module/RemoteFollow.php:112
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
#: include/conversation.php:1154 mod/editpost.php:131 #: include/conversation.php:1153 mod/editpost.php:131
#: src/Content/Widget/VCard.php:106 src/Model/Profile.php:448 #: src/Content/Widget/VCard.php:107 src/Model/Profile.php:450
msgid "Message" msgid "Message"
msgstr "" msgstr ""
#: include/conversation.php:1155 mod/editpost.php:132 #: include/conversation.php:1154 mod/editpost.php:132
#: src/Module/Settings/TwoFactor/Trusted.php:101 #: src/Module/Settings/TwoFactor/Trusted.php:101
msgid "Browser" msgid "Browser"
msgstr "" msgstr ""
#: include/conversation.php:1157 mod/editpost.php:135 #: include/conversation.php:1156 mod/editpost.php:135
msgid "Open Compose page" msgid "Open Compose page"
msgstr "" msgstr ""
@ -1061,15 +1061,15 @@ msgid "Adjust for viewer timezone"
msgstr "" msgstr ""
#: mod/events.php:566 src/Module/Profile/Profile.php:173 #: mod/events.php:566 src/Module/Profile/Profile.php:173
#: src/Module/Settings/Profile/Index.php:237 #: src/Module/Settings/Profile/Index.php:239
msgid "Description:" msgid "Description:"
msgstr "" msgstr ""
#: mod/events.php:568 src/Content/Widget/VCard.php:97 src/Model/Event.php:86 #: mod/events.php:568 src/Content/Widget/VCard.php:98 src/Model/Event.php:86
#: src/Model/Event.php:113 src/Model/Event.php:459 src/Model/Event.php:945 #: src/Model/Event.php:113 src/Model/Event.php:459 src/Model/Event.php:945
#: src/Model/Profile.php:358 src/Module/Contact.php:609 #: src/Model/Profile.php:358 src/Module/Contact.php:609
#: src/Module/Directory.php:150 src/Module/Notifications/Introductions.php:166 #: src/Module/Directory.php:150 src/Module/Notifications/Introductions.php:166
#: src/Module/Profile/Profile.php:191 #: src/Module/Profile/Profile.php:195
msgid "Location:" msgid "Location:"
msgstr "" msgstr ""
@ -1092,19 +1092,19 @@ msgstr ""
#: src/Module/Delegation.php:153 src/Module/FriendSuggest.php:129 #: src/Module/Delegation.php:153 src/Module/FriendSuggest.php:129
#: src/Module/Install.php:245 src/Module/Install.php:287 #: src/Module/Install.php:245 src/Module/Install.php:287
#: src/Module/Install.php:324 src/Module/Invite.php:174 #: src/Module/Install.php:324 src/Module/Invite.php:174
#: src/Module/Item/Compose.php:150 src/Module/Profile/Profile.php:244 #: src/Module/Item/Compose.php:150 src/Module/Profile/Profile.php:248
#: src/Module/Settings/Profile/Index.php:221 src/Object/Post.php:962 #: src/Module/Settings/Profile/Index.php:223 src/Object/Post.php:962
#: view/theme/duepuntozero/config.php:69 view/theme/frio/config.php:160 #: view/theme/duepuntozero/config.php:69 view/theme/frio/config.php:160
#: view/theme/quattro/config.php:71 view/theme/vier/config.php:119 #: view/theme/quattro/config.php:71 view/theme/vier/config.php:119
msgid "Submit" msgid "Submit"
msgstr "" msgstr ""
#: mod/events.php:581 src/Module/Profile/Profile.php:245 #: mod/events.php:581 src/Module/Profile/Profile.php:249
msgid "Basic" msgid "Basic"
msgstr "" msgstr ""
#: mod/events.php:582 src/Module/Admin/Site.php:506 src/Module/Contact.php:916 #: mod/events.php:582 src/Module/Admin/Site.php:506 src/Module/Contact.php:918
#: src/Module/Profile/Profile.php:246 #: src/Module/Profile/Profile.php:250
msgid "Advanced" msgid "Advanced"
msgstr "" msgstr ""
@ -1161,9 +1161,9 @@ msgstr ""
msgid "Profile URL" msgid "Profile URL"
msgstr "" msgstr ""
#: mod/follow.php:143 src/Module/Contact.php:615 #: mod/follow.php:143 src/Module/Contact.php:617
#: src/Module/Notifications/Introductions.php:170 #: src/Module/Notifications/Introductions.php:170
#: src/Module/Profile/Profile.php:204 #: src/Module/Profile/Profile.php:208
msgid "Tags:" msgid "Tags:"
msgstr "" msgstr ""
@ -1177,7 +1177,7 @@ msgid "Add a personal note:"
msgstr "" msgstr ""
#: mod/follow.php:164 mod/unfollow.php:109 src/Module/BaseProfile.php:61 #: mod/follow.php:164 mod/unfollow.php:109 src/Module/BaseProfile.php:61
#: src/Module/Contact.php:894 #: src/Module/Contact.php:896
msgid "Status Messages and Posts" msgid "Status Messages and Posts"
msgstr "" msgstr ""
@ -1740,7 +1740,7 @@ msgid "Rotate CCW (left)"
msgstr "" msgstr ""
#: mod/photos.php:1367 mod/photos.php:1423 mod/photos.php:1497 #: mod/photos.php:1367 mod/photos.php:1423 mod/photos.php:1497
#: src/Module/Contact.php:1057 src/Module/Item/Compose.php:148 #: src/Module/Contact.php:1059 src/Module/Item/Compose.php:148
#: src/Object/Post.php:959 #: src/Object/Post.php:959
msgid "This is you" msgid "This is you"
msgstr "" msgstr ""
@ -2782,16 +2782,16 @@ msgid "All contacts"
msgstr "" msgstr ""
#: src/BaseModule.php:214 src/Content/Widget.php:238 src/Core/ACL.php:183 #: src/BaseModule.php:214 src/Content/Widget.php:238 src/Core/ACL.php:183
#: src/Module/Contact.php:815 src/Module/PermissionTooltip.php:77 #: src/Module/Contact.php:817 src/Module/PermissionTooltip.php:77
#: src/Module/PermissionTooltip.php:99 #: src/Module/PermissionTooltip.php:99
msgid "Followers" msgid "Followers"
msgstr "" msgstr ""
#: src/BaseModule.php:219 src/Content/Widget.php:239 src/Module/Contact.php:816 #: src/BaseModule.php:219 src/Content/Widget.php:239 src/Module/Contact.php:818
msgid "Following" msgid "Following"
msgstr "" msgstr ""
#: src/BaseModule.php:224 src/Content/Widget.php:240 src/Module/Contact.php:817 #: src/BaseModule.php:224 src/Content/Widget.php:240 src/Module/Contact.php:819
msgid "Mutual friends" msgid "Mutual friends"
msgstr "" msgstr ""
@ -3148,7 +3148,7 @@ msgid "Sign in"
msgstr "" msgstr ""
#: src/Content/Nav.php:191 src/Module/BaseProfile.php:58 #: src/Content/Nav.php:191 src/Module/BaseProfile.php:58
#: src/Module/Contact.php:618 src/Module/Contact.php:883 #: src/Module/Contact.php:620 src/Module/Contact.php:885
#: src/Module/Settings/TwoFactor/Index.php:112 view/theme/frio/theme.php:226 #: src/Module/Settings/TwoFactor/Index.php:112 view/theme/frio/theme.php:226
msgid "Status" msgid "Status"
msgstr "" msgstr ""
@ -3159,8 +3159,8 @@ msgid "Your posts and conversations"
msgstr "" msgstr ""
#: src/Content/Nav.php:192 src/Module/BaseProfile.php:50 #: src/Content/Nav.php:192 src/Module/BaseProfile.php:50
#: src/Module/BaseSettings.php:57 src/Module/Contact.php:620 #: src/Module/BaseSettings.php:57 src/Module/Contact.php:622
#: src/Module/Contact.php:899 src/Module/Profile/Profile.php:238 #: src/Module/Contact.php:901 src/Module/Profile/Profile.php:242
#: src/Module/Welcome.php:57 view/theme/frio/theme.php:227 #: src/Module/Welcome.php:57 view/theme/frio/theme.php:227
msgid "Profile" msgid "Profile"
msgstr "" msgstr ""
@ -3246,8 +3246,8 @@ msgstr ""
#: src/Content/Nav.php:239 src/Content/Nav.php:298 #: src/Content/Nav.php:239 src/Content/Nav.php:298
#: src/Content/Text/HTML.php:902 src/Module/BaseProfile.php:128 #: src/Content/Text/HTML.php:902 src/Module/BaseProfile.php:128
#: src/Module/BaseProfile.php:131 src/Module/Contact.php:818 #: src/Module/BaseProfile.php:131 src/Module/Contact.php:820
#: src/Module/Contact.php:906 view/theme/frio/theme.php:237 #: src/Module/Contact.php:908 view/theme/frio/theme.php:237
msgid "Contacts" msgid "Contacts"
msgstr "" msgstr ""
@ -3404,8 +3404,8 @@ msgid ""
"<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%2$s</a> %3$s" "<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%2$s</a> %3$s"
msgstr "" msgstr ""
#: src/Content/Text/BBCode.php:1177 src/Model/Item.php:3141 #: src/Content/Text/BBCode.php:1177 src/Model/Item.php:3139
#: src/Model/Item.php:3147 src/Model/Item.php:3148 #: src/Model/Item.php:3145 src/Model/Item.php:3146
msgid "Link to source" msgid "Link to source"
msgstr "" msgstr ""
@ -3437,8 +3437,8 @@ msgstr ""
msgid "The end" msgid "The end"
msgstr "" msgstr ""
#: src/Content/Text/HTML.php:885 src/Content/Widget/VCard.php:102 #: src/Content/Text/HTML.php:885 src/Content/Widget/VCard.php:103
#: src/Model/Profile.php:442 #: src/Model/Profile.php:444
msgid "Follow" msgid "Follow"
msgstr "" msgstr ""
@ -3477,7 +3477,7 @@ msgstr ""
msgid "Examples: Robert Morgenstein, Fishing" msgid "Examples: Robert Morgenstein, Fishing"
msgstr "" msgstr ""
#: src/Content/Widget.php:78 src/Module/Contact.php:839 #: src/Content/Widget.php:78 src/Module/Contact.php:841
#: src/Module/Directory.php:99 view/theme/vier/theme.php:174 #: src/Module/Directory.php:99 view/theme/vier/theme.php:174
msgid "Find" msgid "Find"
msgstr "" msgstr ""
@ -3504,7 +3504,7 @@ msgid "Local Directory"
msgstr "" msgstr ""
#: src/Content/Widget.php:214 src/Model/Group.php:535 #: src/Content/Widget.php:214 src/Model/Group.php:535
#: src/Module/Contact.php:802 src/Module/Welcome.php:76 #: src/Module/Contact.php:804 src/Module/Welcome.php:76
msgid "Groups" msgid "Groups"
msgstr "" msgstr ""
@ -3516,7 +3516,7 @@ msgstr ""
msgid "Relationships" msgid "Relationships"
msgstr "" msgstr ""
#: src/Content/Widget.php:247 src/Module/Contact.php:754 #: src/Content/Widget.php:247 src/Module/Contact.php:756
#: src/Module/Group.php:292 #: src/Module/Group.php:292
msgid "All Contacts" msgid "All Contacts"
msgstr "" msgstr ""
@ -3619,16 +3619,21 @@ msgstr ""
msgid "XMPP:" msgid "XMPP:"
msgstr "" msgstr ""
#: src/Content/Widget/VCard.php:100 src/Model/Profile.php:454 #: src/Content/Widget/VCard.php:97 src/Model/Profile.php:364
#: src/Module/Contact.php:613 src/Module/Profile/Profile.php:181
msgid "Matrix:"
msgstr ""
#: src/Content/Widget/VCard.php:101 src/Model/Profile.php:456
#: src/Module/Notifications/Introductions.php:180 #: src/Module/Notifications/Introductions.php:180
msgid "Network:" msgid "Network:"
msgstr "" msgstr ""
#: src/Content/Widget/VCard.php:104 src/Model/Profile.php:444 #: src/Content/Widget/VCard.php:105 src/Model/Profile.php:446
msgid "Unfollow" msgid "Unfollow"
msgstr "" msgstr ""
#: src/Core/ACL.php:154 src/Module/Profile/Profile.php:239 #: src/Core/ACL.php:154 src/Module/Profile/Profile.php:243
msgid "Yourself" msgid "Yourself"
msgstr "" msgstr ""
@ -4590,33 +4595,33 @@ msgstr ""
msgid "Edit groups" msgid "Edit groups"
msgstr "" msgstr ""
#: src/Model/Item.php:1667 #: src/Model/Item.php:1665
#, php-format #, php-format
msgid "Detected languages in this post:\\n%s" msgid "Detected languages in this post:\\n%s"
msgstr "" msgstr ""
#: src/Model/Item.php:2617 #: src/Model/Item.php:2615
msgid "activity" msgid "activity"
msgstr "" msgstr ""
#: src/Model/Item.php:2619 #: src/Model/Item.php:2617
msgid "comment" msgid "comment"
msgstr "" msgstr ""
#: src/Model/Item.php:2622 #: src/Model/Item.php:2620
msgid "post" msgid "post"
msgstr "" msgstr ""
#: src/Model/Item.php:2759 #: src/Model/Item.php:2757
#, php-format #, php-format
msgid "Content warning: %s" msgid "Content warning: %s"
msgstr "" msgstr ""
#: src/Model/Item.php:3106 #: src/Model/Item.php:3104
msgid "bytes" msgid "bytes"
msgstr "" msgstr ""
#: src/Model/Item.php:3135 src/Model/Item.php:3136 #: src/Model/Item.php:3133 src/Model/Item.php:3134
msgid "View on separate page" msgid "View on separate page"
msgstr "" msgstr ""
@ -4624,8 +4629,8 @@ msgstr ""
msgid "[no subject]" msgid "[no subject]"
msgstr "" msgstr ""
#: src/Model/Profile.php:346 src/Module/Profile/Profile.php:253 #: src/Model/Profile.php:346 src/Module/Profile/Profile.php:257
#: src/Module/Profile/Profile.php:255 #: src/Module/Profile/Profile.php:259
msgid "Edit profile" msgid "Edit profile"
msgstr "" msgstr ""
@ -4634,52 +4639,52 @@ msgid "Change profile photo"
msgstr "" msgstr ""
#: src/Model/Profile.php:361 src/Module/Directory.php:155 #: src/Model/Profile.php:361 src/Module/Directory.php:155
#: src/Module/Profile/Profile.php:181 #: src/Module/Profile/Profile.php:185
msgid "Homepage:" msgid "Homepage:"
msgstr "" msgstr ""
#: src/Model/Profile.php:362 src/Module/Contact.php:613 #: src/Model/Profile.php:362 src/Module/Contact.php:615
#: src/Module/Notifications/Introductions.php:168 #: src/Module/Notifications/Introductions.php:168
msgid "About:" msgid "About:"
msgstr "" msgstr ""
#: src/Model/Profile.php:446 #: src/Model/Profile.php:448
msgid "Atom feed" msgid "Atom feed"
msgstr "" msgstr ""
#: src/Model/Profile.php:484 src/Model/Profile.php:581 #: src/Model/Profile.php:486 src/Model/Profile.php:583
msgid "g A l F d" msgid "g A l F d"
msgstr "" msgstr ""
#: src/Model/Profile.php:485 #: src/Model/Profile.php:487
msgid "F d" msgid "F d"
msgstr "" msgstr ""
#: src/Model/Profile.php:547 src/Model/Profile.php:632 #: src/Model/Profile.php:549 src/Model/Profile.php:634
msgid "[today]" msgid "[today]"
msgstr "" msgstr ""
#: src/Model/Profile.php:557 #: src/Model/Profile.php:559
msgid "Birthday Reminders" msgid "Birthday Reminders"
msgstr "" msgstr ""
#: src/Model/Profile.php:558 #: src/Model/Profile.php:560
msgid "Birthdays this week:" msgid "Birthdays this week:"
msgstr "" msgstr ""
#: src/Model/Profile.php:619 #: src/Model/Profile.php:621
msgid "[No description]" msgid "[No description]"
msgstr "" msgstr ""
#: src/Model/Profile.php:645 #: src/Model/Profile.php:647
msgid "Event Reminders" msgid "Event Reminders"
msgstr "" msgstr ""
#: src/Model/Profile.php:646 #: src/Model/Profile.php:648
msgid "Upcoming events the next 7 days:" msgid "Upcoming events the next 7 days:"
msgstr "" msgstr ""
#: src/Model/Profile.php:834 #: src/Model/Profile.php:836
#, php-format #, php-format
msgid "OpenWebAuth: %1$s welcomes %2$s" msgid "OpenWebAuth: %1$s welcomes %2$s"
msgstr "" msgstr ""
@ -5061,8 +5066,8 @@ msgstr ""
msgid "List of active accounts" msgid "List of active accounts"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:66 src/Module/Contact.php:762 #: src/Module/Admin/BaseUsers.php:66 src/Module/Contact.php:764
#: src/Module/Contact.php:822 #: src/Module/Contact.php:824
msgid "Pending" msgid "Pending"
msgstr "" msgstr ""
@ -5070,8 +5075,8 @@ msgstr ""
msgid "List of pending registrations" msgid "List of pending registrations"
msgstr "" msgstr ""
#: src/Module/Admin/BaseUsers.php:74 src/Module/Contact.php:770 #: src/Module/Admin/BaseUsers.php:74 src/Module/Contact.php:772
#: src/Module/Contact.php:823 #: src/Module/Contact.php:825
msgid "Blocked" msgid "Blocked"
msgstr "" msgstr ""
@ -5128,8 +5133,8 @@ msgstr ""
#: src/Module/Admin/Blocklist/Contact.php:85 #: src/Module/Admin/Blocklist/Contact.php:85
#: src/Module/Admin/Users/Blocked.php:142 src/Module/Admin/Users/Index.php:156 #: src/Module/Admin/Users/Blocked.php:142 src/Module/Admin/Users/Index.php:156
#: src/Module/Contact.php:588 src/Module/Contact.php:846 #: src/Module/Contact.php:588 src/Module/Contact.php:848
#: src/Module/Contact.php:1126 #: src/Module/Contact.php:1128
msgid "Unblock" msgid "Unblock"
msgstr "" msgstr ""
@ -7089,7 +7094,7 @@ msgstr ""
msgid "Too Many Requests" msgid "Too Many Requests"
msgstr "" msgstr ""
#: src/Module/BaseProfile.php:53 src/Module/Contact.php:902 #: src/Module/BaseProfile.php:53 src/Module/Contact.php:904
msgid "Profile Details" msgid "Profile Details"
msgstr "" msgstr ""
@ -7207,7 +7212,7 @@ msgstr ""
msgid "Drop contact" msgid "Drop contact"
msgstr "" msgstr ""
#: src/Module/Contact.php:420 src/Module/Contact.php:842 #: src/Module/Contact.php:420 src/Module/Contact.php:844
msgid "Do you really want to delete this contact?" msgid "Do you really want to delete this contact?"
msgstr "" msgstr ""
@ -7251,7 +7256,7 @@ msgstr ""
msgid "(Update was successful)" msgid "(Update was successful)"
msgstr "" msgstr ""
#: src/Module/Contact.php:498 src/Module/Contact.php:1097 #: src/Module/Contact.php:498 src/Module/Contact.php:1099
msgid "Suggest friends" msgid "Suggest friends"
msgstr "" msgstr ""
@ -7325,7 +7330,7 @@ msgstr ""
msgid "Edit contact notes" msgid "Edit contact notes"
msgstr "" msgstr ""
#: src/Module/Contact.php:574 src/Module/Contact.php:1065 #: src/Module/Contact.php:574 src/Module/Contact.php:1067
#, php-format #, php-format
msgid "Visit %s's profile [%s]" msgid "Visit %s's profile [%s]"
msgstr "" msgstr ""
@ -7350,12 +7355,12 @@ msgstr ""
msgid "Update public posts" msgid "Update public posts"
msgstr "" msgstr ""
#: src/Module/Contact.php:586 src/Module/Contact.php:1107 #: src/Module/Contact.php:586 src/Module/Contact.php:1109
msgid "Update now" msgid "Update now"
msgstr "" msgstr ""
#: src/Module/Contact.php:589 src/Module/Contact.php:847 #: src/Module/Contact.php:589 src/Module/Contact.php:849
#: src/Module/Contact.php:1134 #: src/Module/Contact.php:1136
msgid "Unignore" msgid "Unignore"
msgstr "" msgstr ""
@ -7402,139 +7407,139 @@ msgid ""
"when \"Fetch information and keywords\" is selected" "when \"Fetch information and keywords\" is selected"
msgstr "" msgstr ""
#: src/Module/Contact.php:616 src/Module/Settings/TwoFactor/Index.php:132 #: src/Module/Contact.php:618 src/Module/Settings/TwoFactor/Index.php:132
msgid "Actions" msgid "Actions"
msgstr "" msgstr ""
#: src/Module/Contact.php:623 #: src/Module/Contact.php:625
msgid "Mirror postings from this contact" msgid "Mirror postings from this contact"
msgstr "" msgstr ""
#: src/Module/Contact.php:625 #: src/Module/Contact.php:627
msgid "" msgid ""
"Mark this contact as remote_self, this will cause friendica to repost new " "Mark this contact as remote_self, this will cause friendica to repost new "
"entries from this contact." "entries from this contact."
msgstr "" msgstr ""
#: src/Module/Contact.php:757 #: src/Module/Contact.php:759
msgid "Show all contacts" msgid "Show all contacts"
msgstr "" msgstr ""
#: src/Module/Contact.php:765 #: src/Module/Contact.php:767
msgid "Only show pending contacts" msgid "Only show pending contacts"
msgstr "" msgstr ""
#: src/Module/Contact.php:773 #: src/Module/Contact.php:775
msgid "Only show blocked contacts" msgid "Only show blocked contacts"
msgstr "" msgstr ""
#: src/Module/Contact.php:778 src/Module/Contact.php:825 #: src/Module/Contact.php:780 src/Module/Contact.php:827
#: src/Object/Post.php:308 #: src/Object/Post.php:308
msgid "Ignored" msgid "Ignored"
msgstr "" msgstr ""
#: src/Module/Contact.php:781 #: src/Module/Contact.php:783
msgid "Only show ignored contacts" msgid "Only show ignored contacts"
msgstr "" msgstr ""
#: src/Module/Contact.php:786 src/Module/Contact.php:826 #: src/Module/Contact.php:788 src/Module/Contact.php:828
msgid "Archived" msgid "Archived"
msgstr "" msgstr ""
#: src/Module/Contact.php:789 #: src/Module/Contact.php:791
msgid "Only show archived contacts" msgid "Only show archived contacts"
msgstr "" msgstr ""
#: src/Module/Contact.php:794 src/Module/Contact.php:824 #: src/Module/Contact.php:796 src/Module/Contact.php:826
msgid "Hidden" msgid "Hidden"
msgstr "" msgstr ""
#: src/Module/Contact.php:797 #: src/Module/Contact.php:799
msgid "Only show hidden contacts" msgid "Only show hidden contacts"
msgstr "" msgstr ""
#: src/Module/Contact.php:805 #: src/Module/Contact.php:807
msgid "Organize your contact groups" msgid "Organize your contact groups"
msgstr "" msgstr ""
#: src/Module/Contact.php:837 #: src/Module/Contact.php:839
msgid "Search your contacts" msgid "Search your contacts"
msgstr "" msgstr ""
#: src/Module/Contact.php:838 src/Module/Search/Index.php:194 #: src/Module/Contact.php:840 src/Module/Search/Index.php:194
#, php-format #, php-format
msgid "Results for: %s" msgid "Results for: %s"
msgstr "" msgstr ""
#: src/Module/Contact.php:845 #: src/Module/Contact.php:847
msgid "Update" msgid "Update"
msgstr "" msgstr ""
#: src/Module/Contact.php:848 src/Module/Contact.php:1143 #: src/Module/Contact.php:850 src/Module/Contact.php:1145
msgid "Archive" msgid "Archive"
msgstr "" msgstr ""
#: src/Module/Contact.php:848 src/Module/Contact.php:1143 #: src/Module/Contact.php:850 src/Module/Contact.php:1145
msgid "Unarchive" msgid "Unarchive"
msgstr "" msgstr ""
#: src/Module/Contact.php:851 #: src/Module/Contact.php:853
msgid "Batch Actions" msgid "Batch Actions"
msgstr "" msgstr ""
#: src/Module/Contact.php:886 #: src/Module/Contact.php:888
msgid "Conversations started by this contact" msgid "Conversations started by this contact"
msgstr "" msgstr ""
#: src/Module/Contact.php:891 #: src/Module/Contact.php:893
msgid "Posts and Comments" msgid "Posts and Comments"
msgstr "" msgstr ""
#: src/Module/Contact.php:909 #: src/Module/Contact.php:911
msgid "View all known contacts" msgid "View all known contacts"
msgstr "" msgstr ""
#: src/Module/Contact.php:919 #: src/Module/Contact.php:921
msgid "Advanced Contact Settings" msgid "Advanced Contact Settings"
msgstr "" msgstr ""
#: src/Module/Contact.php:1024 #: src/Module/Contact.php:1026
msgid "Mutual Friendship" msgid "Mutual Friendship"
msgstr "" msgstr ""
#: src/Module/Contact.php:1028 #: src/Module/Contact.php:1030
msgid "is a fan of yours" msgid "is a fan of yours"
msgstr "" msgstr ""
#: src/Module/Contact.php:1032 #: src/Module/Contact.php:1034
msgid "you are a fan of" msgid "you are a fan of"
msgstr "" msgstr ""
#: src/Module/Contact.php:1050 #: src/Module/Contact.php:1052
msgid "Pending outgoing contact request" msgid "Pending outgoing contact request"
msgstr "" msgstr ""
#: src/Module/Contact.php:1052 #: src/Module/Contact.php:1054
msgid "Pending incoming contact request" msgid "Pending incoming contact request"
msgstr "" msgstr ""
#: src/Module/Contact.php:1117 #: src/Module/Contact.php:1119
msgid "Refetch contact data" msgid "Refetch contact data"
msgstr "" msgstr ""
#: src/Module/Contact.php:1128 #: src/Module/Contact.php:1130
msgid "Toggle Blocked status" msgid "Toggle Blocked status"
msgstr "" msgstr ""
#: src/Module/Contact.php:1136 #: src/Module/Contact.php:1138
msgid "Toggle Ignored status" msgid "Toggle Ignored status"
msgstr "" msgstr ""
#: src/Module/Contact.php:1145 #: src/Module/Contact.php:1147
msgid "Toggle Archive status" msgid "Toggle Archive status"
msgstr "" msgstr ""
#: src/Module/Contact.php:1153 #: src/Module/Contact.php:1155
msgid "Delete contact" msgid "Delete contact"
msgstr "" msgstr ""
@ -7750,7 +7755,7 @@ msgid "Sort by post received date"
msgstr "" msgstr ""
#: src/Module/Conversation/Network.php:259 #: src/Module/Conversation/Network.php:259
#: src/Module/Settings/Profile/Index.php:226 #: src/Module/Settings/Profile/Index.php:228
msgid "Personal" msgid "Personal"
msgstr "" msgstr ""
@ -7974,7 +7979,7 @@ msgid "Twitter Source / Tweet URL (requires API key)"
msgstr "" msgstr ""
#: src/Module/Debug/Feed.php:38 src/Module/Filer/SaveTag.php:40 #: src/Module/Debug/Feed.php:38 src/Module/Filer/SaveTag.php:40
#: src/Module/Settings/Profile/Index.php:142 #: src/Module/Settings/Profile/Index.php:144
msgid "You must be logged in to use this module" msgid "You must be logged in to use this module"
msgstr "" msgstr ""
@ -8741,12 +8746,12 @@ msgstr ""
msgid "Birthday:" msgid "Birthday:"
msgstr "" msgstr ""
#: src/Module/Profile/Profile.php:168 src/Module/Settings/Profile/Index.php:244 #: src/Module/Profile/Profile.php:168 src/Module/Settings/Profile/Index.php:246
#: src/Util/Temporal.php:165 #: src/Util/Temporal.php:165
msgid "Age: " msgid "Age: "
msgstr "" msgstr ""
#: src/Module/Profile/Profile.php:168 src/Module/Settings/Profile/Index.php:244 #: src/Module/Profile/Profile.php:168 src/Module/Settings/Profile/Index.php:246
#: src/Util/Temporal.php:165 #: src/Util/Temporal.php:165
#, php-format #, php-format
msgid "%d year old" msgid "%d year old"
@ -8754,32 +8759,32 @@ msgid_plural "%d years old"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Module/Profile/Profile.php:231 #: src/Module/Profile/Profile.php:235
msgid "Forums:" msgid "Forums:"
msgstr "" msgstr ""
#: src/Module/Profile/Profile.php:243 #: src/Module/Profile/Profile.php:247
msgid "View profile as:" msgid "View profile as:"
msgstr "" msgstr ""
#: src/Module/Profile/Profile.php:260 #: src/Module/Profile/Profile.php:264
msgid "View as" msgid "View as"
msgstr "" msgstr ""
#: src/Module/Profile/Profile.php:323 src/Module/Profile/Profile.php:326 #: src/Module/Profile/Profile.php:327 src/Module/Profile/Profile.php:330
#: src/Module/Profile/Status.php:65 src/Module/Profile/Status.php:68 #: src/Module/Profile/Status.php:65 src/Module/Profile/Status.php:68
#: src/Protocol/Feed.php:946 src/Protocol/OStatus.php:1256 #: src/Protocol/Feed.php:946 src/Protocol/OStatus.php:1256
#, php-format #, php-format
msgid "%s's timeline" msgid "%s's timeline"
msgstr "" msgstr ""
#: src/Module/Profile/Profile.php:324 src/Module/Profile/Status.php:66 #: src/Module/Profile/Profile.php:328 src/Module/Profile/Status.php:66
#: src/Protocol/Feed.php:950 src/Protocol/OStatus.php:1260 #: src/Protocol/Feed.php:950 src/Protocol/OStatus.php:1260
#, php-format #, php-format
msgid "%s's posts" msgid "%s's posts"
msgstr "" msgstr ""
#: src/Module/Profile/Profile.php:325 src/Module/Profile/Status.php:67 #: src/Module/Profile/Profile.php:329 src/Module/Profile/Status.php:67
#: src/Protocol/Feed.php:953 src/Protocol/OStatus.php:1263 #: src/Protocol/Feed.php:953 src/Protocol/OStatus.php:1263
#, php-format #, php-format
msgid "%s's comments" msgid "%s's comments"
@ -9327,122 +9332,129 @@ msgstr ""
msgid "Profile Name is required." msgid "Profile Name is required."
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:134 #: src/Module/Settings/Profile/Index.php:136
msgid "Profile couldn't be updated." msgid "Profile couldn't be updated."
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:171 #: src/Module/Settings/Profile/Index.php:173
#: src/Module/Settings/Profile/Index.php:191 #: src/Module/Settings/Profile/Index.php:193
msgid "Label:" msgid "Label:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:172 #: src/Module/Settings/Profile/Index.php:174
#: src/Module/Settings/Profile/Index.php:192 #: src/Module/Settings/Profile/Index.php:194
msgid "Value:" msgid "Value:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:182 #: src/Module/Settings/Profile/Index.php:184
#: src/Module/Settings/Profile/Index.php:202 #: src/Module/Settings/Profile/Index.php:204
msgid "Field Permissions" msgid "Field Permissions"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:183 #: src/Module/Settings/Profile/Index.php:185
#: src/Module/Settings/Profile/Index.php:203 #: src/Module/Settings/Profile/Index.php:205
msgid "(click to open/close)" msgid "(click to open/close)"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:189 #: src/Module/Settings/Profile/Index.php:191
msgid "Add a new profile field" msgid "Add a new profile field"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:219 #: src/Module/Settings/Profile/Index.php:221
msgid "Profile Actions" msgid "Profile Actions"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:220 #: src/Module/Settings/Profile/Index.php:222
msgid "Edit Profile Details" msgid "Edit Profile Details"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:222 #: src/Module/Settings/Profile/Index.php:224
msgid "Change Profile Photo" msgid "Change Profile Photo"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:227 #: src/Module/Settings/Profile/Index.php:229
msgid "Profile picture" msgid "Profile picture"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:228 #: src/Module/Settings/Profile/Index.php:230
msgid "Location" msgid "Location"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:229 src/Util/Temporal.php:93 #: src/Module/Settings/Profile/Index.php:231 src/Util/Temporal.php:93
#: src/Util/Temporal.php:95 #: src/Util/Temporal.php:95
msgid "Miscellaneous" msgid "Miscellaneous"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:230 #: src/Module/Settings/Profile/Index.php:232
msgid "Custom Profile Fields" msgid "Custom Profile Fields"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:232 src/Module/Welcome.php:58 #: src/Module/Settings/Profile/Index.php:234 src/Module/Welcome.php:58
msgid "Upload Profile Photo" msgid "Upload Profile Photo"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:236 #: src/Module/Settings/Profile/Index.php:238
msgid "Display name:" msgid "Display name:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:239 #: src/Module/Settings/Profile/Index.php:241
msgid "Street Address:" msgid "Street Address:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:240 #: src/Module/Settings/Profile/Index.php:242
msgid "Locality/City:" msgid "Locality/City:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:241 #: src/Module/Settings/Profile/Index.php:243
msgid "Region/State:" msgid "Region/State:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:242 #: src/Module/Settings/Profile/Index.php:244
msgid "Postal/Zip Code:" msgid "Postal/Zip Code:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:243 #: src/Module/Settings/Profile/Index.php:245
msgid "Country:" msgid "Country:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:245 #: src/Module/Settings/Profile/Index.php:247
msgid "XMPP (Jabber) address:" msgid "XMPP (Jabber) address:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:245 #: src/Module/Settings/Profile/Index.php:247
msgid "The XMPP address will be published so that people can follow you there."
msgstr ""
#: src/Module/Settings/Profile/Index.php:248
msgid "Matrix (Element) address:"
msgstr ""
#: src/Module/Settings/Profile/Index.php:248
msgid "" msgid ""
"The XMPP address will be propagated to your contacts so that they can follow " "The Matrix address will be published so that people can follow you there."
"you."
msgstr ""
#: src/Module/Settings/Profile/Index.php:246
msgid "Homepage URL:"
msgstr ""
#: src/Module/Settings/Profile/Index.php:247
msgid "Public Keywords:"
msgstr ""
#: src/Module/Settings/Profile/Index.php:247
msgid "(Used for suggesting potential friends, can be seen by others)"
msgstr ""
#: src/Module/Settings/Profile/Index.php:248
msgid "Private Keywords:"
msgstr ""
#: src/Module/Settings/Profile/Index.php:248
msgid "(Used for searching profiles, never shown to others)"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:249 #: src/Module/Settings/Profile/Index.php:249
msgid "Homepage URL:"
msgstr ""
#: src/Module/Settings/Profile/Index.php:250
msgid "Public Keywords:"
msgstr ""
#: src/Module/Settings/Profile/Index.php:250
msgid "(Used for suggesting potential friends, can be seen by others)"
msgstr ""
#: src/Module/Settings/Profile/Index.php:251
msgid "Private Keywords:"
msgstr ""
#: src/Module/Settings/Profile/Index.php:251
msgid "(Used for searching profiles, never shown to others)"
msgstr ""
#: src/Module/Settings/Profile/Index.php:252
#, php-format #, php-format
msgid "" msgid ""
"<p>Custom fields appear on <a href=\"%s\">your profile page</a>.</p>\n" "<p>Custom fields appear on <a href=\"%s\">your profile page</a>.</p>\n"

View file

@ -51,6 +51,7 @@
<dl><dt>{{$profileurllabel}}</dt><dd><a target="blank" href="{{$url}}">{{$profileurl}}</a></dd></dl> <dl><dt>{{$profileurllabel}}</dt><dd><a target="blank" href="{{$url}}">{{$profileurl}}</a></dd></dl>
{{if $location}}<dl><dt>{{$location_label}}</dt><dd>{{$location nofilter}}</dd></dl>{{/if}} {{if $location}}<dl><dt>{{$location_label}}</dt><dd>{{$location nofilter}}</dd></dl>{{/if}}
{{if $xmpp}}<dl><dt>{{$xmpp_label}}</dt><dd>{{$xmpp}}</dd></dl>{{/if}} {{if $xmpp}}<dl><dt>{{$xmpp_label}}</dt><dd>{{$xmpp}}</dd></dl>{{/if}}
{{if $matrix}}<dl><dt>{{$matrix_label}}</dt><dd>{{$matrix}}</dd></dl>{{/if}}
{{if $keywords}}<dl><dt>{{$keywords_label}}</dt><dd>{{$keywords}}</dd></dl>{{/if}} {{if $keywords}}<dl><dt>{{$keywords_label}}</dt><dd>{{$keywords}}</dd></dl>{{/if}}
{{if $about}}<dl><dt>{{$about_label}}</dt><dd>{{$about nofilter}}</dd></dl>{{/if}} {{if $about}}<dl><dt>{{$about_label}}</dt><dd>{{$about nofilter}}</dd></dl>{{/if}}
</div>{{* End of contact-edit-links *}} </div>{{* End of contact-edit-links *}}

View file

@ -77,6 +77,14 @@
</dl> </dl>
{{/if}} {{/if}}
{{if $basic_fields.matrix}}
<dl id="aprofile-matrix" class="row {{$basic_fields.matrix.class|default:'aprofile'}}">
<hr class="profile-separator">
<dt class="col-lg-4 col-md-4 col-sm-4 col-xs-12 profile-label-name text-muted">{{$basic_fields.matrix.label}}</dt>
<dd class="col-lg-8 col-md-8 col-sm-8 col-xs-12 profile-entry">{{$basic_fields.matrix.value nofilter}}</dd>
</dl>
{{/if}}
{{if $basic_fields.pub_keywords}} {{if $basic_fields.pub_keywords}}
<dl id="aprofile-tags" class="row {{$basic_fields.pub_keywords.class|default:'aprofile'}}"> <dl id="aprofile-tags" class="row {{$basic_fields.pub_keywords.class|default:'aprofile'}}">
<hr class="profile-separator"> <hr class="profile-separator">

View file

@ -29,6 +29,13 @@
</dl> </dl>
{{/if}} {{/if}}
{{if $profile.matrix}}
<dl class="matrix">
<dt class="matrix-label">{{$matrix}}</dt>
<dd class="matrix-data">{{$profile.matrix}}</dd>
</dl>
{{/if}}
{{if $profile.upubkey}}<div class="key u-key" style="display:none;">{{$profile.upubkey}}</div>{{/if}} {{if $profile.upubkey}}<div class="key u-key" style="display:none;">{{$profile.upubkey}}</div>{{/if}}
{{if $contacts}}<div class="contacts" style="display:none;">{{$contacts}}</div>{{/if}} {{if $contacts}}<div class="contacts" style="display:none;">{{$contacts}}</div>{{/if}}

View file

@ -80,6 +80,12 @@
</div> </div>
<div id="profile-edit-xmpp-desc">{{$xmpp.3}}</div> <div id="profile-edit-xmpp-desc">{{$xmpp.3}}</div>
<div id="profile-edit-xmpp-end"></div> <div id="profile-edit-xmpp-end"></div>
<div id="profile-edit-matrix-wrapper">
<label id="profile-edit-matrix-label" for="profile-edit-matrix">{{$matrix.1}} </label>
<input type="text" size="32" name="matrix" id="profile-edit-matrix" title="{{$lbl_ex2}}" value="{{$matrix.2}}"/>
</div>
<div id="profile-edit-matrix-desc">{{$matrix.3}}</div>
<div id="profile-edit-matrix-end"></div>
<div id="profile-edit-pubkeywords-wrapper"> <div id="profile-edit-pubkeywords-wrapper">
<label id="profile-edit-pubkeywords-label" for="profile-edit-pubkeywords">{{$pub_keywords.1}} </label> <label id="profile-edit-pubkeywords-label" for="profile-edit-pubkeywords">{{$pub_keywords.1}} </label>
<input type="text" size="32" name="pub_keywords" id="profile-edit-pubkeywords" title="{{$lbl_ex2}}" value="{{$pub_keywords.2}}"/> <input type="text" size="32" name="pub_keywords" id="profile-edit-pubkeywords" title="{{$lbl_ex2}}" value="{{$pub_keywords.2}}"/>

View file

@ -14,6 +14,12 @@
<dd class="xmpp-data">{{$contact.xmpp}}</dd> <dd class="xmpp-data">{{$contact.xmpp}}</dd>
</dl> </dl>
{{/if}} {{/if}}
{{if $contact.matrix}}
<dl class="matrix">
<dt class="matrix-label">{{$matrix}}</dt>
<dd class="matrix-data">{{$contact.matrix}}</dd>
</dl>
{{/if}}
{{if $contact.location}} {{if $contact.location}}
<dl class="location" dir="auto"> <dl class="location" dir="auto">
<dt class="location-label">{{$location}}</dt> <dt class="location-label">{{$location}}</dt>

View file

@ -1167,7 +1167,7 @@ aside .vcard .detail {
display: table; display: table;
padding: 2px 0; padding: 2px 0;
} }
aside .xmpp { aside .xmpp, aside .matrix {
display: table; display: table;
} }
aside .vcard .icon { aside .vcard .icon {

View file

@ -96,6 +96,14 @@
</div> </div>
{{/if}} {{/if}}
{{if $matrix}}
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<hr class="profile-separator">
<div class="col-lg-4 col-md-4 col-sm-4 col-xs-12 text-muted">{{$matrix_label}}</div>
<div class="col-lg-8 col-md-8 col-sm-8 col-xs-12">{{$matrix}}</div>
</div>
{{/if}}
{{if $keywords}} {{if $keywords}}
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12"> <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<hr class="profile-separator"> <hr class="profile-separator">

View file

@ -88,11 +88,18 @@
{{if $profile.xmpp}} {{if $profile.xmpp}}
<div class="xmpp"> <div class="xmpp">
<span class="xmpp-label icon"><i class="fa fa-comments"></i></span> <span class="xmpp-label icon"><i class="fa fa-xmpp"></i></span>
<span class="xmpp-data"><a href="xmpp:{{$profile.xmpp}}" rel="me" target="_blank" rel="noopener noreferrer">{{include file="sub/punct_wrap.tpl" text=$profile.xmpp}}</a></span> <span class="xmpp-data"><a href="xmpp:{{$profile.xmpp}}" rel="me" target="_blank" rel="noopener noreferrer">{{include file="sub/punct_wrap.tpl" text=$profile.xmpp}}</a></span>
</div> </div>
{{/if}} {{/if}}
{{if $profile.matrix}}
<div class="matrix">
<span class="matrix-label icon"><i class="fa fa-matrix-org"></i></span>
<span class="matrix-data"><a href="matrix:{{$profile.matrix}}" rel="me" target="_blank" rel="noopener noreferrer">{{include file="sub/punct_wrap.tpl" text=$profile.matrix}}</a></span>
</div>
{{/if}}
{{if $profile.upubkey}}<div class="key u-key" style="display:none;">{{$profile.upubkey}}</div>{{/if}} {{if $profile.upubkey}}<div class="key u-key" style="display:none;">{{$profile.upubkey}}</div>{{/if}}
{{if $contacts}}<div class="contacts" style="display:none;">{{$contacts}}</div>{{/if}} {{if $contacts}}<div class="contacts" style="display:none;">{{$contacts}}</div>{{/if}}
@ -101,7 +108,7 @@
{{if $homepage}} {{if $homepage}}
<div class="homepage detail"> <div class="homepage detail">
<span class="homepage-label icon"><i class="fa fa-external-link-square"></i></span> <span class="homepage-label icon"><i class="fa fa-external-link"></i></span>
<span class="homepage-url u-url"><a href="{{$profile.homepage}}" rel="me" target="_blank" rel="noopener noreferrer">{{include file="sub/punct_wrap.tpl" text=$profile.homepage}}</a></span> <span class="homepage-url u-url"><a href="{{$profile.homepage}}" rel="me" target="_blank" rel="noopener noreferrer">{{include file="sub/punct_wrap.tpl" text=$profile.homepage}}</a></span>
</div> </div>
{{/if}} {{/if}}

View file

@ -129,6 +129,8 @@
{{include file="field_input.tpl" field=$xmpp}} {{include file="field_input.tpl" field=$xmpp}}
{{include file="field_input.tpl" field=$matrix}}
{{include file="field_input.tpl" field=$pub_keywords}} {{include file="field_input.tpl" field=$pub_keywords}}
{{include file="field_input.tpl" field=$prv_keywords}} {{include file="field_input.tpl" field=$prv_keywords}}

View file

@ -69,11 +69,18 @@
{{if $contact.xmpp}} {{if $contact.xmpp}}
<div class="xmpp detail"> <div class="xmpp detail">
<span class="xmpp-label icon"><i class="fa fa-comments"></i></span> <span class="xmpp-label icon"><i class="fa fa-xmpp"></i></span>
<span class="xmpp-data"><a href="xmpp:{{$contact.xmpp}}" rel="me" target="_blank" rel="noopener noreferrer">{{include file="sub/punct_wrap.tpl" text=$contact.xmpp}}</a></span> <span class="xmpp-data"><a href="xmpp:{{$contact.xmpp}}" rel="me" target="_blank" rel="noopener noreferrer">{{include file="sub/punct_wrap.tpl" text=$contact.xmpp}}</a></span>
</div> </div>
{{/if}} {{/if}}
{{if $contact.matrix}}
<div class="matrix detail">
<span class="matrix-label icon"><i class="fa fa-matrix-org"></i></span>
<span class="matrix-data"><a href="matrix:{{$contact.matrix}}" rel="me" target="_blank" rel="noopener noreferrer">{{include file="sub/punct_wrap.tpl" text=$contact.matrix}}</a></span>
</div>
{{/if}}
{{if $network_link}} {{if $network_link}}
<div class="network detail"> <div class="network detail">
<span class="network-label icon"><i class="fa fa-{{$network_avatar}}"></i></span> <span class="network-label icon"><i class="fa fa-{{$network_avatar}}"></i></span>

View file

@ -42,6 +42,13 @@
</dl> </dl>
{{/if}} {{/if}}
{{if $profile.matrix}}
<dl class="matrix">
<dt class="matrix-label">{{$matrix}}</dt>
<dd class="matrix-data">{{$profile.matrix}}</dd>
</dl>
{{/if}}
{{if $profile.upubkey}}<div class="key" style="display:none;">{{$profile.upubkey}}</div>{{/if}} {{if $profile.upubkey}}<div class="key" style="display:none;">{{$profile.upubkey}}</div>{{/if}}
{{if $homepage}} {{if $homepage}}

View file

@ -52,6 +52,7 @@
<dl><dt>{{$profileurllabel}}</dt><dd><a target="blank" href="{{$url}}">{{$profileurl}}</a></dd></dl> <dl><dt>{{$profileurllabel}}</dt><dd><a target="blank" href="{{$url}}">{{$profileurl}}</a></dd></dl>
{{if $location}}<dl><dt>{{$location_label}}</dt><dd>{{$location nofilter}}</dd></dl>{{/if}} {{if $location}}<dl><dt>{{$location_label}}</dt><dd>{{$location nofilter}}</dd></dl>{{/if}}
{{if $xmpp}}<dl><dt>{{$xmpp_label}}</dt><dd>{{$xmpp}}</dd></dl>{{/if}} {{if $xmpp}}<dl><dt>{{$xmpp_label}}</dt><dd>{{$xmpp}}</dd></dl>{{/if}}
{{if $matrix}}<dl><dt>{{$matrix_label}}</dt><dd>{{$matrix}}</dd></dl>{{/if}}
{{if $keywords}}<dl><dt>{{$keywords_label}}</dt><dd>{{$keywords}}</dd></dl>{{/if}} {{if $keywords}}<dl><dt>{{$keywords_label}}</dt><dd>{{$keywords}}</dd></dl>{{/if}}
{{if $about}}<dl><dt>{{$about_label}}</dt><dd>{{$about nofilter}}</dd></dl>{{/if}} {{if $about}}<dl><dt>{{$about_label}}</dt><dd>{{$about nofilter}}</dd></dl>{{/if}}
</div>{{* End of contact-edit-links *}} </div>{{* End of contact-edit-links *}}

View file

@ -36,6 +36,13 @@
</dl> </dl>
{{/if}} {{/if}}
{{if $profile.matrix}}
<dl class="matrix">
<dt class="matrix-label">{{$matrix}}</dt>
<dd class="matrix-data">{{$profile.matrix}}</dd>
</dl>
{{/if}}
{{if $profile.upubkey}}<div class="key u-key" style="display:none;">{{$profile.upubkey}}</div>{{/if}} {{if $profile.upubkey}}<div class="key u-key" style="display:none;">{{$profile.upubkey}}</div>{{/if}}
{{if $contacts}}<div class="contacts" style="display:none;">{{$contacts}}</div>{{/if}} {{if $contacts}}<div class="contacts" style="display:none;">{{$contacts}}</div>{{/if}}

View file

@ -67,6 +67,13 @@
<div id="profile-edit-xmpp-desc">{{$xmpp.3}}</div> <div id="profile-edit-xmpp-desc">{{$xmpp.3}}</div>
<div id="profile-edit-xmpp-end"></div> <div id="profile-edit-xmpp-end"></div>
<div id="profile-edit-matrix-wrapper">
<label id="profile-edit-matrix-label" for="profile-edit-matrix">{{$matrix.1}} </label>
<input type="text" size="32" name="matrix" id="profile-edit-matrix" value="{{$matrix.2}}"/>
</div>
<div id="profile-edit-matrix-desc">{{$matrix.3}}</div>
<div id="profile-edit-matrix-end"></div>
<div id="profile-edit-homepage-wrapper"> <div id="profile-edit-homepage-wrapper">
<label id="profile-edit-homepage-label" for="profile-edit-homepage">{{$homepage.1}} </label> <label id="profile-edit-homepage-label" for="profile-edit-homepage">{{$homepage.1}} </label>
<input type="text" size="32" name="homepage" id="profile-edit-homepage" value="{{$homepage.2}}"/> <input type="text" size="32" name="homepage" id="profile-edit-homepage" value="{{$homepage.2}}"/>