Merge pull request #13800 from annando/channel-languages
User defined channels can now have got individual language definitions
This commit is contained in:
commit
16b12e1545
|
@ -1,6 +1,6 @@
|
||||||
-- ------------------------------------------
|
-- ------------------------------------------
|
||||||
-- Friendica 2024.03-dev (Yellow Archangel)
|
-- Friendica 2024.03-dev (Yellow Archangel)
|
||||||
-- DB_UPDATE_VERSION 1544
|
-- DB_UPDATE_VERSION 1545
|
||||||
-- ------------------------------------------
|
-- ------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
@ -504,6 +504,7 @@ CREATE TABLE IF NOT EXISTS `channel` (
|
||||||
`exclude-tags` varchar(1023) COMMENT 'Comma separated list of tags that aren\'t allowed in the channel',
|
`exclude-tags` varchar(1023) COMMENT 'Comma separated list of tags that aren\'t allowed in the channel',
|
||||||
`full-text-search` varchar(1023) COMMENT 'Full text search pattern, see https://mariadb.com/kb/en/full-text-index-overview/#in-boolean-mode',
|
`full-text-search` varchar(1023) COMMENT 'Full text search pattern, see https://mariadb.com/kb/en/full-text-index-overview/#in-boolean-mode',
|
||||||
`media-type` smallint unsigned COMMENT 'Filtered media types',
|
`media-type` smallint unsigned COMMENT 'Filtered media types',
|
||||||
|
`languages` mediumtext COMMENT 'Desired languages',
|
||||||
PRIMARY KEY(`id`),
|
PRIMARY KEY(`id`),
|
||||||
INDEX `uid` (`uid`),
|
INDEX `uid` (`uid`),
|
||||||
FOREIGN KEY (`uid`) REFERENCES `user` (`uid`) ON UPDATE RESTRICT ON DELETE CASCADE
|
FOREIGN KEY (`uid`) REFERENCES `user` (`uid`) ON UPDATE RESTRICT ON DELETE CASCADE
|
||||||
|
|
|
@ -18,6 +18,7 @@ Fields
|
||||||
| exclude-tags | Comma separated list of tags that aren't allowed in the channel | varchar(1023) | YES | | NULL | |
|
| exclude-tags | Comma separated list of tags that aren't allowed in the channel | varchar(1023) | YES | | NULL | |
|
||||||
| full-text-search | Full text search pattern, see https://mariadb.com/kb/en/full-text-index-overview/#in-boolean-mode | varchar(1023) | YES | | NULL | |
|
| full-text-search | Full text search pattern, see https://mariadb.com/kb/en/full-text-index-overview/#in-boolean-mode | varchar(1023) | YES | | NULL | |
|
||||||
| media-type | Filtered media types | smallint unsigned | YES | | NULL | |
|
| media-type | Filtered media types | smallint unsigned | YES | | NULL | |
|
||||||
|
| languages | Desired languages | mediumtext | YES | | NULL | |
|
||||||
|
|
||||||
Indexes
|
Indexes
|
||||||
------------
|
------------
|
||||||
|
|
|
@ -32,6 +32,7 @@ namespace Friendica\Content\Conversation\Entity;
|
||||||
* @property-read string $excludeTags The tags to exclude in the channel
|
* @property-read string $excludeTags The tags to exclude in the channel
|
||||||
* @property-read string $fullTextSearch full text search pattern
|
* @property-read string $fullTextSearch full text search pattern
|
||||||
* @property-read int $mediaType Media types that are included in the channel
|
* @property-read int $mediaType Media types that are included in the channel
|
||||||
|
* @property-read array $languages Channel languages
|
||||||
* @property-read int $circle Circle or timeline this channel is based on
|
* @property-read int $circle Circle or timeline this channel is based on
|
||||||
*/
|
*/
|
||||||
class Timeline extends \Friendica\BaseEntity
|
class Timeline extends \Friendica\BaseEntity
|
||||||
|
@ -58,8 +59,10 @@ class Timeline extends \Friendica\BaseEntity
|
||||||
protected $fullTextSearch;
|
protected $fullTextSearch;
|
||||||
/** @var int */
|
/** @var int */
|
||||||
protected $mediaType;
|
protected $mediaType;
|
||||||
|
/** @var array */
|
||||||
|
protected $languages;
|
||||||
|
|
||||||
public function __construct(string $code = null, string $label = null, string $description = null, string $accessKey = null, string $path = null, int $uid = null, string $includeTags = null, string $excludeTags = null, string $fullTextSearch = null, int $mediaType = null, int $circle = null)
|
public function __construct(string $code = null, string $label = null, string $description = null, string $accessKey = null, string $path = null, int $uid = null, string $includeTags = null, string $excludeTags = null, string $fullTextSearch = null, int $mediaType = null, int $circle = null, array $languages = null)
|
||||||
{
|
{
|
||||||
$this->code = $code;
|
$this->code = $code;
|
||||||
$this->label = $label;
|
$this->label = $label;
|
||||||
|
@ -72,5 +75,6 @@ class Timeline extends \Friendica\BaseEntity
|
||||||
$this->fullTextSearch = $fullTextSearch;
|
$this->fullTextSearch = $fullTextSearch;
|
||||||
$this->mediaType = $mediaType;
|
$this->mediaType = $mediaType;
|
||||||
$this->circle = $circle;
|
$this->circle = $circle;
|
||||||
|
$this->languages = $languages;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,6 @@
|
||||||
namespace Friendica\Content\Conversation\Factory;
|
namespace Friendica\Content\Conversation\Factory;
|
||||||
|
|
||||||
use Friendica\Capabilities\ICanCreateFromTableRow;
|
use Friendica\Capabilities\ICanCreateFromTableRow;
|
||||||
use Friendica\Content\Conversation\Collection\Timelines;
|
|
||||||
use Friendica\Content\Conversation\Entity;
|
use Friendica\Content\Conversation\Entity;
|
||||||
|
|
||||||
final class UserDefinedChannel extends Timeline implements ICanCreateFromTableRow
|
final class UserDefinedChannel extends Timeline implements ICanCreateFromTableRow
|
||||||
|
@ -34,6 +33,10 @@ final class UserDefinedChannel extends Timeline implements ICanCreateFromTableRo
|
||||||
|
|
||||||
public function createFromTableRow(array $row): Entity\UserDefinedChannel
|
public function createFromTableRow(array $row): Entity\UserDefinedChannel
|
||||||
{
|
{
|
||||||
|
if (is_string($row['languages'])) {
|
||||||
|
$row['languages'] = unserialize($row['languages']);
|
||||||
|
}
|
||||||
|
|
||||||
return new Entity\UserDefinedChannel(
|
return new Entity\UserDefinedChannel(
|
||||||
$row['id'] ?? null,
|
$row['id'] ?? null,
|
||||||
$row['label'],
|
$row['label'],
|
||||||
|
@ -46,6 +49,7 @@ final class UserDefinedChannel extends Timeline implements ICanCreateFromTableRo
|
||||||
$row['full-text-search'] ?? null,
|
$row['full-text-search'] ?? null,
|
||||||
$row['media-type'] ?? null,
|
$row['media-type'] ?? null,
|
||||||
$row['circle'] ?? null,
|
$row['circle'] ?? null,
|
||||||
|
$row['languages'] ?? null,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -124,6 +124,7 @@ class UserDefinedChannel extends \Friendica\BaseRepository
|
||||||
'exclude-tags' => $Channel->excludeTags,
|
'exclude-tags' => $Channel->excludeTags,
|
||||||
'full-text-search' => $Channel->fullTextSearch,
|
'full-text-search' => $Channel->fullTextSearch,
|
||||||
'media-type' => $Channel->mediaType,
|
'media-type' => $Channel->mediaType,
|
||||||
|
'languages' => serialize($Channel->languages),
|
||||||
];
|
];
|
||||||
|
|
||||||
if ($Channel->code) {
|
if ($Channel->code) {
|
||||||
|
|
|
@ -312,10 +312,10 @@ class Timeline extends BaseModule
|
||||||
} elseif ($this->selectedTab == ChannelEntity::LANGUAGE) {
|
} elseif ($this->selectedTab == ChannelEntity::LANGUAGE) {
|
||||||
$condition = ["JSON_EXTRACT(JSON_KEYS(language), '$[0]') = ?", User::getLanguageCode($uid)];
|
$condition = ["JSON_EXTRACT(JSON_KEYS(language), '$[0]') = ?", User::getLanguageCode($uid)];
|
||||||
} elseif (is_numeric($this->selectedTab)) {
|
} elseif (is_numeric($this->selectedTab)) {
|
||||||
$condition = $this->getUserChannelConditions($this->selectedTab, $this->session->getLocalUserId());
|
$condition = $this->getUserChannelConditions($this->selectedTab, $uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->selectedTab != ChannelEntity::LANGUAGE) {
|
if (($this->selectedTab != ChannelEntity::LANGUAGE) && !is_numeric($this->selectedTab)) {
|
||||||
$condition = $this->addLanguageCondition($uid, $condition);
|
$condition = $this->addLanguageCondition($uid, $condition);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -422,13 +422,15 @@ class Timeline extends BaseModule
|
||||||
}
|
}
|
||||||
|
|
||||||
// For "addLanguageCondition" to work, the condition must not be empty
|
// For "addLanguageCondition" to work, the condition must not be empty
|
||||||
return $condition ?: ["true"];
|
$condition = $this->addLanguageCondition($uid, $condition ?: ["true"], $channel->languages);
|
||||||
|
|
||||||
|
return $condition;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function addLanguageCondition(int $uid, array $condition): array
|
private function addLanguageCondition(int $uid, array $condition, $languages = null): array
|
||||||
{
|
{
|
||||||
$conditions = [];
|
$conditions = [];
|
||||||
$languages = User::getWantedLanguages($uid);
|
$languages = $languages ?: User::getWantedLanguages($uid);
|
||||||
foreach ($languages as $language) {
|
foreach ($languages as $language) {
|
||||||
$conditions[] = "JSON_EXTRACT(JSON_KEYS(language), '$[0]') = ?";
|
$conditions[] = "JSON_EXTRACT(JSON_KEYS(language), '$[0]') = ?";
|
||||||
$condition[] = $language;
|
$condition[] = $language;
|
||||||
|
|
|
@ -28,6 +28,7 @@ use Friendica\Core\L10n;
|
||||||
use Friendica\Core\Renderer;
|
use Friendica\Core\Renderer;
|
||||||
use Friendica\Core\Session\Capability\IHandleUserSessions;
|
use Friendica\Core\Session\Capability\IHandleUserSessions;
|
||||||
use Friendica\Model\Circle;
|
use Friendica\Model\Circle;
|
||||||
|
use Friendica\Model\User;
|
||||||
use Friendica\Module\BaseSettings;
|
use Friendica\Module\BaseSettings;
|
||||||
use Friendica\Module\Response;
|
use Friendica\Module\Response;
|
||||||
use Friendica\Network\HTTPException;
|
use Friendica\Network\HTTPException;
|
||||||
|
@ -62,7 +63,13 @@ class Channels extends BaseSettings
|
||||||
|
|
||||||
self::checkFormSecurityTokenRedirectOnError('/settings/channels', 'settings_channels');
|
self::checkFormSecurityTokenRedirectOnError('/settings/channels', 'settings_channels');
|
||||||
|
|
||||||
|
$channel_languages = User::getWantedLanguages($uid);
|
||||||
|
|
||||||
if (!empty($request['add_channel'])) {
|
if (!empty($request['add_channel'])) {
|
||||||
|
if (!array_diff((array)$request['new_languages'], $channel_languages)) {
|
||||||
|
$request['new_languages'] = null;
|
||||||
|
}
|
||||||
|
|
||||||
$channel = $this->userDefinedChannel->createFromTableRow([
|
$channel = $this->userDefinedChannel->createFromTableRow([
|
||||||
'label' => $request['new_label'],
|
'label' => $request['new_label'],
|
||||||
'description' => $request['new_description'],
|
'description' => $request['new_description'],
|
||||||
|
@ -73,6 +80,7 @@ class Channels extends BaseSettings
|
||||||
'exclude-tags' => $this->cleanTags($request['new_exclude_tags']),
|
'exclude-tags' => $this->cleanTags($request['new_exclude_tags']),
|
||||||
'full-text-search' => $request['new_text_search'],
|
'full-text-search' => $request['new_text_search'],
|
||||||
'media-type' => ($request['new_image'] ? 1 : 0) | ($request['new_video'] ? 2 : 0) | ($request['new_audio'] ? 4 : 0),
|
'media-type' => ($request['new_image'] ? 1 : 0) | ($request['new_video'] ? 2 : 0) | ($request['new_audio'] ? 4 : 0),
|
||||||
|
'languages' => $request['new_languages'],
|
||||||
]);
|
]);
|
||||||
$saved = $this->channel->save($channel);
|
$saved = $this->channel->save($channel);
|
||||||
$this->logger->debug('New channel added', ['saved' => $saved]);
|
$this->logger->debug('New channel added', ['saved' => $saved]);
|
||||||
|
@ -86,6 +94,10 @@ class Channels extends BaseSettings
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!array_diff((array)$request['languages'][$id], $channel_languages)) {
|
||||||
|
$request['languages'][$id] = null;
|
||||||
|
}
|
||||||
|
|
||||||
$channel = $this->userDefinedChannel->createFromTableRow([
|
$channel = $this->userDefinedChannel->createFromTableRow([
|
||||||
'id' => $id,
|
'id' => $id,
|
||||||
'label' => $request['label'][$id],
|
'label' => $request['label'][$id],
|
||||||
|
@ -97,6 +109,7 @@ class Channels extends BaseSettings
|
||||||
'exclude-tags' => $this->cleanTags($request['exclude_tags'][$id]),
|
'exclude-tags' => $this->cleanTags($request['exclude_tags'][$id]),
|
||||||
'full-text-search' => $request['text_search'][$id],
|
'full-text-search' => $request['text_search'][$id],
|
||||||
'media-type' => ($request['image'][$id] ? 1 : 0) | ($request['video'][$id] ? 2 : 0) | ($request['audio'][$id] ? 4 : 0),
|
'media-type' => ($request['image'][$id] ? 1 : 0) | ($request['video'][$id] ? 2 : 0) | ($request['audio'][$id] ? 4 : 0),
|
||||||
|
'languages' => $request['languages'][$id],
|
||||||
]);
|
]);
|
||||||
$saved = $this->channel->save($channel);
|
$saved = $this->channel->save($channel);
|
||||||
$this->logger->debug('Save channel', ['id' => $id, 'saved' => $saved]);
|
$this->logger->debug('Save channel', ['id' => $id, 'saved' => $saved]);
|
||||||
|
@ -123,6 +136,9 @@ class Channels extends BaseSettings
|
||||||
$circles[$circle['id']] = $circle['name'];
|
$circles[$circle['id']] = $circle['name'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$languages = $this->l10n->getLanguageCodes(true);
|
||||||
|
$channel_languages = User::getWantedLanguages($uid);
|
||||||
|
|
||||||
$channels = [];
|
$channels = [];
|
||||||
foreach ($this->channel->selectByUid($uid) as $channel) {
|
foreach ($this->channel->selectByUid($uid) as $channel) {
|
||||||
if (!empty($request['id'])) {
|
if (!empty($request['id'])) {
|
||||||
|
@ -146,6 +162,7 @@ class Channels extends BaseSettings
|
||||||
'image' => ["image[$channel->code]", $this->t("Images"), $channel->mediaType & 1],
|
'image' => ["image[$channel->code]", $this->t("Images"), $channel->mediaType & 1],
|
||||||
'video' => ["video[$channel->code]", $this->t("Videos"), $channel->mediaType & 2],
|
'video' => ["video[$channel->code]", $this->t("Videos"), $channel->mediaType & 2],
|
||||||
'audio' => ["audio[$channel->code]", $this->t("Audio"), $channel->mediaType & 4],
|
'audio' => ["audio[$channel->code]", $this->t("Audio"), $channel->mediaType & 4],
|
||||||
|
'languages' => ["languages[$channel->code][]", $this->t('Languages'), $channel->languages ?? $channel_languages, $this->t('Select all languages that you want to see in this channel.'), $languages, 'multiple'],
|
||||||
'delete' => ["delete[$channel->code]", $this->t("Delete channel") . ' (' . $channel->label . ')', false, $this->t("Check to delete this entry from the channel list")]
|
'delete' => ["delete[$channel->code]", $this->t("Delete channel") . ' (' . $channel->label . ')', false, $this->t("Check to delete this entry from the channel list")]
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -163,6 +180,7 @@ class Channels extends BaseSettings
|
||||||
'image' => ['new_image', $this->t("Images"), false, $this->t("Check to display images in the channel.")],
|
'image' => ['new_image', $this->t("Images"), false, $this->t("Check to display images in the channel.")],
|
||||||
'video' => ["new_video", $this->t("Videos"), false, $this->t("Check to display videos in the channel.")],
|
'video' => ["new_video", $this->t("Videos"), false, $this->t("Check to display videos in the channel.")],
|
||||||
'audio' => ["new_audio", $this->t("Audio"), false, $this->t("Check to display audio in the channel.")],
|
'audio' => ["new_audio", $this->t("Audio"), false, $this->t("Check to display audio in the channel.")],
|
||||||
|
'languages' => ["new_languages[]", $this->t('Languages'), $channel_languages, $this->t('Select all languages that you want to see in this channel.'), $languages, 'multiple'],
|
||||||
'$l10n' => [
|
'$l10n' => [
|
||||||
'title' => $this->t('Channels'),
|
'title' => $this->t('Channels'),
|
||||||
'intro' => $this->t('This page can be used to define your own channels.'),
|
'intro' => $this->t('This page can be used to define your own channels.'),
|
||||||
|
|
|
@ -56,7 +56,7 @@ use Friendica\Database\DBA;
|
||||||
|
|
||||||
// This file is required several times during the test in DbaDefinition which justifies this condition
|
// This file is required several times during the test in DbaDefinition which justifies this condition
|
||||||
if (!defined('DB_UPDATE_VERSION')) {
|
if (!defined('DB_UPDATE_VERSION')) {
|
||||||
define('DB_UPDATE_VERSION', 1544);
|
define('DB_UPDATE_VERSION', 1545);
|
||||||
}
|
}
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
@ -562,6 +562,7 @@ return [
|
||||||
"exclude-tags" => ["type" => "varchar(1023)", "comment" => "Comma separated list of tags that aren't allowed in the channel"],
|
"exclude-tags" => ["type" => "varchar(1023)", "comment" => "Comma separated list of tags that aren't allowed in the channel"],
|
||||||
"full-text-search" => ["type" => "varchar(1023)", "comment" => "Full text search pattern, see https://mariadb.com/kb/en/full-text-index-overview/#in-boolean-mode"],
|
"full-text-search" => ["type" => "varchar(1023)", "comment" => "Full text search pattern, see https://mariadb.com/kb/en/full-text-index-overview/#in-boolean-mode"],
|
||||||
"media-type" => ["type" => "smallint unsigned", "comment" => "Filtered media types"],
|
"media-type" => ["type" => "smallint unsigned", "comment" => "Filtered media types"],
|
||||||
|
"languages" => ["type" => "mediumtext", "comment" => "Desired languages"],
|
||||||
],
|
],
|
||||||
"indexes" => [
|
"indexes" => [
|
||||||
"PRIMARY" => ["id"],
|
"PRIMARY" => ["id"],
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 2024.03-dev\n"
|
"Project-Id-Version: 2024.03-dev\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-01-03 07:31+0000\n"
|
"POT-Creation-Date: 2024-01-03 19:19+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"
|
||||||
|
@ -66,8 +66,8 @@ msgstr ""
|
||||||
#: src/Module/Register.php:77 src/Module/Register.php:90
|
#: src/Module/Register.php:77 src/Module/Register.php:90
|
||||||
#: src/Module/Register.php:206 src/Module/Register.php:245
|
#: src/Module/Register.php:206 src/Module/Register.php:245
|
||||||
#: src/Module/Search/Directory.php:37 src/Module/Settings/Account.php:50
|
#: src/Module/Search/Directory.php:37 src/Module/Settings/Account.php:50
|
||||||
#: src/Module/Settings/Account.php:384 src/Module/Settings/Channels.php:56
|
#: src/Module/Settings/Account.php:384 src/Module/Settings/Channels.php:57
|
||||||
#: src/Module/Settings/Channels.php:112 src/Module/Settings/Delegation.php:90
|
#: src/Module/Settings/Channels.php:125 src/Module/Settings/Delegation.php:90
|
||||||
#: src/Module/Settings/Display.php:90 src/Module/Settings/Display.php:197
|
#: src/Module/Settings/Display.php:90 src/Module/Settings/Display.php:197
|
||||||
#: src/Module/Settings/Profile/Photo/Crop.php:165
|
#: src/Module/Settings/Profile/Photo/Crop.php:165
|
||||||
#: src/Module/Settings/Profile/Photo/Index.php:112
|
#: src/Module/Settings/Profile/Photo/Index.php:112
|
||||||
|
@ -382,7 +382,7 @@ msgstr ""
|
||||||
|
|
||||||
#: mod/notes.php:57 src/Content/Text/HTML.php:859
|
#: mod/notes.php:57 src/Content/Text/HTML.php:859
|
||||||
#: src/Module/Admin/Storage.php:142 src/Module/Filer/SaveTag.php:74
|
#: src/Module/Admin/Storage.php:142 src/Module/Filer/SaveTag.php:74
|
||||||
#: src/Module/Post/Edit.php:129 src/Module/Settings/Channels.php:171
|
#: src/Module/Post/Edit.php:129 src/Module/Settings/Channels.php:189
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -794,12 +794,12 @@ msgstr ""
|
||||||
#: src/BaseModule.php:439 src/Content/Conversation/Factory/Channel.php:45
|
#: src/BaseModule.php:439 src/Content/Conversation/Factory/Channel.php:45
|
||||||
#: src/Content/Widget.php:239 src/Core/ACL.php:195 src/Module/Contact.php:414
|
#: src/Content/Widget.php:239 src/Core/ACL.php:195 src/Module/Contact.php:414
|
||||||
#: src/Module/PermissionTooltip.php:141 src/Module/PermissionTooltip.php:163
|
#: src/Module/PermissionTooltip.php:141 src/Module/PermissionTooltip.php:163
|
||||||
#: src/Module/Settings/Channels.php:119
|
#: src/Module/Settings/Channels.php:132
|
||||||
msgid "Followers"
|
msgid "Followers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/BaseModule.php:444 src/Content/Widget.php:240 src/Module/Contact.php:417
|
#: src/BaseModule.php:444 src/Content/Widget.php:240 src/Module/Contact.php:417
|
||||||
#: src/Module/Settings/Channels.php:118
|
#: src/Module/Settings/Channels.php:131
|
||||||
msgid "Following"
|
msgid "Following"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -1547,7 +1547,7 @@ msgid "Posts from accounts that are followed by accounts that you follow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Conversation/Factory/Channel.php:47
|
#: src/Content/Conversation/Factory/Channel.php:47
|
||||||
#: src/Module/Settings/Channels.php:146 src/Module/Settings/Channels.php:163
|
#: src/Module/Settings/Channels.php:162 src/Module/Settings/Channels.php:180
|
||||||
msgid "Images"
|
msgid "Images"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -1556,7 +1556,7 @@ msgid "Posts with images"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Conversation/Factory/Channel.php:48
|
#: src/Content/Conversation/Factory/Channel.php:48
|
||||||
#: src/Module/Settings/Channels.php:148 src/Module/Settings/Channels.php:165
|
#: src/Module/Settings/Channels.php:164 src/Module/Settings/Channels.php:182
|
||||||
msgid "Audio"
|
msgid "Audio"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -1565,7 +1565,7 @@ msgid "Posts with audio"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Conversation/Factory/Channel.php:49
|
#: src/Content/Conversation/Factory/Channel.php:49
|
||||||
#: src/Module/Settings/Channels.php:147 src/Module/Settings/Channels.php:164
|
#: src/Module/Settings/Channels.php:163 src/Module/Settings/Channels.php:181
|
||||||
msgid "Videos"
|
msgid "Videos"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -1582,7 +1582,7 @@ msgid "Posts from local users on this server"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Conversation/Factory/Community.php:47
|
#: src/Content/Conversation/Factory/Community.php:47
|
||||||
#: src/Module/Settings/Channels.php:116
|
#: src/Module/Settings/Channels.php:129
|
||||||
msgid "Global Community"
|
msgid "Global Community"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -1842,7 +1842,8 @@ msgstr ""
|
||||||
msgid "Ignore %s server"
|
msgid "Ignore %s server"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Item.php:443 src/Object/Post.php:509
|
#: src/Content/Item.php:443 src/Module/Settings/Channels.php:165
|
||||||
|
#: src/Module/Settings/Channels.php:183 src/Object/Post.php:509
|
||||||
msgid "Languages"
|
msgid "Languages"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -2045,7 +2046,7 @@ msgstr ""
|
||||||
msgid "Terms of Service of this Friendica instance"
|
msgid "Terms of Service of this Friendica instance"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Nav.php:306 src/Module/Settings/Channels.php:117
|
#: src/Content/Nav.php:306 src/Module/Settings/Channels.php:130
|
||||||
#: view/theme/frio/theme.php:239
|
#: view/theme/frio/theme.php:239
|
||||||
msgid "Network"
|
msgid "Network"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -2368,7 +2369,7 @@ msgid "All"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Widget.php:591 src/Module/Admin/Site.php:466
|
#: src/Content/Widget.php:591 src/Module/Admin/Site.php:466
|
||||||
#: src/Module/BaseSettings.php:125 src/Module/Settings/Channels.php:167
|
#: src/Module/BaseSettings.php:125 src/Module/Settings/Channels.php:185
|
||||||
#: src/Module/Settings/Display.php:315
|
#: src/Module/Settings/Display.php:315
|
||||||
msgid "Channels"
|
msgid "Channels"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -6115,7 +6116,7 @@ msgstr ""
|
||||||
#: src/Module/Moderation/Blocklist/Server/Index.php:116
|
#: src/Module/Moderation/Blocklist/Server/Index.php:116
|
||||||
#: src/Module/Moderation/Item/Delete.php:67 src/Module/Register.php:148
|
#: src/Module/Moderation/Item/Delete.php:67 src/Module/Register.php:148
|
||||||
#: src/Module/Security/TwoFactor/Verify.php:101
|
#: src/Module/Security/TwoFactor/Verify.php:101
|
||||||
#: src/Module/Settings/Channels.php:139 src/Module/Settings/Channels.php:156
|
#: src/Module/Settings/Channels.php:155 src/Module/Settings/Channels.php:173
|
||||||
#: src/Module/Settings/TwoFactor/Index.php:161
|
#: src/Module/Settings/TwoFactor/Index.php:161
|
||||||
#: src/Module/Settings/TwoFactor/Verify.php:158
|
#: src/Module/Settings/TwoFactor/Verify.php:158
|
||||||
msgid "Required"
|
msgid "Required"
|
||||||
|
@ -7368,7 +7369,7 @@ msgstr ""
|
||||||
#: src/Module/Friendica.php:102
|
#: src/Module/Friendica.php:102
|
||||||
#: src/Module/Moderation/Blocklist/Server/Index.php:87
|
#: src/Module/Moderation/Blocklist/Server/Index.php:87
|
||||||
#: src/Module/Moderation/Blocklist/Server/Index.php:111
|
#: src/Module/Moderation/Blocklist/Server/Index.php:111
|
||||||
#: src/Module/Settings/Channels.php:174
|
#: src/Module/Settings/Channels.php:192
|
||||||
msgid "Reason for the block"
|
msgid "Reason for the block"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -8116,7 +8117,7 @@ msgstr ""
|
||||||
|
|
||||||
#: src/Module/Moderation/Blocklist/Server/Index.php:86
|
#: src/Module/Moderation/Blocklist/Server/Index.php:86
|
||||||
#: src/Module/Moderation/Blocklist/Server/Index.php:110
|
#: src/Module/Moderation/Blocklist/Server/Index.php:110
|
||||||
#: src/Module/Settings/Channels.php:173
|
#: src/Module/Settings/Channels.php:191
|
||||||
msgid "Blocked server domain pattern"
|
msgid "Blocked server domain pattern"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -10104,76 +10105,80 @@ msgstr ""
|
||||||
msgid "No Addon settings configured"
|
msgid "No Addon settings configured"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Channels.php:139 src/Module/Settings/Channels.php:156
|
#: src/Module/Settings/Channels.php:155 src/Module/Settings/Channels.php:173
|
||||||
#: src/Module/Settings/Display.php:338
|
#: src/Module/Settings/Display.php:338
|
||||||
msgid "Label"
|
msgid "Label"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Channels.php:140 src/Module/Settings/Channels.php:157
|
#: src/Module/Settings/Channels.php:156 src/Module/Settings/Channels.php:174
|
||||||
#: src/Module/Settings/Display.php:339
|
#: src/Module/Settings/Display.php:339
|
||||||
#: src/Module/Settings/TwoFactor/AppSpecific.php:137
|
#: src/Module/Settings/TwoFactor/AppSpecific.php:137
|
||||||
msgid "Description"
|
msgid "Description"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Channels.php:141 src/Module/Settings/Channels.php:158
|
#: src/Module/Settings/Channels.php:157 src/Module/Settings/Channels.php:175
|
||||||
msgid "Access Key"
|
msgid "Access Key"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Channels.php:142 src/Module/Settings/Channels.php:159
|
#: src/Module/Settings/Channels.php:158 src/Module/Settings/Channels.php:176
|
||||||
msgid "Circle/Channel"
|
msgid "Circle/Channel"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Channels.php:143 src/Module/Settings/Channels.php:160
|
#: src/Module/Settings/Channels.php:159 src/Module/Settings/Channels.php:177
|
||||||
msgid "Include Tags"
|
msgid "Include Tags"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Channels.php:144 src/Module/Settings/Channels.php:161
|
#: src/Module/Settings/Channels.php:160 src/Module/Settings/Channels.php:178
|
||||||
msgid "Exclude Tags"
|
msgid "Exclude Tags"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Channels.php:145 src/Module/Settings/Channels.php:162
|
#: src/Module/Settings/Channels.php:161 src/Module/Settings/Channels.php:179
|
||||||
msgid "Full Text Search"
|
msgid "Full Text Search"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Channels.php:149
|
#: src/Module/Settings/Channels.php:165 src/Module/Settings/Channels.php:183
|
||||||
|
msgid "Select all languages that you want to see in this channel."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Module/Settings/Channels.php:166
|
||||||
msgid "Delete channel"
|
msgid "Delete channel"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Channels.php:149
|
#: src/Module/Settings/Channels.php:166
|
||||||
msgid "Check to delete this entry from the channel list"
|
msgid "Check to delete this entry from the channel list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Channels.php:156
|
#: src/Module/Settings/Channels.php:173
|
||||||
msgid "Short name for the channel. It is displayed on the channels widget."
|
msgid "Short name for the channel. It is displayed on the channels widget."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Channels.php:157
|
#: src/Module/Settings/Channels.php:174
|
||||||
msgid "This should describe the content of the channel in a few word."
|
msgid "This should describe the content of the channel in a few word."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Channels.php:158
|
#: src/Module/Settings/Channels.php:175
|
||||||
msgid ""
|
msgid ""
|
||||||
"When you want to access this channel via an access key, you can define it "
|
"When you want to access this channel via an access key, you can define it "
|
||||||
"here. Pay attention to not use an already used one."
|
"here. Pay attention to not use an already used one."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Channels.php:159
|
#: src/Module/Settings/Channels.php:176
|
||||||
msgid "Select a circle or channel, that your channel should be based on."
|
msgid "Select a circle or channel, that your channel should be based on."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Channels.php:160
|
#: src/Module/Settings/Channels.php:177
|
||||||
msgid ""
|
msgid ""
|
||||||
"Comma separated list of tags. A post will be used when it contains any of "
|
"Comma separated list of tags. A post will be used when it contains any of "
|
||||||
"the listed tags."
|
"the listed tags."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Channels.php:161
|
#: src/Module/Settings/Channels.php:178
|
||||||
msgid ""
|
msgid ""
|
||||||
"Comma separated list of tags. If a post contain any of these tags, then it "
|
"Comma separated list of tags. If a post contain any of these tags, then it "
|
||||||
"will not be part of nthis channel."
|
"will not be part of nthis channel."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Channels.php:162
|
#: src/Module/Settings/Channels.php:179
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Search terms for the body, supports the \"boolean mode\" operators from "
|
"Search terms for the body, supports the \"boolean mode\" operators from "
|
||||||
|
@ -10181,39 +10186,39 @@ msgid ""
|
||||||
"keywords: %s"
|
"keywords: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Channels.php:163
|
#: src/Module/Settings/Channels.php:180
|
||||||
msgid "Check to display images in the channel."
|
msgid "Check to display images in the channel."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Channels.php:164
|
#: src/Module/Settings/Channels.php:181
|
||||||
msgid "Check to display videos in the channel."
|
msgid "Check to display videos in the channel."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Channels.php:165
|
#: src/Module/Settings/Channels.php:182
|
||||||
msgid "Check to display audio in the channel."
|
msgid "Check to display audio in the channel."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Channels.php:168
|
#: src/Module/Settings/Channels.php:186
|
||||||
msgid "This page can be used to define your own channels."
|
msgid "This page can be used to define your own channels."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Channels.php:169
|
#: src/Module/Settings/Channels.php:187
|
||||||
msgid "Add new entry to the channel list"
|
msgid "Add new entry to the channel list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Channels.php:170
|
#: src/Module/Settings/Channels.php:188
|
||||||
msgid "Add"
|
msgid "Add"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Channels.php:172
|
#: src/Module/Settings/Channels.php:190
|
||||||
msgid "Current Entries in the channel list"
|
msgid "Current Entries in the channel list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Channels.php:175
|
#: src/Module/Settings/Channels.php:193
|
||||||
msgid "Delete entry from the channel list"
|
msgid "Delete entry from the channel list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Channels.php:176
|
#: src/Module/Settings/Channels.php:194
|
||||||
msgid "Delete entry from the channel list?"
|
msgid "Delete entry from the channel list?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
{{include file="field_checkbox.tpl" field=$image}}
|
{{include file="field_checkbox.tpl" field=$image}}
|
||||||
{{include file="field_checkbox.tpl" field=$video}}
|
{{include file="field_checkbox.tpl" field=$video}}
|
||||||
{{include file="field_checkbox.tpl" field=$audio}}
|
{{include file="field_checkbox.tpl" field=$audio}}
|
||||||
|
{{include file="field_select.tpl" field=$languages}}
|
||||||
<div class="submit">
|
<div class="submit">
|
||||||
<button type="submit" class="btn btn-primary" name="add_channel" value="{{$l10n.addsubmit}}">{{$l10n.addsubmit}}</button>
|
<button type="submit" class="btn btn-primary" name="add_channel" value="{{$l10n.addsubmit}}">{{$l10n.addsubmit}}</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -34,6 +35,7 @@
|
||||||
{{include file="field_checkbox.tpl" field=$e.image}}
|
{{include file="field_checkbox.tpl" field=$e.image}}
|
||||||
{{include file="field_checkbox.tpl" field=$e.video}}
|
{{include file="field_checkbox.tpl" field=$e.video}}
|
||||||
{{include file="field_checkbox.tpl" field=$e.audio}}
|
{{include file="field_checkbox.tpl" field=$e.audio}}
|
||||||
|
{{include file="field_select.tpl" field=$e.languages}}
|
||||||
{{include file="field_checkbox.tpl" field=$e.delete}}
|
{{include file="field_checkbox.tpl" field=$e.delete}}
|
||||||
<hr>
|
<hr>
|
||||||
{{/foreach}}
|
{{/foreach}}
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
{{include file="field_checkbox.tpl" field=$image}}
|
{{include file="field_checkbox.tpl" field=$image}}
|
||||||
{{include file="field_checkbox.tpl" field=$video}}
|
{{include file="field_checkbox.tpl" field=$video}}
|
||||||
{{include file="field_checkbox.tpl" field=$audio}}
|
{{include file="field_checkbox.tpl" field=$audio}}
|
||||||
|
{{include file="field_select.tpl" field=$languages}}
|
||||||
<div class="submit">
|
<div class="submit">
|
||||||
<button type="submit" class="btn btn-primary" name="add_channel" value="{{$l10n.addsubmit}}">{{$l10n.addsubmit}}</button>
|
<button type="submit" class="btn btn-primary" name="add_channel" value="{{$l10n.addsubmit}}">{{$l10n.addsubmit}}</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -51,6 +52,7 @@
|
||||||
{{include file="field_checkbox.tpl" field=$e.image}}
|
{{include file="field_checkbox.tpl" field=$e.image}}
|
||||||
{{include file="field_checkbox.tpl" field=$e.video}}
|
{{include file="field_checkbox.tpl" field=$e.video}}
|
||||||
{{include file="field_checkbox.tpl" field=$e.audio}}
|
{{include file="field_checkbox.tpl" field=$e.audio}}
|
||||||
|
{{include file="field_select.tpl" field=$e.languages}}
|
||||||
{{include file="field_checkbox.tpl" field=$e.delete}}
|
{{include file="field_checkbox.tpl" field=$e.delete}}
|
||||||
<div class="submit">
|
<div class="submit">
|
||||||
<button type="submit" class="btn btn-primary" name="edit_channel" value="{{$l10n.savechanges}}">{{$l10n.savechanges}}</button>
|
<button type="submit" class="btn btn-primary" name="edit_channel" value="{{$l10n.savechanges}}">{{$l10n.savechanges}}</button>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user