Porównaj commity

...

11 Commity

Autor SHA1 Wiadomość Data
Tobias Diekershoff ad65e56b16
Merge pull request #14077 from annando/idn
Fallback mechanism for missing IDN functions
2024-04-07 08:11:35 +02:00
Michael 78dc61b59e Fallback mechanism for missing IDN functions 2024-04-06 11:26:12 +00:00
Hypolite Petovan e9dcf15d86
Merge pull request #14074 from annando/searchtext
Menu option to display the search text
2024-04-05 08:40:45 -04:00
Michael b40687081e The data for the language display is now fetched on demand 2024-04-05 10:29:27 +00:00
Michael 50b1de5959 Menu option to display the search text 2024-04-05 07:35:21 +00:00
Michael Vogel 44344af055
Merge pull request #14072 from jlamothe/from-to
fixed Channels documentation
2024-04-04 00:51:40 +02:00
Jonathan Lamothe cbcec17bcb fixed Channels documentation
The "to" keyword documentation seemed incorrect.
2024-04-03 15:48:03 -04:00
Hypolite Petovan 9ab5d8a83a
Merge pull request #14069 from annando/invalid-link
Avoid exception "Unable to retrieve the host in URL" in the search
2024-04-03 09:25:46 -04:00
Michael 0d4f956fba Avoid exception "Unable to retrieve the host in URL" in the search 2024-04-03 07:51:02 +00:00
Hypolite Petovan c71f4eb1df
Merge pull request #14068 from annando/wall-read
Don't set posts to seen on channel ping
2024-04-02 21:22:13 -04:00
Michael 626ab7cb54 Don't set posts to seen on channel ping 2024-04-02 21:31:57 +00:00
20 zmienionych plików z 323 dodań i 104 usunięć

Wyświetl plik

@ -61,7 +61,7 @@ Additionally to the search for content, there are keywords that can be used in t
Alternatives are presented with "|". Alternatives are presented with "|".
* from - Use "from:nickname" or "from:nickname@domain.tld" to search for posts from a specific author. * from - Use "from:nickname" or "from:nickname@domain.tld" to search for posts from a specific author.
* to - Use "from:nickname" or "from:nickname@domain.tld" to search for posts with the given contact as receiver. * to - Use "to:nickname" or "to:nickname@domain.tld" to search for posts with the given contact as receiver.
* group - Use "group:nickname" or "group:nickname@domain.tld" to search for group post of the given group. * group - Use "group:nickname" or "group:nickname@domain.tld" to search for group post of the given group.
* application | relay - Use "application:nickname" or "application:nickname@domain.tld" to search for posts that had been reshared by the given relay application. * application | relay - Use "application:nickname" or "application:nickname@domain.tld" to search for posts that had been reshared by the given relay application.
* server - Use "server:hostname" to search for posts from a specific server. In the case of group postings, the search text contains both the hostname of the group server and the author's hostname. * server - Use "server:hostname" to search for posts from a specific server. In the case of group postings, the search text contains both the hostname of the group server and the author's hostname.

Wyświetl plik

@ -30,7 +30,7 @@ Due to the large variety of operating systems and PHP platforms in existence we
* Apache with mod-rewrite enabled and "Options All" so you can use a local `.htaccess` file * Apache with mod-rewrite enabled and "Options All" so you can use a local `.htaccess` file
* PHP 7.4+ * PHP 7.4+
* PHP *command line* access with register_argc_argv set to true in the php.ini file * PHP *command line* access with register_argc_argv set to true in the php.ini file
* Curl, GD, GMP, PDO, mbstrings, MySQLi, hash, xml, zip, IntlChar and OpenSSL extensions * Curl, GD, GMP, PDO, mbstrings, MySQLi, hash, xml, zip, IntlChar, IDN and OpenSSL extensions
* The POSIX module of PHP needs to be activated (e.g. [RHEL, CentOS](http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7) have disabled it) * The POSIX module of PHP needs to be activated (e.g. [RHEL, CentOS](http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7) have disabled it)
* Some form of email server or email gateway such that PHP mail() works. * Some form of email server or email gateway such that PHP mail() works.
If you cannot set up your own email server, you can use the [phpmailer](https://github.com/friendica/friendica-addons/tree/develop/phpmailer) addon and use a remote SMTP server. If you cannot set up your own email server, you can use the [phpmailer](https://github.com/friendica/friendica-addons/tree/develop/phpmailer) addon and use a remote SMTP server.

Wyświetl plik

@ -27,7 +27,7 @@ Requirements
* Apache mit einer aktiverten mod-rewrite-Funktion und dem Eintrag "Options All", so dass du die lokale .htaccess-Datei nutzen kannst * Apache mit einer aktiverten mod-rewrite-Funktion und dem Eintrag "Options All", so dass du die lokale .htaccess-Datei nutzen kannst
* PHP 7.4+ * PHP 7.4+
* PHP *Kommandozeilen*-Zugang mit register_argc_argv auf "true" gesetzt in der php.ini-Datei * PHP *Kommandozeilen*-Zugang mit register_argc_argv auf "true" gesetzt in der php.ini-Datei
* Curl, GD, GMP, PDO, mbstrings, MySQLi, hash, xml, zip, IntlChar and OpenSSL-Erweiterung * Curl, GD, GMP, PDO, mbstrings, MySQLi, hash, xml, zip, IntlChar, IDN und OpenSSL-Erweiterung
* Das POSIX Modul muss aktiviert sein ([CentOS, RHEL](http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7) haben dies z.B. deaktiviert) * Das POSIX Modul muss aktiviert sein ([CentOS, RHEL](http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7) haben dies z.B. deaktiviert)
* Einen E-Mail Server, so dass PHP `mail()` funktioniert. * Einen E-Mail Server, so dass PHP `mail()` funktioniert.
Wenn kein eigener E-Mail Server zur Verfügung steht, kann alternativ das [phpmailer](https://github.com/friendica/friendica-addons/tree/develop/phpmailer) Addon mit einem externen SMTP Account verwendet werden. Wenn kein eigener E-Mail Server zur Verfügung steht, kann alternativ das [phpmailer](https://github.com/friendica/friendica-addons/tree/develop/phpmailer) Addon mit einem externen SMTP Account verwendet werden.

Wyświetl plik

@ -440,9 +440,11 @@ class Item
]; ];
if (!empty($item['language'])) { if (!empty($item['language'])) {
$menu[$this->l10n->t('Languages')] = 'javascript:alert(\'' . ItemModel::getLanguageMessage($item) . '\');'; $menu[$this->l10n->t('Languages')] = 'javascript:displayLanguage(' . $item['uri-id'] . ');';
} }
$menu[$this->l10n->t('Search Text')] = 'javascript:displaySearchText(' . $item['uri-id'] . ');';
if ((($cid == 0) || ($rel == Contact::FOLLOWER)) && if ((($cid == 0) || ($rel == Contact::FOLLOWER)) &&
in_array($item['network'], Protocol::FEDERATED) in_array($item['network'], Protocol::FEDERATED)
) { ) {

Wyświetl plik

@ -495,6 +495,13 @@ class Installer
); );
$returnVal = $returnVal ? $status : false; $returnVal = $returnVal ? $status : false;
$status = $this->checkFunction('idn_to_ascii',
DI::l10n()->t('IDN Functions PHP module'),
DI::l10n()->t('Error: IDN Functions PHP module required but not installed.'),
true
);
$returnVal = $returnVal ? $status : false;
return $returnVal; return $returnVal;
} }

Wyświetl plik

@ -4132,9 +4132,14 @@ class Item
return is_numeric($hookData['item_id']) ? $hookData['item_id'] : 0; return is_numeric($hookData['item_id']) ? $hookData['item_id'] : 0;
} }
$curlResult = DI::httpClient()->head($uri, [HttpClientOptions::ACCEPT_CONTENT => HttpClientAccept::JSON_AS]); try {
if (HTTPSignature::isValidContentType($curlResult->getContentType(), $uri)) { $curlResult = DI::httpClient()->head($uri, [HttpClientOptions::ACCEPT_CONTENT => HttpClientAccept::JSON_AS]);
$fetched_uri = ActivityPub\Processor::fetchMissingActivity($uri, [], '', $completion, $uid); if (HTTPSignature::isValidContentType($curlResult->getContentType(), $uri)) {
$fetched_uri = ActivityPub\Processor::fetchMissingActivity($uri, [], '', $completion, $uid);
}
} catch (\Throwable $th) {
Logger::info('Invalid link', ['uid' => $uid, 'uri' => $uri, 'code' => $th->getCode(), 'message' => $th->getMessage()]);
return 0;
} }
if (!empty($fetched_uri)) { if (!empty($fetched_uri)) {

Wyświetl plik

@ -418,4 +418,12 @@ class Engagement
} }
return $fullTextSearch; return $fullTextSearch;
} }
public static function unescapeKeywords(string $fullTextSearch): string
{
foreach (self::KEYWORDS as $keyword) {
$fullTextSearch = preg_replace('~(' . $keyword . ')_(.[\w\*@\.-]+)~', '$1:$2', $fullTextSearch);
}
return $fullTextSearch;
}
} }

Wyświetl plik

@ -378,6 +378,11 @@ class Network extends Timeline
} }
} }
protected function setPing(bool $ping)
{
$this->ping = $ping;
}
protected function getItems() protected function getItems()
{ {
$conditionFields = ['uid' => $this->session->getLocalUserId()]; $conditionFields = ['uid' => $this->session->getLocalUserId()];

Wyświetl plik

@ -71,6 +71,8 @@ class Timeline extends BaseModule
/** @var bool */ /** @var bool */
protected $update; protected $update;
/** @var bool */ /** @var bool */
protected $ping;
/** @var bool */
protected $raw; protected $raw;
/** @var string */ /** @var string */
protected $order; protected $order;
@ -823,7 +825,7 @@ class Timeline extends BaseModule
*/ */
protected function setItemsSeenByCondition(array $condition) protected function setItemsSeenByCondition(array $condition)
{ {
if (empty($condition)) { if (empty($condition) || $this->ping) {
return; return;
} }

Wyświetl plik

@ -0,0 +1,67 @@
<?php
/**
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
namespace Friendica\Module\Item;
use Friendica\App;
use Friendica\BaseModule;
use Friendica\Core\L10n;
use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Model\Item;
use Friendica\Model\Post;
use Friendica\Module\Api\ApiResponse;
use Friendica\Network\HTTPException;
use Friendica\Util\Profiler;
use Psr\Log\LoggerInterface;
/**
* Return the language of a given item uri-id
*/
class Language extends BaseModule
{
/** @var IHandleUserSessions */
private $session;
public function __construct(IHandleUserSessions $session, L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, ApiResponse $response, array $server, array $parameters = [])
{
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
$this->session = $session;
}
protected function rawContent(array $request = [])
{
if (!$this->session->isAuthenticated()) {
throw new HttpException\ForbiddenException($this->l10n->t('Access denied.'));
}
if (empty($this->parameters['id'])) {
throw new HTTPException\BadRequestException();
}
$item = Post::selectFirstForUser($this->session->getLocalUserId(), ['language'], ['uid' => [0, $this->session->getLocalUserId()], 'uri-id' => $this->parameters['id']]);
if (empty($item)) {
throw new HTTPException\NotFoundException();
}
$this->httpExit(Item::getLanguageMessage($item));
}
}

Wyświetl plik

@ -0,0 +1,72 @@
<?php
/**
* @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
namespace Friendica\Module\Item;
use Friendica\App;
use Friendica\BaseModule;
use Friendica\Core\L10n;
use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Database\DBA;
use Friendica\Model\Post;
use Friendica\Module\Api\ApiResponse;
use Friendica\Network\HTTPException;
use Friendica\Util\Profiler;
use Psr\Log\LoggerInterface;
/**
* Return the search text of a given item id
*/
class Searchtext extends BaseModule
{
/** @var IHandleUserSessions */
private $session;
public function __construct(IHandleUserSessions $session, L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, ApiResponse $response, array $server, array $parameters = [])
{
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
$this->session = $session;
}
protected function rawContent(array $request = [])
{
if (!$this->session->isAuthenticated()) {
throw new HttpException\ForbiddenException($this->l10n->t('Access denied.'));
}
if (empty($this->parameters['id'])) {
throw new HTTPException\BadRequestException();
}
$item = Post::selectFirstForUser($this->session->getLocalUserId(), ['uri-id'], ['uid' => [0, $this->session->getLocalUserId()], 'uri-id' => $this->parameters['id']]);
if (empty($item)) {
throw new HTTPException\NotFoundException();
}
$search = DBA::selectFirst('post-searchindex', [], ['uri-id' => $item['uri-id']]);
if (empty($search)) {
throw new HTTPException\NotFoundException();
}
$this->httpExit(Post\Engagement::unescapeKeywords($search['searchtext']));
}
}

Wyświetl plik

@ -46,6 +46,7 @@ class Network extends NetworkModule
System::httpExit(''); System::httpExit('');
} }
$this->setPing(true);
$this->itemsPerPage = 100; $this->itemsPerPage = 100;
if ($this->channel->isTimeline($this->selectedTab) || $this->userDefinedChannel->isTimeline($this->selectedTab, $this->session->getLocalUserId())) { if ($this->channel->isTimeline($this->selectedTab) || $this->userDefinedChannel->isTimeline($this->selectedTab, $this->session->getLocalUserId())) {

Wyświetl plik

@ -521,7 +521,7 @@ class Post
$languages = []; $languages = [];
if (!empty($item['language'])) { if (!empty($item['language'])) {
$languages = [DI::l10n()->t('Languages'), Item::getLanguageMessage($item)]; $languages = DI::l10n()->t('Languages');
} }
if (in_array($item['private'], [Item::PUBLIC, Item::UNLISTED]) && in_array($item['network'], Protocol::FEDERATED)) { if (in_array($item['private'], [Item::PUBLIC, Item::UNLISTED]) && in_array($item['network'], Protocol::FEDERATED)) {
@ -600,6 +600,7 @@ class Post
'tagger' => $tagger, 'tagger' => $tagger,
'filer' => $filer, 'filer' => $filer,
'language' => $languages, 'language' => $languages,
'searchtext' => DI::l10n()->t('Search Text'),
'drop' => $drop, 'drop' => $drop,
'block' => $block, 'block' => $block,
'ignore_author' => $ignore, 'ignore_author' => $ignore,

Wyświetl plik

@ -533,20 +533,29 @@ class Network
{ {
$parts = parse_url($uri); $parts = parse_url($uri);
if (!empty($parts['scheme']) && !empty($parts['host'])) { if (!empty($parts['scheme']) && !empty($parts['host'])) {
$parts['host'] = idn_to_ascii($parts['host']); $parts['host'] = self::idnToAscii($parts['host']);
$uri = (string)Uri::fromParts($parts); $uri = (string)Uri::fromParts($parts);
} else { } else {
$parts = explode('@', $uri); $parts = explode('@', $uri);
if (count($parts) == 2) { if (count($parts) == 2) {
$uri = $parts[0] . '@' . idn_to_ascii($parts[1]); $uri = $parts[0] . '@' . self::idnToAscii($parts[1]);
} else { } else {
$uri = idn_to_ascii($uri); $uri = self::idnToAscii($uri);
} }
} }
return $uri; return $uri;
} }
private static function idnToAscii(string $uri): string
{
if (!function_exists('idn_to_ascii')) {
Logger::error('IDN functions are missing.');
return $uri;
}
return idn_to_ascii($uri);
}
/** /**
* Switch the scheme of an url between http and https * Switch the scheme of an url between http and https
* *

Wyświetl plik

@ -480,7 +480,9 @@ return [
'/activity/{verb}' => [Module\Item\Activity::class, [ R::POST]], '/activity/{verb}' => [Module\Item\Activity::class, [ R::POST]],
'/follow' => [Module\Item\Follow::class, [ R::POST]], '/follow' => [Module\Item\Follow::class, [ R::POST]],
'/ignore' => [Module\Item\Ignore::class, [ R::POST]], '/ignore' => [Module\Item\Ignore::class, [ R::POST]],
'/language' => [Module\Item\Language::class, [R::GET]],
'/pin' => [Module\Item\Pin::class, [ R::POST]], '/pin' => [Module\Item\Pin::class, [ R::POST]],
'/searchtext' => [Module\Item\Searchtext::class, [R::GET]],
'/star' => [Module\Item\Star::class, [ R::POST]], '/star' => [Module\Item\Star::class, [ R::POST]],
], ],

Wyświetl plik

@ -110,6 +110,8 @@ class InstallerTest extends MockedTest
$this->mockL10nT('Error: File Information PHP module required but not installed.', 1); $this->mockL10nT('Error: File Information PHP module required but not installed.', 1);
$this->mockL10nT('GNU Multiple Precision PHP module', 1); $this->mockL10nT('GNU Multiple Precision PHP module', 1);
$this->mockL10nT('Error: GNU Multiple Precision PHP module required but not installed.', 1); $this->mockL10nT('Error: GNU Multiple Precision PHP module required but not installed.', 1);
$this->mockL10nT('IDN Functions PHP module', 1);
$this->mockL10nT('Error: IDN Functions PHP module required but not installed.', 1);
$this->mockL10nT('Program execution functions', 1); $this->mockL10nT('Program execution functions', 1);
$this->mockL10nT('Error: Program execution functions (proc_open) required but not enabled.', 1); $this->mockL10nT('Error: Program execution functions (proc_open) required but not enabled.', 1);
} }

Wyświetl plik

@ -797,6 +797,18 @@ function getPosition(e) {
return cursor; return cursor;
} }
function displaySearchText(id) {
$.get('item/' + id + '/searchtext', function(data) {
alert(data);
});
}
function displayLanguage(id) {
$.get('item/' + id + '/language', function(data) {
alert(data);
});
}
var lockvisible = false; var lockvisible = false;
function lockview(event, type, id) { function lockview(event, type, id) {

Wyświetl plik

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 2024.06-dev\n" "Project-Id-Version: 2024.06-dev\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-03-29 20:29+0000\n" "POT-Creation-Date: 2024-04-06 11:09+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"
@ -292,7 +292,7 @@ msgstr ""
#: mod/message.php:201 mod/message.php:357 mod/photos.php:1297 #: mod/message.php:201 mod/message.php:357 mod/photos.php:1297
#: src/Content/Conversation.php:400 src/Content/Conversation.php:1583 #: src/Content/Conversation.php:400 src/Content/Conversation.php:1583
#: src/Module/Item/Compose.php:206 src/Module/Post/Edit.php:145 #: src/Module/Item/Compose.php:206 src/Module/Post/Edit.php:145
#: src/Object/Post.php:624 #: src/Object/Post.php:625
msgid "Please wait" msgid "Please wait"
msgstr "" msgstr ""
@ -314,7 +314,7 @@ msgstr ""
#: src/Module/Moderation/Report/Create.php:263 #: src/Module/Moderation/Report/Create.php:263
#: src/Module/Profile/Profile.php:274 src/Module/Settings/Profile/Index.php:257 #: src/Module/Profile/Profile.php:274 src/Module/Settings/Profile/Index.php:257
#: src/Module/Settings/Server/Action.php:79 src/Module/User/Delegation.php:189 #: src/Module/Settings/Server/Action.php:79 src/Module/User/Delegation.php:189
#: src/Object/Post.php:1169 view/theme/duepuntozero/config.php:85 #: src/Object/Post.php:1170 view/theme/duepuntozero/config.php:85
#: view/theme/frio/config.php:150 view/theme/quattro/config.php:87 #: view/theme/frio/config.php:150 view/theme/quattro/config.php:87
#: view/theme/vier/config.php:135 #: view/theme/vier/config.php:135
msgid "Submit" msgid "Submit"
@ -599,25 +599,25 @@ msgstr ""
#: mod/photos.php:1135 mod/photos.php:1191 mod/photos.php:1271 #: mod/photos.php:1135 mod/photos.php:1191 mod/photos.php:1271
#: src/Module/Contact.php:618 src/Module/Item/Compose.php:188 #: src/Module/Contact.php:618 src/Module/Item/Compose.php:188
#: src/Object/Post.php:1166 #: src/Object/Post.php:1167
msgid "This is you" msgid "This is you"
msgstr "" msgstr ""
#: mod/photos.php:1137 mod/photos.php:1193 mod/photos.php:1273 #: mod/photos.php:1137 mod/photos.php:1193 mod/photos.php:1273
#: src/Module/Moderation/Reports.php:95 src/Object/Post.php:618 #: src/Module/Moderation/Reports.php:95 src/Object/Post.php:619
#: src/Object/Post.php:1168 #: src/Object/Post.php:1169
msgid "Comment" msgid "Comment"
msgstr "" msgstr ""
#: mod/photos.php:1139 mod/photos.php:1195 mod/photos.php:1275 #: mod/photos.php:1139 mod/photos.php:1195 mod/photos.php:1275
#: src/Content/Conversation.php:414 src/Module/Calendar/Event/Form.php:248 #: src/Content/Conversation.php:414 src/Module/Calendar/Event/Form.php:248
#: src/Module/Item/Compose.php:201 src/Module/Post/Edit.php:165 #: src/Module/Item/Compose.php:201 src/Module/Post/Edit.php:165
#: src/Object/Post.php:1182 #: src/Object/Post.php:1183
msgid "Preview" msgid "Preview"
msgstr "" msgstr ""
#: mod/photos.php:1140 src/Content/Conversation.php:368 #: mod/photos.php:1140 src/Content/Conversation.php:368
#: src/Module/Post/Edit.php:130 src/Object/Post.php:1170 #: src/Module/Post/Edit.php:130 src/Object/Post.php:1171
msgid "Loading..." msgid "Loading..."
msgstr "" msgstr ""
@ -1244,7 +1244,7 @@ msgid "Visible to <strong>everybody</strong>"
msgstr "" msgstr ""
#: src/Content/Conversation.php:338 src/Module/Item/Compose.php:200 #: src/Content/Conversation.php:338 src/Module/Item/Compose.php:200
#: src/Object/Post.php:1181 #: src/Object/Post.php:1182
msgid "Please enter a image/video/audio/webpage URL:" msgid "Please enter a image/video/audio/webpage URL:"
msgstr "" msgstr ""
@ -1289,52 +1289,52 @@ msgid "attach file"
msgstr "" msgstr ""
#: src/Content/Conversation.php:373 src/Module/Item/Compose.php:190 #: src/Content/Conversation.php:373 src/Module/Item/Compose.php:190
#: src/Module/Post/Edit.php:171 src/Object/Post.php:1171 #: src/Module/Post/Edit.php:171 src/Object/Post.php:1172
msgid "Bold" msgid "Bold"
msgstr "" msgstr ""
#: src/Content/Conversation.php:374 src/Module/Item/Compose.php:191 #: src/Content/Conversation.php:374 src/Module/Item/Compose.php:191
#: src/Module/Post/Edit.php:172 src/Object/Post.php:1172 #: src/Module/Post/Edit.php:172 src/Object/Post.php:1173
msgid "Italic" msgid "Italic"
msgstr "" msgstr ""
#: src/Content/Conversation.php:375 src/Module/Item/Compose.php:192 #: src/Content/Conversation.php:375 src/Module/Item/Compose.php:192
#: src/Module/Post/Edit.php:173 src/Object/Post.php:1173 #: src/Module/Post/Edit.php:173 src/Object/Post.php:1174
msgid "Underline" msgid "Underline"
msgstr "" msgstr ""
#: src/Content/Conversation.php:376 src/Module/Item/Compose.php:193 #: src/Content/Conversation.php:376 src/Module/Item/Compose.php:193
#: src/Module/Post/Edit.php:174 src/Object/Post.php:1175 #: src/Module/Post/Edit.php:174 src/Object/Post.php:1176
msgid "Quote" msgid "Quote"
msgstr "" msgstr ""
#: src/Content/Conversation.php:377 src/Module/Item/Compose.php:194 #: src/Content/Conversation.php:377 src/Module/Item/Compose.php:194
#: src/Module/Post/Edit.php:175 src/Object/Post.php:1176 #: src/Module/Post/Edit.php:175 src/Object/Post.php:1177
msgid "Add emojis" msgid "Add emojis"
msgstr "" msgstr ""
#: src/Content/Conversation.php:378 src/Module/Item/Compose.php:195 #: src/Content/Conversation.php:378 src/Module/Item/Compose.php:195
#: src/Object/Post.php:1174 #: src/Object/Post.php:1175
msgid "Content Warning" msgid "Content Warning"
msgstr "" msgstr ""
#: src/Content/Conversation.php:379 src/Module/Item/Compose.php:196 #: src/Content/Conversation.php:379 src/Module/Item/Compose.php:196
#: src/Module/Post/Edit.php:176 src/Object/Post.php:1177 #: src/Module/Post/Edit.php:176 src/Object/Post.php:1178
msgid "Code" msgid "Code"
msgstr "" msgstr ""
#: src/Content/Conversation.php:380 src/Module/Item/Compose.php:197 #: src/Content/Conversation.php:380 src/Module/Item/Compose.php:197
#: src/Object/Post.php:1178 #: src/Object/Post.php:1179
msgid "Image" msgid "Image"
msgstr "" msgstr ""
#: src/Content/Conversation.php:381 src/Module/Item/Compose.php:198 #: src/Content/Conversation.php:381 src/Module/Item/Compose.php:198
#: src/Module/Post/Edit.php:177 src/Object/Post.php:1179 #: src/Module/Post/Edit.php:177 src/Object/Post.php:1180
msgid "Link" msgid "Link"
msgstr "" msgstr ""
#: src/Content/Conversation.php:382 src/Module/Item/Compose.php:199 #: src/Content/Conversation.php:382 src/Module/Item/Compose.php:199
#: src/Module/Post/Edit.php:178 src/Object/Post.php:1180 #: src/Module/Post/Edit.php:178 src/Object/Post.php:1181
msgid "Link or Media" msgid "Link or Media"
msgstr "" msgstr ""
@ -1792,7 +1792,7 @@ msgstr ""
msgid "Display a list of folders in which posts are stored." msgid "Display a list of folders in which posts are stored."
msgstr "" msgstr ""
#: src/Content/Feature.php:137 src/Module/Conversation/Timeline.php:196 #: src/Content/Feature.php:137 src/Module/Conversation/Timeline.php:198
msgid "Own Contacts" msgid "Own Contacts"
msgstr "" msgstr ""
@ -1887,7 +1887,7 @@ msgstr ""
msgid "View Status" msgid "View Status"
msgstr "" msgstr ""
#: src/Content/Item.php:431 src/Content/Item.php:452 src/Model/Contact.php:1177 #: src/Content/Item.php:431 src/Content/Item.php:454 src/Model/Contact.php:1177
#: src/Model/Contact.php:1233 src/Model/Contact.php:1243 #: src/Model/Contact.php:1233 src/Model/Contact.php:1243
#: src/Module/Directory.php:157 src/Module/Settings/Profile/Index.php:259 #: src/Module/Directory.php:157 src/Module/Settings/Profile/Index.php:259
msgid "View Profile" msgid "View Profile"
@ -1942,13 +1942,17 @@ msgstr ""
msgid "Languages" msgid "Languages"
msgstr "" msgstr ""
#: src/Content/Item.php:449 src/Content/Widget.php:80 #: src/Content/Item.php:446 src/Object/Post.php:603
msgid "Search Text"
msgstr ""
#: src/Content/Item.php:451 src/Content/Widget.php:80
#: src/Model/Contact.php:1236 src/Model/Contact.php:1248 #: src/Model/Contact.php:1236 src/Model/Contact.php:1248
#: src/Module/Contact/Follow.php:167 view/theme/vier/theme.php:195 #: src/Module/Contact/Follow.php:167 view/theme/vier/theme.php:195
msgid "Connect/Follow" msgid "Connect/Follow"
msgstr "" msgstr ""
#: src/Content/Item.php:883 #: src/Content/Item.php:885
msgid "Unable to fetch user." msgid "Unable to fetch user."
msgstr "" msgstr ""
@ -2789,120 +2793,128 @@ msgstr ""
msgid "Error: GNU Multiple Precision PHP module required but not installed." msgid "Error: GNU Multiple Precision PHP module required but not installed."
msgstr "" msgstr ""
#: src/Core/Installer.php:516 #: src/Core/Installer.php:499
msgid "" msgid "IDN Functions PHP module"
"The web installer needs to be able to create a file called \"local.config."
"php\" in the \"config\" folder of your web server and it is unable to do so."
msgstr "" msgstr ""
#: src/Core/Installer.php:517 #: src/Core/Installer.php:500
msgid "Error: IDN Functions PHP module required but not installed."
msgstr ""
#: src/Core/Installer.php:523
msgid ""
"The web installer needs to be able to create a file called \"local.config.php"
"\" in the \"config\" folder of your web server and it is unable to do so."
msgstr ""
#: src/Core/Installer.php:524
msgid "" msgid ""
"This is most often a permission setting, as the web server may not be able " "This is most often a permission setting, as the web server may not be able "
"to write files in your folder - even if you can." "to write files in your folder - even if you can."
msgstr "" msgstr ""
#: src/Core/Installer.php:518 #: src/Core/Installer.php:525
msgid "" msgid ""
"At the end of this procedure, we will give you a text to save in a file " "At the end of this procedure, we will give you a text to save in a file "
"named local.config.php in your Friendica \"config\" folder." "named local.config.php in your Friendica \"config\" folder."
msgstr "" msgstr ""
#: src/Core/Installer.php:519 #: src/Core/Installer.php:526
msgid "" msgid ""
"You can alternatively skip this procedure and perform a manual installation. " "You can alternatively skip this procedure and perform a manual installation. "
"Please see the file \"doc/INSTALL.md\" for instructions." "Please see the file \"doc/INSTALL.md\" for instructions."
msgstr "" msgstr ""
#: src/Core/Installer.php:522 #: src/Core/Installer.php:529
msgid "config/local.config.php is writable" msgid "config/local.config.php is writable"
msgstr "" msgstr ""
#: src/Core/Installer.php:542 #: src/Core/Installer.php:549
msgid "" msgid ""
"Friendica uses the Smarty3 template engine to render its web views. Smarty3 " "Friendica uses the Smarty3 template engine to render its web views. Smarty3 "
"compiles templates to PHP to speed up rendering." "compiles templates to PHP to speed up rendering."
msgstr "" msgstr ""
#: src/Core/Installer.php:543 #: src/Core/Installer.php:550
msgid "" msgid ""
"In order to store these compiled templates, the web server needs to have " "In order to store these compiled templates, the web server needs to have "
"write access to the directory view/smarty3/ under the Friendica top level " "write access to the directory view/smarty3/ under the Friendica top level "
"folder." "folder."
msgstr "" msgstr ""
#: src/Core/Installer.php:544 #: src/Core/Installer.php:551
msgid "" msgid ""
"Please ensure that the user that your web server runs as (e.g. www-data) has " "Please ensure that the user that your web server runs as (e.g. www-data) has "
"write access to this folder." "write access to this folder."
msgstr "" msgstr ""
#: src/Core/Installer.php:545 #: src/Core/Installer.php:552
msgid "" msgid ""
"Note: as a security measure, you should give the web server write access to " "Note: as a security measure, you should give the web server write access to "
"view/smarty3/ only--not the template files (.tpl) that it contains." "view/smarty3/ only--not the template files (.tpl) that it contains."
msgstr "" msgstr ""
#: src/Core/Installer.php:548 #: src/Core/Installer.php:555
msgid "view/smarty3 is writable" msgid "view/smarty3 is writable"
msgstr "" msgstr ""
#: src/Core/Installer.php:576 #: src/Core/Installer.php:583
msgid "" msgid ""
"Url rewrite in .htaccess seems not working. Make sure you copied .htaccess-" "Url rewrite in .htaccess seems not working. Make sure you copied .htaccess-"
"dist to .htaccess." "dist to .htaccess."
msgstr "" msgstr ""
#: src/Core/Installer.php:577 #: src/Core/Installer.php:584
msgid "" msgid ""
"In some circumstances (like running inside containers), you can skip this " "In some circumstances (like running inside containers), you can skip this "
"error." "error."
msgstr "" msgstr ""
#: src/Core/Installer.php:579 #: src/Core/Installer.php:586
msgid "Error message from Curl when fetching" msgid "Error message from Curl when fetching"
msgstr "" msgstr ""
#: src/Core/Installer.php:585 #: src/Core/Installer.php:592
msgid "Url rewrite is working" msgid "Url rewrite is working"
msgstr "" msgstr ""
#: src/Core/Installer.php:614 #: src/Core/Installer.php:621
msgid "" msgid ""
"The detection of TLS to secure the communication between the browser and the " "The detection of TLS to secure the communication between the browser and the "
"new Friendica server failed." "new Friendica server failed."
msgstr "" msgstr ""
#: src/Core/Installer.php:615 #: src/Core/Installer.php:622
msgid "" msgid ""
"It is highly encouraged to use Friendica only over a secure connection as " "It is highly encouraged to use Friendica only over a secure connection as "
"sensitive information like passwords will be transmitted." "sensitive information like passwords will be transmitted."
msgstr "" msgstr ""
#: src/Core/Installer.php:616 #: src/Core/Installer.php:623
msgid "Please ensure that the connection to the server is secure." msgid "Please ensure that the connection to the server is secure."
msgstr "" msgstr ""
#: src/Core/Installer.php:617 #: src/Core/Installer.php:624
msgid "No TLS detected" msgid "No TLS detected"
msgstr "" msgstr ""
#: src/Core/Installer.php:619 #: src/Core/Installer.php:626
msgid "TLS detected" msgid "TLS detected"
msgstr "" msgstr ""
#: src/Core/Installer.php:636 #: src/Core/Installer.php:643
msgid "ImageMagick PHP extension is not installed" msgid "ImageMagick PHP extension is not installed"
msgstr "" msgstr ""
#: src/Core/Installer.php:638 #: src/Core/Installer.php:645
msgid "ImageMagick PHP extension is installed" msgid "ImageMagick PHP extension is installed"
msgstr "" msgstr ""
#: src/Core/Installer.php:659 #: src/Core/Installer.php:666
msgid "Database already in use." msgid "Database already in use."
msgstr "" msgstr ""
#: src/Core/Installer.php:664 #: src/Core/Installer.php:671
msgid "Could not connect to database." msgid "Could not connect to database."
msgstr "" msgstr ""
@ -3952,8 +3964,8 @@ msgid ""
"profile\n" "profile\n"
"\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n" "\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n"
"\n" "\n"
"\t\t\tWe recommend adding a profile photo, adding some profile " "\t\t\tWe recommend adding a profile photo, adding some profile \"keywords"
"\"keywords\" (very useful\n" "\" (very useful\n"
"\t\t\tin making new friends) - and perhaps what country you live in; if you " "\t\t\tin making new friends) - and perhaps what country you live in; if you "
"do not wish\n" "do not wish\n"
"\t\t\tto be more specific than that.\n" "\t\t\tto be more specific than that.\n"
@ -5727,9 +5739,9 @@ msgstr ""
#: src/Module/Admin/Summary.php:98 #: src/Module/Admin/Summary.php:98
msgid "" msgid ""
"The last update failed. Please run \"php bin/console.php dbstructure " "The last update failed. Please run \"php bin/console.php dbstructure update"
"update\" from the command line and have a look at the errors that might " "\" from the command line and have a look at the errors that might appear. "
"appear. (Some of the errors are possibly inside the logfile.)" "(Some of the errors are possibly inside the logfile.)"
msgstr "" msgstr ""
#: src/Module/Admin/Summary.php:102 #: src/Module/Admin/Summary.php:102
@ -5880,8 +5892,8 @@ msgstr ""
#, php-format #, php-format
msgid "" msgid ""
"Show some informations regarding the needed information to operate the node " "Show some informations regarding the needed information to operate the node "
"according e.g. to <a href=\"%s\" target=\"_blank\" rel=\"noopener " "according e.g. to <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer"
"noreferrer\">EU-GDPR</a>." "\">EU-GDPR</a>."
msgstr "" msgstr ""
#: src/Module/Admin/Tos.php:81 #: src/Module/Admin/Tos.php:81
@ -6652,7 +6664,8 @@ msgstr[1] ""
#: src/Module/Debug/ItemBody.php:38 src/Module/Diaspora/Receive.php:57 #: src/Module/Debug/ItemBody.php:38 src/Module/Diaspora/Receive.php:57
#: src/Module/Item/Display.php:96 src/Module/Item/Feed.php:59 #: src/Module/Item/Display.php:96 src/Module/Item/Feed.php:59
#: src/Module/Item/Follow.php:41 src/Module/Item/Ignore.php:41 #: src/Module/Item/Follow.php:41 src/Module/Item/Ignore.php:41
#: src/Module/Item/Pin.php:41 src/Module/Item/Pin.php:56 #: src/Module/Item/Language.php:53 src/Module/Item/Pin.php:41
#: src/Module/Item/Pin.php:56 src/Module/Item/Searchtext.php:53
#: src/Module/Item/Star.php:42 src/Module/Update/Display.php:37 #: src/Module/Item/Star.php:42 src/Module/Update/Display.php:37
msgid "Access denied." msgid "Access denied."
msgstr "" msgstr ""
@ -7143,11 +7156,11 @@ msgstr ""
msgid "Network feed not available." msgid "Network feed not available."
msgstr "" msgstr ""
#: src/Module/Conversation/Timeline.php:200 #: src/Module/Conversation/Timeline.php:202
msgid "Include" msgid "Include"
msgstr "" msgstr ""
#: src/Module/Conversation/Timeline.php:201 #: src/Module/Conversation/Timeline.php:203
msgid "Hide" msgid "Hide"
msgstr "" msgstr ""
@ -9186,8 +9199,8 @@ msgstr ""
#: src/Module/Profile/Profile.php:158 #: src/Module/Profile/Profile.php:158
#, php-format #, php-format
msgid "" msgid ""
"You're currently viewing your profile as <b>%s</b> <a href=\"%s\" " "You're currently viewing your profile as <b>%s</b> <a href=\"%s\" class="
"class=\"btn btn-sm pull-right\">Cancel</a>" "\"btn btn-sm pull-right\">Cancel</a>"
msgstr "" msgstr ""
#: src/Module/Profile/Profile.php:167 #: src/Module/Profile/Profile.php:167
@ -9707,8 +9720,8 @@ msgstr ""
#: src/Module/Security/TwoFactor/Verify.php:100 #: src/Module/Security/TwoFactor/Verify.php:100
#, php-format #, php-format
msgid "" msgid ""
"If you do not have access to your authentication code you can use a <a " "If you do not have access to your authentication code you can use a <a href="
"href=\"%s\">two-factor recovery code</a>." "\"%s\">two-factor recovery code</a>."
msgstr "" msgstr ""
#: src/Module/Security/TwoFactor/Verify.php:101 #: src/Module/Security/TwoFactor/Verify.php:101
@ -11416,8 +11429,8 @@ msgstr ""
#: src/Module/Settings/TwoFactor/Verify.php:152 #: src/Module/Settings/TwoFactor/Verify.php:152
#, php-format #, php-format
msgid "" msgid ""
"<p>Or you can open the following URL in your mobile device:</p><p><a " "<p>Or you can open the following URL in your mobile device:</p><p><a href="
"href=\"%s\">%s</a></p>" "\"%s\">%s</a></p>"
msgstr "" msgstr ""
#: src/Module/Settings/TwoFactor/Verify.php:159 #: src/Module/Settings/TwoFactor/Verify.php:159
@ -11526,9 +11539,9 @@ msgstr ""
msgid "" msgid ""
"At any point in time a logged in user can export their account data from the " "At any point in time a logged in user can export their account data from the "
"<a href=\"%1$s/settings/userexport\">account settings</a>. If the user wants " "<a href=\"%1$s/settings/userexport\">account settings</a>. If the user wants "
"to delete their account they can do so at <a href=\"%1$s/settings/" "to delete their account they can do so at <a href=\"%1$s/settings/removeme\">"
"removeme\">%1$s/settings/removeme</a>. The deletion of the account will be " "%1$s/settings/removeme</a>. The deletion of the account will be permanent. "
"permanent. Deletion of the data will also be requested from the nodes of the " "Deletion of the data will also be requested from the nodes of the "
"communication partners." "communication partners."
msgstr "" msgstr ""
@ -12466,101 +12479,101 @@ msgstr ""
msgid "via Wall-To-Wall:" msgid "via Wall-To-Wall:"
msgstr "" msgstr ""
#: src/Object/Post.php:619 #: src/Object/Post.php:620
#, php-format #, php-format
msgid "Reply to %s" msgid "Reply to %s"
msgstr "" msgstr ""
#: src/Object/Post.php:622 #: src/Object/Post.php:623
msgid "More" msgid "More"
msgstr "" msgstr ""
#: src/Object/Post.php:641 #: src/Object/Post.php:642
msgid "Notifier task is pending" msgid "Notifier task is pending"
msgstr "" msgstr ""
#: src/Object/Post.php:642 #: src/Object/Post.php:643
msgid "Delivery to remote servers is pending" msgid "Delivery to remote servers is pending"
msgstr "" msgstr ""
#: src/Object/Post.php:643 #: src/Object/Post.php:644
msgid "Delivery to remote servers is underway" msgid "Delivery to remote servers is underway"
msgstr "" msgstr ""
#: src/Object/Post.php:644 #: src/Object/Post.php:645
msgid "Delivery to remote servers is mostly done" msgid "Delivery to remote servers is mostly done"
msgstr "" msgstr ""
#: src/Object/Post.php:645 #: src/Object/Post.php:646
msgid "Delivery to remote servers is done" msgid "Delivery to remote servers is done"
msgstr "" msgstr ""
#: src/Object/Post.php:667 #: src/Object/Post.php:668
#, php-format #, php-format
msgid "%d comment" msgid "%d comment"
msgid_plural "%d comments" msgid_plural "%d comments"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Object/Post.php:668 #: src/Object/Post.php:669
msgid "Show more" msgid "Show more"
msgstr "" msgstr ""
#: src/Object/Post.php:669 #: src/Object/Post.php:670
msgid "Show fewer" msgid "Show fewer"
msgstr "" msgstr ""
#: src/Object/Post.php:706 #: src/Object/Post.php:707
#, php-format #, php-format
msgid "Reshared by: %s" msgid "Reshared by: %s"
msgstr "" msgstr ""
#: src/Object/Post.php:711 #: src/Object/Post.php:712
#, php-format #, php-format
msgid "Viewed by: %s" msgid "Viewed by: %s"
msgstr "" msgstr ""
#: src/Object/Post.php:716 #: src/Object/Post.php:717
#, php-format #, php-format
msgid "Read by: %s" msgid "Read by: %s"
msgstr "" msgstr ""
#: src/Object/Post.php:721 #: src/Object/Post.php:722
#, php-format #, php-format
msgid "Liked by: %s" msgid "Liked by: %s"
msgstr "" msgstr ""
#: src/Object/Post.php:726 #: src/Object/Post.php:727
#, php-format #, php-format
msgid "Disliked by: %s" msgid "Disliked by: %s"
msgstr "" msgstr ""
#: src/Object/Post.php:731 #: src/Object/Post.php:732
#, php-format #, php-format
msgid "Attended by: %s" msgid "Attended by: %s"
msgstr "" msgstr ""
#: src/Object/Post.php:736 #: src/Object/Post.php:737
#, php-format #, php-format
msgid "Maybe attended by: %s" msgid "Maybe attended by: %s"
msgstr "" msgstr ""
#: src/Object/Post.php:741 #: src/Object/Post.php:742
#, php-format #, php-format
msgid "Not attended by: %s" msgid "Not attended by: %s"
msgstr "" msgstr ""
#: src/Object/Post.php:746 #: src/Object/Post.php:747
#, php-format #, php-format
msgid "Commented by: %s" msgid "Commented by: %s"
msgstr "" msgstr ""
#: src/Object/Post.php:751 #: src/Object/Post.php:752
#, php-format #, php-format
msgid "Reacted with %s by: %s" msgid "Reacted with %s by: %s"
msgstr "" msgstr ""
#: src/Object/Post.php:774 #: src/Object/Post.php:775
#, php-format #, php-format
msgid "Quote shared by: %s" msgid "Quote shared by: %s"
msgstr "" msgstr ""

Wyświetl plik

@ -221,10 +221,14 @@
{{if $item.language}} {{if $item.language}}
<li role="menuitem"> <li role="menuitem">
<a id="language-{{$item.id}}" href="javascript:alert('{{$item.language.1}}');" class="btn-link filer-item language-icon" title="{{$item.language.0}}"><i class="fa fa-language" aria-hidden="true"></i>&nbsp;{{$item.language.0}}</a> <a id="language-{{$item.id}}" href="javascript:displayLanguage({{$item.uriid}});" class="btn-link filer-item language-icon" title="{{$item.language}}"><i class="fa fa-language" aria-hidden="true"></i>&nbsp;{{$item.language}}</a>
</li> </li>
{{/if}} {{/if}}
<li role="menuitem">
<a id="searchtext-{{$item.id}}" href="javascript:displaySearchText({{$item.uriid}});" class="btn-link filer-item search-icon" title="{{$item.searchtext}}"><i class="fa fa-search" aria-hidden="true"></i>&nbsp;{{$item.searchtext}}</a>
</li>
{{if $item.browsershare}} {{if $item.browsershare}}
<li role="menuitem" class="button-browser-share"> <li role="menuitem" class="button-browser-share">
<a id="browser-share-{{$item.id}}" href="javascript:navigator.share({url: '{{$item.plink.orig}}'});" class="btn-link button-browser-share" title="{{$item.browsershare.1}}"><i class="fa fa-share-alt" aria-hidden="true"></i>&nbsp;{{$item.browsershare.0}}</a> <a id="browser-share-{{$item.id}}" href="javascript:navigator.share({url: '{{$item.plink.orig}}'});" class="btn-link button-browser-share" title="{{$item.browsershare.1}}"><i class="fa fa-share-alt" aria-hidden="true"></i>&nbsp;{{$item.browsershare.0}}</a>

Wyświetl plik

@ -433,10 +433,14 @@ as the value of $top_child_total (this is done at the end of this file)
{{if $item.language}} {{if $item.language}}
<li role="menuitem"> <li role="menuitem">
<a id="language-{{$item.id}}" href="javascript:alert('{{$item.language.1}}');" class="btn-link filer-item language-icon" title="{{$item.language.0}}"><i class="fa fa-language" aria-hidden="true"></i>&ensp;{{$item.language.0}}</a> <a id="language-{{$item.id}}" href="javascript:displayLanguage({{$item.uriid}});" class="btn-link filer-item language-icon" title="{{$item.language}}"><i class="fa fa-language" aria-hidden="true"></i>&ensp;{{$item.language}}</a>
</li> </li>
{{/if}} {{/if}}
<li role="menuitem">
<a id="searchtext-{{$item.id}}" href="javascript:displaySearchText({{$item.uriid}});" class="btn-link filer-item search-icon" title="{{$item.searchtext}}"><i class="fa fa-search" aria-hidden="true"></i>&ensp;{{$item.searchtext}}</a>
</li>
{{if $item.browsershare}} {{if $item.browsershare}}
<li role="menuitem" class="button-browser-share"> <li role="menuitem" class="button-browser-share">
<a id="browser-share-{{$item.id}}" href="javascript:navigator.share({url: '{{$item.plink.orig}}'})" class="btn-link button-browser-share" title="{{$item.browsershare.1}}"><i class="fa fa-share-alt" aria-hidden="true"></i>&ensp;{{$item.browsershare.0}}</a> <a id="browser-share-{{$item.id}}" href="javascript:navigator.share({url: '{{$item.plink.orig}}'})" class="btn-link button-browser-share" title="{{$item.browsershare.1}}"><i class="fa fa-share-alt" aria-hidden="true"></i>&ensp;{{$item.browsershare.0}}</a>
@ -616,10 +620,13 @@ as the value of $top_child_total (this is done at the end of this file)
{{if $item.language}} {{if $item.language}}
<li role="menuitem"> <li role="menuitem">
<a id="language-{{$item.id}}" href="javascript:alert('{{$item.language.1}}');" class="btn-link filer-item language-icon" title="{{$item.language.0}}"><i class="fa fa-language" aria-hidden="true"></i>&ensp;{{$item.language.0}}</a> <a id="language-{{$item.id}}" href="javascript:displayLanguage({{$item.uriid}});" class="btn-link filer-item language-icon" title="{{$item.language}}"><i class="fa fa-language" aria-hidden="true"></i>&ensp;{{$item.language}}</a>
</li> </li>
{{/if}} {{/if}}
<li role="menuitem">
<a id="searchtext-{{$item.id}}" href="javascript:displaySearchText({{$item.uriid}});" class="btn-link filer-item search-icon" title="{{$item.searchtext}}"><i class="fa fa-search" aria-hidden="true"></i>&ensp;{{$item.searchtext}}</a>
</li>
{{if ($item.edpost || $item.tagger || $item.filer || $item.pin || $item.star || $item.follow_thread) && ($item.ignore || ($item.drop && $item.drop.dropping))}} {{if ($item.edpost || $item.tagger || $item.filer || $item.pin || $item.star || $item.follow_thread) && ($item.ignore || ($item.drop && $item.drop.dropping))}}
<li role="separator" class="divider"></li> <li role="separator" class="divider"></li>