diff --git a/advancedcontentfilter/lang/it/messages.po b/advancedcontentfilter/lang/it/messages.po index 325be52c..f32c5b94 100644 --- a/advancedcontentfilter/lang/it/messages.po +++ b/advancedcontentfilter/lang/it/messages.po @@ -5,7 +5,7 @@ # # Translators: # fabrixxm , 2018 -# Sylke Vicious , 2023 +# Sylke Vicious , 2021 # #, fuzzy msgid "" @@ -14,7 +14,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-05-11 08:54-0400\n" "PO-Revision-Date: 2018-05-24 06:41+0000\n" -"Last-Translator: Sylke Vicious , 2023\n" +"Last-Translator: Sylke Vicious , 2021\n" "Language-Team: Italian (https://app.transifex.com/Friendica/teams/12172/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -125,7 +125,7 @@ msgstr "Annulla" #: advancedcontentfilter.php:295 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:347 advancedcontentfilter.php:383 diff --git a/advancedcontentfilter/lang/it/strings.php b/advancedcontentfilter/lang/it/strings.php index d47d7a5a..5cc01739 100644 --- a/advancedcontentfilter/lang/it/strings.php +++ b/advancedcontentfilter/lang/it/strings.php @@ -27,7 +27,6 @@ $a->strings['Add new rule'] = 'Aggiungi nuova regola'; $a->strings['Rule Name'] = 'Nome Regola'; $a->strings['Rule Expression'] = 'Espressione Regola'; $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['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.'; diff --git a/blockbot/blockbot.php b/blockbot/blockbot.php index adf0a7c2..e5de1ef3 100644 --- a/blockbot/blockbot.php +++ b/blockbot/blockbot.php @@ -15,7 +15,6 @@ use Friendica\Core\Logger; use Friendica\Core\Renderer; use Friendica\Core\System; use Friendica\Network\HTTPException\ForbiddenException; -use Friendica\Util\HTTPSignature; use Friendica\Util\Network; require_once __DIR__ . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php'; @@ -77,8 +76,6 @@ function blockbot_init_1() return; } - blockbot_log_activitypub($_SERVER['REQUEST_URI'], $_SERVER['HTTP_USER_AGENT']); - if (blockbot_is_crawler($parts)) { Logger::debug('Crawler found - reject', $logdata); blockbot_reject(); @@ -172,7 +169,7 @@ function blockbot_init_1() 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; } @@ -184,36 +181,6 @@ function blockbot_save($database, $userAgent) 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) { 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', 'pixeldroid', 'greatnews', 'protopage', 'newsfox', 'vienna', 'wp-urldetails', 'husky', 'activitypub-go-http-client', 'mobilesafari', 'mastodon-ios', 'mastodonpy', 'techniverse', - 'relatica', ]; foreach ($parts as $part) { diff --git a/bluesky/bluesky.php b/bluesky/bluesky.php index 6994b3e3..ba7c1d65 100644 --- a/bluesky/bluesky.php +++ b/bluesky/bluesky.php @@ -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_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_HOSTNAME = 'bsky.social'; // Host name to be added to the handle if incomplete function bluesky_install() { @@ -356,11 +355,8 @@ function bluesky_settings(array &$data) if (DI::config()->get('bluesky', 'friendica_handles')) { $self = User::getById(DI::userSession()->getLocalUserId(), ['nickname']); - $host_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)]; - if ($custom_handle) { - $handle = $host_handle; - } + $handle = $self['nickname'] . '.' . DI::baseUrl()->getHost(); + $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)]; } else { $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.')], '$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'], - '$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'], '$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), @@ -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', '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', '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)) { $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); - $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) { if (empty(bluesky_get_user_did($pconfig['uid']))) { - Logger::debug('User has got no valid DID', ['uid' => $pconfig['uid']]); 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 - Logger::debug('Refresh the token', ['uid' => $pconfig['uid']]); bluesky_get_token($pconfig['uid']); 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')) { - Logger::debug('Fetch feeds for user', ['uid' => $pconfig['uid']]); $feeds = bluesky_get_feeds($pconfig['uid']); foreach ($feeds as $feed) { 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'); if (empty($last_clean) || ($last_clean + 86400 < time())) { Logger::notice('Start contact cleanup'); @@ -563,6 +550,8 @@ function bluesky_cron() } Logger::notice('cron_end'); + + DI::keyValue()->set('bluesky_last_poll', time()); } 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), ]; - $account = Contact::selectFirstAccountUser(['pid'], ['id' => $contact['id']]); - - $item['author-id'] = $account['pid']; $item['uri-id'] = ItemURI::getIdByURI($uri); - $item['owner-id'] = $item['author-id']; $item['owner-name'] = $item['author-name']; $item['owner-link'] = $item['author-link']; $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 { - $condition = ['network' => Protocol::BLUESKY, 'uid' => 0, 'nurl' => $author->did]; + $condition = ['network' => Protocol::BLUESKY, 'uid' => 0, 'url' => $author->did]; $contact = Contact::selectFirst(['id', 'updated'], $condition); $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) { - $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); if (!isset($fields['rel']) && isset($contact['rel'])) { @@ -1720,9 +1705,6 @@ function bluesky_get_feeds(int $uid): array { $type = '$type'; $preferences = bluesky_get_preferences($uid); - if (empty($preferences) || empty($preferences->preferences)) { - return []; - } foreach ($preferences->preferences as $preference) { if ($preference->$type == 'app.bsky.actor.defs#savedFeedsPref') { return $preference->pinned ?? []; @@ -1731,7 +1713,7 @@ function bluesky_get_feeds(int $uid): array return []; } -function bluesky_get_preferences(int $uid): ?stdClass +function bluesky_get_preferences(int $uid): stdClass { $cachekey = 'bluesky:preferences:' . $uid; $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'); - if (empty($data)) { - return null; - } DI::cache()->set($cachekey, $data, Duration::HOUR); return $data; @@ -1785,14 +1764,6 @@ function bluesky_get_did_by_dns(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 //$did = bluesky_get_did_by_dns($handle); //if ($did != '') { diff --git a/catavatar/lang/it/messages.po b/catavatar/lang/it/messages.po index 9155bb48..e05bd277 100644 --- a/catavatar/lang/it/messages.po +++ b/catavatar/lang/it/messages.po @@ -6,55 +6,55 @@ # Translators: # fabrixxm , 2018 # Davide Pesenti , 2018 -# Sylke Vicious , 2023 +# Sylke Vicious , 2021 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: \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" -"Last-Translator: Sylke Vicious , 2023\n" -"Language-Team: Italian (https://app.transifex.com/Friendica/teams/12172/it/)\n" +"Last-Translator: Sylke Vicious , 2021\n" +"Language-Team: Italian (https://www.transifex.com/Friendica/teams/12172/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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 -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" msgstr "Usa il Gatto come avatar" -#: catavatar.php:57 -msgid "Another random Cat!" -msgstr "Un altro Gatto casuale!" +#: catavatar.php:49 +msgid "More Random Cat!" +msgstr "Altro Gatto a caso!" -#: catavatar.php:58 +#: catavatar.php:50 msgid "Reset to email Cat" 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." msgstr "Il gatto non ha trovato sé stesso." -#: catavatar.php:86 +#: catavatar.php:87 msgid "There was an error, the cat ran away." msgstr "Si è verificato un errore, il gatto è scappato." -#: catavatar.php:92 +#: catavatar.php:93 msgid "Profile Photos" msgstr "Foto del profilo" -#: catavatar.php:102 +#: catavatar.php:108 msgid "Meow!" msgstr "Miao!" diff --git a/catavatar/lang/it/strings.php b/catavatar/lang/it/strings.php index 8f78b3fe..3a33374a 100644 --- a/catavatar/lang/it/strings.php +++ b/catavatar/lang/it/strings.php @@ -3,13 +3,13 @@ if(! function_exists("string_plural_select_it")) { function string_plural_select_it($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['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['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['There was an error, the cat ran away.'] = 'Si è verificato un errore, il gatto è scappato.'; $a->strings['Profile Photos'] = 'Foto del profilo'; diff --git a/curweather/lang/it/messages.po b/curweather/lang/it/messages.po index c53b3a6e..5a7e2cac 100644 --- a/curweather/lang/it/messages.po +++ b/curweather/lang/it/messages.po @@ -5,27 +5,27 @@ # # Translators: # fabrixxm , 2014-2015 -# Sylke Vicious , 2021,2023 +# Sylke Vicious , 2021 # Tobias Diekershoff , 2016 msgid "" msgstr "" "Project-Id-Version: friendica\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-11-21 19:14-0500\n" -"PO-Revision-Date: 2014-06-22 11:34+0000\n" -"Last-Translator: Sylke Vicious , 2021,2023\n" -"Language-Team: Italian (http://app.transifex.com/Friendica/friendica/language/it/)\n" +"POT-Creation-Date: 2021-02-01 18:15+0100\n" +"PO-Revision-Date: 2021-02-16 12:57+0000\n" +"Last-Translator: Sylke Vicious \n" +"Language-Team: Italian (http://www.transifex.com/Friendica/friendica/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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 msgid "Error fetching weather data. Error was: " msgstr "Errore durante il recupero dei dati meteo. L'errore è stato:" -#: curweather.php:130 +#: curweather.php:130 curweather.php:192 msgid "Current Weather" msgstr "Meteo" @@ -61,66 +61,66 @@ msgstr "C'è stato un problema accedendo ai dati meteo, ma dai un'occhiata" msgid "at OpenWeatherMap" msgstr "a OpenWeatherMap" -#: curweather.php:178 +#: curweather.php:179 msgid "No APPID found, please contact your admin to obtain one." 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." msgstr "Inserisci il nome della tua posizione o il CAP" -#: curweather.php:189 +#: curweather.php:195 msgid "Your Location" msgstr "La tua Posizione" -#: curweather.php:189 +#: curweather.php:195 msgid "" "Identifier of your location (name or zip code), e.g. Berlin,DE or " "14476,DE." msgstr "Identificatore della tua posizione (nome o CAP), p.e. Roma, IT or 00186,IT." -#: curweather.php:190 +#: curweather.php:196 msgid "Units" msgstr "Unità" -#: curweather.php:190 +#: curweather.php:196 msgid "select if the temperature should be displayed in °C or °F" msgstr "scegli se la temperatura deve essere mostrata in °C o in °F" -#: curweather.php:191 +#: curweather.php:197 msgid "Show weather data" msgstr "Mostra dati meteo" -#: curweather.php:196 -msgid "Current Weather Settings" -msgstr "Impostazioni Meteo" - -#: curweather.php:227 -msgid "Save Settings" -msgstr "Salva Impostazioni" - -#: curweather.php:230 +#: curweather.php:232 msgid "Caching Interval" msgstr "Intervallo di cache" -#: curweather.php:232 +#: curweather.php:234 msgid "" "For how long should the weather data be cached? Choose according your " "OpenWeatherMap account type." 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" 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" msgstr "minuti" -#: curweather.php:240 +#: curweather.php:242 msgid "Your APPID" msgstr "Il tuo APPID" -#: curweather.php:240 +#: curweather.php:242 msgid "Your API key provided by OpenWeatherMap" msgstr "La tua chiave API da OpenWeatherMap" diff --git a/curweather/lang/it/strings.php b/curweather/lang/it/strings.php index 6c651e1b..a497dace 100644 --- a/curweather/lang/it/strings.php +++ b/curweather/lang/it/strings.php @@ -3,7 +3,7 @@ if(! function_exists("string_plural_select_it")) { function string_plural_select_it($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['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['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['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['Your Location'] = 'La tua Posizione'; $a->strings['Identifier of your location (name or zip code), e.g. Berlin,DE or 14476,DE.'] = 'Identificatore della tua posizione (nome o CAP), p.e. Roma, IT or 00186,IT.'; $a->strings['Units'] = 'Unità'; $a->strings['select if the temperature should be displayed in °C or °F'] = 'scegli se la temperatura deve essere mostrata in °C o in °F'; $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['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'; diff --git a/dwpost/lang/it/messages.po b/dwpost/lang/it/messages.po index a5a79d47..5f7c2ee2 100644 --- a/dwpost/lang/it/messages.po +++ b/dwpost/lang/it/messages.po @@ -5,41 +5,45 @@ # # Translators: # fabrixxm , 2014,2018 -# Sylke Vicious , 2020-2021,2023 +# Sylke Vicious , 2020-2021 msgid "" msgstr "" "Project-Id-Version: friendica\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-11-21 19:17-0500\n" -"PO-Revision-Date: 2014-06-22 11:41+0000\n" -"Last-Translator: Sylke Vicious , 2020-2021,2023\n" -"Language-Team: Italian (http://app.transifex.com/Friendica/friendica/language/it/)\n" +"POT-Creation-Date: 2021-02-01 18:15+0100\n" +"PO-Revision-Date: 2021-02-16 12:55+0000\n" +"Last-Translator: Sylke Vicious \n" +"Language-Team: Italian (http://www.transifex.com/Friendica/friendica/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" msgstr "Invia a Dreamwidth" -#: dwpost.php:63 -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 +#: dwpost.php:72 dwpost.php:76 msgid "Dreamwidth Export" 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" diff --git a/dwpost/lang/it/strings.php b/dwpost/lang/it/strings.php index 22ecc7b1..0234c1f7 100644 --- a/dwpost/lang/it/strings.php +++ b/dwpost/lang/it/strings.php @@ -3,11 +3,12 @@ if(! function_exists("string_plural_select_it")) { function string_plural_select_it($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['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['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'; diff --git a/js_upload/js_upload.php b/js_upload/js_upload.php index 0d045dee..786fc3c2 100644 --- a/js_upload/js_upload.php +++ b/js_upload/js_upload.php @@ -50,11 +50,7 @@ function js_upload_post_init(array &$b) // list of valid extensions $allowedExtensions = []; foreach (Images::IMAGETYPES as $type) { - $extension = image_type_to_extension($type, false); - if ($extension == 'jpeg') { - $allowedExtensions[] = 'jpg'; - } - $allowedExtensions[] = $extension; + $allowedExtensions[] = image_type_to_extension($type, false); } // max file size in bytes @@ -220,9 +216,9 @@ class qqFileUploader return ['error' => DI::l10n()->t('Uploaded file is empty')]; } - // if ($size > $this->sizeLimit) { - // return array('error' => DI::l10n()->t('Uploaded file is too large')); - // } +// if ($size > $this->sizeLimit) { +// return array('error' => DI::l10n()->t('Uploaded file is too large')); +// } $maximagesize = Strings::getBytesFromShorthand(DI::config()->get('system', 'maximagesize')); diff --git a/libertree/lang/it/messages.po b/libertree/lang/it/messages.po index cc890cc5..7c3bc1ec 100644 --- a/libertree/lang/it/messages.po +++ b/libertree/lang/it/messages.po @@ -5,41 +5,45 @@ # # Translators: # fabrixxm , 2014-2015,2018 -# Sylke Vicious , 2021,2023 +# Sylke Vicious , 2021 msgid "" msgstr "" "Project-Id-Version: friendica\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-03 15:49-0400\n" -"PO-Revision-Date: 2014-06-23 09:44+0000\n" -"Last-Translator: Sylke Vicious , 2021,2023\n" -"Language-Team: Italian (http://app.transifex.com/Friendica/friendica/language/it/)\n" +"POT-Creation-Date: 2021-02-01 18:15+0100\n" +"PO-Revision-Date: 2021-02-16 12:47+0000\n" +"Last-Translator: Sylke Vicious \n" +"Language-Team: Italian (http://www.transifex.com/Friendica/friendica/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" 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" msgstr "Abilita il componente aggiuntivo di invio a Libertree" -#: libertree.php:60 -msgid "Libertree site URL" -msgstr "Indirizzo sito Libertree" - -#: libertree.php:61 +#: libertree.php:84 msgid "Libertree API token" 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" msgstr "Invia sempre a Libertree" -#: libertree.php:67 -msgid "Libertree Export" -msgstr "Esporta Libertree" +#: libertree.php:100 +msgid "Save Settings" +msgstr "Salva Impostazioni" diff --git a/libertree/lang/it/strings.php b/libertree/lang/it/strings.php index 8abcfa2d..02d26542 100644 --- a/libertree/lang/it/strings.php +++ b/libertree/lang/it/strings.php @@ -3,11 +3,12 @@ if(! function_exists("string_plural_select_it")) { function string_plural_select_it($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['libertree Export'] = 'Esporta 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 site URL'] = 'Indirizzo sito Libertree'; $a->strings['Post to Libertree by default'] = 'Invia sempre a Libertree'; -$a->strings['Libertree Export'] = 'Esporta Libertree'; +$a->strings['Save Settings'] = 'Salva Impostazioni'; diff --git a/mailstream/lang/de/messages.po b/mailstream/lang/de/messages.po index cd55d952..236e7d0e 100644 --- a/mailstream/lang/de/messages.po +++ b/mailstream/lang/de/messages.po @@ -5,18 +5,16 @@ # # Translators: # Andreas H., 2014 -# foss , 2022 -# Raroun, 2023 # Tobias Diekershoff , 2018 # Ulf Rompe , 2019 msgid "" msgstr "" "Project-Id-Version: friendica\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-11-21 19:15-0500\n" -"PO-Revision-Date: 2014-06-23 09:54+0000\n" -"Last-Translator: Raroun, 2023\n" -"Language-Team: German (http://app.transifex.com/Friendica/friendica/language/de/)\n" +"POT-Creation-Date: 2018-03-11 19:13+0100\n" +"PO-Revision-Date: 2019-02-18 15:05+0000\n" +"Last-Translator: Ulf Rompe \n" +"Language-Team: German (http://www.transifex.com/Friendica/friendica/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -31,76 +29,72 @@ msgstr "Absender" msgid "Email address that stream items will appear to be from." msgstr "E-Mail-Adresse, die in hochgeladenen Artikeln erscheint." -#: mailstream.php:82 +#: mailstream.php:82 mailstream.php:380 msgid "Save Settings" msgstr "Einstellungen speichern" -#: mailstream.php:311 +#: mailstream.php:223 msgid "Re:" msgstr "Re:" -#: mailstream.php:324 mailstream.php:327 +#: mailstream.php:231 msgid "Friendica post" msgstr "Friendica-Veröffentlichung" -#: mailstream.php:330 +#: mailstream.php:234 msgid "Diaspora post" msgstr "Diaspora-Veröffentlichung" -#: mailstream.php:340 +#: mailstream.php:244 msgid "Feed item" msgstr "Artikel-Feed" -#: mailstream.php:343 +#: mailstream.php:247 msgid "Email" msgstr "E-Mail" -#: mailstream.php:345 +#: mailstream.php:249 msgid "Friendica Item" msgstr "Friendica-Artikel" -#: mailstream.php:419 +#: mailstream.php:293 msgid "Upstream" msgstr "Upstream" -#: mailstream.php:420 -msgid "URI" -msgstr "URI" - -#: mailstream.php:421 +#: mailstream.php:294 msgid "Local" msgstr "Lokal" -#: mailstream.php:499 +#: mailstream.php:362 msgid "Enabled" -msgstr "Aktiv" +msgstr "eingeschaltet" -#: mailstream.php:504 +#: mailstream.php:366 msgid "Email Address" msgstr "E-Mail-Adresse" -#: mailstream.php:506 +#: mailstream.php:368 msgid "Leave blank to use your account email address" msgstr "Leer lassen für deine Konto-E-Mail-Addresse" -#: mailstream.php:510 +#: mailstream.php:371 msgid "Exclude Likes" msgstr "Likes ignorieren" -#: mailstream.php:512 +#: mailstream.php:373 msgid "Check this to omit mailing \"Like\" notifications" msgstr "Diese Option verhindert das Versenden von \"Like\"-Benachrichtigungen per E-Mail." -#: mailstream.php:516 +#: mailstream.php:376 msgid "Attach Images" msgstr "Bilder anhängen" -#: mailstream.php:518 +#: mailstream.php:378 msgid "" "Download images in posts and attach them to the email. Useful for reading " "email while offline." 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" msgstr "Mail-Nachrichten-Einstellungen" diff --git a/mailstream/lang/de/strings.php b/mailstream/lang/de/strings.php index e107b7d0..80f9a7a2 100644 --- a/mailstream/lang/de/strings.php +++ b/mailstream/lang/de/strings.php @@ -15,9 +15,8 @@ $a->strings['Feed item'] = 'Artikel-Feed'; $a->strings['Email'] = 'E-Mail'; $a->strings['Friendica Item'] = 'Friendica-Artikel'; $a->strings['Upstream'] = 'Upstream'; -$a->strings['URI'] = 'URI'; $a->strings['Local'] = 'Lokal'; -$a->strings['Enabled'] = 'Aktiv'; +$a->strings['Enabled'] = 'eingeschaltet'; $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['Exclude Likes'] = 'Likes ignorieren'; diff --git a/mailstream/mailstream.php b/mailstream/mailstream.php index 4056aac6..b513cf36 100644 --- a/mailstream/mailstream.php +++ b/mailstream/mailstream.php @@ -220,11 +220,6 @@ function mailstream_do_images(array &$item, array &$attachments) $cookiejar = tempnam(System::getTempPath(), 'cookiejar-mailstream-'); try { $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) { Logger::error('mailstream_do_images exception fetching url', ['url' => $url, 'item_id' => $item['id']]); continue; diff --git a/nsfw/lang/fr/messages.po b/nsfw/lang/fr/messages.po index 2af1c3d4..36fd22cc 100644 --- a/nsfw/lang/fr/messages.po +++ b/nsfw/lang/fr/messages.po @@ -4,7 +4,7 @@ # # # Translators: -# cracrayol, 2023-2024 +# Florent C., 2023 # Nicolas Derive, 2022-2023 # StefOfficiel , 2015 # Vincent Vindarel , 2018 @@ -14,7 +14,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-12-10 14:42-0500\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" "MIME-Version: 1.0\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 "" "Use /expression/ to provide regular expressions, #tag to specfically match " "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 msgid "Content Filter (NSFW and more)" diff --git a/nsfw/lang/fr/strings.php b/nsfw/lang/fr/strings.php index 0f717797..fc03d5ad 100644 --- a/nsfw/lang/fr/strings.php +++ b/nsfw/lang/fr/strings.php @@ -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['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['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['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'; diff --git a/ratioed/RatioedPanel.php b/ratioed/RatioedPanel.php new file mode 100644 index 00000000..16f9df6f --- /dev/null +++ b/ratioed/RatioedPanel.php @@ -0,0 +1,206 @@ +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; + }; + } +} diff --git a/ratioed/ratioed.php b/ratioed/ratioed.php new file mode 100644 index 00000000..8ae0d48c --- /dev/null +++ b/ratioed/ratioed.php @@ -0,0 +1,58 @@ + + */ + +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); +} diff --git a/ratioed/templates/ratioed.tpl b/ratioed/templates/ratioed.tpl new file mode 100644 index 00000000..0d81b0d7 --- /dev/null +++ b/ratioed/templates/ratioed.tpl @@ -0,0 +1,164 @@ + + + +
+

{{$title}} - {{$page}} ({{$count}})

+

+ {{$h_newuser}} +

+
+ + + + + + + {{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])) }} + + {{/if}} + {{/foreach}} + + + + + {{foreach $users as $u}} + + + + + + {{if $order_users == $th_users.2.1}} + + {{/if}} + + {{if $order_users == $th_users.3.1}} + + {{/if}} + + {{if $order_users == $th_users.4.1}} + + {{/if}} + + {{if !in_array($order_users,[$th_users.2.1, $th_users.3.1, $th_users.4.1]) }} + + {{/if}} + + + + + + + + + {{/foreach}} + +
+
+ + +
+
+ + {{if $order_users == $th.1}} + {{if $order_direction_users == "+"}} + ↓ + {{else}} + ↑ + {{/if}} + {{else}} + ↕ + {{/if}} + {{$th.0}} + +
+ {{if $u.is_deletable}} +
+ + +
+ {{else}} +   + {{/if}} +
{{$u.name}}{{$u.email}}{{$u.register_date}}{{$u.login_date}}{{$u.lastitem_date}} + + + {{if $u.page_flags_raw==0 && $u.account_type_raw > 0}} + + {{/if}} + {{if $u.is_admin}}{{/if}} + {{if $u.account_expired}}{{/if}} + + +
+ + {{$pager nofilter}} +
+
diff --git a/securemail/lang/fr/messages.po b/securemail/lang/fr/messages.po index 6e6cc657..828d507b 100644 --- a/securemail/lang/fr/messages.po +++ b/securemail/lang/fr/messages.po @@ -5,7 +5,7 @@ # # Translators: # Hypolite Petovan , 2022 -# cracrayol, 2024 +# Florent C., 2023 # #, fuzzy msgid "" @@ -14,7 +14,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-11-21 19:16-0500\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" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -24,7 +24,7 @@ msgstr "" #: securemail.php:50 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 msgid "Public key" @@ -36,7 +36,7 @@ msgstr "Votre clé publique PGP formatée compatible ASCII" #: securemail.php:56 msgid "\"Secure Mail\" Settings" -msgstr "Paramètres des courriels sécurisés" +msgstr "Paramètres des emails sécurisés" #: securemail.php:59 msgid "Save Settings" diff --git a/securemail/lang/fr/strings.php b/securemail/lang/fr/strings.php index b13cc5ce..9d40a8e2 100644 --- a/securemail/lang/fr/strings.php +++ b/securemail/lang/fr/strings.php @@ -5,10 +5,10 @@ function string_plural_select_fr($n){ $n = intval($n); 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['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 and send test'] = 'Enregistrer et envoyer un message de test'; $a->strings['Test email sent'] = 'Courriel de test envoyé avec succès'; diff --git a/tumblr/lang/ar/messages.po b/tumblr/lang/ar/messages.po index 48a9e8cb..7879231d 100644 --- a/tumblr/lang/ar/messages.po +++ b/tumblr/lang/ar/messages.po @@ -8,81 +8,64 @@ msgid "" msgstr "" "Project-Id-Version: friendica\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-29 06:56+0000\n" -"PO-Revision-Date: 2014-06-23 12:58+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Arabic (http://app.transifex.com/Friendica/friendica/language/ar/)\n" +"POT-Creation-Date: 2021-07-25 13:15+0000\n" +"PO-Revision-Date: 2021-02-20 00:23+0000\n" +"Last-Translator: Farida Khalaf \n" +"Language-Team: Arabic (http://www.transifex.com/Friendica/friendica/language/ar/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" -#: tumblr.php:243 +#: tumblr.php:40 msgid "Permission denied." msgstr "الطلب مرفوض." -#: tumblr.php:296 +#: tumblr.php:70 tumblr.php:284 msgid "Save Settings" msgstr "Save Settings" -#: tumblr.php:297 +#: tumblr.php:72 msgid "Consumer Key" msgstr "" -#: tumblr.php:298 +#: tumblr.php:73 msgid "Consumer Secret" msgstr "" -#: tumblr.php:299 -msgid "Maximum tags" +#: tumblr.php:178 +msgid "You are now authenticated to tumblr." msgstr "" -#: tumblr.php:299 -msgid "" -"Maximum number of tags that a user can follow. Enter 0 to deactivate the " -"feature." +#: tumblr.php:179 +msgid "return to the connector page" +msgstr "الرجوع إلى صفحة الموصل" + +#: tumblr.php:195 +msgid "Post to Tumblr" msgstr "" -#: tumblr.php:336 -msgid "Post to page:" +#: tumblr.php:225 tumblr.php:229 +msgid "Tumblr Export" msgstr "" -#: tumblr.php:342 +#: tumblr.php:233 msgid "(Re-)Authenticate your tumblr page" msgstr "" -#: tumblr.php:343 -msgid "You are not authenticated to tumblr" -msgstr "" - -#: tumblr.php:348 +#: tumblr.php:237 msgid "Enable Tumblr Post Addon" msgstr "" -#: tumblr.php:349 +#: tumblr.php:243 msgid "Post to Tumblr by default" msgstr "" -#: tumblr.php:350 -msgid "Import the remote timeline" +#: tumblr.php:264 +msgid "Post to page:" 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" +#: tumblr.php:278 +msgid "You are not authenticated to tumblr" msgstr "" diff --git a/tumblr/lang/ar/strings.php b/tumblr/lang/ar/strings.php index 3f7ca4e4..ffd3337c 100644 --- a/tumblr/lang/ar/strings.php +++ b/tumblr/lang/ar/strings.php @@ -7,3 +7,4 @@ function string_plural_select_ar($n){ }} $a->strings['Permission denied.'] = 'الطلب مرفوض.'; $a->strings['Save Settings'] = 'Save Settings'; +$a->strings['return to the connector page'] = 'الرجوع إلى صفحة الموصل'; diff --git a/tumblr/lang/cs/messages.po b/tumblr/lang/cs/messages.po index cb6f91e6..4e031be6 100644 --- a/tumblr/lang/cs/messages.po +++ b/tumblr/lang/cs/messages.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: friendica\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" "Last-Translator: Aditoo, 2018\n" "Language-Team: Czech (http://app.transifex.com/Friendica/friendica/language/cs/)\n" @@ -21,71 +21,54 @@ msgstr "" "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" -#: tumblr.php:243 +#: tumblr.php:39 msgid "Permission denied." msgstr "Přístup odmítnut." -#: tumblr.php:296 +#: tumblr.php:69 msgid "Save Settings" msgstr "" -#: tumblr.php:297 +#: tumblr.php:71 msgid "Consumer Key" msgstr "" -#: tumblr.php:298 +#: tumblr.php:72 msgid "Consumer Secret" msgstr "" -#: tumblr.php:299 -msgid "Maximum tags" -msgstr "" +#: tumblr.php:177 +msgid "You are now authenticated to tumblr." +msgstr "Nyní jste přihlášen/a k Tumblr." -#: tumblr.php:299 -msgid "" -"Maximum number of tags that a user can follow. Enter 0 to deactivate the " -"feature." -msgstr "" +#: tumblr.php:178 +msgid "return to the connector page" +msgstr "návrat ke stránce konektor" -#: tumblr.php:336 +#: tumblr.php:194 +msgid "Post to Tumblr" +msgstr "Posílat na Tumblr" + +#: tumblr.php:225 msgid "Post to page:" msgstr "Posílat na stránku:" -#: tumblr.php:342 +#: tumblr.php:231 msgid "(Re-)Authenticate your tumblr page" msgstr "(Znovu) přihlásit k Vaší stránce Tumblr" -#: tumblr.php:343 +#: tumblr.php:232 msgid "You are not authenticated to tumblr" msgstr "Nyní nejste přihlášen/a k Tumblr." -#: tumblr.php:348 +#: tumblr.php:237 msgid "Enable Tumblr Post Addon" msgstr "Povolit doplněk Tumblr Post" -#: tumblr.php:349 +#: tumblr.php:238 msgid "Post to Tumblr by default" msgstr "Ve výchozím stavu posílat příspěvky na Tumblr" -#: tumblr.php:350 -msgid "Import the remote timeline" +#: tumblr.php:244 +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 "Posílat na Tumblr" diff --git a/tumblr/lang/cs/strings.php b/tumblr/lang/cs/strings.php index 3135b0b8..2f5f8115 100644 --- a/tumblr/lang/cs/strings.php +++ b/tumblr/lang/cs/strings.php @@ -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; } }} $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['(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['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'] = 'Posílat na Tumblr'; diff --git a/tumblr/lang/de/messages.po b/tumblr/lang/de/messages.po index c41ba45f..8056174d 100644 --- a/tumblr/lang/de/messages.po +++ b/tumblr/lang/de/messages.po @@ -4,8 +4,6 @@ # # # Translators: -# Raroun, 2023 -# Raroun, 2023 # Tobias Diekershoff , 2014-2015 # Tobias Diekershoff , 2018,2021 # Ulf Rompe , 2019 @@ -13,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: friendica\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" -"Last-Translator: Raroun, 2023\n" +"Last-Translator: Tobias Diekershoff , 2018,2021\n" "Language-Team: German (http://app.transifex.com/Friendica/friendica/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -23,71 +21,54 @@ msgstr "" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: tumblr.php:243 +#: tumblr.php:39 msgid "Permission denied." msgstr "Zugriff verweigert." -#: tumblr.php:296 +#: tumblr.php:69 msgid "Save Settings" msgstr "Einstellungen speichern" -#: tumblr.php:297 +#: tumblr.php:71 msgid "Consumer Key" msgstr "Consumer Key" -#: tumblr.php:298 +#: tumblr.php:72 msgid "Consumer Secret" msgstr "Consumer Secret" -#: tumblr.php:299 -msgid "Maximum tags" -msgstr "Maximale Anzahl an Tags" +#: tumblr.php:177 +msgid "You are now authenticated to tumblr." +msgstr "Du bist nun auf tumblr authentifiziert." -#: tumblr.php:299 -msgid "" -"Maximum number of tags that a user can follow. Enter 0 to deactivate the " -"feature." -msgstr "Maximale Anzahl von Tags, die ein Benutzer verfolgen kann. Geben Sie 0 ein, um die Funktion zu deaktivieren." +#: tumblr.php:178 +msgid "return to the connector page" +msgstr "zurück zur Connector-Seite" -#: tumblr.php:336 +#: tumblr.php:194 +msgid "Post to Tumblr" +msgstr "Auf Tumblr veröffentlichen" + +#: tumblr.php:225 msgid "Post to page:" msgstr "Auf tumblr veröffentlichen" -#: tumblr.php:342 +#: tumblr.php:231 msgid "(Re-)Authenticate your tumblr page" msgstr "(Re-)Authentifizierung deiner tumblr-Seite" -#: tumblr.php:343 +#: tumblr.php:232 msgid "You are not authenticated to tumblr" msgstr "Du bist gegenüber tumblr nicht authentifiziert" -#: tumblr.php:348 +#: tumblr.php:237 msgid "Enable Tumblr Post Addon" msgstr "Tumblr-Post-Addon aktivieren" -#: tumblr.php:349 +#: tumblr.php:238 msgid "Post to Tumblr by default" msgstr "Standardmäßig bei Tumblr veröffentlichen" -#: tumblr.php:350 -msgid "Import the remote timeline" -msgstr "Importiere die entfernte Timeline" - -#: 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" +#: tumblr.php:244 +msgid "Tumblr Export" +msgstr "Tumblr Export" diff --git a/tumblr/lang/de/strings.php b/tumblr/lang/de/strings.php index ed9af957..ce43615c 100644 --- a/tumblr/lang/de/strings.php +++ b/tumblr/lang/de/strings.php @@ -9,15 +9,12 @@ $a->strings['Permission denied.'] = 'Zugriff verweigert.'; $a->strings['Save Settings'] = 'Einstellungen speichern'; $a->strings['Consumer Key'] = 'Consumer Key'; $a->strings['Consumer Secret'] = 'Consumer Secret'; -$a->strings['Maximum tags'] = 'Maximale Anzahl an Tags'; -$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['You are now authenticated to tumblr.'] = 'Du bist nun auf tumblr authentifiziert.'; +$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['(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['Enable Tumblr Post Addon'] = 'Tumblr-Post-Addon aktivieren'; $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['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'; +$a->strings['Tumblr Export'] = 'Tumblr Export'; diff --git a/tumblr/lang/fr/messages.po b/tumblr/lang/fr/messages.po index 43dba8e3..ef2f0e3c 100644 --- a/tumblr/lang/fr/messages.po +++ b/tumblr/lang/fr/messages.po @@ -5,7 +5,7 @@ # # Translators: # bob lebonche , 2021 -# cracrayol, 2023-2024 +# Florent C., 2023 # StefOfficiel , 2015 msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-04-29 06:56+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" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -39,13 +39,13 @@ msgstr "Secret utilisateur" #: tumblr.php:299 msgid "Maximum tags" -msgstr "Étiquettes maximum" +msgstr "Tags maximum" #: tumblr.php:299 msgid "" "Maximum number of tags that a user can follow. Enter 0 to deactivate the " "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 msgid "Post to page:" @@ -73,14 +73,14 @@ msgstr "Importer le flux distant" #: tumblr.php:351 msgid "Subscribed tags" -msgstr "Étiquettes suivies" +msgstr "Tags suivis" #: tumblr.php:351 #, php-format msgid "" "Comma separated list of up to %d tags that will be imported additionally to " "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 msgid "Tumblr Import/Export" diff --git a/tumblr/lang/fr/strings.php b/tumblr/lang/fr/strings.php index f23c9c44..ece76c74 100644 --- a/tumblr/lang/fr/strings.php +++ b/tumblr/lang/fr/strings.php @@ -9,15 +9,15 @@ $a->strings['Permission denied.'] = 'Permission refusée.'; $a->strings['Save Settings'] = 'Sauvegarder les paramètres'; $a->strings['Consumer Key'] = 'Clé utilisateur'; $a->strings['Consumer Secret'] = 'Secret utilisateur'; -$a->strings['Maximum tags'] = 'Étiquettes 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 tags'] = 'Tags maximum'; +$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['(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['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['Import the remote timeline'] = 'Importer le flux distant'; -$a->strings['Subscribed tags'] = 'Étiquettes suivies'; -$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['Subscribed tags'] = 'Tags suivis'; +$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['Post to Tumblr'] = 'Publier vers Tumblr'; diff --git a/tumblr/lang/it/messages.po b/tumblr/lang/it/messages.po index 0f7e2237..f3d1df55 100644 --- a/tumblr/lang/it/messages.po +++ b/tumblr/lang/it/messages.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: friendica\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" "Last-Translator: Sylke Vicious , 2021\n" "Language-Team: Italian (http://app.transifex.com/Friendica/friendica/language/it/)\n" @@ -20,71 +20,54 @@ msgstr "" "Language: it\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." msgstr "Permesso negato." -#: tumblr.php:296 +#: tumblr.php:69 msgid "Save Settings" msgstr "Salva Impostazioni" -#: tumblr.php:297 +#: tumblr.php:71 msgid "Consumer Key" msgstr "Consumer Key" -#: tumblr.php:298 +#: tumblr.php:72 msgid "Consumer Secret" msgstr "Consumer Secret" -#: tumblr.php:299 -msgid "Maximum tags" -msgstr "" +#: tumblr.php:177 +msgid "You are now authenticated to tumblr." +msgstr "Sei autenticato su Tumblr." -#: tumblr.php:299 -msgid "" -"Maximum number of tags that a user can follow. Enter 0 to deactivate the " -"feature." -msgstr "" +#: tumblr.php:178 +msgid "return to the connector page" +msgstr "ritorna alla pagina del connettore" -#: tumblr.php:336 +#: tumblr.php:194 +msgid "Post to Tumblr" +msgstr "Invia a Tumblr" + +#: tumblr.php:225 msgid "Post to page:" msgstr "Invia alla pagina:" -#: tumblr.php:342 +#: tumblr.php:231 msgid "(Re-)Authenticate your tumblr page" msgstr "(Ri)Autenticati con la tua pagina Tumblr" -#: tumblr.php:343 +#: tumblr.php:232 msgid "You are not authenticated to tumblr" msgstr "Non sei autenticato su Tumblr" -#: tumblr.php:348 +#: tumblr.php:237 msgid "Enable Tumblr Post Addon" msgstr "Abilita componente aggiuntivo di invio a Tumblr" -#: tumblr.php:349 +#: tumblr.php:238 msgid "Post to Tumblr by default" msgstr "Invia sempre a Tumblr" -#: tumblr.php:350 -msgid "Import the remote timeline" -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 "Invia a Tumblr" +#: tumblr.php:244 +msgid "Tumblr Export" +msgstr "Esporta Tumblr" diff --git a/tumblr/lang/it/strings.php b/tumblr/lang/it/strings.php index e58ab31c..d4d4e257 100644 --- a/tumblr/lang/it/strings.php +++ b/tumblr/lang/it/strings.php @@ -9,9 +9,12 @@ $a->strings['Permission denied.'] = 'Permesso negato.'; $a->strings['Save Settings'] = 'Salva Impostazioni'; $a->strings['Consumer Key'] = 'Consumer Key'; $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['(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['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'] = 'Invia a Tumblr'; +$a->strings['Tumblr Export'] = 'Esporta Tumblr'; diff --git a/tumblr/lang/pl/messages.po b/tumblr/lang/pl/messages.po index a8676455..27a44e15 100644 --- a/tumblr/lang/pl/messages.po +++ b/tumblr/lang/pl/messages.po @@ -10,81 +10,64 @@ msgid "" msgstr "" "Project-Id-Version: friendica\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" "Last-Translator: Piotr Strębski , 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" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" -#: tumblr.php:243 +#: tumblr.php:39 msgid "Permission denied." msgstr "Odmowa dostępu." -#: tumblr.php:296 +#: tumblr.php:69 msgid "Save Settings" msgstr "Zapisz ustawienia" -#: tumblr.php:297 +#: tumblr.php:71 msgid "Consumer Key" msgstr "Klucz klienta" -#: tumblr.php:298 +#: tumblr.php:72 msgid "Consumer Secret" msgstr "Tajny klucz klienta" -#: tumblr.php:299 -msgid "Maximum tags" -msgstr "" +#: tumblr.php:177 +msgid "You are now authenticated to tumblr." +msgstr "Jesteś teraz uwierzytelniony na tumblr." -#: tumblr.php:299 -msgid "" -"Maximum number of tags that a user can follow. Enter 0 to deactivate the " -"feature." -msgstr "" +#: tumblr.php:178 +msgid "return to the connector page" +msgstr "powrót do strony łącza" -#: tumblr.php:336 +#: tumblr.php:194 +msgid "Post to Tumblr" +msgstr "Opublikuj w Tumblr" + +#: tumblr.php:225 msgid "Post to page:" msgstr "Opublikuj na stronie:" -#: tumblr.php:342 +#: tumblr.php:231 msgid "(Re-)Authenticate your tumblr page" msgstr "(Re-) Uwierzytelnij swoją stronę tumblr" -#: tumblr.php:343 +#: tumblr.php:232 msgid "You are not authenticated to tumblr" msgstr "Nie jesteś uwierzytelniony w tumblr" -#: tumblr.php:348 +#: tumblr.php:237 msgid "Enable Tumblr Post Addon" msgstr "Włącz dodatek Tumblr" -#: tumblr.php:349 +#: tumblr.php:238 msgid "Post to Tumblr by default" msgstr "Wyślij domyślnie do Tumblr" -#: tumblr.php:350 -msgid "Import the remote timeline" -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 "Opublikuj w Tumblr" +#: tumblr.php:244 +msgid "Tumblr Export" +msgstr "Eksportuj do Tumblr" diff --git a/tumblr/lang/pl/strings.php b/tumblr/lang/pl/strings.php index 896b21ba..a9f3bfb5 100644 --- a/tumblr/lang/pl/strings.php +++ b/tumblr/lang/pl/strings.php @@ -9,9 +9,12 @@ $a->strings['Permission denied.'] = 'Odmowa dostępu.'; $a->strings['Save Settings'] = 'Zapisz ustawienia'; $a->strings['Consumer Key'] = '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['(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['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'] = 'Opublikuj w Tumblr'; +$a->strings['Tumblr Export'] = 'Eksportuj do Tumblr'; diff --git a/tumblr/lang/sv/messages.po b/tumblr/lang/sv/messages.po index 3ff328a8..fe631007 100644 --- a/tumblr/lang/sv/messages.po +++ b/tumblr/lang/sv/messages.po @@ -10,81 +10,64 @@ msgid "" msgstr "" "Project-Id-Version: friendica\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-29 06:56+0000\n" -"PO-Revision-Date: 2014-06-23 12:58+0000\n" -"Last-Translator: Kristoffer Grundström , 2022\n" -"Language-Team: Swedish (http://app.transifex.com/Friendica/friendica/language/sv/)\n" +"POT-Creation-Date: 2021-11-21 19:17-0500\n" +"PO-Revision-Date: 2022-01-16 00:55+0000\n" +"Last-Translator: Kristoffer Grundström \n" +"Language-Team: Swedish (http://www.transifex.com/Friendica/friendica/language/sv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: sv\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: tumblr.php:243 +#: tumblr.php:39 msgid "Permission denied." msgstr "Åtkomst nekad." -#: tumblr.php:296 +#: tumblr.php:69 msgid "Save Settings" msgstr "" -#: tumblr.php:297 +#: tumblr.php:71 msgid "Consumer Key" msgstr "" -#: tumblr.php:298 +#: tumblr.php:72 msgid "Consumer Secret" msgstr "" -#: tumblr.php:299 -msgid "Maximum tags" +#: tumblr.php:177 +msgid "You are now authenticated to tumblr." +msgstr "Du är nu autentiserad till tumblr." + +#: tumblr.php:178 +msgid "return to the connector page" msgstr "" -#: tumblr.php:299 -msgid "" -"Maximum number of tags that a user can follow. Enter 0 to deactivate the " -"feature." +#: tumblr.php:194 +msgid "Post to Tumblr" msgstr "" -#: tumblr.php:336 +#: tumblr.php:225 msgid "Post to page:" msgstr "" -#: tumblr.php:342 +#: tumblr.php:231 msgid "(Re-)Authenticate your tumblr page" msgstr "" -#: tumblr.php:343 +#: tumblr.php:232 msgid "You are not authenticated to tumblr" msgstr "Du är inte autentiserad till tumblr" -#: tumblr.php:348 +#: tumblr.php:237 msgid "Enable Tumblr Post Addon" msgstr "" -#: tumblr.php:349 +#: tumblr.php:238 msgid "Post to Tumblr by default" msgstr "" -#: tumblr.php:350 -msgid "Import the remote timeline" -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" +#: tumblr.php:244 +msgid "Tumblr Export" msgstr "" diff --git a/tumblr/lang/sv/strings.php b/tumblr/lang/sv/strings.php index 84a0e774..4d39d3c2 100644 --- a/tumblr/lang/sv/strings.php +++ b/tumblr/lang/sv/strings.php @@ -6,4 +6,5 @@ function string_plural_select_sv($n){ return intval($n != 1); }} $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'; diff --git a/tumblr/tumblr.php b/tumblr/tumblr.php index f0c68f33..04f6a0a4 100644 --- a/tumblr/tumblr.php +++ b/tumblr/tumblr.php @@ -608,15 +608,6 @@ function tumblr_send_legacy(array $b) $body = BBCode::removeShareInformation($b['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) { $params['type'] = 'photo'; $params['caption'] = BBCode::convertForUriId($b['uri-id'], $body, BBCode::CONNECTORS); @@ -657,7 +648,7 @@ function tumblr_send_legacy(array $b) } else { $params['type'] = 'text'; $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) != '')) {