Compare commits

..

5 commits

38 changed files with 765 additions and 513 deletions

View file

@ -5,7 +5,7 @@
# #
# Translators: # Translators:
# fabrixxm <fabrix.xm@gmail.com>, 2018 # fabrixxm <fabrix.xm@gmail.com>, 2018
# Sylke Vicious <silkevicious@gmail.com>, 2023 # Sylke Vicious <silkevicious@gmail.com>, 2021
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
@ -14,7 +14,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-11 08:54-0400\n" "POT-Creation-Date: 2022-05-11 08:54-0400\n"
"PO-Revision-Date: 2018-05-24 06:41+0000\n" "PO-Revision-Date: 2018-05-24 06:41+0000\n"
"Last-Translator: Sylke Vicious <silkevicious@gmail.com>, 2023\n" "Last-Translator: Sylke Vicious <silkevicious@gmail.com>, 2021\n"
"Language-Team: Italian (https://app.transifex.com/Friendica/teams/12172/it/)\n" "Language-Team: Italian (https://app.transifex.com/Friendica/teams/12172/it/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -125,7 +125,7 @@ msgstr "Annulla"
#: advancedcontentfilter.php:295 #: advancedcontentfilter.php:295
msgid "This addon requires this node having at least one post" msgid "This addon requires this node having at least one post"
msgstr "Questo addon richiede che questo nodo abbia almeno un messaggio" msgstr ""
#: advancedcontentfilter.php:325 advancedcontentfilter.php:336 #: advancedcontentfilter.php:325 advancedcontentfilter.php:336
#: advancedcontentfilter.php:347 advancedcontentfilter.php:383 #: advancedcontentfilter.php:347 advancedcontentfilter.php:383

View file

@ -27,7 +27,6 @@ $a->strings['Add new rule'] = 'Aggiungi nuova regola';
$a->strings['Rule Name'] = 'Nome Regola'; $a->strings['Rule Name'] = 'Nome Regola';
$a->strings['Rule Expression'] = 'Espressione Regola'; $a->strings['Rule Expression'] = 'Espressione Regola';
$a->strings['Cancel'] = 'Annulla'; $a->strings['Cancel'] = 'Annulla';
$a->strings['This addon requires this node having at least one post'] = 'Questo addon richiede che questo nodo abbia almeno un messaggio';
$a->strings['You must be logged in to use this method'] = 'Devi essere autenticato per usare questo metodo'; $a->strings['You must be logged in to use this method'] = 'Devi essere autenticato per usare questo metodo';
$a->strings['Invalid form security token, please refresh the page.'] = 'Token di sicurezza invalido, aggiorna la pagina.'; $a->strings['Invalid form security token, please refresh the page.'] = 'Token di sicurezza invalido, aggiorna la pagina.';
$a->strings['The rule name and expression are required.'] = 'Il nome e l\'espressione della regola sono richiesti.'; $a->strings['The rule name and expression are required.'] = 'Il nome e l\'espressione della regola sono richiesti.';

View file

@ -15,7 +15,6 @@ use Friendica\Core\Logger;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Network\HTTPException\ForbiddenException; use Friendica\Network\HTTPException\ForbiddenException;
use Friendica\Util\HTTPSignature;
use Friendica\Util\Network; use Friendica\Util\Network;
require_once __DIR__ . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php'; require_once __DIR__ . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';
@ -77,8 +76,6 @@ function blockbot_init_1()
return; return;
} }
blockbot_log_activitypub($_SERVER['REQUEST_URI'], $_SERVER['HTTP_USER_AGENT']);
if (blockbot_is_crawler($parts)) { if (blockbot_is_crawler($parts)) {
Logger::debug('Crawler found - reject', $logdata); Logger::debug('Crawler found - reject', $logdata);
blockbot_reject(); blockbot_reject();
@ -172,7 +169,7 @@ function blockbot_init_1()
function blockbot_save($database, $userAgent) function blockbot_save($database, $userAgent)
{ {
if (!DI::config()->get('blockbot', 'logging') || !function_exists('dba_open')) { if (!DI::config()->get('blockbot', 'training') || !function_exists('dba_open')) {
return; return;
} }
@ -184,36 +181,6 @@ function blockbot_save($database, $userAgent)
dba_close($resource); dba_close($resource);
} }
function blockbot_log_activitypub(string $url, string $agent)
{
if (!DI::config()->get('blockbot', 'logging')) {
return;
}
$bot = ['/.well-known/nodeinfo', '/nodeinfo/2.0', '/nodeinfo/1.0'];
if (in_array($url, $bot)) {
blockbot_save('activitypub-stats', $agent);
}
$bot = ['/api/v1/instance', '/api/v2/instance', '/api/v1/instance/extended_description',
'/api/v1/instance/peers'];
if (in_array($url, $bot)) {
blockbot_save('activitypub-api-stats', $agent);
}
if (substr($url, 0, 6) == '/api/v') {
blockbot_save('activitypub-api', $agent);
}
if (($_SERVER['REQUEST_METHOD'] == 'POST') && in_array('inbox', explode('/', parse_url($url, PHP_URL_PATH)))) {
blockbot_save('activitypub-inbox-agents', $agent);
}
if (!empty($_SERVER['HTTP_SIGNATURE']) && !empty(HTTPSignature::getSigner('', $_SERVER))) {
blockbot_save('activitypub-signature-agents', $agent);
}
}
function blockbot_check_login_attempt(string $url, array $logdata) function blockbot_check_login_attempt(string $url, array $logdata)
{ {
if (in_array(trim(parse_url($url, PHP_URL_PATH), '/'), ['login', 'lostpass', 'register'])) { if (in_array(trim(parse_url($url, PHP_URL_PATH), '/'), ['login', 'lostpass', 'register'])) {
@ -499,7 +466,6 @@ function blockbot_is_fediverse_client(array $parts): bool
'megalodonandroid', 'fedilab', 'mastodonapp', 'toot!', 'intravnews', 'megalodonandroid', 'fedilab', 'mastodonapp', 'toot!', 'intravnews',
'pixeldroid', 'greatnews', 'protopage', 'newsfox', 'vienna', 'wp-urldetails', 'husky', 'pixeldroid', 'greatnews', 'protopage', 'newsfox', 'vienna', 'wp-urldetails', 'husky',
'activitypub-go-http-client', 'mobilesafari', 'mastodon-ios', 'mastodonpy', 'techniverse', 'activitypub-go-http-client', 'mobilesafari', 'mastodon-ios', 'mastodonpy', 'techniverse',
'relatica',
]; ];
foreach ($parts as $part) { foreach ($parts as $part) {

View file

@ -68,7 +68,6 @@ const BLUEKSY_STATUS_TOKEN_FAIL = 13;
const BLUESKY_DIRECTORY = 'https://plc.directory'; // Path to the directory server service to fetch the PDS of a given DID const BLUESKY_DIRECTORY = 'https://plc.directory'; // Path to the directory server service to fetch the PDS of a given DID
const BLUESKY_PDS = 'https://bsky.social'; // Path to the personal data server service (PDS) to fetch the DID for a given handle const BLUESKY_PDS = 'https://bsky.social'; // Path to the personal data server service (PDS) to fetch the DID for a given handle
const BLUESKY_WEB = 'https://bsky.app'; // Path to the web interface with the user profile and posts const BLUESKY_WEB = 'https://bsky.app'; // Path to the web interface with the user profile and posts
const BLUESKY_HOSTNAME = 'bsky.social'; // Host name to be added to the handle if incomplete
function bluesky_install() function bluesky_install()
{ {
@ -356,11 +355,8 @@ function bluesky_settings(array &$data)
if (DI::config()->get('bluesky', 'friendica_handles')) { if (DI::config()->get('bluesky', 'friendica_handles')) {
$self = User::getById(DI::userSession()->getLocalUserId(), ['nickname']); $self = User::getById(DI::userSession()->getLocalUserId(), ['nickname']);
$host_handle = $self['nickname'] . '.' . DI::baseUrl()->getHost(); $handle = $self['nickname'] . '.' . DI::baseUrl()->getHost();
$friendica_handle = ['bluesky_friendica_handle', DI::l10n()->t('Allow to use %s as your Bluesky handle.', $host_handle), $custom_handle, DI::l10n()->t('When enabled, you can use %s as your Bluesky handle. After you enabled this option, please go to https://bsky.app/settings and select to change your handle. Select that you have got your own domain. Then enter %s and select "No DNS Panel". Then select "Verify Text File".', $host_handle, $host_handle)]; $friendica_handle = ['bluesky_friendica_handle', DI::l10n()->t('Allow to use %s as your Bluesky handle.', $handle), $custom_handle, DI::l10n()->t('When enabled, you can use %s as your Bluesky handle. After you enabled this option, please go to https://bsky.app/settings and select to change your handle. Select that you have got your own domain. Then enter %s and select "No DNS Panel". Then select "Verify Text File".', $handle, $handle)];
if ($custom_handle) {
$handle = $host_handle;
}
} else { } else {
$friendica_handle = []; $friendica_handle = [];
} }
@ -373,7 +369,7 @@ function bluesky_settings(array &$data)
'$import_feeds' => ['bluesky_import_feeds', DI::l10n()->t('Import the pinned feeds'), $import_feeds, DI::l10n()->t('When activated, Posts will be imported from all the feeds that you pinned in Bluesky.')], '$import_feeds' => ['bluesky_import_feeds', DI::l10n()->t('Import the pinned feeds'), $import_feeds, DI::l10n()->t('When activated, Posts will be imported from all the feeds that you pinned in Bluesky.')],
'$custom_handle' => $friendica_handle, '$custom_handle' => $friendica_handle,
'$pds' => ['bluesky_pds', DI::l10n()->t('Personal Data Server'), $pds, DI::l10n()->t('The personal data server (PDS) is the system that hosts your profile.'), '', 'readonly'], '$pds' => ['bluesky_pds', DI::l10n()->t('Personal Data Server'), $pds, DI::l10n()->t('The personal data server (PDS) is the system that hosts your profile.'), '', 'readonly'],
'$handle' => ['bluesky_handle', DI::l10n()->t('Bluesky handle'), $handle, '', '', $custom_handle ? 'readonly' : ''], '$handle' => ['bluesky_handle', DI::l10n()->t('Bluesky handle'), $handle],
'$did' => ['bluesky_did', DI::l10n()->t('Bluesky DID'), $did, DI::l10n()->t('This is the unique identifier. It will be fetched automatically, when the handle is entered.'), '', 'readonly'], '$did' => ['bluesky_did', DI::l10n()->t('Bluesky DID'), $did, DI::l10n()->t('This is the unique identifier. It will be fetched automatically, when the handle is entered.'), '', 'readonly'],
'$password' => ['bluesky_password', DI::l10n()->t('Bluesky app password'), '', DI::l10n()->t("Please don't add your real password here, but instead create a specific app password in the Bluesky settings.")], '$password' => ['bluesky_password', DI::l10n()->t('Bluesky app password'), '', DI::l10n()->t("Please don't add your real password here, but instead create a specific app password in the Bluesky settings.")],
'$status' => bluesky_get_status($handle, $did, $pds, $token), '$status' => bluesky_get_status($handle, $did, $pds, $token),
@ -444,7 +440,7 @@ function bluesky_settings_post(array &$b)
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'bluesky', 'handle', $handle); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'bluesky', 'handle', $handle);
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'bluesky', 'import', intval($_POST['bluesky_import'])); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'bluesky', 'import', intval($_POST['bluesky_import']));
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'bluesky', 'import_feeds', intval($_POST['bluesky_import_feeds'])); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'bluesky', 'import_feeds', intval($_POST['bluesky_import_feeds']));
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'bluesky', 'friendica_handle', intval($_POST['bluesky_friendica_handle'] ?? false)); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'bluesky', 'friendica_handle', intval($_POST['bluesky_friendica_handle']));
if (!empty($handle)) { if (!empty($handle)) {
$did = bluesky_get_user_did(DI::userSession()->getLocalUserId(), empty($old_did) || $old_handle != $handle); $did = bluesky_get_user_did(DI::userSession()->getLocalUserId(), empty($old_did) || $old_handle != $handle);
@ -514,10 +510,9 @@ function bluesky_cron()
$abandon_limit = date(DateTimeFormat::MYSQL, time() - $abandon_days * 86400); $abandon_limit = date(DateTimeFormat::MYSQL, time() - $abandon_days * 86400);
$pconfigs = DBA::selectToArray('pconfig', [], ["`cat` = ? AND `k` IN (?, ?) AND `v`", 'bluesky', 'import', 'import_feeds']); $pconfigs = DBA::selectToArray('pconfig', [], ['cat' => 'bluesky', 'k' => 'import', 'v' => true]);
foreach ($pconfigs as $pconfig) { foreach ($pconfigs as $pconfig) {
if (empty(bluesky_get_user_did($pconfig['uid']))) { if (empty(bluesky_get_user_did($pconfig['uid']))) {
Logger::debug('User has got no valid DID', ['uid' => $pconfig['uid']]);
continue; continue;
} }
@ -529,27 +524,19 @@ function bluesky_cron()
} }
// Refresh the token now, so that it doesn't need to be refreshed in parallel by the following workers // Refresh the token now, so that it doesn't need to be refreshed in parallel by the following workers
Logger::debug('Refresh the token', ['uid' => $pconfig['uid']]);
bluesky_get_token($pconfig['uid']); bluesky_get_token($pconfig['uid']);
Worker::add(['priority' => Worker::PRIORITY_MEDIUM, 'force_priority' => true], 'addon/bluesky/bluesky_notifications.php', $pconfig['uid'], $last); Worker::add(['priority' => Worker::PRIORITY_MEDIUM, 'force_priority' => true], 'addon/bluesky/bluesky_notifications.php', $pconfig['uid'], $last);
if (DI::pConfig()->get($pconfig['uid'], 'bluesky', 'import')) { Worker::add(['priority' => Worker::PRIORITY_MEDIUM, 'force_priority' => true], 'addon/bluesky/bluesky_timeline.php', $pconfig['uid'], $last);
Worker::add(['priority' => Worker::PRIORITY_MEDIUM, 'force_priority' => true], 'addon/bluesky/bluesky_timeline.php', $pconfig['uid'], $last);
}
if (DI::pConfig()->get($pconfig['uid'], 'bluesky', 'import_feeds')) { if (DI::pConfig()->get($pconfig['uid'], 'bluesky', 'import_feeds')) {
Logger::debug('Fetch feeds for user', ['uid' => $pconfig['uid']]);
$feeds = bluesky_get_feeds($pconfig['uid']); $feeds = bluesky_get_feeds($pconfig['uid']);
foreach ($feeds as $feed) { foreach ($feeds as $feed) {
Worker::add(['priority' => Worker::PRIORITY_MEDIUM, 'force_priority' => true], 'addon/bluesky/bluesky_feed.php', $pconfig['uid'], $feed, $last); Worker::add(['priority' => Worker::PRIORITY_MEDIUM, 'force_priority' => true], 'addon/bluesky/bluesky_feed.php', $pconfig['uid'], $feed, $last);
} }
} }
Logger::debug('Polling done for user', ['uid' => $pconfig['uid']]);
} }
Logger::notice('Polling done for all users');
DI::keyValue()->set('bluesky_last_poll', time());
$last_clean = DI::keyValue()->get('bluesky_last_clean'); $last_clean = DI::keyValue()->get('bluesky_last_clean');
if (empty($last_clean) || ($last_clean + 86400 < time())) { if (empty($last_clean) || ($last_clean + 86400 < time())) {
Logger::notice('Start contact cleanup'); Logger::notice('Start contact cleanup');
@ -563,6 +550,8 @@ function bluesky_cron()
} }
Logger::notice('cron_end'); Logger::notice('cron_end');
DI::keyValue()->set('bluesky_last_poll', time());
} }
function bluesky_hook_fork(array &$b) function bluesky_hook_fork(array &$b)
@ -1228,11 +1217,7 @@ function bluesky_get_header(stdClass $post, string $uri, int $uid, int $fetch_ui
'source' => json_encode($post), 'source' => json_encode($post),
]; ];
$account = Contact::selectFirstAccountUser(['pid'], ['id' => $contact['id']]);
$item['author-id'] = $account['pid'];
$item['uri-id'] = ItemURI::getIdByURI($uri); $item['uri-id'] = ItemURI::getIdByURI($uri);
$item['owner-id'] = $item['author-id'];
$item['owner-name'] = $item['author-name']; $item['owner-name'] = $item['author-name'];
$item['owner-link'] = $item['author-link']; $item['owner-link'] = $item['author-link'];
$item['owner-avatar'] = $item['author-avatar']; $item['owner-avatar'] = $item['author-avatar'];
@ -1607,7 +1592,7 @@ function bluesky_process_thread(stdClass $thread, int $uid, int $fetch_uid, int
function bluesky_get_contact(stdClass $author, int $uid, int $fetch_uid): array function bluesky_get_contact(stdClass $author, int $uid, int $fetch_uid): array
{ {
$condition = ['network' => Protocol::BLUESKY, 'uid' => 0, 'nurl' => $author->did]; $condition = ['network' => Protocol::BLUESKY, 'uid' => 0, 'url' => $author->did];
$contact = Contact::selectFirst(['id', 'updated'], $condition); $contact = Contact::selectFirst(['id', 'updated'], $condition);
$update = empty($contact) || $contact['updated'] < DateTimeFormat::utc('now -24 hours'); $update = empty($contact) || $contact['updated'] < DateTimeFormat::utc('now -24 hours');
@ -1625,7 +1610,7 @@ function bluesky_get_contact(stdClass $author, int $uid, int $fetch_uid): array
} }
if ($uid != 0) { if ($uid != 0) {
$condition = ['network' => Protocol::BLUESKY, 'uid' => $uid, 'nurl' => $author->did]; $condition = ['network' => Protocol::BLUESKY, 'uid' => $uid, 'url' => $author->did];
$contact = Contact::selectFirst(['id', 'rel', 'uid'], $condition); $contact = Contact::selectFirst(['id', 'rel', 'uid'], $condition);
if (!isset($fields['rel']) && isset($contact['rel'])) { if (!isset($fields['rel']) && isset($contact['rel'])) {
@ -1720,9 +1705,6 @@ function bluesky_get_feeds(int $uid): array
{ {
$type = '$type'; $type = '$type';
$preferences = bluesky_get_preferences($uid); $preferences = bluesky_get_preferences($uid);
if (empty($preferences) || empty($preferences->preferences)) {
return [];
}
foreach ($preferences->preferences as $preference) { foreach ($preferences->preferences as $preference) {
if ($preference->$type == 'app.bsky.actor.defs#savedFeedsPref') { if ($preference->$type == 'app.bsky.actor.defs#savedFeedsPref') {
return $preference->pinned ?? []; return $preference->pinned ?? [];
@ -1731,7 +1713,7 @@ function bluesky_get_feeds(int $uid): array
return []; return [];
} }
function bluesky_get_preferences(int $uid): ?stdClass function bluesky_get_preferences(int $uid): stdClass
{ {
$cachekey = 'bluesky:preferences:' . $uid; $cachekey = 'bluesky:preferences:' . $uid;
$data = DI::cache()->get($cachekey); $data = DI::cache()->get($cachekey);
@ -1740,9 +1722,6 @@ function bluesky_get_preferences(int $uid): ?stdClass
} }
$data = bluesky_xrpc_get($uid, 'app.bsky.actor.getPreferences'); $data = bluesky_xrpc_get($uid, 'app.bsky.actor.getPreferences');
if (empty($data)) {
return null;
}
DI::cache()->set($cachekey, $data, Duration::HOUR); DI::cache()->set($cachekey, $data, Duration::HOUR);
return $data; return $data;
@ -1785,14 +1764,6 @@ function bluesky_get_did_by_dns(string $handle): string
function bluesky_get_did(string $handle): string function bluesky_get_did(string $handle): string
{ {
if ($handle == '') {
return '';
}
if (strpos($handle, '.') === false) {
$handle .= '.' . BLUESKY_HOSTNAME;
}
// Deactivated at the moment, since it isn't reliable by now // Deactivated at the moment, since it isn't reliable by now
//$did = bluesky_get_did_by_dns($handle); //$did = bluesky_get_did_by_dns($handle);
//if ($did != '') { //if ($did != '') {

View file

@ -6,55 +6,55 @@
# Translators: # Translators:
# fabrixxm <fabrix.xm@gmail.com>, 2018 # fabrixxm <fabrix.xm@gmail.com>, 2018
# Davide Pesenti <mrjive@mrjive.it>, 2018 # Davide Pesenti <mrjive@mrjive.it>, 2018
# Sylke Vicious <silkevicious@gmail.com>, 2023 # Sylke Vicious <silkevicious@gmail.com>, 2021
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-21 19:14-0500\n" "POT-Creation-Date: 2020-12-29 00:53+0000\n"
"PO-Revision-Date: 2018-04-07 05:23+0000\n" "PO-Revision-Date: 2018-04-07 05:23+0000\n"
"Last-Translator: Sylke Vicious <silkevicious@gmail.com>, 2023\n" "Last-Translator: Sylke Vicious <silkevicious@gmail.com>, 2021\n"
"Language-Team: Italian (https://app.transifex.com/Friendica/teams/12172/it/)\n" "Language-Team: Italian (https://www.transifex.com/Friendica/teams/12172/it/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: it\n" "Language: it\n"
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: catavatar.php:48 #: catavatar.php:48
msgid "Set default profile avatar or randomize the cat."
msgstr "Imposta l'immagine di profilo predefinita o crea un gatto casuale."
#: catavatar.php:53
msgid "Cat Avatar Settings"
msgstr "Impostazioni Avatar Gatto"
#: catavatar.php:56
msgid "Use Cat as Avatar" msgid "Use Cat as Avatar"
msgstr "Usa il Gatto come avatar" msgstr "Usa il Gatto come avatar"
#: catavatar.php:57 #: catavatar.php:49
msgid "Another random Cat!" msgid "More Random Cat!"
msgstr "Un altro Gatto casuale!" msgstr "Altro Gatto a caso!"
#: catavatar.php:58 #: catavatar.php:50
msgid "Reset to email Cat" msgid "Reset to email Cat"
msgstr "Reimposta Gatto" msgstr "Reimposta Gatto"
#: catavatar.php:77 #: catavatar.php:52
msgid "Cat Avatar Settings"
msgstr "Impostazioni Avatar Gatto"
#: catavatar.php:53
msgid "Set default profile avatar or randomize the cat."
msgstr "Imposta l'immagine di profilo predefinita o crea un gatto casuale."
#: catavatar.php:78
msgid "The cat hadn't found itself." msgid "The cat hadn't found itself."
msgstr "Il gatto non ha trovato sé stesso." msgstr "Il gatto non ha trovato sé stesso."
#: catavatar.php:86 #: catavatar.php:87
msgid "There was an error, the cat ran away." msgid "There was an error, the cat ran away."
msgstr "Si è verificato un errore, il gatto è scappato." msgstr "Si è verificato un errore, il gatto è scappato."
#: catavatar.php:92 #: catavatar.php:93
msgid "Profile Photos" msgid "Profile Photos"
msgstr "Foto del profilo" msgstr "Foto del profilo"
#: catavatar.php:102 #: catavatar.php:108
msgid "Meow!" msgid "Meow!"
msgstr "Miao!" msgstr "Miao!"

View file

@ -3,13 +3,13 @@
if(! function_exists("string_plural_select_it")) { if(! function_exists("string_plural_select_it")) {
function string_plural_select_it($n){ function string_plural_select_it($n){
$n = intval($n); $n = intval($n);
if ($n == 1) { return 0; } else if ($n != 0 && $n % 1000000 == 0) { return 1; } else { return 2; } return intval($n != 1);
}} }}
$a->strings['Set default profile avatar or randomize the cat.'] = 'Imposta l\'immagine di profilo predefinita o crea un gatto casuale.';
$a->strings['Cat Avatar Settings'] = 'Impostazioni Avatar Gatto';
$a->strings['Use Cat as Avatar'] = 'Usa il Gatto come avatar'; $a->strings['Use Cat as Avatar'] = 'Usa il Gatto come avatar';
$a->strings['Another random Cat!'] = 'Un altro Gatto casuale!'; $a->strings['More Random Cat!'] = 'Altro Gatto a caso!';
$a->strings['Reset to email Cat'] = 'Reimposta Gatto'; $a->strings['Reset to email Cat'] = 'Reimposta Gatto';
$a->strings['Cat Avatar Settings'] = 'Impostazioni Avatar Gatto';
$a->strings['Set default profile avatar or randomize the cat.'] = 'Imposta l\'immagine di profilo predefinita o crea un gatto casuale.';
$a->strings['The cat hadn\'t found itself.'] = 'Il gatto non ha trovato sé stesso.'; $a->strings['The cat hadn\'t found itself.'] = 'Il gatto non ha trovato sé stesso.';
$a->strings['There was an error, the cat ran away.'] = 'Si è verificato un errore, il gatto è scappato.'; $a->strings['There was an error, the cat ran away.'] = 'Si è verificato un errore, il gatto è scappato.';
$a->strings['Profile Photos'] = 'Foto del profilo'; $a->strings['Profile Photos'] = 'Foto del profilo';

View file

@ -5,27 +5,27 @@
# #
# Translators: # Translators:
# fabrixxm <fabrix.xm@gmail.com>, 2014-2015 # fabrixxm <fabrix.xm@gmail.com>, 2014-2015
# Sylke Vicious <silkevicious@gmail.com>, 2021,2023 # Sylke Vicious <silkevicious@gmail.com>, 2021
# Tobias Diekershoff <tobias.diekershoff@gmx.net>, 2016 # Tobias Diekershoff <tobias.diekershoff@gmx.net>, 2016
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: friendica\n" "Project-Id-Version: friendica\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-21 19:14-0500\n" "POT-Creation-Date: 2021-02-01 18:15+0100\n"
"PO-Revision-Date: 2014-06-22 11:34+0000\n" "PO-Revision-Date: 2021-02-16 12:57+0000\n"
"Last-Translator: Sylke Vicious <silkevicious@gmail.com>, 2021,2023\n" "Last-Translator: Sylke Vicious <silkevicious@gmail.com>\n"
"Language-Team: Italian (http://app.transifex.com/Friendica/friendica/language/it/)\n" "Language-Team: Italian (http://www.transifex.com/Friendica/friendica/language/it/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: it\n" "Language: it\n"
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: curweather.php:47 #: curweather.php:47
msgid "Error fetching weather data. Error was: " msgid "Error fetching weather data. Error was: "
msgstr "Errore durante il recupero dei dati meteo. L'errore è stato:" msgstr "Errore durante il recupero dei dati meteo. L'errore è stato:"
#: curweather.php:130 #: curweather.php:130 curweather.php:192
msgid "Current Weather" msgid "Current Weather"
msgstr "Meteo" msgstr "Meteo"
@ -61,66 +61,66 @@ msgstr "C'è stato un problema accedendo ai dati meteo, ma dai un'occhiata"
msgid "at OpenWeatherMap" msgid "at OpenWeatherMap"
msgstr "a OpenWeatherMap" msgstr "a OpenWeatherMap"
#: curweather.php:178 #: curweather.php:179
msgid "No APPID found, please contact your admin to obtain one." msgid "No APPID found, please contact your admin to obtain one."
msgstr "APPID non trovata, contatta il tuo amministratore per averne una." msgstr "APPID non trovata, contatta il tuo amministratore per averne una."
#: curweather.php:188 #: curweather.php:191 curweather.php:229
msgid "Save Settings"
msgstr "Salva Impostazioni"
#: curweather.php:192
msgid "Settings"
msgstr "Impostazioni"
#: curweather.php:194
msgid "Enter either the name of your location or the zip code." msgid "Enter either the name of your location or the zip code."
msgstr "Inserisci il nome della tua posizione o il CAP" msgstr "Inserisci il nome della tua posizione o il CAP"
#: curweather.php:189 #: curweather.php:195
msgid "Your Location" msgid "Your Location"
msgstr "La tua Posizione" msgstr "La tua Posizione"
#: curweather.php:189 #: curweather.php:195
msgid "" msgid ""
"Identifier of your location (name or zip code), e.g. <em>Berlin,DE</em> or " "Identifier of your location (name or zip code), e.g. <em>Berlin,DE</em> or "
"<em>14476,DE</em>." "<em>14476,DE</em>."
msgstr "Identificatore della tua posizione (nome o CAP), p.e. <em>Roma, IT</em> or <em>00186,IT</em>." msgstr "Identificatore della tua posizione (nome o CAP), p.e. <em>Roma, IT</em> or <em>00186,IT</em>."
#: curweather.php:190 #: curweather.php:196
msgid "Units" msgid "Units"
msgstr "Unità" msgstr "Unità"
#: curweather.php:190 #: curweather.php:196
msgid "select if the temperature should be displayed in &deg;C or &deg;F" msgid "select if the temperature should be displayed in &deg;C or &deg;F"
msgstr "scegli se la temperatura deve essere mostrata in °C o in °F" msgstr "scegli se la temperatura deve essere mostrata in °C o in °F"
#: curweather.php:191 #: curweather.php:197
msgid "Show weather data" msgid "Show weather data"
msgstr "Mostra dati meteo" msgstr "Mostra dati meteo"
#: curweather.php:196 #: curweather.php:232
msgid "Current Weather Settings"
msgstr "Impostazioni Meteo"
#: curweather.php:227
msgid "Save Settings"
msgstr "Salva Impostazioni"
#: curweather.php:230
msgid "Caching Interval" msgid "Caching Interval"
msgstr "Intervallo di cache" msgstr "Intervallo di cache"
#: curweather.php:232 #: curweather.php:234
msgid "" msgid ""
"For how long should the weather data be cached? Choose according your " "For how long should the weather data be cached? Choose according your "
"OpenWeatherMap account type." "OpenWeatherMap account type."
msgstr "Per quanto tempo i dati meteo devono essere memorizzati? Scegli a seconda del tuo tipo di account su OpenWeatherMap." msgstr "Per quanto tempo i dati meteo devono essere memorizzati? Scegli a seconda del tuo tipo di account su OpenWeatherMap."
#: curweather.php:233 #: curweather.php:235
msgid "no cache" msgid "no cache"
msgstr "nessuna cache" msgstr "nessuna cache"
#: curweather.php:234 curweather.php:235 curweather.php:236 curweather.php:237 #: curweather.php:236 curweather.php:237 curweather.php:238 curweather.php:239
msgid "minutes" msgid "minutes"
msgstr "minuti" msgstr "minuti"
#: curweather.php:240 #: curweather.php:242
msgid "Your APPID" msgid "Your APPID"
msgstr "Il tuo APPID" msgstr "Il tuo APPID"
#: curweather.php:240 #: curweather.php:242
msgid "Your API key provided by OpenWeatherMap" msgid "Your API key provided by OpenWeatherMap"
msgstr "La tua chiave API da OpenWeatherMap" msgstr "La tua chiave API da OpenWeatherMap"

View file

@ -3,7 +3,7 @@
if(! function_exists("string_plural_select_it")) { if(! function_exists("string_plural_select_it")) {
function string_plural_select_it($n){ function string_plural_select_it($n){
$n = intval($n); $n = intval($n);
if ($n == 1) { return 0; } else if ($n != 0 && $n % 1000000 == 0) { return 1; } else { return 2; } return intval($n != 1);
}} }}
$a->strings['Error fetching weather data. Error was: '] = 'Errore durante il recupero dei dati meteo. L\'errore è stato:'; $a->strings['Error fetching weather data. Error was: '] = 'Errore durante il recupero dei dati meteo. L\'errore è stato:';
$a->strings['Current Weather'] = 'Meteo'; $a->strings['Current Weather'] = 'Meteo';
@ -16,14 +16,14 @@ $a->strings['Show on map'] = 'Mostra sulla mappa';
$a->strings['There was a problem accessing the weather data. But have a look'] = 'C\'è stato un problema accedendo ai dati meteo, ma dai un\'occhiata'; $a->strings['There was a problem accessing the weather data. But have a look'] = 'C\'è stato un problema accedendo ai dati meteo, ma dai un\'occhiata';
$a->strings['at OpenWeatherMap'] = 'a OpenWeatherMap'; $a->strings['at OpenWeatherMap'] = 'a OpenWeatherMap';
$a->strings['No APPID found, please contact your admin to obtain one.'] = 'APPID non trovata, contatta il tuo amministratore per averne una.'; $a->strings['No APPID found, please contact your admin to obtain one.'] = 'APPID non trovata, contatta il tuo amministratore per averne una.';
$a->strings['Save Settings'] = 'Salva Impostazioni';
$a->strings['Settings'] = 'Impostazioni';
$a->strings['Enter either the name of your location or the zip code.'] = 'Inserisci il nome della tua posizione o il CAP'; $a->strings['Enter either the name of your location or the zip code.'] = 'Inserisci il nome della tua posizione o il CAP';
$a->strings['Your Location'] = 'La tua Posizione'; $a->strings['Your Location'] = 'La tua Posizione';
$a->strings['Identifier of your location (name or zip code), e.g. <em>Berlin,DE</em> or <em>14476,DE</em>.'] = 'Identificatore della tua posizione (nome o CAP), p.e. <em>Roma, IT</em> or <em>00186,IT</em>.'; $a->strings['Identifier of your location (name or zip code), e.g. <em>Berlin,DE</em> or <em>14476,DE</em>.'] = 'Identificatore della tua posizione (nome o CAP), p.e. <em>Roma, IT</em> or <em>00186,IT</em>.';
$a->strings['Units'] = 'Unità'; $a->strings['Units'] = 'Unità';
$a->strings['select if the temperature should be displayed in &deg;C or &deg;F'] = 'scegli se la temperatura deve essere mostrata in °C o in °F'; $a->strings['select if the temperature should be displayed in &deg;C or &deg;F'] = 'scegli se la temperatura deve essere mostrata in °C o in °F';
$a->strings['Show weather data'] = 'Mostra dati meteo'; $a->strings['Show weather data'] = 'Mostra dati meteo';
$a->strings['Current Weather Settings'] = 'Impostazioni Meteo';
$a->strings['Save Settings'] = 'Salva Impostazioni';
$a->strings['Caching Interval'] = 'Intervallo di cache'; $a->strings['Caching Interval'] = 'Intervallo di cache';
$a->strings['For how long should the weather data be cached? Choose according your OpenWeatherMap account type.'] = 'Per quanto tempo i dati meteo devono essere memorizzati? Scegli a seconda del tuo tipo di account su OpenWeatherMap.'; $a->strings['For how long should the weather data be cached? Choose according your OpenWeatherMap account type.'] = 'Per quanto tempo i dati meteo devono essere memorizzati? Scegli a seconda del tuo tipo di account su OpenWeatherMap.';
$a->strings['no cache'] = 'nessuna cache'; $a->strings['no cache'] = 'nessuna cache';

View file

@ -5,41 +5,45 @@
# #
# Translators: # Translators:
# fabrixxm <fabrix.xm@gmail.com>, 2014,2018 # fabrixxm <fabrix.xm@gmail.com>, 2014,2018
# Sylke Vicious <silkevicious@gmail.com>, 2020-2021,2023 # Sylke Vicious <silkevicious@gmail.com>, 2020-2021
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: friendica\n" "Project-Id-Version: friendica\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-21 19:17-0500\n" "POT-Creation-Date: 2021-02-01 18:15+0100\n"
"PO-Revision-Date: 2014-06-22 11:41+0000\n" "PO-Revision-Date: 2021-02-16 12:55+0000\n"
"Last-Translator: Sylke Vicious <silkevicious@gmail.com>, 2020-2021,2023\n" "Last-Translator: Sylke Vicious <silkevicious@gmail.com>\n"
"Language-Team: Italian (http://app.transifex.com/Friendica/friendica/language/it/)\n" "Language-Team: Italian (http://www.transifex.com/Friendica/friendica/language/it/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: it\n" "Language: it\n"
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: dwpost.php:43 #: dwpost.php:41
msgid "Post to Dreamwidth" msgid "Post to Dreamwidth"
msgstr "Invia a Dreamwidth" msgstr "Invia a Dreamwidth"
#: dwpost.php:63 #: dwpost.php:72 dwpost.php:76
msgid "Enable Dreamwidth Post Addon"
msgstr "Abilita il componente aggiuntivo di pubblicazione Dreamwidth"
#: dwpost.php:64
msgid "Dreamwidth username"
msgstr "Nome utente Dreamwidth"
#: dwpost.php:65
msgid "Dreamwidth password"
msgstr "Password Dreamwidth"
#: dwpost.php:66
msgid "Post to Dreamwidth by default"
msgstr "Pubblica su dreamwidth per impostazione predefinita"
#: dwpost.php:71
msgid "Dreamwidth Export" msgid "Dreamwidth Export"
msgstr "Esporta Dreamwidth" msgstr "Esporta Dreamwidth"
#: dwpost.php:80
msgid "Enable dreamwidth Post Addon"
msgstr "Abilita il componente aggiuntivo di invio a Dreamwidth"
#: dwpost.php:85
msgid "dreamwidth username"
msgstr "Nome utente Dreamwidth"
#: dwpost.php:90
msgid "dreamwidth password"
msgstr "password Dreamwidth"
#: dwpost.php:95
msgid "Post to dreamwidth by default"
msgstr "Invia sempre a Dreamwidth"
#: dwpost.php:100
msgid "Save Settings"
msgstr "Salva Impostazioni"

View file

@ -3,11 +3,12 @@
if(! function_exists("string_plural_select_it")) { if(! function_exists("string_plural_select_it")) {
function string_plural_select_it($n){ function string_plural_select_it($n){
$n = intval($n); $n = intval($n);
if ($n == 1) { return 0; } else if ($n != 0 && $n % 1000000 == 0) { return 1; } else { return 2; } return intval($n != 1);
}} }}
$a->strings['Post to Dreamwidth'] = 'Invia a Dreamwidth'; $a->strings['Post to Dreamwidth'] = 'Invia a Dreamwidth';
$a->strings['Enable Dreamwidth Post Addon'] = 'Abilita il componente aggiuntivo di pubblicazione Dreamwidth';
$a->strings['Dreamwidth username'] = 'Nome utente Dreamwidth';
$a->strings['Dreamwidth password'] = 'Password Dreamwidth';
$a->strings['Post to Dreamwidth by default'] = 'Pubblica su dreamwidth per impostazione predefinita';
$a->strings['Dreamwidth Export'] = 'Esporta Dreamwidth'; $a->strings['Dreamwidth Export'] = 'Esporta Dreamwidth';
$a->strings['Enable dreamwidth Post Addon'] = 'Abilita il componente aggiuntivo di invio a Dreamwidth';
$a->strings['dreamwidth username'] = 'Nome utente Dreamwidth';
$a->strings['dreamwidth password'] = 'password Dreamwidth';
$a->strings['Post to dreamwidth by default'] = 'Invia sempre a Dreamwidth';
$a->strings['Save Settings'] = 'Salva Impostazioni';

View file

@ -50,11 +50,7 @@ function js_upload_post_init(array &$b)
// list of valid extensions // list of valid extensions
$allowedExtensions = []; $allowedExtensions = [];
foreach (Images::IMAGETYPES as $type) { foreach (Images::IMAGETYPES as $type) {
$extension = image_type_to_extension($type, false); $allowedExtensions[] = image_type_to_extension($type, false);
if ($extension == 'jpeg') {
$allowedExtensions[] = 'jpg';
}
$allowedExtensions[] = $extension;
} }
// max file size in bytes // max file size in bytes
@ -220,9 +216,9 @@ class qqFileUploader
return ['error' => DI::l10n()->t('Uploaded file is empty')]; return ['error' => DI::l10n()->t('Uploaded file is empty')];
} }
// if ($size > $this->sizeLimit) { // if ($size > $this->sizeLimit) {
// return array('error' => DI::l10n()->t('Uploaded file is too large')); // return array('error' => DI::l10n()->t('Uploaded file is too large'));
// } // }
$maximagesize = Strings::getBytesFromShorthand(DI::config()->get('system', 'maximagesize')); $maximagesize = Strings::getBytesFromShorthand(DI::config()->get('system', 'maximagesize'));

View file

@ -5,41 +5,45 @@
# #
# Translators: # Translators:
# fabrixxm <fabrix.xm@gmail.com>, 2014-2015,2018 # fabrixxm <fabrix.xm@gmail.com>, 2014-2015,2018
# Sylke Vicious <silkevicious@gmail.com>, 2021,2023 # Sylke Vicious <silkevicious@gmail.com>, 2021
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: friendica\n" "Project-Id-Version: friendica\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-03 15:49-0400\n" "POT-Creation-Date: 2021-02-01 18:15+0100\n"
"PO-Revision-Date: 2014-06-23 09:44+0000\n" "PO-Revision-Date: 2021-02-16 12:47+0000\n"
"Last-Translator: Sylke Vicious <silkevicious@gmail.com>, 2021,2023\n" "Last-Translator: Sylke Vicious <silkevicious@gmail.com>\n"
"Language-Team: Italian (http://app.transifex.com/Friendica/friendica/language/it/)\n" "Language-Team: Italian (http://www.transifex.com/Friendica/friendica/language/it/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: it\n" "Language: it\n"
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: libertree.php:39 #: libertree.php:37
msgid "Post to libertree" msgid "Post to libertree"
msgstr "Invia a Libertree" msgstr "Invia a Libertree"
#: libertree.php:59 #: libertree.php:71 libertree.php:75
msgid "libertree Export"
msgstr "Esporta libertree"
#: libertree.php:79
msgid "Enable Libertree Post Addon" msgid "Enable Libertree Post Addon"
msgstr "Abilita il componente aggiuntivo di invio a Libertree" msgstr "Abilita il componente aggiuntivo di invio a Libertree"
#: libertree.php:60 #: libertree.php:84
msgid "Libertree site URL"
msgstr "Indirizzo sito Libertree"
#: libertree.php:61
msgid "Libertree API token" msgid "Libertree API token"
msgstr "Token API Libertree" msgstr "Token API Libertree"
#: libertree.php:62 #: libertree.php:89
msgid "Libertree site URL"
msgstr "Indirizzo sito Libertree"
#: libertree.php:94
msgid "Post to Libertree by default" msgid "Post to Libertree by default"
msgstr "Invia sempre a Libertree" msgstr "Invia sempre a Libertree"
#: libertree.php:67 #: libertree.php:100
msgid "Libertree Export" msgid "Save Settings"
msgstr "Esporta Libertree" msgstr "Salva Impostazioni"

View file

@ -3,11 +3,12 @@
if(! function_exists("string_plural_select_it")) { if(! function_exists("string_plural_select_it")) {
function string_plural_select_it($n){ function string_plural_select_it($n){
$n = intval($n); $n = intval($n);
if ($n == 1) { return 0; } else if ($n != 0 && $n % 1000000 == 0) { return 1; } else { return 2; } return intval($n != 1);
}} }}
$a->strings['Post to libertree'] = 'Invia a Libertree'; $a->strings['Post to libertree'] = 'Invia a Libertree';
$a->strings['libertree Export'] = 'Esporta libertree';
$a->strings['Enable Libertree Post Addon'] = 'Abilita il componente aggiuntivo di invio a Libertree'; $a->strings['Enable Libertree Post Addon'] = 'Abilita il componente aggiuntivo di invio a Libertree';
$a->strings['Libertree site URL'] = 'Indirizzo sito Libertree';
$a->strings['Libertree API token'] = 'Token API Libertree'; $a->strings['Libertree API token'] = 'Token API Libertree';
$a->strings['Libertree site URL'] = 'Indirizzo sito Libertree';
$a->strings['Post to Libertree by default'] = 'Invia sempre a Libertree'; $a->strings['Post to Libertree by default'] = 'Invia sempre a Libertree';
$a->strings['Libertree Export'] = 'Esporta Libertree'; $a->strings['Save Settings'] = 'Salva Impostazioni';

View file

@ -5,18 +5,16 @@
# #
# Translators: # Translators:
# Andreas H., 2014 # Andreas H., 2014
# foss <oss@disr.it>, 2022
# Raroun, 2023
# Tobias Diekershoff <tobias.diekershoff@gmx.net>, 2018 # Tobias Diekershoff <tobias.diekershoff@gmx.net>, 2018
# Ulf Rompe <transifex.com@rompe.org>, 2019 # Ulf Rompe <transifex.com@rompe.org>, 2019
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: friendica\n" "Project-Id-Version: friendica\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-21 19:15-0500\n" "POT-Creation-Date: 2018-03-11 19:13+0100\n"
"PO-Revision-Date: 2014-06-23 09:54+0000\n" "PO-Revision-Date: 2019-02-18 15:05+0000\n"
"Last-Translator: Raroun, 2023\n" "Last-Translator: Ulf Rompe <transifex.com@rompe.org>\n"
"Language-Team: German (http://app.transifex.com/Friendica/friendica/language/de/)\n" "Language-Team: German (http://www.transifex.com/Friendica/friendica/language/de/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@ -31,76 +29,72 @@ msgstr "Absender"
msgid "Email address that stream items will appear to be from." msgid "Email address that stream items will appear to be from."
msgstr "E-Mail-Adresse, die in hochgeladenen Artikeln erscheint." msgstr "E-Mail-Adresse, die in hochgeladenen Artikeln erscheint."
#: mailstream.php:82 #: mailstream.php:82 mailstream.php:380
msgid "Save Settings" msgid "Save Settings"
msgstr "Einstellungen speichern" msgstr "Einstellungen speichern"
#: mailstream.php:311 #: mailstream.php:223
msgid "Re:" msgid "Re:"
msgstr "Re:" msgstr "Re:"
#: mailstream.php:324 mailstream.php:327 #: mailstream.php:231
msgid "Friendica post" msgid "Friendica post"
msgstr "Friendica-Veröffentlichung" msgstr "Friendica-Veröffentlichung"
#: mailstream.php:330 #: mailstream.php:234
msgid "Diaspora post" msgid "Diaspora post"
msgstr "Diaspora-Veröffentlichung" msgstr "Diaspora-Veröffentlichung"
#: mailstream.php:340 #: mailstream.php:244
msgid "Feed item" msgid "Feed item"
msgstr "Artikel-Feed" msgstr "Artikel-Feed"
#: mailstream.php:343 #: mailstream.php:247
msgid "Email" msgid "Email"
msgstr "E-Mail" msgstr "E-Mail"
#: mailstream.php:345 #: mailstream.php:249
msgid "Friendica Item" msgid "Friendica Item"
msgstr "Friendica-Artikel" msgstr "Friendica-Artikel"
#: mailstream.php:419 #: mailstream.php:293
msgid "Upstream" msgid "Upstream"
msgstr "Upstream" msgstr "Upstream"
#: mailstream.php:420 #: mailstream.php:294
msgid "URI"
msgstr "URI"
#: mailstream.php:421
msgid "Local" msgid "Local"
msgstr "Lokal" msgstr "Lokal"
#: mailstream.php:499 #: mailstream.php:362
msgid "Enabled" msgid "Enabled"
msgstr "Aktiv" msgstr "eingeschaltet"
#: mailstream.php:504 #: mailstream.php:366
msgid "Email Address" msgid "Email Address"
msgstr "E-Mail-Adresse" msgstr "E-Mail-Adresse"
#: mailstream.php:506 #: mailstream.php:368
msgid "Leave blank to use your account email address" msgid "Leave blank to use your account email address"
msgstr "Leer lassen für deine Konto-E-Mail-Addresse" msgstr "Leer lassen für deine Konto-E-Mail-Addresse"
#: mailstream.php:510 #: mailstream.php:371
msgid "Exclude Likes" msgid "Exclude Likes"
msgstr "Likes ignorieren" msgstr "Likes ignorieren"
#: mailstream.php:512 #: mailstream.php:373
msgid "Check this to omit mailing \"Like\" notifications" msgid "Check this to omit mailing \"Like\" notifications"
msgstr "Diese Option verhindert das Versenden von \"Like\"-Benachrichtigungen per E-Mail." msgstr "Diese Option verhindert das Versenden von \"Like\"-Benachrichtigungen per E-Mail."
#: mailstream.php:516 #: mailstream.php:376
msgid "Attach Images" msgid "Attach Images"
msgstr "Bilder anhängen" msgstr "Bilder anhängen"
#: mailstream.php:518 #: mailstream.php:378
msgid "" msgid ""
"Download images in posts and attach them to the email. Useful for reading " "Download images in posts and attach them to the email. Useful for reading "
"email while offline." "email while offline."
msgstr "Sollen Bilder, die im Beitrag eingebettet sind, als Dateianhang in den E-Mails verschickt werden?" msgstr "Sollen Bilder, die im Beitrag eingebettet sind, als Dateianhang in den E-Mails verschickt werden?"
#: mailstream.php:525 #: mailstream.php:379
msgid "Mail Stream Settings" msgid "Mail Stream Settings"
msgstr "Mail-Nachrichten-Einstellungen" msgstr "Mail-Nachrichten-Einstellungen"

View file

@ -15,9 +15,8 @@ $a->strings['Feed item'] = 'Artikel-Feed';
$a->strings['Email'] = 'E-Mail'; $a->strings['Email'] = 'E-Mail';
$a->strings['Friendica Item'] = 'Friendica-Artikel'; $a->strings['Friendica Item'] = 'Friendica-Artikel';
$a->strings['Upstream'] = 'Upstream'; $a->strings['Upstream'] = 'Upstream';
$a->strings['URI'] = 'URI';
$a->strings['Local'] = 'Lokal'; $a->strings['Local'] = 'Lokal';
$a->strings['Enabled'] = 'Aktiv'; $a->strings['Enabled'] = 'eingeschaltet';
$a->strings['Email Address'] = 'E-Mail-Adresse'; $a->strings['Email Address'] = 'E-Mail-Adresse';
$a->strings['Leave blank to use your account email address'] = 'Leer lassen für deine Konto-E-Mail-Addresse'; $a->strings['Leave blank to use your account email address'] = 'Leer lassen für deine Konto-E-Mail-Addresse';
$a->strings['Exclude Likes'] = 'Likes ignorieren'; $a->strings['Exclude Likes'] = 'Likes ignorieren';

View file

@ -220,11 +220,6 @@ function mailstream_do_images(array &$item, array &$attachments)
$cookiejar = tempnam(System::getTempPath(), 'cookiejar-mailstream-'); $cookiejar = tempnam(System::getTempPath(), 'cookiejar-mailstream-');
try { try {
$curlResult = DI::httpClient()->fetchFull($url, HttpClientAccept::DEFAULT, 0, $cookiejar); $curlResult = DI::httpClient()->fetchFull($url, HttpClientAccept::DEFAULT, 0, $cookiejar);
if (!$curlResult->isSuccess()) {
Logger::debug('mailstream: fetch image url failed', [
'url' => $url, 'item_id' => $item['id'], 'return_code' => $curlResult->getReturnCode()]);
continue;
}
} catch (InvalidArgumentException $e) { } catch (InvalidArgumentException $e) {
Logger::error('mailstream_do_images exception fetching url', ['url' => $url, 'item_id' => $item['id']]); Logger::error('mailstream_do_images exception fetching url', ['url' => $url, 'item_id' => $item['id']]);
continue; continue;

View file

@ -4,7 +4,7 @@
# #
# #
# Translators: # Translators:
# cracrayol, 2023-2024 # Florent C., 2023
# Nicolas Derive, 2022-2023 # Nicolas Derive, 2022-2023
# StefOfficiel <pichard.stephane@free.fr>, 2015 # StefOfficiel <pichard.stephane@free.fr>, 2015
# Vincent Vindarel <vindarel@mailz.org>, 2018 # Vincent Vindarel <vindarel@mailz.org>, 2018
@ -14,7 +14,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-12-10 14:42-0500\n" "POT-Creation-Date: 2022-12-10 14:42-0500\n"
"PO-Revision-Date: 2014-06-23 10:34+0000\n" "PO-Revision-Date: 2014-06-23 10:34+0000\n"
"Last-Translator: cracrayol, 2023-2024\n" "Last-Translator: Florent C., 2023\n"
"Language-Team: French (http://app.transifex.com/Friendica/friendica/language/fr/)\n" "Language-Team: French (http://app.transifex.com/Friendica/friendica/language/fr/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -42,7 +42,7 @@ msgstr "Liste de mots-clés - séparés par des virgules - à cacher"
msgid "" msgid ""
"Use /expression/ to provide regular expressions, #tag to specfically match " "Use /expression/ to provide regular expressions, #tag to specfically match "
"hashtags (case-insensitive), or regular words (case-sensitive)" "hashtags (case-insensitive), or regular words (case-sensitive)"
msgstr "Utiliser /expression/ pour fournir des expressions régulières, #etiquette pour correspondre à une étiquette (insensible à la casse), ou des mots classiques (sensible à la casse)" msgstr "Utiliser /expression/ pour fournir des expressions régulières, #tag pour correspondre à un tag (insensible à la casse), ou des mots classiques (sensible à la casse)"
#: nsfw.php:72 #: nsfw.php:72
msgid "Content Filter (NSFW and more)" msgid "Content Filter (NSFW and more)"

View file

@ -8,7 +8,7 @@ function string_plural_select_fr($n){
$a->strings['This addon searches for specified words/text in posts and collapses them. It can be used to filter content tagged with for instance #NSFW that may be deemed inappropriate at certain times or places, such as being at work. It is also useful for hiding irrelevant or annoying content from direct view.'] = 'Cette extension recherche des mots/textes spécifiés dans les publications et les masque. Elle peut être utilisée pour filtrer le contenu étiqueté par exemple avec #NSFW qui peut être considéré comme inapproprié à certains moments ou endroits, comme par exemple au travail. Elle est aussi utile pour cacher du contenu non pertinent ou ennuyeux d\'une vue directe.'; $a->strings['This addon searches for specified words/text in posts and collapses them. It can be used to filter content tagged with for instance #NSFW that may be deemed inappropriate at certain times or places, such as being at work. It is also useful for hiding irrelevant or annoying content from direct view.'] = 'Cette extension recherche des mots/textes spécifiés dans les publications et les masque. Elle peut être utilisée pour filtrer le contenu étiqueté par exemple avec #NSFW qui peut être considéré comme inapproprié à certains moments ou endroits, comme par exemple au travail. Elle est aussi utile pour cacher du contenu non pertinent ou ennuyeux d\'une vue directe.';
$a->strings['Enable Content filter'] = 'Activer le filtrage de contenu'; $a->strings['Enable Content filter'] = 'Activer le filtrage de contenu';
$a->strings['Comma separated list of keywords to hide'] = 'Liste de mots-clés - séparés par des virgules - à cacher'; $a->strings['Comma separated list of keywords to hide'] = 'Liste de mots-clés - séparés par des virgules - à cacher';
$a->strings['Use /expression/ to provide regular expressions, #tag to specfically match hashtags (case-insensitive), or regular words (case-sensitive)'] = 'Utiliser /expression/ pour fournir des expressions régulières, #etiquette pour correspondre à une étiquette (insensible à la casse), ou des mots classiques (sensible à la casse)'; $a->strings['Use /expression/ to provide regular expressions, #tag to specfically match hashtags (case-insensitive), or regular words (case-sensitive)'] = 'Utiliser /expression/ pour fournir des expressions régulières, #tag pour correspondre à un tag (insensible à la casse), ou des mots classiques (sensible à la casse)';
$a->strings['Content Filter (NSFW and more)'] = 'Filtre de contenu (NSFW et autres)'; $a->strings['Content Filter (NSFW and more)'] = 'Filtre de contenu (NSFW et autres)';
$a->strings['Regular expression "%s" fails to compile'] = 'La compilation de l\'expression régulière "%s" a échoué'; $a->strings['Regular expression "%s" fails to compile'] = 'La compilation de l\'expression régulière "%s" a échoué';
$a->strings['Filtered tag: %s'] = 'Tag filtré : %s'; $a->strings['Filtered tag: %s'] = 'Tag filtré : %s';

206
ratioed/RatioedPanel.php Normal file
View file

@ -0,0 +1,206 @@
<?php
namespace Friendica\Addon\ratioed;
use Friendica\Content\Pager;
use Friendica\Core\Logger;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
use Friendica\Model\User;
use Friendica\Module\Moderation\Users\Active;
/**
* This class implements the "Behaviour" panel in Moderation/Users
*/
class RatioedPanel extends Active
{
protected function content(array $request = []): string
{
Active::content();
$action = $this->parameters['action'] ?? '';
$uid = $this->parameters['uid'] ?? 0;
if ($uid) {
$user = User::getById($uid, ['username', 'blocked']);
if (!$user) {
$this->systemMessages->addNotice($this->t('User not found'));
$this->baseUrl->redirect('moderation/users');
}
}
switch ($action) {
case 'delete':
if ($this->session->getLocalUserId() != $uid) {
self::checkFormSecurityTokenRedirectOnError('moderation/users/active', 'moderation_users_active', 't');
// delete user
User::remove($uid);
$this->systemMessages->addNotice($this->t('User "%s" deleted', $user['username']));
} else {
$this->systemMessages->addNotice($this->t('You can\'t remove yourself'));
}
$this->baseUrl->redirect('moderation/users/active');
break;
case 'block':
self::checkFormSecurityTokenRedirectOnError('moderation/users/active', 'moderation_users_active', 't');
User::block($uid);
$this->systemMessages->addNotice($this->t('User "%s" blocked', $user['username']));
$this->baseUrl->redirect('moderation/users/active');
break;
}
$pager = new Pager($this->l10n, $this->args->getQueryString(), 100);
$valid_orders = [
'name',
'email',
'register_date',
'last-activity',
'last-item',
'page-flags',
];
$order = 'last-item';
$order_direction = '-';
if (!empty($request['o'])) {
$new_order = $request['o'];
if ($new_order[0] === '-') {
$order_direction = '-';
$new_order = substr($new_order, 1);
}
if (in_array($new_order, $valid_orders)) {
$order = $new_order;
}
}
$users = User::getList($pager->getStart(), $pager->getItemsPerPage(), 'active', $order, ($order_direction == '-'));
$users = array_map($this->setupUserCallback(), $users);
$header_titles = [
$this->t('Name'),
$this->t('Email'),
$this->t('Register date'),
$this->t('Last login'),
$this->t('Last public item'),
$this->t('Type'),
$this->t('Blocked by'),
$this->t('Comments last 24h'),
$this->t('Reactions last 24h'),
$this->t('Ratio last 24h'),
];
$field_names = [
'name',
'email',
'register_date',
'login_date',
'lastitem_date',
'page_flags',
'blocked_by',
'comments',
'reactions',
'ratio',
];
$th_users = array_map(null, $header_titles, $valid_orders, $field_names);
$count = $this->database->count('user', ["`verified` AND NOT `blocked` AND NOT `account_removed` AND NOT `account_expired` AND `uid` != ?", 0]);
$t = Renderer::getMarkupTemplate('ratioed.tpl', 'addon/ratioed');
return self::getTabsHTML('ratioed') . Renderer::replaceMacros($t, [
// strings //
'$title' => $this->t('Moderation'),
'$page' => $this->t('Behaviour'),
'$select_all' => $this->t('select all'),
'$delete' => $this->t('Delete'),
'$block' => $this->t('Block'),
'$blocked' => $this->t('User blocked'),
'$siteadmin' => $this->t('Site admin'),
'$accountexpired' => $this->t('Account expired'),
'$h_newuser' => $this->t('Create a new user'),
'$th_users' => $th_users,
'$order_users' => $order,
'$order_direction_users' => $order_direction,
'$confirm_delete_multi' => $this->t('Selected users will be deleted!\n\nEverything these users had posted on this site will be permanently deleted!\n\nAre you sure?'),
'$confirm_delete' => $this->t('The user {0} will be deleted!\n\nEverything this user has posted on this site will be permanently deleted!\n\nAre you sure?'),
'$form_security_token' => self::getFormSecurityToken('moderation_users_active'),
// values //
'$baseurl' => $this->baseUrl,
'$query_string' => $this->args->getQueryString(),
'$users' => $users,
'$count' => $count,
'$pager' => $pager->renderFull($count),
]);
}
protected function setupUserCallback(): \Closure
{
Logger::debug("ratioed: setupUserCallback");
$parentCallback = parent::setupUserCallback();
return function ($user) use ($parentCallback) {
$blocked_count = DBA::count('user-contact', ['uid' => $user['uid'], 'is-blocked' => 1]);
$user['blocked_by'] = $blocked_count;
$self_contact_result = DBA::p('SELECT admin_contact.id AS user_contact_uid FROM contact AS admin_contact JOIN contact AS user_contact ON admin_contact.`uri-id` = user_contact.`uri-id` AND admin_contact.self = 0 AND user_contact.self = 1 WHERE user_contact.uid = ?', $user['uid']);
if (DBA::isResult($self_contact_result)) {
$self_contact_result_row = DBA::fetch($self_contact_result);
$user['user_contact_uid'] = $self_contact_result_row['user_contact_uid'];
}
else {
$user['user_contact_uid'] = NULL;
}
if ($user['user_contact_uid']) {
$post_engagement_result = DBA::p('SELECT SUM(`comments`) AS `comment_count`, SUM(`activities`) AS `activities_count` FROM `post-engagement` WHERE `post-engagement`.created > DATE_SUB(now(), INTERVAL 1 DAY) AND `post-engagement`.`owner-id` = ?', $user['user_contact_uid']);
if (DBA::isResult($post_engagement_result)) {
$post_engagement_result_row = DBA::fetch($post_engagement_result);
$user['comments'] = $post_engagement_result_row['comment_count'];
$user['reactions'] = $post_engagement_result_row['activities_count'];
if ($user['reactions'] > 0) {
$user['ratio'] = number_format($user['comments'] / $user['reactions'], 1, '.', '');
$user['ratioed'] = (float)($user['ratio']) >= 2.0;
}
else {
if ($user['comments'] == 0) {
$user['ratio'] = '0';
$user['ratioed'] = false;
}
else {
$user['ratio'] = '∞';
$user['ratioed'] = false;
}
}
}
else {
$user['comments'] = 'error';
$user['reactions'] = 'error';
$user['ratio'] = 'error';
$user['ratioed'] = false;
}
}
else {
$user['comments'] = 'error';
$user['reactions'] = 'error';
$user['ratio'] = 'error';
$user['ratioed'] = false;
}
$user = $parentCallback($user);
Logger::debug("ratioed: setupUserCallback", [
'uid' => $user['uid'],
'blocked_by' => $user['blocked_by'],
'comments' => $user['comments'],
'reactions' => $user['reactions'],
'ratio' => $user['ratio'],
'ratioed' => $user['ratioed'],
]);
return $user;
};
}
}

58
ratioed/ratioed.php Normal file
View file

@ -0,0 +1,58 @@
<?php
/**
* Name: Ratioed
* Description: Additional moderation user table with statistics about user behaviour
* Version: 0.1
* Author: Matthew Exon <http://mat.exon.name>
*/
use Friendica\Addon\ratioed\RatioedPanel;
use Friendica\Core\Hook;
use Friendica\Core\Logger;
use Friendica\DI;
/**
* Sets up the addon hooks and updates data in the database if needed
*/
function ratioed_install()
{
Hook::register('moderation_users_tabs', 'addon/ratioed/ratioed.php', 'ratioed_users_tabs');
Logger::info("ratioed: installed");
}
/**
* This is a statement rather than an actual function definition. The simple
* existence of this method is checked to figure out if the addon offers a
* module.
*/
function ratioed_module() {}
/**
* @brief Adds additional users tab to the moderation panel
*
* @param array $arr Parameters, including "tabs" which is the list to modify, and "selectedTab", which is the currently selected tab ID
*/
function ratioed_users_tabs(array &$arr) {
Logger::debug("ratioed: users tabs");
array_push($arr['tabs'], [
'label' => DI::l10n()->t('Behaviour'),
'url' => 'ratioed',
'sel' => $arr['selectedTab'] == 'ratioed' ? 'active' : '',
'title' => DI::l10n()->t('Statistics about users behaviour'),
'id' => 'admin-users-ratioed',
'accesskey' => 'r',
]);
}
/**
* @brief Displays the ratioed tab in the moderation panel
*/
function ratioed_content() {
Logger::debug("ratioed: content");
$ratioed = DI::getDice()->create(RatioedPanel::class, [$_SERVER]);
$httpException = DI::getDice()->create(Friendica\Module\Special\HTTPException::class);
$ratioed->run($httpException);
}

View file

@ -0,0 +1,164 @@
<script type="text/javascript" src="view/theme/frio/js/mod_admin.js?v={{constant('\Friendica\App::VERSION')}}"></script>
<link rel="stylesheet" href="view/theme/frio/css/mod_admin.css?v={{constant('\Friendica\App::VERSION')}}" type="text/css" media="screen"/>
<div id="admin-users" class="adminpage generic-page-wrapper">
<h1>{{$title}} - {{$page}} ({{$count}})</h1>
<p>
<a href="{{$base_url}}/moderation/users/create" class="btn btn-primary"><i class="fa fa-user-plus"></i> {{$h_newuser}}</a>
</p>
<form action="{{$baseurl}}/{{$query_string}}" method="post">
<input type="hidden" name="form_security_token" value="{{$form_security_token}}">
<table id="users" class="table table-hover">
<thead>
<tr>
<th>
<div class="checkbox">
<input type="checkbox" id="admin-settings-users-select" class="selecttoggle" data-select-class="users_ckbx"/>
<label for="admin-settings-users-select"></label>
</div>
</th>
<th></th>
{{foreach $th_users as $k=>$th}}
{{if $k < 2 || $order_users == $th.1 || ($k==5 && !in_array($order_users,[$th_users.2.1, $th_users.3.1, $th_users.4.1])) }}
<th class="th-{{$k}}">
<a href="{{$baseurl}}/moderation/users/active?o={{if $order_direction_users == "+"}}-{{/if}}{{$th.1}}" class="table-order">
{{if $order_users == $th.1}}
{{if $order_direction_users == "+"}}
&#8595;
{{else}}
&#8593;
{{/if}}
{{else}}
&#8597;
{{/if}}
{{$th.0}}
</a>
</th>
{{/if}}
{{/foreach}}
<th></th>
</tr>
</thead>
<tbody>
{{foreach $users as $u}}
<tr id="user-{{$u.uid}}" class="{{if $u.ratioed}}blocked{{/if}}">
<td>
{{if $u.is_deletable}}
<div class="checkbox">
<input type="checkbox" class="users_ckbx" id="id_user_{{$u.uid}}" name="user[]" value="{{$u.uid}}"/>
<label for="id_user_{{$u.uid}}"></label>
</div>
{{else}}
&nbsp;
{{/if}}
</td>
<td><img class="avatar-nano" src="{{$u.micro}}" title="{{$u.nickname}}"></td>
<td><a href="{{$u.url}}" title="{{$u.nickname}}"> {{$u.name}}</a></td>
<td>{{$u.email}}</td>
{{if $order_users == $th_users.2.1}}
<td>{{$u.register_date}}</td>
{{/if}}
{{if $order_users == $th_users.3.1}}
<td>{{$u.login_date}}</td>
{{/if}}
{{if $order_users == $th_users.4.1}}
<td>{{$u.lastitem_date}}</td>
{{/if}}
{{if !in_array($order_users,[$th_users.2.1, $th_users.3.1, $th_users.4.1]) }}
<td>
<i class="fa
{{if $u.page_flags_raw==0}}fa-user{{/if}} {{* PAGE_NORMAL *}}
{{if $u.page_flags_raw==1}}fa-bullhorn{{/if}} {{* PAGE_SOAPBOX *}}
{{if $u.page_flags_raw==2}}fa-users{{/if}} {{* PAGE_COMMUNITY *}}
{{if $u.page_flags_raw==3}}fa-heart{{/if}} {{* PAGE_FREELOVE *}}
{{if $u.page_flags_raw==4}}fa-rss{{/if}} {{* PAGE_BLOG *}}
{{if $u.page_flags_raw==5}}fa-user-secret{{/if}} {{* PAGE_PRVGROUP *}}
" title="{{$u.page_flags}}">
</i>
{{if $u.page_flags_raw==0 && $u.account_type_raw > 0}}
<i class="fa
{{if $u.account_type_raw==1}}fa-sitemap{{/if}} {{* ACCOUNT_TYPE_ORGANISATION *}}
{{if $u.account_type_raw==2}}fa-newspaper-o{{/if}} {{* ACCOUNT_TYPE_NEWS *}}
{{if $u.account_type_raw==3}}fa-comments{{/if}} {{* ACCOUNT_TYPE_COMMUNITY *}}
" title="{{$u.account_type}}">
</i>
{{/if}}
{{if $u.is_admin}}<i class="fa fa-user-secret text-primary" title="{{$siteadmin}}"></i>{{/if}}
{{if $u.account_expired}}<i class="fa fa-clock-o text-warning" title="{{$accountexpired}}"></i>{{/if}}
</td>
{{/if}}
<td class="text-right">
<button type="button" class="btn-link admin-settings-action-link" onclick="return details({{$u.uid}})"><span class="caret"></span></button>
</td>
</tr>
<tr id="user-{{$u.uid}}-detail" class=" details hidden {{if $u.blocked != 0}}blocked{{/if}}">
<td>&nbsp;</td>
<td colspan="4">
{{if $order_users != $th_users.2.1}}
<p>
<a href="{{$baseurl}}/ratioed?o={{if $order_direction_users == "+"}}-{{/if}}{{$th_users.2.1}}" class="btn-link table-order">
&#8597; {{$th_users.2.0}}</a> : {{$u.register_date}}
</p>
{{/if}}
{{if $order_users != $th_users.3.1}}
<p>
<a href="{{$baseurl}}/ratioed?o={{if $order_direction_users == "+"}}-{{/if}}{{$th_users.3.1}}" class="btn-link table-order">
&#8597; {{$th_users.3.0}}</a> : {{$u.login_date}}
</p>
{{/if}}
{{if $order_users != $th_users.4.1}}
<p>
<a href="{{$baseurl}}/ratioed?o={{if $order_direction_users == "+"}}-{{/if}}{{$th_users.4.1}}" class="btn-link table-order">
&#8597; {{$th_users.4.0}}</a> : {{$u.lastitem_date}}
</p>
{{/if}}
{{if in_array($order_users,[$th_users.2.1, $th_users.3.1, $th_users.4.1]) }}
<p>
<a href="{{$baseurl}}/ratioed?o={{if $order_direction_users == "+"}}-{{/if}}{{$th_users.5.1}}" class="btn-link table-order">
&#8597; {{$th_users.5.0}}</a> : {{$u.page_flags}}{{if $u.page_flags_raw==0 && $u.account_type_raw > 0}}, {{$u.account_type}}{{/if}} {{if $u.is_admin}}({{$siteadmin}}){{/if}} {{if $u.account_expired}}({{$accountexpired}}){{/if}}
</p>
{{/if}}
{{foreach $th_users as $k=>$th}}
{{if $order_users != $th.1 && $k > 5}}
<p>
{{$th.0}} : {{$u[$th.2]}}
</p>
{{/if}}
{{/foreach}}
</td>
<td class="text-right">
{{if $u.is_deletable}}
<a href="{{$baseurl}}/moderation/users/active/block/{{$u.uid}}?t={{$form_security_token}}" class="admin-settings-action-link" title="{{$block}}">
<i class="fa fa-ban" aria-hidden="true"></i>
</a>
<a href="{{$baseurl}}/moderation/users/active/delete/{{$u.uid}}?t={{$form_security_token}}" class="admin-settings-action-link" title="{{$delete}}" onclick="return confirm_delete('{{$confirm_delete}}','{{$u.name}}')">
<i class="fa fa-trash" aria-hidden="true"></i>
</a>
{{else}}
&nbsp;
{{/if}}
</td>
</tr>
{{/foreach}}
</tbody>
</table>
<div class="panel-footer">
<button type="submit" name="page_users_block" value="1" class="btn btn-warning">
<i class="fa fa-ban" aria-hidden="true"></i> {{$block}}
</button>
<button type="submit" name="page_users_delete" value="1" class="btn btn-danger" onclick="return confirm_delete('{{$confirm_delete_multi}}')">
<i class="fa fa-trash" aria-hidden="true"></i> {{$delete}}
</button>
</div>
{{$pager nofilter}}
</form>
</div>

View file

@ -5,7 +5,7 @@
# #
# Translators: # Translators:
# Hypolite Petovan <hypolite@mrpetovan.com>, 2022 # Hypolite Petovan <hypolite@mrpetovan.com>, 2022
# cracrayol, 2024 # Florent C., 2023
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
@ -14,7 +14,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-21 19:16-0500\n" "POT-Creation-Date: 2021-11-21 19:16-0500\n"
"PO-Revision-Date: 2018-03-20 07:26+0000\n" "PO-Revision-Date: 2018-03-20 07:26+0000\n"
"Last-Translator: cracrayol, 2024\n" "Last-Translator: Florent C., 2023\n"
"Language-Team: French (https://app.transifex.com/Friendica/teams/12172/fr/)\n" "Language-Team: French (https://app.transifex.com/Friendica/teams/12172/fr/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -24,7 +24,7 @@ msgstr ""
#: securemail.php:50 #: securemail.php:50
msgid "Enable Secure Mail" msgid "Enable Secure Mail"
msgstr "Activer l'extension des courriels sécurisés" msgstr "Activer l'extension des emails sécurisés"
#: securemail.php:51 #: securemail.php:51
msgid "Public key" msgid "Public key"
@ -36,7 +36,7 @@ msgstr "Votre clé publique PGP formatée compatible ASCII"
#: securemail.php:56 #: securemail.php:56
msgid "\"Secure Mail\" Settings" msgid "\"Secure Mail\" Settings"
msgstr "Paramètres des courriels sécurisés" msgstr "Paramètres des emails sécurisés"
#: securemail.php:59 #: securemail.php:59
msgid "Save Settings" msgid "Save Settings"

View file

@ -5,10 +5,10 @@ function string_plural_select_fr($n){
$n = intval($n); $n = intval($n);
if (($n == 0 || $n == 1)) { return 0; } else if ($n != 0 && $n % 1000000 == 0) { return 1; } else { return 2; } if (($n == 0 || $n == 1)) { return 0; } else if ($n != 0 && $n % 1000000 == 0) { return 1; } else { return 2; }
}} }}
$a->strings['Enable Secure Mail'] = 'Activer l\'extension des courriels sécurisés'; $a->strings['Enable Secure Mail'] = 'Activer l\'extension des emails sécurisés';
$a->strings['Public key'] = 'Clé publique'; $a->strings['Public key'] = 'Clé publique';
$a->strings['Your public PGP key, ascii armored format'] = 'Votre clé publique PGP formatée compatible ASCII'; $a->strings['Your public PGP key, ascii armored format'] = 'Votre clé publique PGP formatée compatible ASCII';
$a->strings['"Secure Mail" Settings'] = 'Paramètres des courriels sécurisés'; $a->strings['"Secure Mail" Settings'] = 'Paramètres des emails sécurisés';
$a->strings['Save Settings'] = 'Enregistrer les paramètres'; $a->strings['Save Settings'] = 'Enregistrer les paramètres';
$a->strings['Save and send test'] = 'Enregistrer et envoyer un message de test'; $a->strings['Save and send test'] = 'Enregistrer et envoyer un message de test';
$a->strings['Test email sent'] = 'Courriel de test envoyé avec succès'; $a->strings['Test email sent'] = 'Courriel de test envoyé avec succès';

View file

@ -8,81 +8,64 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: friendica\n" "Project-Id-Version: friendica\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-29 06:56+0000\n" "POT-Creation-Date: 2021-07-25 13:15+0000\n"
"PO-Revision-Date: 2014-06-23 12:58+0000\n" "PO-Revision-Date: 2021-02-20 00:23+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: Farida Khalaf <faridakhalaf@hotmail.com>\n"
"Language-Team: Arabic (http://app.transifex.com/Friendica/friendica/language/ar/)\n" "Language-Team: Arabic (http://www.transifex.com/Friendica/friendica/language/ar/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: ar\n" "Language: ar\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#: tumblr.php:243 #: tumblr.php:40
msgid "Permission denied." msgid "Permission denied."
msgstr "الطلب مرفوض." msgstr "الطلب مرفوض."
#: tumblr.php:296 #: tumblr.php:70 tumblr.php:284
msgid "Save Settings" msgid "Save Settings"
msgstr "Save Settings" msgstr "Save Settings"
#: tumblr.php:297 #: tumblr.php:72
msgid "Consumer Key" msgid "Consumer Key"
msgstr "" msgstr ""
#: tumblr.php:298 #: tumblr.php:73
msgid "Consumer Secret" msgid "Consumer Secret"
msgstr "" msgstr ""
#: tumblr.php:299 #: tumblr.php:178
msgid "Maximum tags" msgid "You are now authenticated to tumblr."
msgstr "" msgstr ""
#: tumblr.php:299 #: tumblr.php:179
msgid "" msgid "return to the connector page"
"Maximum number of tags that a user can follow. Enter 0 to deactivate the " msgstr "الرجوع إلى صفحة الموصل"
"feature."
#: tumblr.php:195
msgid "Post to Tumblr"
msgstr "" msgstr ""
#: tumblr.php:336 #: tumblr.php:225 tumblr.php:229
msgid "Post to page:" msgid "Tumblr Export"
msgstr "" msgstr ""
#: tumblr.php:342 #: tumblr.php:233
msgid "(Re-)Authenticate your tumblr page" msgid "(Re-)Authenticate your tumblr page"
msgstr "" msgstr ""
#: tumblr.php:343 #: tumblr.php:237
msgid "You are not authenticated to tumblr"
msgstr ""
#: tumblr.php:348
msgid "Enable Tumblr Post Addon" msgid "Enable Tumblr Post Addon"
msgstr "" msgstr ""
#: tumblr.php:349 #: tumblr.php:243
msgid "Post to Tumblr by default" msgid "Post to Tumblr by default"
msgstr "" msgstr ""
#: tumblr.php:350 #: tumblr.php:264
msgid "Import the remote timeline" msgid "Post to page:"
msgstr "" msgstr ""
#: tumblr.php:351 #: tumblr.php:278
msgid "Subscribed tags" msgid "You are not authenticated to tumblr"
msgstr ""
#: tumblr.php:351
#, php-format
msgid ""
"Comma separated list of up to %d tags that will be imported additionally to "
"the timeline"
msgstr ""
#: tumblr.php:357
msgid "Tumblr Import/Export"
msgstr ""
#: tumblr.php:375
msgid "Post to Tumblr"
msgstr "" msgstr ""

View file

@ -7,3 +7,4 @@ function string_plural_select_ar($n){
}} }}
$a->strings['Permission denied.'] = 'الطلب مرفوض.'; $a->strings['Permission denied.'] = 'الطلب مرفوض.';
$a->strings['Save Settings'] = 'Save Settings'; $a->strings['Save Settings'] = 'Save Settings';
$a->strings['return to the connector page'] = 'الرجوع إلى صفحة الموصل';

View file

@ -11,7 +11,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: friendica\n" "Project-Id-Version: friendica\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-29 06:56+0000\n" "POT-Creation-Date: 2021-11-21 19:17-0500\n"
"PO-Revision-Date: 2014-06-23 12:58+0000\n" "PO-Revision-Date: 2014-06-23 12:58+0000\n"
"Last-Translator: Aditoo, 2018\n" "Last-Translator: Aditoo, 2018\n"
"Language-Team: Czech (http://app.transifex.com/Friendica/friendica/language/cs/)\n" "Language-Team: Czech (http://app.transifex.com/Friendica/friendica/language/cs/)\n"
@ -21,71 +21,54 @@ msgstr ""
"Language: cs\n" "Language: cs\n"
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n" "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
#: tumblr.php:243 #: tumblr.php:39
msgid "Permission denied." msgid "Permission denied."
msgstr "Přístup odmítnut." msgstr "Přístup odmítnut."
#: tumblr.php:296 #: tumblr.php:69
msgid "Save Settings" msgid "Save Settings"
msgstr "" msgstr ""
#: tumblr.php:297 #: tumblr.php:71
msgid "Consumer Key" msgid "Consumer Key"
msgstr "" msgstr ""
#: tumblr.php:298 #: tumblr.php:72
msgid "Consumer Secret" msgid "Consumer Secret"
msgstr "" msgstr ""
#: tumblr.php:299 #: tumblr.php:177
msgid "Maximum tags" msgid "You are now authenticated to tumblr."
msgstr "" msgstr "Nyní jste přihlášen/a k Tumblr."
#: tumblr.php:299 #: tumblr.php:178
msgid "" msgid "return to the connector page"
"Maximum number of tags that a user can follow. Enter 0 to deactivate the " msgstr "návrat ke stránce konektor"
"feature."
msgstr ""
#: tumblr.php:336 #: tumblr.php:194
msgid "Post to Tumblr"
msgstr "Posílat na Tumblr"
#: tumblr.php:225
msgid "Post to page:" msgid "Post to page:"
msgstr "Posílat na stránku:" msgstr "Posílat na stránku:"
#: tumblr.php:342 #: tumblr.php:231
msgid "(Re-)Authenticate your tumblr page" msgid "(Re-)Authenticate your tumblr page"
msgstr "(Znovu) přihlásit k Vaší stránce Tumblr" msgstr "(Znovu) přihlásit k Vaší stránce Tumblr"
#: tumblr.php:343 #: tumblr.php:232
msgid "You are not authenticated to tumblr" msgid "You are not authenticated to tumblr"
msgstr "Nyní nejste přihlášen/a k Tumblr." msgstr "Nyní nejste přihlášen/a k Tumblr."
#: tumblr.php:348 #: tumblr.php:237
msgid "Enable Tumblr Post Addon" msgid "Enable Tumblr Post Addon"
msgstr "Povolit doplněk Tumblr Post" msgstr "Povolit doplněk Tumblr Post"
#: tumblr.php:349 #: tumblr.php:238
msgid "Post to Tumblr by default" msgid "Post to Tumblr by default"
msgstr "Ve výchozím stavu posílat příspěvky na Tumblr" msgstr "Ve výchozím stavu posílat příspěvky na Tumblr"
#: tumblr.php:350 #: tumblr.php:244
msgid "Import the remote timeline" msgid "Tumblr Export"
msgstr "" msgstr ""
#: tumblr.php:351
msgid "Subscribed tags"
msgstr ""
#: tumblr.php:351
#, php-format
msgid ""
"Comma separated list of up to %d tags that will be imported additionally to "
"the timeline"
msgstr ""
#: tumblr.php:357
msgid "Tumblr Import/Export"
msgstr ""
#: tumblr.php:375
msgid "Post to Tumblr"
msgstr "Posílat na Tumblr"

View file

@ -6,9 +6,11 @@ function string_plural_select_cs($n){
if (($n == 1 && $n % 1 == 0)) { return 0; } else if (($n >= 2 && $n <= 4 && $n % 1 == 0)) { return 1; } else if (($n % 1 != 0 )) { return 2; } else { return 3; } if (($n == 1 && $n % 1 == 0)) { return 0; } else if (($n >= 2 && $n <= 4 && $n % 1 == 0)) { return 1; } else if (($n % 1 != 0 )) { return 2; } else { return 3; }
}} }}
$a->strings['Permission denied.'] = 'Přístup odmítnut.'; $a->strings['Permission denied.'] = 'Přístup odmítnut.';
$a->strings['You are now authenticated to tumblr.'] = 'Nyní jste přihlášen/a k Tumblr.';
$a->strings['return to the connector page'] = 'návrat ke stránce konektor';
$a->strings['Post to Tumblr'] = 'Posílat na Tumblr';
$a->strings['Post to page:'] = 'Posílat na stránku:'; $a->strings['Post to page:'] = 'Posílat na stránku:';
$a->strings['(Re-)Authenticate your tumblr page'] = '(Znovu) přihlásit k Vaší stránce Tumblr'; $a->strings['(Re-)Authenticate your tumblr page'] = '(Znovu) přihlásit k Vaší stránce Tumblr';
$a->strings['You are not authenticated to tumblr'] = 'Nyní nejste přihlášen/a k Tumblr.'; $a->strings['You are not authenticated to tumblr'] = 'Nyní nejste přihlášen/a k Tumblr.';
$a->strings['Enable Tumblr Post Addon'] = 'Povolit doplněk Tumblr Post'; $a->strings['Enable Tumblr Post Addon'] = 'Povolit doplněk Tumblr Post';
$a->strings['Post to Tumblr by default'] = 'Ve výchozím stavu posílat příspěvky na Tumblr'; $a->strings['Post to Tumblr by default'] = 'Ve výchozím stavu posílat příspěvky na Tumblr';
$a->strings['Post to Tumblr'] = 'Posílat na Tumblr';

View file

@ -4,8 +4,6 @@
# #
# #
# Translators: # Translators:
# Raroun, 2023
# Raroun, 2023
# Tobias Diekershoff <tobias.diekershoff@gmx.net>, 2014-2015 # Tobias Diekershoff <tobias.diekershoff@gmx.net>, 2014-2015
# Tobias Diekershoff <tobias.diekershoff@gmx.net>, 2018,2021 # Tobias Diekershoff <tobias.diekershoff@gmx.net>, 2018,2021
# Ulf Rompe <transifex.com@rompe.org>, 2019 # Ulf Rompe <transifex.com@rompe.org>, 2019
@ -13,9 +11,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: friendica\n" "Project-Id-Version: friendica\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-29 06:56+0000\n" "POT-Creation-Date: 2021-11-21 19:17-0500\n"
"PO-Revision-Date: 2014-06-23 12:58+0000\n" "PO-Revision-Date: 2014-06-23 12:58+0000\n"
"Last-Translator: Raroun, 2023\n" "Last-Translator: Tobias Diekershoff <tobias.diekershoff@gmx.net>, 2018,2021\n"
"Language-Team: German (http://app.transifex.com/Friendica/friendica/language/de/)\n" "Language-Team: German (http://app.transifex.com/Friendica/friendica/language/de/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -23,71 +21,54 @@ msgstr ""
"Language: de\n" "Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: tumblr.php:243 #: tumblr.php:39
msgid "Permission denied." msgid "Permission denied."
msgstr "Zugriff verweigert." msgstr "Zugriff verweigert."
#: tumblr.php:296 #: tumblr.php:69
msgid "Save Settings" msgid "Save Settings"
msgstr "Einstellungen speichern" msgstr "Einstellungen speichern"
#: tumblr.php:297 #: tumblr.php:71
msgid "Consumer Key" msgid "Consumer Key"
msgstr "Consumer Key" msgstr "Consumer Key"
#: tumblr.php:298 #: tumblr.php:72
msgid "Consumer Secret" msgid "Consumer Secret"
msgstr "Consumer Secret" msgstr "Consumer Secret"
#: tumblr.php:299 #: tumblr.php:177
msgid "Maximum tags" msgid "You are now authenticated to tumblr."
msgstr "Maximale Anzahl an Tags" msgstr "Du bist nun auf tumblr authentifiziert."
#: tumblr.php:299 #: tumblr.php:178
msgid "" msgid "return to the connector page"
"Maximum number of tags that a user can follow. Enter 0 to deactivate the " msgstr "zurück zur Connector-Seite"
"feature."
msgstr "Maximale Anzahl von Tags, die ein Benutzer verfolgen kann. Geben Sie 0 ein, um die Funktion zu deaktivieren."
#: tumblr.php:336 #: tumblr.php:194
msgid "Post to Tumblr"
msgstr "Auf Tumblr veröffentlichen"
#: tumblr.php:225
msgid "Post to page:" msgid "Post to page:"
msgstr "Auf tumblr veröffentlichen" msgstr "Auf tumblr veröffentlichen"
#: tumblr.php:342 #: tumblr.php:231
msgid "(Re-)Authenticate your tumblr page" msgid "(Re-)Authenticate your tumblr page"
msgstr "(Re-)Authentifizierung deiner tumblr-Seite" msgstr "(Re-)Authentifizierung deiner tumblr-Seite"
#: tumblr.php:343 #: tumblr.php:232
msgid "You are not authenticated to tumblr" msgid "You are not authenticated to tumblr"
msgstr "Du bist gegenüber tumblr nicht authentifiziert" msgstr "Du bist gegenüber tumblr nicht authentifiziert"
#: tumblr.php:348 #: tumblr.php:237
msgid "Enable Tumblr Post Addon" msgid "Enable Tumblr Post Addon"
msgstr "Tumblr-Post-Addon aktivieren" msgstr "Tumblr-Post-Addon aktivieren"
#: tumblr.php:349 #: tumblr.php:238
msgid "Post to Tumblr by default" msgid "Post to Tumblr by default"
msgstr "Standardmäßig bei Tumblr veröffentlichen" msgstr "Standardmäßig bei Tumblr veröffentlichen"
#: tumblr.php:350 #: tumblr.php:244
msgid "Import the remote timeline" msgid "Tumblr Export"
msgstr "Importiere die entfernte Timeline" msgstr "Tumblr Export"
#: tumblr.php:351
msgid "Subscribed tags"
msgstr "Abonnierte Tags"
#: tumblr.php:351
#, php-format
msgid ""
"Comma separated list of up to %d tags that will be imported additionally to "
"the timeline"
msgstr "Durch Kommata getrennte Liste von bis zu %d Tags, die zusätzlich in die Timeline importiert werden sollen"
#: tumblr.php:357
msgid "Tumblr Import/Export"
msgstr "Tumblr Import/Export"
#: tumblr.php:375
msgid "Post to Tumblr"
msgstr "Auf Tumblr veröffentlichen"

View file

@ -9,15 +9,12 @@ $a->strings['Permission denied.'] = 'Zugriff verweigert.';
$a->strings['Save Settings'] = 'Einstellungen speichern'; $a->strings['Save Settings'] = 'Einstellungen speichern';
$a->strings['Consumer Key'] = 'Consumer Key'; $a->strings['Consumer Key'] = 'Consumer Key';
$a->strings['Consumer Secret'] = 'Consumer Secret'; $a->strings['Consumer Secret'] = 'Consumer Secret';
$a->strings['Maximum tags'] = 'Maximale Anzahl an Tags'; $a->strings['You are now authenticated to tumblr.'] = 'Du bist nun auf tumblr authentifiziert.';
$a->strings['Maximum number of tags that a user can follow. Enter 0 to deactivate the feature.'] = 'Maximale Anzahl von Tags, die ein Benutzer verfolgen kann. Geben Sie 0 ein, um die Funktion zu deaktivieren.'; $a->strings['return to the connector page'] = 'zurück zur Connector-Seite';
$a->strings['Post to Tumblr'] = 'Auf Tumblr veröffentlichen';
$a->strings['Post to page:'] = 'Auf tumblr veröffentlichen'; $a->strings['Post to page:'] = 'Auf tumblr veröffentlichen';
$a->strings['(Re-)Authenticate your tumblr page'] = '(Re-)Authentifizierung deiner tumblr-Seite'; $a->strings['(Re-)Authenticate your tumblr page'] = '(Re-)Authentifizierung deiner tumblr-Seite';
$a->strings['You are not authenticated to tumblr'] = 'Du bist gegenüber tumblr nicht authentifiziert'; $a->strings['You are not authenticated to tumblr'] = 'Du bist gegenüber tumblr nicht authentifiziert';
$a->strings['Enable Tumblr Post Addon'] = 'Tumblr-Post-Addon aktivieren'; $a->strings['Enable Tumblr Post Addon'] = 'Tumblr-Post-Addon aktivieren';
$a->strings['Post to Tumblr by default'] = 'Standardmäßig bei Tumblr veröffentlichen'; $a->strings['Post to Tumblr by default'] = 'Standardmäßig bei Tumblr veröffentlichen';
$a->strings['Import the remote timeline'] = 'Importiere die entfernte Timeline'; $a->strings['Tumblr Export'] = 'Tumblr Export';
$a->strings['Subscribed tags'] = 'Abonnierte Tags';
$a->strings['Comma separated list of up to %d tags that will be imported additionally to the timeline'] = 'Durch Kommata getrennte Liste von bis zu %d Tags, die zusätzlich in die Timeline importiert werden sollen';
$a->strings['Tumblr Import/Export'] = 'Tumblr Import/Export';
$a->strings['Post to Tumblr'] = 'Auf Tumblr veröffentlichen';

View file

@ -5,7 +5,7 @@
# #
# Translators: # Translators:
# bob lebonche <lebonche@tutanota.com>, 2021 # bob lebonche <lebonche@tutanota.com>, 2021
# cracrayol, 2023-2024 # Florent C., 2023
# StefOfficiel <pichard.stephane@free.fr>, 2015 # StefOfficiel <pichard.stephane@free.fr>, 2015
msgid "" msgid ""
msgstr "" msgstr ""
@ -13,7 +13,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-29 06:56+0000\n" "POT-Creation-Date: 2023-04-29 06:56+0000\n"
"PO-Revision-Date: 2014-06-23 12:58+0000\n" "PO-Revision-Date: 2014-06-23 12:58+0000\n"
"Last-Translator: cracrayol, 2023-2024\n" "Last-Translator: Florent C., 2023\n"
"Language-Team: French (http://app.transifex.com/Friendica/friendica/language/fr/)\n" "Language-Team: French (http://app.transifex.com/Friendica/friendica/language/fr/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -39,13 +39,13 @@ msgstr "Secret utilisateur"
#: tumblr.php:299 #: tumblr.php:299
msgid "Maximum tags" msgid "Maximum tags"
msgstr "Étiquettes maximum" msgstr "Tags maximum"
#: tumblr.php:299 #: tumblr.php:299
msgid "" msgid ""
"Maximum number of tags that a user can follow. Enter 0 to deactivate the " "Maximum number of tags that a user can follow. Enter 0 to deactivate the "
"feature." "feature."
msgstr "Nombre maximum d'étiquettes qu'un utilisateur peut suivre. Entrez 0 pour désactiver cette fonctionnalité." msgstr "Nombre maximum de tags qu'un utilisateur peut suivre. Entrez 0 pour désactiver cette fonctionnalité."
#: tumblr.php:336 #: tumblr.php:336
msgid "Post to page:" msgid "Post to page:"
@ -73,14 +73,14 @@ msgstr "Importer le flux distant"
#: tumblr.php:351 #: tumblr.php:351
msgid "Subscribed tags" msgid "Subscribed tags"
msgstr "Étiquettes suivies" msgstr "Tags suivis"
#: tumblr.php:351 #: tumblr.php:351
#, php-format #, php-format
msgid "" msgid ""
"Comma separated list of up to %d tags that will be imported additionally to " "Comma separated list of up to %d tags that will be imported additionally to "
"the timeline" "the timeline"
msgstr "Liste contenant jusqu'à %d étiquettes, séparées par des virgules, qui seront importées dans le flux" msgstr "Liste séparée par des virgules contenant jusqu'à %d tags qui seront importés dans le flux"
#: tumblr.php:357 #: tumblr.php:357
msgid "Tumblr Import/Export" msgid "Tumblr Import/Export"

View file

@ -9,15 +9,15 @@ $a->strings['Permission denied.'] = 'Permission refusée.';
$a->strings['Save Settings'] = 'Sauvegarder les paramètres'; $a->strings['Save Settings'] = 'Sauvegarder les paramètres';
$a->strings['Consumer Key'] = 'Clé utilisateur'; $a->strings['Consumer Key'] = 'Clé utilisateur';
$a->strings['Consumer Secret'] = 'Secret utilisateur'; $a->strings['Consumer Secret'] = 'Secret utilisateur';
$a->strings['Maximum tags'] = 'Étiquettes maximum'; $a->strings['Maximum tags'] = 'Tags maximum';
$a->strings['Maximum number of tags that a user can follow. Enter 0 to deactivate the feature.'] = 'Nombre maximum d\'étiquettes qu\'un utilisateur peut suivre. Entrez 0 pour désactiver cette fonctionnalité.'; $a->strings['Maximum number of tags that a user can follow. Enter 0 to deactivate the feature.'] = 'Nombre maximum de tags qu\'un utilisateur peut suivre. Entrez 0 pour désactiver cette fonctionnalité.';
$a->strings['Post to page:'] = 'Publier sur la page :'; $a->strings['Post to page:'] = 'Publier sur la page :';
$a->strings['(Re-)Authenticate your tumblr page'] = '(re)Authentifiez votre page Tumblr'; $a->strings['(Re-)Authenticate your tumblr page'] = '(re)Authentifiez votre page Tumblr';
$a->strings['You are not authenticated to tumblr'] = 'Vous n\'êtes pas identifié sur Tumblr'; $a->strings['You are not authenticated to tumblr'] = 'Vous n\'êtes pas identifié sur Tumblr';
$a->strings['Enable Tumblr Post Addon'] = 'Activez l\'extension de publication Tumblr'; $a->strings['Enable Tumblr Post Addon'] = 'Activez l\'extension de publication Tumblr';
$a->strings['Post to Tumblr by default'] = 'Publier sur Tumblr par défaut'; $a->strings['Post to Tumblr by default'] = 'Publier sur Tumblr par défaut';
$a->strings['Import the remote timeline'] = 'Importer le flux distant'; $a->strings['Import the remote timeline'] = 'Importer le flux distant';
$a->strings['Subscribed tags'] = 'Étiquettes suivies'; $a->strings['Subscribed tags'] = 'Tags suivis';
$a->strings['Comma separated list of up to %d tags that will be imported additionally to the timeline'] = 'Liste contenant jusqu\'à %d étiquettes, séparées par des virgules, qui seront importées dans le flux'; $a->strings['Comma separated list of up to %d tags that will be imported additionally to the timeline'] = 'Liste séparée par des virgules contenant jusqu\'à %d tags qui seront importés dans le flux';
$a->strings['Tumblr Import/Export'] = 'Import/Export Tumblr'; $a->strings['Tumblr Import/Export'] = 'Import/Export Tumblr';
$a->strings['Post to Tumblr'] = 'Publier vers Tumblr'; $a->strings['Post to Tumblr'] = 'Publier vers Tumblr';

View file

@ -10,7 +10,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: friendica\n" "Project-Id-Version: friendica\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-29 06:56+0000\n" "POT-Creation-Date: 2021-11-21 19:17-0500\n"
"PO-Revision-Date: 2014-06-23 12:58+0000\n" "PO-Revision-Date: 2014-06-23 12:58+0000\n"
"Last-Translator: Sylke Vicious <silkevicious@gmail.com>, 2021\n" "Last-Translator: Sylke Vicious <silkevicious@gmail.com>, 2021\n"
"Language-Team: Italian (http://app.transifex.com/Friendica/friendica/language/it/)\n" "Language-Team: Italian (http://app.transifex.com/Friendica/friendica/language/it/)\n"
@ -20,71 +20,54 @@ msgstr ""
"Language: it\n" "Language: it\n"
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" "Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
#: tumblr.php:243 #: tumblr.php:39
msgid "Permission denied." msgid "Permission denied."
msgstr "Permesso negato." msgstr "Permesso negato."
#: tumblr.php:296 #: tumblr.php:69
msgid "Save Settings" msgid "Save Settings"
msgstr "Salva Impostazioni" msgstr "Salva Impostazioni"
#: tumblr.php:297 #: tumblr.php:71
msgid "Consumer Key" msgid "Consumer Key"
msgstr "Consumer Key" msgstr "Consumer Key"
#: tumblr.php:298 #: tumblr.php:72
msgid "Consumer Secret" msgid "Consumer Secret"
msgstr "Consumer Secret" msgstr "Consumer Secret"
#: tumblr.php:299 #: tumblr.php:177
msgid "Maximum tags" msgid "You are now authenticated to tumblr."
msgstr "" msgstr "Sei autenticato su Tumblr."
#: tumblr.php:299 #: tumblr.php:178
msgid "" msgid "return to the connector page"
"Maximum number of tags that a user can follow. Enter 0 to deactivate the " msgstr "ritorna alla pagina del connettore"
"feature."
msgstr ""
#: tumblr.php:336 #: tumblr.php:194
msgid "Post to Tumblr"
msgstr "Invia a Tumblr"
#: tumblr.php:225
msgid "Post to page:" msgid "Post to page:"
msgstr "Invia alla pagina:" msgstr "Invia alla pagina:"
#: tumblr.php:342 #: tumblr.php:231
msgid "(Re-)Authenticate your tumblr page" msgid "(Re-)Authenticate your tumblr page"
msgstr "(Ri)Autenticati con la tua pagina Tumblr" msgstr "(Ri)Autenticati con la tua pagina Tumblr"
#: tumblr.php:343 #: tumblr.php:232
msgid "You are not authenticated to tumblr" msgid "You are not authenticated to tumblr"
msgstr "Non sei autenticato su Tumblr" msgstr "Non sei autenticato su Tumblr"
#: tumblr.php:348 #: tumblr.php:237
msgid "Enable Tumblr Post Addon" msgid "Enable Tumblr Post Addon"
msgstr "Abilita componente aggiuntivo di invio a Tumblr" msgstr "Abilita componente aggiuntivo di invio a Tumblr"
#: tumblr.php:349 #: tumblr.php:238
msgid "Post to Tumblr by default" msgid "Post to Tumblr by default"
msgstr "Invia sempre a Tumblr" msgstr "Invia sempre a Tumblr"
#: tumblr.php:350 #: tumblr.php:244
msgid "Import the remote timeline" msgid "Tumblr Export"
msgstr "" msgstr "Esporta Tumblr"
#: tumblr.php:351
msgid "Subscribed tags"
msgstr ""
#: tumblr.php:351
#, php-format
msgid ""
"Comma separated list of up to %d tags that will be imported additionally to "
"the timeline"
msgstr ""
#: tumblr.php:357
msgid "Tumblr Import/Export"
msgstr ""
#: tumblr.php:375
msgid "Post to Tumblr"
msgstr "Invia a Tumblr"

View file

@ -9,9 +9,12 @@ $a->strings['Permission denied.'] = 'Permesso negato.';
$a->strings['Save Settings'] = 'Salva Impostazioni'; $a->strings['Save Settings'] = 'Salva Impostazioni';
$a->strings['Consumer Key'] = 'Consumer Key'; $a->strings['Consumer Key'] = 'Consumer Key';
$a->strings['Consumer Secret'] = 'Consumer Secret'; $a->strings['Consumer Secret'] = 'Consumer Secret';
$a->strings['You are now authenticated to tumblr.'] = 'Sei autenticato su Tumblr.';
$a->strings['return to the connector page'] = 'ritorna alla pagina del connettore';
$a->strings['Post to Tumblr'] = 'Invia a Tumblr';
$a->strings['Post to page:'] = 'Invia alla pagina:'; $a->strings['Post to page:'] = 'Invia alla pagina:';
$a->strings['(Re-)Authenticate your tumblr page'] = '(Ri)Autenticati con la tua pagina Tumblr'; $a->strings['(Re-)Authenticate your tumblr page'] = '(Ri)Autenticati con la tua pagina Tumblr';
$a->strings['You are not authenticated to tumblr'] = 'Non sei autenticato su Tumblr'; $a->strings['You are not authenticated to tumblr'] = 'Non sei autenticato su Tumblr';
$a->strings['Enable Tumblr Post Addon'] = 'Abilita componente aggiuntivo di invio a Tumblr'; $a->strings['Enable Tumblr Post Addon'] = 'Abilita componente aggiuntivo di invio a Tumblr';
$a->strings['Post to Tumblr by default'] = 'Invia sempre a Tumblr'; $a->strings['Post to Tumblr by default'] = 'Invia sempre a Tumblr';
$a->strings['Post to Tumblr'] = 'Invia a Tumblr'; $a->strings['Tumblr Export'] = 'Esporta Tumblr';

View file

@ -10,81 +10,64 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: friendica\n" "Project-Id-Version: friendica\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-29 06:56+0000\n" "POT-Creation-Date: 2021-11-21 19:17-0500\n"
"PO-Revision-Date: 2014-06-23 12:58+0000\n" "PO-Revision-Date: 2014-06-23 12:58+0000\n"
"Last-Translator: Piotr Strębski <strebski@gmail.com>, 2022\n" "Last-Translator: Piotr Strębski <strebski@gmail.com>, 2022\n"
"Language-Team: Polish (http://app.transifex.com/Friendica/friendica/language/pl/)\n" "Language-Team: Polish (http://www.transifex.com/Friendica/friendica/language/pl/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: pl\n" "Language: pl\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
#: tumblr.php:243 #: tumblr.php:39
msgid "Permission denied." msgid "Permission denied."
msgstr "Odmowa dostępu." msgstr "Odmowa dostępu."
#: tumblr.php:296 #: tumblr.php:69
msgid "Save Settings" msgid "Save Settings"
msgstr "Zapisz ustawienia" msgstr "Zapisz ustawienia"
#: tumblr.php:297 #: tumblr.php:71
msgid "Consumer Key" msgid "Consumer Key"
msgstr "Klucz klienta" msgstr "Klucz klienta"
#: tumblr.php:298 #: tumblr.php:72
msgid "Consumer Secret" msgid "Consumer Secret"
msgstr "Tajny klucz klienta" msgstr "Tajny klucz klienta"
#: tumblr.php:299 #: tumblr.php:177
msgid "Maximum tags" msgid "You are now authenticated to tumblr."
msgstr "" msgstr "Jesteś teraz uwierzytelniony na tumblr."
#: tumblr.php:299 #: tumblr.php:178
msgid "" msgid "return to the connector page"
"Maximum number of tags that a user can follow. Enter 0 to deactivate the " msgstr "powrót do strony łącza"
"feature."
msgstr ""
#: tumblr.php:336 #: tumblr.php:194
msgid "Post to Tumblr"
msgstr "Opublikuj w Tumblr"
#: tumblr.php:225
msgid "Post to page:" msgid "Post to page:"
msgstr "Opublikuj na stronie:" msgstr "Opublikuj na stronie:"
#: tumblr.php:342 #: tumblr.php:231
msgid "(Re-)Authenticate your tumblr page" msgid "(Re-)Authenticate your tumblr page"
msgstr "(Re-) Uwierzytelnij swoją stronę tumblr" msgstr "(Re-) Uwierzytelnij swoją stronę tumblr"
#: tumblr.php:343 #: tumblr.php:232
msgid "You are not authenticated to tumblr" msgid "You are not authenticated to tumblr"
msgstr "Nie jesteś uwierzytelniony w tumblr" msgstr "Nie jesteś uwierzytelniony w tumblr"
#: tumblr.php:348 #: tumblr.php:237
msgid "Enable Tumblr Post Addon" msgid "Enable Tumblr Post Addon"
msgstr "Włącz dodatek Tumblr" msgstr "Włącz dodatek Tumblr"
#: tumblr.php:349 #: tumblr.php:238
msgid "Post to Tumblr by default" msgid "Post to Tumblr by default"
msgstr "Wyślij domyślnie do Tumblr" msgstr "Wyślij domyślnie do Tumblr"
#: tumblr.php:350 #: tumblr.php:244
msgid "Import the remote timeline" msgid "Tumblr Export"
msgstr "" msgstr "Eksportuj do Tumblr"
#: tumblr.php:351
msgid "Subscribed tags"
msgstr ""
#: tumblr.php:351
#, php-format
msgid ""
"Comma separated list of up to %d tags that will be imported additionally to "
"the timeline"
msgstr ""
#: tumblr.php:357
msgid "Tumblr Import/Export"
msgstr ""
#: tumblr.php:375
msgid "Post to Tumblr"
msgstr "Opublikuj w Tumblr"

View file

@ -9,9 +9,12 @@ $a->strings['Permission denied.'] = 'Odmowa dostępu.';
$a->strings['Save Settings'] = 'Zapisz ustawienia'; $a->strings['Save Settings'] = 'Zapisz ustawienia';
$a->strings['Consumer Key'] = 'Klucz klienta'; $a->strings['Consumer Key'] = 'Klucz klienta';
$a->strings['Consumer Secret'] = 'Tajny klucz klienta'; $a->strings['Consumer Secret'] = 'Tajny klucz klienta';
$a->strings['You are now authenticated to tumblr.'] = 'Jesteś teraz uwierzytelniony na tumblr.';
$a->strings['return to the connector page'] = 'powrót do strony łącza';
$a->strings['Post to Tumblr'] = 'Opublikuj w Tumblr';
$a->strings['Post to page:'] = 'Opublikuj na stronie:'; $a->strings['Post to page:'] = 'Opublikuj na stronie:';
$a->strings['(Re-)Authenticate your tumblr page'] = '(Re-) Uwierzytelnij swoją stronę tumblr'; $a->strings['(Re-)Authenticate your tumblr page'] = '(Re-) Uwierzytelnij swoją stronę tumblr';
$a->strings['You are not authenticated to tumblr'] = 'Nie jesteś uwierzytelniony w tumblr'; $a->strings['You are not authenticated to tumblr'] = 'Nie jesteś uwierzytelniony w tumblr';
$a->strings['Enable Tumblr Post Addon'] = 'Włącz dodatek Tumblr'; $a->strings['Enable Tumblr Post Addon'] = 'Włącz dodatek Tumblr';
$a->strings['Post to Tumblr by default'] = 'Wyślij domyślnie do Tumblr'; $a->strings['Post to Tumblr by default'] = 'Wyślij domyślnie do Tumblr';
$a->strings['Post to Tumblr'] = 'Opublikuj w Tumblr'; $a->strings['Tumblr Export'] = 'Eksportuj do Tumblr';

View file

@ -10,81 +10,64 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: friendica\n" "Project-Id-Version: friendica\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-29 06:56+0000\n" "POT-Creation-Date: 2021-11-21 19:17-0500\n"
"PO-Revision-Date: 2014-06-23 12:58+0000\n" "PO-Revision-Date: 2022-01-16 00:55+0000\n"
"Last-Translator: Kristoffer Grundström <lovaren@gmail.com>, 2022\n" "Last-Translator: Kristoffer Grundström <lovaren@gmail.com>\n"
"Language-Team: Swedish (http://app.transifex.com/Friendica/friendica/language/sv/)\n" "Language-Team: Swedish (http://www.transifex.com/Friendica/friendica/language/sv/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: sv\n" "Language: sv\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: tumblr.php:243 #: tumblr.php:39
msgid "Permission denied." msgid "Permission denied."
msgstr "Åtkomst nekad." msgstr "Åtkomst nekad."
#: tumblr.php:296 #: tumblr.php:69
msgid "Save Settings" msgid "Save Settings"
msgstr "" msgstr ""
#: tumblr.php:297 #: tumblr.php:71
msgid "Consumer Key" msgid "Consumer Key"
msgstr "" msgstr ""
#: tumblr.php:298 #: tumblr.php:72
msgid "Consumer Secret" msgid "Consumer Secret"
msgstr "" msgstr ""
#: tumblr.php:299 #: tumblr.php:177
msgid "Maximum tags" msgid "You are now authenticated to tumblr."
msgstr "Du är nu autentiserad till tumblr."
#: tumblr.php:178
msgid "return to the connector page"
msgstr "" msgstr ""
#: tumblr.php:299 #: tumblr.php:194
msgid "" msgid "Post to Tumblr"
"Maximum number of tags that a user can follow. Enter 0 to deactivate the "
"feature."
msgstr "" msgstr ""
#: tumblr.php:336 #: tumblr.php:225
msgid "Post to page:" msgid "Post to page:"
msgstr "" msgstr ""
#: tumblr.php:342 #: tumblr.php:231
msgid "(Re-)Authenticate your tumblr page" msgid "(Re-)Authenticate your tumblr page"
msgstr "" msgstr ""
#: tumblr.php:343 #: tumblr.php:232
msgid "You are not authenticated to tumblr" msgid "You are not authenticated to tumblr"
msgstr "Du är inte autentiserad till tumblr" msgstr "Du är inte autentiserad till tumblr"
#: tumblr.php:348 #: tumblr.php:237
msgid "Enable Tumblr Post Addon" msgid "Enable Tumblr Post Addon"
msgstr "" msgstr ""
#: tumblr.php:349 #: tumblr.php:238
msgid "Post to Tumblr by default" msgid "Post to Tumblr by default"
msgstr "" msgstr ""
#: tumblr.php:350 #: tumblr.php:244
msgid "Import the remote timeline" msgid "Tumblr Export"
msgstr ""
#: tumblr.php:351
msgid "Subscribed tags"
msgstr ""
#: tumblr.php:351
#, php-format
msgid ""
"Comma separated list of up to %d tags that will be imported additionally to "
"the timeline"
msgstr ""
#: tumblr.php:357
msgid "Tumblr Import/Export"
msgstr ""
#: tumblr.php:375
msgid "Post to Tumblr"
msgstr "" msgstr ""

View file

@ -6,4 +6,5 @@ function string_plural_select_sv($n){
return intval($n != 1); return intval($n != 1);
}} }}
$a->strings['Permission denied.'] = 'Åtkomst nekad.'; $a->strings['Permission denied.'] = 'Åtkomst nekad.';
$a->strings['You are now authenticated to tumblr.'] = 'Du är nu autentiserad till tumblr.';
$a->strings['You are not authenticated to tumblr'] = 'Du är inte autentiserad till tumblr'; $a->strings['You are not authenticated to tumblr'] = 'Du är inte autentiserad till tumblr';

View file

@ -608,15 +608,6 @@ function tumblr_send_legacy(array $b)
$body = BBCode::removeShareInformation($b['body']); $body = BBCode::removeShareInformation($b['body']);
$body = Post\Media::removeFromEndOfBody($body); $body = Post\Media::removeFromEndOfBody($body);
if (!empty($b['quote-uri-id'])) {
$quote = Post::selectFirstPost(['uri', 'plink'], ['uri-id' => $b['quote-uri-id']]);
if (!empty($quote)) {
if ((strpos($body, $quote['plink'] ?: $quote['uri']) === false) && (strpos($body, $quote['uri']) === false)) {
$body .= "\n[url]" . ($quote['plink'] ?: $quote['uri']) . "[/url]\n";
}
}
}
if ($photo !== false) { if ($photo !== false) {
$params['type'] = 'photo'; $params['type'] = 'photo';
$params['caption'] = BBCode::convertForUriId($b['uri-id'], $body, BBCode::CONNECTORS); $params['caption'] = BBCode::convertForUriId($b['uri-id'], $body, BBCode::CONNECTORS);
@ -657,7 +648,7 @@ function tumblr_send_legacy(array $b)
} else { } else {
$params['type'] = 'text'; $params['type'] = 'text';
$params['title'] = $title; $params['title'] = $title;
$params['body'] = BBCode::convertForUriId($b['uri-id'], $body, BBCode::CONNECTORS); $params['body'] = BBCode::convertForUriId($b['uri-id'], $b['body'], BBCode::CONNECTORS);
} }
if (isset($params['caption']) && (trim($title) != '')) { if (isset($params['caption']) && (trim($title) != '')) {