mirror of
https://github.com/friendica/friendica
synced 2024-11-17 22:23:41 +00:00
Merge remote-tracking branch 'upstream/develop' into channel-relay
This commit is contained in:
commit
23b247d1c3
14 changed files with 1776 additions and 204 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -83,8 +83,9 @@ venv/
|
|||
#Ignore temporary installed phpunit
|
||||
/bin/phpunit
|
||||
|
||||
#Ignore cache file
|
||||
#Ignore cache files
|
||||
.php_cs.cache
|
||||
.php-cs-fixer.cache
|
||||
|
||||
#ignore avatar picture cache path
|
||||
/avatar
|
||||
|
|
93
.php-cs-fixer.dist.php
Normal file
93
.php-cs-fixer.dist.php
Normal file
|
@ -0,0 +1,93 @@
|
|||
<?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/>.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
$finder = PhpCsFixer\Finder::create()
|
||||
->in(__DIR__)
|
||||
->notPath('addon')
|
||||
->notPath('bin/dev')
|
||||
->notPath('config')
|
||||
->notPath('doc')
|
||||
->notPath('images')
|
||||
->notPath('mods')
|
||||
->notPath('spec')
|
||||
->notPath('vendor')
|
||||
->notPath('view/asset')
|
||||
->notPath('lang')
|
||||
->notPath('view/smarty3/compiled');
|
||||
|
||||
$config = new PhpCsFixer\Config();
|
||||
return $config
|
||||
->setRules([
|
||||
'@PSR1' => true,
|
||||
'@PSR2' => true,
|
||||
'@PSR12' => true,
|
||||
'align_multiline_comment' => true,
|
||||
'array_indentation' => true,
|
||||
'array_syntax' => [
|
||||
'syntax' => 'short',
|
||||
],
|
||||
'binary_operator_spaces' => [
|
||||
'default' => 'single_space',
|
||||
'operators' => [
|
||||
'=>' => 'align_single_space_minimal',
|
||||
'=' => 'align_single_space_minimal',
|
||||
'??' => 'align_single_space_minimal',
|
||||
],
|
||||
],
|
||||
'blank_line_after_namespace' => true,
|
||||
'braces' => [
|
||||
'position_after_anonymous_constructs' => 'same',
|
||||
'position_after_control_structures' => 'same',
|
||||
'position_after_functions_and_oop_constructs' => 'next',
|
||||
],
|
||||
'elseif' => true,
|
||||
'encoding' => true,
|
||||
'full_opening_tag' => true,
|
||||
'function_declaration' => [
|
||||
'closure_function_spacing' => 'one',
|
||||
],
|
||||
'indentation_type' => true,
|
||||
'line_ending' => true,
|
||||
'list_syntax' => [
|
||||
'syntax' => 'long',
|
||||
],
|
||||
'lowercase_keywords' => true,
|
||||
'method_argument_space' => [],
|
||||
'no_closing_tag' => true,
|
||||
'no_spaces_after_function_name' => true,
|
||||
'no_spaces_inside_parenthesis' => true,
|
||||
'no_trailing_whitespace' => true,
|
||||
'no_trailing_whitespace_in_comment' => true,
|
||||
'no_unused_imports' => true,
|
||||
'single_blank_line_at_eof' => true,
|
||||
'single_class_element_per_statement' => true,
|
||||
'single_import_per_statement' => true,
|
||||
'single_line_after_imports' => true,
|
||||
'switch_case_space' => true,
|
||||
'ternary_operator_spaces' => false,
|
||||
'visibility_required' => [
|
||||
'elements' => ['property', 'method']
|
||||
],
|
||||
'new_with_braces' => true,
|
||||
])
|
||||
->setFinder($finder)
|
||||
->setIndent("\t");
|
|
@ -6,6 +6,7 @@ require_once __DIR__ . '/bin/dev/php-cs-fixer/vendor/autoload.php';
|
|||
|
||||
$finder = PhpCsFixer\Finder::create()
|
||||
->in(__DIR__)
|
||||
->notPath('addon')
|
||||
->notPath('bin/dev')
|
||||
->notPath('config')
|
||||
->notPath('doc')
|
||||
|
|
|
@ -135,7 +135,8 @@
|
|||
"mockery/mockery": "^1.3",
|
||||
"mikey179/vfsstream": "^1.6",
|
||||
"phpunit/phpunit": "^9",
|
||||
"dms/phpunit-arraysubset-asserts": "^0.3.1"
|
||||
"dms/phpunit-arraysubset-asserts": "^0.3.1",
|
||||
"friendsofphp/php-cs-fixer": "^3.46"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "phpunit",
|
||||
|
@ -149,6 +150,8 @@
|
|||
"cs:fix": [
|
||||
"@cs:install",
|
||||
"bin/dev/php-cs-fixer/vendor/bin/php-cs-fixer fix"
|
||||
]
|
||||
],
|
||||
"cs:check-v3": "vendor/bin/php-cs-fixer check --diff",
|
||||
"cs:fix-v3": "vendor/bin/php-cs-fixer fix"
|
||||
}
|
||||
}
|
||||
|
|
1589
composer.lock
generated
1589
composer.lock
generated
File diff suppressed because it is too large
Load diff
|
@ -215,14 +215,14 @@ function photos_post(App $a)
|
|||
// get the list of photos we are about to delete
|
||||
if ($visitor) {
|
||||
$r = DBA::toArray(DBA::p(
|
||||
"SELECT distinct(`resource-id`) as `rid` FROM `photo` WHERE `contact-id` = ? AND `uid` = ? AND `album` = ?",
|
||||
"SELECT distinct(`resource-id`) AS `rid` FROM `photo` WHERE `contact-id` = ? AND `uid` = ? AND `album` = ?",
|
||||
$visitor,
|
||||
$page_owner_uid,
|
||||
$album
|
||||
));
|
||||
} else {
|
||||
$r = DBA::toArray(DBA::p(
|
||||
"SELECT distinct(`resource-id`) as `rid` FROM `photo` WHERE `uid` = ? AND `album` = ?",
|
||||
"SELECT distinct(`resource-id`) AS `rid` FROM `photo` WHERE `uid` = ? AND `album` = ?",
|
||||
DI::userSession()->getLocalUserId(),
|
||||
$album
|
||||
));
|
||||
|
@ -762,7 +762,7 @@ function photos_content(App $a)
|
|||
|
||||
$total = 0;
|
||||
$r = DBA::toArray(DBA::p(
|
||||
"SELECT `resource-id`, max(`scale`) AS `scale` FROM `photo` WHERE `uid` = ? AND `album` = ?
|
||||
"SELECT `resource-id`, MAX(`scale`) AS `scale` FROM `photo` WHERE `uid` = ? AND `album` = ?
|
||||
AND `scale` <= 4 $sql_extra GROUP BY `resource-id`",
|
||||
$owner_uid,
|
||||
$album
|
||||
|
@ -782,9 +782,9 @@ function photos_content(App $a)
|
|||
}
|
||||
|
||||
$r = DBA::toArray(DBA::p(
|
||||
"SELECT `resource-id`, ANY_VALUE(`id`) AS `id`, ANY_VALUE(`filename`) AS `filename`,
|
||||
ANY_VALUE(`type`) AS `type`, max(`scale`) AS `scale`, ANY_VALUE(`desc`) as `desc`,
|
||||
ANY_VALUE(`created`) as `created`
|
||||
"SELECT `resource-id`, MIN(`id`) AS `id`, MIN(`filename`) AS `filename`,
|
||||
MIN(`type`) AS `type`, MAX(`scale`) AS `scale`, MIN(`desc`) AS `desc`,
|
||||
MIN(`created`) AS `created`
|
||||
FROM `photo` WHERE `uid` = ? AND `album` = ?
|
||||
AND `scale` <= 4 $sql_extra GROUP BY `resource-id` ORDER BY `created` $order LIMIT ? , ?",
|
||||
intval($owner_uid),
|
||||
|
@ -1167,11 +1167,11 @@ function photos_content(App $a)
|
|||
}
|
||||
|
||||
if (!empty($conv_responses['like'][$link_item['uri']])) {
|
||||
$like = DI::conversation()->formatActivity($conv_responses['like'][$link_item['uri']]['links'], 'like', $link_item['id']);
|
||||
$like = DI::conversation()->formatActivity($conv_responses['like'][$link_item['uri']]['links'], 'like', $link_item['id'], '', []);
|
||||
}
|
||||
|
||||
if (!empty($conv_responses['dislike'][$link_item['uri']])) {
|
||||
$dislike = DI::conversation()->formatActivity($conv_responses['dislike'][$link_item['uri']]['links'], 'dislike', $link_item['id']);
|
||||
$dislike = DI::conversation()->formatActivity($conv_responses['dislike'][$link_item['uri']]['links'], 'dislike', $link_item['id'], '', []);
|
||||
}
|
||||
|
||||
if (($can_post || Security::canWriteToUserWall($owner_uid))) {
|
||||
|
|
|
@ -132,22 +132,6 @@ class DBA
|
|||
return DI::dba()->connected();
|
||||
}
|
||||
|
||||
/**
|
||||
* Replaces ANY_VALUE() function by MIN() function,
|
||||
* if the database server does not support ANY_VALUE().
|
||||
*
|
||||
* Considerations for Standard SQL, or MySQL with ONLY_FULL_GROUP_BY (default since 5.7.5).
|
||||
* ANY_VALUE() is available from MySQL 5.7.5 https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html
|
||||
* A standard fall-back is to use MIN().
|
||||
*
|
||||
* @param string $sql An SQL string without the values
|
||||
* @return string The input SQL string modified if necessary.
|
||||
*/
|
||||
public static function anyValueFallback(string $sql): string
|
||||
{
|
||||
return DI::dba()->anyValueFallback($sql);
|
||||
}
|
||||
|
||||
/**
|
||||
* beautifies the query - useful for "SHOW PROCESSLIST"
|
||||
*
|
||||
|
|
|
@ -439,28 +439,6 @@ class Database
|
|||
return $connected;
|
||||
}
|
||||
|
||||
/**
|
||||
* Replaces ANY_VALUE() function by MIN() function,
|
||||
* if the database server does not support ANY_VALUE().
|
||||
*
|
||||
* Considerations for Standard SQL, or MySQL with ONLY_FULL_GROUP_BY (default since 5.7.5).
|
||||
* ANY_VALUE() is available from MySQL 5.7.5 https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html
|
||||
* A standard fall-back is to use MIN().
|
||||
*
|
||||
* @param string $sql An SQL string without the values
|
||||
*
|
||||
* @return string The input SQL string modified if necessary.
|
||||
*/
|
||||
public function anyValueFallback(string $sql): string
|
||||
{
|
||||
$server_info = $this->serverInfo();
|
||||
if (version_compare($server_info, '5.7.5', '<') ||
|
||||
(stripos($server_info, 'MariaDB') !== false)) {
|
||||
$sql = str_ireplace('ANY_VALUE(', 'MIN(', $sql);
|
||||
}
|
||||
return $sql;
|
||||
}
|
||||
|
||||
/**
|
||||
* Replaces the ? placeholders with the parameters in the $args array
|
||||
*
|
||||
|
@ -532,7 +510,6 @@ class Database
|
|||
}
|
||||
|
||||
$sql = DBA::cleanQuery($sql);
|
||||
$sql = $this->anyValueFallback($sql);
|
||||
|
||||
$orig_sql = $sql;
|
||||
|
||||
|
@ -1440,7 +1417,7 @@ class Database
|
|||
private function escapeFields(array $fields, array $options): array
|
||||
{
|
||||
// In the case of a "GROUP BY" we have to add all the ORDER fields to the fieldlist.
|
||||
// This needs to done to apply the "ANY_VALUE(...)" treatment from below to them.
|
||||
// This needs to done to apply the "MIN(...)" treatment from below to them.
|
||||
// Otherwise MySQL would report errors.
|
||||
if (!empty($options['group_by']) && !empty($options['order'])) {
|
||||
foreach ($options['order'] as $key => $field) {
|
||||
|
@ -1461,7 +1438,7 @@ class Database
|
|||
$value = DBA::quoteIdentifier($field);
|
||||
|
||||
if (!empty($options['group_by']) && !in_array($field, $options['group_by'])) {
|
||||
$value = 'ANY_VALUE(' . $value . ') AS ' . $value;
|
||||
$value = 'MIN(' . $value . ') AS ' . $value;
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -127,8 +127,6 @@ class Mail
|
|||
*/
|
||||
public static function send(int $sender_uid, int $recipient = 0, string $body = '', string $subject = '', string $replyto = ''): int
|
||||
{
|
||||
$a = DI::app();
|
||||
|
||||
if (!$recipient) {
|
||||
return -1;
|
||||
}
|
||||
|
@ -246,77 +244,4 @@ class Mail
|
|||
return -3;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $recipient recipient, default empty
|
||||
* @param string $body message body, default empty
|
||||
* @param string $subject message subject, default empty
|
||||
* @param string $replyto reply to, default empty
|
||||
* @return int
|
||||
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
||||
* @throws \ImagickException
|
||||
*/
|
||||
public static function sendWall(array $recipient = [], string $body = '', string $subject = '', string $replyto = ''): int
|
||||
{
|
||||
if (!$recipient) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!strlen($subject)) {
|
||||
$subject = DI::l10n()->t('[no subject]');
|
||||
}
|
||||
|
||||
$guid = System::createUUID();
|
||||
$uri = Item::newURI($guid);
|
||||
|
||||
$me = Contact::getByURL($replyto);
|
||||
if (!$me['name']) {
|
||||
return -2;
|
||||
}
|
||||
|
||||
$conv_guid = System::createUUID();
|
||||
|
||||
$recip_handle = $recipient['nickname'] . '@' . substr(DI::baseUrl(), strpos(DI::baseUrl(), '://') + 3);
|
||||
|
||||
$sender_handle = $me['addr'];
|
||||
|
||||
$handles = $recip_handle . ';' . $sender_handle;
|
||||
|
||||
$convid = null;
|
||||
$fields = ['uid' => $recipient['uid'], 'guid' => $conv_guid, 'creator' => $sender_handle,
|
||||
'created' => DateTimeFormat::utcNow(), 'updated' => DateTimeFormat::utcNow(),
|
||||
'subject' => $subject, 'recips' => $handles];
|
||||
if (DBA::insert('conv', $fields)) {
|
||||
$convid = DBA::lastInsertId();
|
||||
}
|
||||
|
||||
if (!$convid) {
|
||||
Logger::warning('conversation not found.');
|
||||
return -4;
|
||||
}
|
||||
|
||||
self::insert(
|
||||
[
|
||||
'uid' => $recipient['uid'],
|
||||
'guid' => $guid,
|
||||
'convid' => $convid,
|
||||
'from-name' => $me['name'],
|
||||
'from-photo' => $me['photo'],
|
||||
'from-url' => $me['url'],
|
||||
'contact-id' => 0,
|
||||
'title' => $subject,
|
||||
'body' => $body,
|
||||
'seen' => 0,
|
||||
'reply' => 0,
|
||||
'replied' => 0,
|
||||
'uri' => $uri,
|
||||
'parent-uri' => $me['url'],
|
||||
'created' => DateTimeFormat::utcNow(),
|
||||
'unknown' => 1
|
||||
],
|
||||
false
|
||||
);
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -229,8 +229,8 @@ class Photo
|
|||
|
||||
return DBA::toArray(
|
||||
DBA::p(
|
||||
"SELECT `resource-id`, ANY_VALUE(`id`) AS `id`, ANY_VALUE(`filename`) AS `filename`, ANY_VALUE(`type`) AS `type`,
|
||||
min(`scale`) AS `hiq`, max(`scale`) AS `loq`, ANY_VALUE(`desc`) AS `desc`, ANY_VALUE(`created`) AS `created`
|
||||
"SELECT `resource-id`, MIN(`id`) AS `id`, MIN(`filename`) AS `filename`, MIN(`type`) AS `type`,
|
||||
min(`scale`) AS `hiq`, max(`scale`) AS `loq`, MIN(`desc`) AS `desc`, MIN(`created`) AS `created`
|
||||
FROM `photo` WHERE `uid` = ? AND NOT `photo-type` IN (?, ?) $sqlExtra
|
||||
GROUP BY `resource-id` $sqlExtra2",
|
||||
$values
|
||||
|
@ -751,7 +751,7 @@ class Photo
|
|||
if (!DI::config()->get('system', 'no_count', false)) {
|
||||
/// @todo This query needs to be renewed. It is really slow
|
||||
// At this time we just store the data in the cache
|
||||
$albums = DBA::toArray(DBA::p("SELECT COUNT(DISTINCT `resource-id`) AS `total`, `album`, ANY_VALUE(`created`) AS `created`
|
||||
$albums = DBA::toArray(DBA::p("SELECT COUNT(DISTINCT `resource-id`) AS `total`, `album`, MIN(`created`) AS `created`
|
||||
FROM `photo`
|
||||
WHERE `uid` = ? AND `photo-type` IN (?, ?, ?) $sql_extra
|
||||
GROUP BY `album` ORDER BY `created` DESC",
|
||||
|
@ -762,9 +762,10 @@ class Photo
|
|||
));
|
||||
} else {
|
||||
// This query doesn't do the count and is much faster
|
||||
$albums = DBA::toArray(DBA::p("SELECT DISTINCT(`album`), '' AS `total`
|
||||
$albums = DBA::toArray(DBA::p("SELECT '' AS `total`, `album`, MIN(`created`) AS `created`
|
||||
FROM `photo` USE INDEX (`uid_album_scale_created`)
|
||||
WHERE `uid` = ? AND `photo-type` IN (?, ?, ?) $sql_extra",
|
||||
WHERE `uid` = ? AND `photo-type` IN (?, ?, ?) $sql_extra
|
||||
GROUP BY `album` ORDER BY `created` DESC",
|
||||
$uid,
|
||||
self::DEFAULT,
|
||||
$banner_type,
|
||||
|
|
|
@ -874,7 +874,7 @@ class User
|
|||
try {
|
||||
$passwordExposedChecker = new PasswordExposed\PasswordExposedChecker(null, $cache);
|
||||
|
||||
return $passwordExposedChecker->passwordExposed($password) === PasswordExposed\PasswordStatus::EXPOSED;
|
||||
return $passwordExposedChecker->passwordExposed($password) === PasswordExposed\Enums\PasswordStatus::EXPOSED;
|
||||
} catch (Exception $e) {
|
||||
Logger::error('Password Exposed Exception: ' . $e->getMessage(), [
|
||||
'code' => $e->getCode(),
|
||||
|
|
|
@ -97,7 +97,7 @@ class Federation extends BaseAdmin
|
|||
SUM(IFNULL(`local-posts`, 0) + IFNULL(`local-comments`, 0)) AS `posts`,
|
||||
SUM(IFNULL(`active-month-users`, `active-week-users`)) AS `month`,
|
||||
SUM(IFNULL(`active-halfyear-users`, `active-week-users`)) AS `halfyear`, `platform`,
|
||||
ANY_VALUE(`network`) AS `network`, MAX(`version`) AS `version`
|
||||
MIN(`network`) AS `network`, MAX(`version`) AS `version`
|
||||
FROM `gserver` WHERE NOT `failed` AND `platform` != ? AND `detection-method` != ? AND NOT `network` IN (?, ?) GROUP BY `platform`",
|
||||
'', GServer::DETECT_MANUAL, Protocol::PHANTOM, Protocol::FEED);
|
||||
while ($gserver = DBA::fetch($gservers)) {
|
||||
|
|
|
@ -322,12 +322,12 @@ class Photos extends \Friendica\Module\BaseProfile
|
|||
$photos = $this->database->toArray($this->database->p(
|
||||
"SELECT
|
||||
`resource-id`,
|
||||
ANY_VALUE(`id`) AS `id`,
|
||||
ANY_VALUE(`filename`) AS `filename`,
|
||||
ANY_VALUE(`type`) AS `type`,
|
||||
ANY_VALUE(`album`) AS `album`,
|
||||
max(`scale`) AS `scale`,
|
||||
ANY_VALUE(`created`) AS `created`
|
||||
MIN(`id`) AS `id`,
|
||||
MIN(`filename`) AS `filename`,
|
||||
MIN(`type`) AS `type`,
|
||||
MIN(`album`) AS `album`,
|
||||
MAX(`scale`) AS `scale`,
|
||||
MIN(`created`) AS `created`
|
||||
FROM `photo`
|
||||
WHERE `uid` = ?
|
||||
AND `photo-type` = ?
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: 2024.03-dev\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-01-15 06:14+0000\n"
|
||||
"POT-Creation-Date: 2024-01-15 19:41+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -1770,7 +1770,7 @@ msgstr ""
|
|||
msgid "Create new group"
|
||||
msgstr ""
|
||||
|
||||
#: src/Content/Item.php:332 src/Model/Item.php:3234
|
||||
#: src/Content/Item.php:332 src/Model/Item.php:3235
|
||||
msgid "event"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1778,7 +1778,7 @@ msgstr ""
|
|||
msgid "status"
|
||||
msgstr ""
|
||||
|
||||
#: src/Content/Item.php:341 src/Model/Item.php:3236
|
||||
#: src/Content/Item.php:341 src/Model/Item.php:3237
|
||||
#: src/Module/Post/Tag/Add.php:123
|
||||
msgid "photo"
|
||||
msgstr ""
|
||||
|
@ -2191,8 +2191,8 @@ msgid ""
|
|||
"<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%2$s</a> %3$s"
|
||||
msgstr ""
|
||||
|
||||
#: src/Content/Text/BBCode.php:998 src/Model/Item.php:3967
|
||||
#: src/Model/Item.php:3973 src/Model/Item.php:3974
|
||||
#: src/Content/Text/BBCode.php:998 src/Model/Item.php:3968
|
||||
#: src/Model/Item.php:3974 src/Model/Item.php:3975
|
||||
msgid "Link to source"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2855,167 +2855,167 @@ msgstr ""
|
|||
msgid "Could not connect to database."
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:441 src/Model/Item.php:2278
|
||||
#: src/Core/L10n.php:444 src/Model/Item.php:2279
|
||||
msgid "Undetermined"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:448
|
||||
#: src/Core/L10n.php:451
|
||||
#, php-format
|
||||
msgid "%s (%s)"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:496 src/Model/Event.php:430
|
||||
#: src/Core/L10n.php:499 src/Model/Event.php:430
|
||||
#: src/Module/Settings/Display.php:284
|
||||
msgid "Monday"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:496 src/Model/Event.php:431
|
||||
#: src/Core/L10n.php:499 src/Model/Event.php:431
|
||||
#: src/Module/Settings/Display.php:285
|
||||
msgid "Tuesday"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:496 src/Model/Event.php:432
|
||||
#: src/Core/L10n.php:499 src/Model/Event.php:432
|
||||
#: src/Module/Settings/Display.php:286
|
||||
msgid "Wednesday"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:496 src/Model/Event.php:433
|
||||
#: src/Core/L10n.php:499 src/Model/Event.php:433
|
||||
#: src/Module/Settings/Display.php:287
|
||||
msgid "Thursday"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:496 src/Model/Event.php:434
|
||||
#: src/Core/L10n.php:499 src/Model/Event.php:434
|
||||
#: src/Module/Settings/Display.php:288
|
||||
msgid "Friday"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:496 src/Model/Event.php:435
|
||||
#: src/Core/L10n.php:499 src/Model/Event.php:435
|
||||
#: src/Module/Settings/Display.php:289
|
||||
msgid "Saturday"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:496 src/Model/Event.php:429
|
||||
#: src/Core/L10n.php:499 src/Model/Event.php:429
|
||||
#: src/Module/Settings/Display.php:283
|
||||
msgid "Sunday"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:500 src/Model/Event.php:450
|
||||
#: src/Core/L10n.php:503 src/Model/Event.php:450
|
||||
msgid "January"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:500 src/Model/Event.php:451
|
||||
#: src/Core/L10n.php:503 src/Model/Event.php:451
|
||||
msgid "February"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:500 src/Model/Event.php:452
|
||||
#: src/Core/L10n.php:503 src/Model/Event.php:452
|
||||
msgid "March"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:500 src/Model/Event.php:453
|
||||
#: src/Core/L10n.php:503 src/Model/Event.php:453
|
||||
msgid "April"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:500 src/Core/L10n.php:519 src/Model/Event.php:441
|
||||
#: src/Core/L10n.php:503 src/Core/L10n.php:522 src/Model/Event.php:441
|
||||
msgid "May"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:500 src/Model/Event.php:454
|
||||
#: src/Core/L10n.php:503 src/Model/Event.php:454
|
||||
msgid "June"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:500 src/Model/Event.php:455
|
||||
#: src/Core/L10n.php:503 src/Model/Event.php:455
|
||||
msgid "July"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:500 src/Model/Event.php:456
|
||||
#: src/Core/L10n.php:503 src/Model/Event.php:456
|
||||
msgid "August"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:500 src/Model/Event.php:457
|
||||
#: src/Core/L10n.php:503 src/Model/Event.php:457
|
||||
msgid "September"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:500 src/Model/Event.php:458
|
||||
#: src/Core/L10n.php:503 src/Model/Event.php:458
|
||||
msgid "October"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:500 src/Model/Event.php:459
|
||||
#: src/Core/L10n.php:503 src/Model/Event.php:459
|
||||
msgid "November"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:500 src/Model/Event.php:460
|
||||
#: src/Core/L10n.php:503 src/Model/Event.php:460
|
||||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:515 src/Model/Event.php:422
|
||||
#: src/Core/L10n.php:518 src/Model/Event.php:422
|
||||
msgid "Mon"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:515 src/Model/Event.php:423
|
||||
#: src/Core/L10n.php:518 src/Model/Event.php:423
|
||||
msgid "Tue"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:515 src/Model/Event.php:424
|
||||
#: src/Core/L10n.php:518 src/Model/Event.php:424
|
||||
msgid "Wed"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:515 src/Model/Event.php:425
|
||||
#: src/Core/L10n.php:518 src/Model/Event.php:425
|
||||
msgid "Thu"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:515 src/Model/Event.php:426
|
||||
#: src/Core/L10n.php:518 src/Model/Event.php:426
|
||||
msgid "Fri"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:515 src/Model/Event.php:427
|
||||
#: src/Core/L10n.php:518 src/Model/Event.php:427
|
||||
msgid "Sat"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:515 src/Model/Event.php:421
|
||||
#: src/Core/L10n.php:518 src/Model/Event.php:421
|
||||
msgid "Sun"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:519 src/Model/Event.php:437
|
||||
#: src/Core/L10n.php:522 src/Model/Event.php:437
|
||||
msgid "Jan"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:519 src/Model/Event.php:438
|
||||
#: src/Core/L10n.php:522 src/Model/Event.php:438
|
||||
msgid "Feb"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:519 src/Model/Event.php:439
|
||||
#: src/Core/L10n.php:522 src/Model/Event.php:439
|
||||
msgid "Mar"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:519 src/Model/Event.php:440
|
||||
#: src/Core/L10n.php:522 src/Model/Event.php:440
|
||||
msgid "Apr"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:519 src/Model/Event.php:442
|
||||
#: src/Core/L10n.php:522 src/Model/Event.php:442
|
||||
msgid "Jun"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:519 src/Model/Event.php:443
|
||||
#: src/Core/L10n.php:522 src/Model/Event.php:443
|
||||
msgid "Jul"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:519 src/Model/Event.php:444
|
||||
#: src/Core/L10n.php:522 src/Model/Event.php:444
|
||||
msgid "Aug"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:519
|
||||
#: src/Core/L10n.php:522
|
||||
msgid "Sep"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:519 src/Model/Event.php:446
|
||||
#: src/Core/L10n.php:522 src/Model/Event.php:446
|
||||
msgid "Oct"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:519 src/Model/Event.php:447
|
||||
#: src/Core/L10n.php:522 src/Model/Event.php:447
|
||||
msgid "Nov"
|
||||
msgstr ""
|
||||
|
||||
#: src/Core/L10n.php:519 src/Model/Event.php:448
|
||||
#: src/Core/L10n.php:522 src/Model/Event.php:448
|
||||
msgid "Dec"
|
||||
msgstr ""
|
||||
|
||||
|
@ -3413,99 +3413,99 @@ msgstr ""
|
|||
msgid "Happy Birthday %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Item.php:2285
|
||||
#: src/Model/Item.php:2286
|
||||
#, php-format
|
||||
msgid "%s (%s - %s): %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Item.php:2287
|
||||
#: src/Model/Item.php:2288
|
||||
#, php-format
|
||||
msgid "%s (%s): %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Item.php:2290
|
||||
#: src/Model/Item.php:2291
|
||||
#, php-format
|
||||
msgid "Detected languages in this post:\\n%s"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Item.php:3238
|
||||
#: src/Model/Item.php:3239
|
||||
msgid "activity"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Item.php:3240
|
||||
#: src/Model/Item.php:3241
|
||||
msgid "comment"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Item.php:3243 src/Module/Post/Tag/Add.php:123
|
||||
#: src/Model/Item.php:3244 src/Module/Post/Tag/Add.php:123
|
||||
msgid "post"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Item.php:3413
|
||||
#: src/Model/Item.php:3414
|
||||
#, php-format
|
||||
msgid "%s is blocked"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Item.php:3415
|
||||
#: src/Model/Item.php:3416
|
||||
#, php-format
|
||||
msgid "%s is ignored"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Item.php:3417
|
||||
#: src/Model/Item.php:3418
|
||||
#, php-format
|
||||
msgid "Content from %s is collapsed"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Item.php:3421
|
||||
#: src/Model/Item.php:3422
|
||||
#, php-format
|
||||
msgid "Content warning: %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Item.php:3874
|
||||
#: src/Model/Item.php:3875
|
||||
msgid "bytes"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Item.php:3905
|
||||
#: src/Model/Item.php:3906
|
||||
#, php-format
|
||||
msgid "%2$s (%3$d%%, %1$d vote)"
|
||||
msgid_plural "%2$s (%3$d%%, %1$d votes)"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/Model/Item.php:3907
|
||||
#: src/Model/Item.php:3908
|
||||
#, php-format
|
||||
msgid "%2$s (%1$d vote)"
|
||||
msgid_plural "%2$s (%1$d votes)"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/Model/Item.php:3912
|
||||
#: src/Model/Item.php:3913
|
||||
#, php-format
|
||||
msgid "%d voter. Poll end: %s"
|
||||
msgid_plural "%d voters. Poll end: %s"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/Model/Item.php:3914
|
||||
#: src/Model/Item.php:3915
|
||||
#, php-format
|
||||
msgid "%d voter."
|
||||
msgid_plural "%d voters."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/Model/Item.php:3916
|
||||
#: src/Model/Item.php:3917
|
||||
#, php-format
|
||||
msgid "Poll end: %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Item.php:3950 src/Model/Item.php:3951
|
||||
#: src/Model/Item.php:3951 src/Model/Item.php:3952
|
||||
msgid "View on separate page"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Mail.php:137 src/Model/Mail.php:266
|
||||
#: src/Model/Mail.php:135
|
||||
msgid "[no subject]"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Photo.php:1190 src/Module/Media/Photo/Upload.php:170
|
||||
#: src/Model/Photo.php:1191 src/Module/Media/Photo/Upload.php:170
|
||||
msgid "Wall Photos"
|
||||
msgstr ""
|
||||
|
||||
|
|
Loading…
Reference in a new issue