diff options
80 files changed, 6177 insertions, 4382 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d162d57ba..43c65f365 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,36 +1,49 @@ # Select image from https://hub.docker.com/_/php/ -image: php:7.1 +#image: php:7.2 +# Use a prepared Hubzilla image to optimise pipeline run +image: registry.gitlab.com/dawnbreak/hubzilla/core:php7.2 + + +stages: + - test + - deploy + # Select what we should cache cache: paths: - vendor/ + - .cache/ + +# global variables for all jobs, if no job specific variables variables: - # Configure mysql service (https://hub.docker.com/_/mysql/) + # Tell composer to use the project workspace .cache folder + COMPOSER_CACHE_DIR: "$CI_PROJECT_DIR/.cache/composer" + # Ignore a Composer warning + COMPOSER_ALLOW_SUPERUSER: 1 + # Configure MySQL/MariaDB service (https://hub.docker.com/_/mysql/, https://hub.docker.com/_/mariadb/) MYSQL_DATABASE: hello_world_test MYSQL_ROOT_PASSWORD: mysql + # Configure PostgreSQL service (https://hub.docker.com/_/postgres/) + POSTGRES_DB: ci-db + POSTGRES_USER: ci-user + POSTGRES_PASSWORD: ci-pass + before_script: -# prevent error installing buggy postgresql-client package -- mkdir -p /usr/share/man/man1 /usr/share/man/man7 -- apt-get update -yqq -- apt-get install -yqq --no-install-recommends git mysql-client postgresql-client libmcrypt-dev libpq-dev libcurl4-gnutls-dev libicu-dev libvpx-dev libjpeg-dev libpng-dev libxpm-dev zlib1g-dev libfreetype6-dev libxml2-dev libexpat1-dev libbz2-dev libgmp3-dev libldap2-dev unixodbc-dev libaspell-dev libpcre3-dev libtidy-dev -# Install PHP extensions -- docker-php-ext-install mbstring mcrypt pdo_mysql pdo_pgsql curl json intl gd xml zip bz2 opcache # Install & enable Xdebug for code coverage reports - pecl install xdebug - docker-php-ext-enable xdebug -# Install and run Composer +# Install composer - curl -sS https://getcomposer.org/installer | php # Install dev libraries from composer - php composer.phar install --no-progress -# Configure PHP values, needed for phpunit code coverage HTML generation -- echo "memory_limit = 256M" > /usr/local/etc/php/conf.d/hubzilla.ini -# We test PHP7 with MySQL -test:php:mysql: +# test PHP7 with MySQL 5.7 +php7.2_mysql 1/2: + stage: test services: - mysql:5.7 script: @@ -39,14 +52,38 @@ test:php:mysql: - echo "USE $MYSQL_DATABASE; SHOW TABLES;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE" - vendor/bin/phpunit --configuration tests/phpunit.xml --coverage-text -# test PHP7 with PostgreSQL -test:php:postgres: + +# test PHP7 with MySQL latest (8) +php7.2_mysql 2/2: + stage: test + services: + - name: mysql:latest + command: ["--default-authentication-plugin=mysql_native_password"] + script: + - echo "USE $MYSQL_DATABASE; $(cat ./install/schema_mysql.sql)" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE" + - echo "SHOW DATABASES;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE" + - echo "USE $MYSQL_DATABASE; SHOW TABLES;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE" + - vendor/bin/phpunit --configuration tests/phpunit.xml --coverage-text + + +# test PHP7 with MariaDB latest (10.3) +php7.2_mariadb: + stage: test + services: + - name: mariadb:latest + alias: mysql + script: + - echo "USE $MYSQL_DATABASE; $(cat ./install/schema_mysql.sql)" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE" + - echo "SHOW DATABASES;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE" + - echo "USE $MYSQL_DATABASE; SHOW TABLES;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE" + - vendor/bin/phpunit --configuration tests/phpunit.xml --coverage-text + + +# test PHP7 with PostgreSQL latest +php7.2_postgres: + stage: test services: - postgres:latest - variables: - POSTGRES_DB: ci-db - POSTGRES_USER: ci-user - POSTGRES_PASSWORD: ci-pass script: - export PGPASSWORD=$POSTGRES_PASSWORD - psql --version @@ -67,3 +104,23 @@ test:php:postgres: name: "$CI_COMMIT_REF_SLUG-$CI_JOB_NAME" paths: - tests/results/ + + +# Generate Doxygen API Documentation and deploy it at GitLab pages +pages: + stage: deploy + cache: {} + image: php:7-cli-alpine + before_script: + - apk update + - apk add doxygen ttf-freefont graphviz + script: + - doxygen util/Doxyfile + - mv doc/html/ public/ + - echo "API documentation should be accessible at https://hubzilla.frama.io/core/ soon" + artifacts: + paths: + - public + only: + # Only generate it on main repo's master branch + - master@hubzilla/core @@ -1,3 +1,13 @@ +Hubzilla 3.8.9 (2018-02-03) + - Fix typos in mod oep + - Fix page jumping when liking collapsed/expanded post + - Fix failure to import mail in mod import + - Fix wrong channel count in mod new_channel + - Fix diaspora addon regression + - Remove deprecated diaspora addon endpoint + - Fix wrong function call in gallery addon + + Hubzilla 3.8.8 (2018-12-22) - Fix issue with linkinfo - Fix cURL with HTTP/2 diff --git a/Zotlabs/Daemon/Cache_embeds.php b/Zotlabs/Daemon/Cache_embeds.php new file mode 100644 index 000000000..08088abd6 --- /dev/null +++ b/Zotlabs/Daemon/Cache_embeds.php @@ -0,0 +1,27 @@ +<?php /** @file */ + +namespace Zotlabs\Daemon; + + +class Cache_embeds { + + static public function run($argc,$argv) { + + if(! $argc == 2) + return; + + $c = q("select body from item where id = %d ", + dbesc(intval($argv[1])) + ); + + if(! $c) + return; + + $item = $c[0]; + + // bbcode conversion by default processes embeds that aren't already cached. + // Ignore the returned html output. + + bbcode($item['body']); + } +} diff --git a/Zotlabs/Daemon/Notifier.php b/Zotlabs/Daemon/Notifier.php index beb30ed96..df73d977d 100644 --- a/Zotlabs/Daemon/Notifier.php +++ b/Zotlabs/Daemon/Notifier.php @@ -434,6 +434,8 @@ class Notifier { $x['body'] = 'private'; logger('notifier: encoded item: ' . print_r($x,true), LOGGER_DATA, LOG_DEBUG); + //logger('notifier: encoded activity: ' . print_r($activity,true), LOGGER_DATA, LOG_DEBUG); + stringify_array_elms($recipients); if(! $recipients) { logger('no recipients'); @@ -677,6 +679,17 @@ class Notifier { } $packet_type = (($upstream || $uplink) ? 'response' : 'activity'); + + // block zot private reshares from zot6, as this could cause a number of privacy issues + // due to parenting differences between the reshare implementations. In zot a reshare is + // a standalone parent activity and in zot6 it is a followup/child of the original activity. + // For public reshares, some comments to the reshare on the zot fork will not make it to zot6 + // due to these different message models. This cannot be prevented at this time. + + if($packet_type === 'activity' && $activity['type'] === 'Announce' && intval($target_item['item_private'])) { + continue; + } + $packet = Libzot::build_packet($channel,$packet_type,$zenv,$activity,'activitystreams',(($private) ? $hub['hubloc_sitekey'] : null),$hub['site_crypto']); } else { diff --git a/Zotlabs/Lib/Activity.php b/Zotlabs/Lib/Activity.php index 154421b6a..bcbe53df7 100644 --- a/Zotlabs/Lib/Activity.php +++ b/Zotlabs/Lib/Activity.php @@ -35,6 +35,9 @@ class Activity { if($x['type'] === ACTIVITY_OBJ_EVENT) { return self::fetch_event($x); } + if($x['type'] === ACTIVITY_OBJ_PHOTO) { + return self::fetch_image($x); + } return $x; @@ -102,6 +105,29 @@ class Activity { } } + + static function fetch_image($x) { + + + $ret = [ + 'type' => 'Image', + 'id' => $x['id'], + 'name' => $x['title'], + 'content' => bbcode($x['body']), + 'source' => [ 'mediaType' => 'text/bbcode', 'content' => $x['body'] ], + 'published' => datetime_convert('UTC','UTC',$x['created'],ATOM_TIME), + 'updated' => datetime_convert('UTC','UTC', $x['edited'],ATOM_TIME), + 'url' => [ + 'type' => 'Link', + 'mediaType' => $x['link'][0]['type'], + 'href' => $x['link'][0]['href'], + 'width' => $x['link'][0]['width'], + 'height' => $x['link'][0]['height'] + ] + ]; + return $ret; + } + static function fetch_event($x) { // convert old Zot event objects to ActivityStreams Event objects @@ -210,7 +236,7 @@ class Activity { $ret['id'] = ((strpos($i['mid'],'http') === 0) ? $i['mid'] : z_root() . '/item/' . urlencode($i['mid'])); if($i['title']) - $ret['title'] = bbcode($i['title']); + $ret['name'] = $i['title']; $ret['published'] = datetime_convert('UTC','UTC',$i['created'],ATOM_TIME); if($i['created'] !== $i['edited']) @@ -385,10 +411,17 @@ class Activity { $ret['type'] = 'Tombstone'; $ret['formerType'] = self::activity_obj_mapper($i['obj_type']); $ret['id'] = ((strpos($i['mid'],'http') === 0) ? $i['mid'] : z_root() . '/item/' . urlencode($i['mid'])); + $actor = self::encode_person($i['author'],false); + if($actor) + $ret['actor'] = $actor; + else + return []; return $ret; } $ret['type'] = self::activity_mapper($i['verb']); + + $ret['id'] = ((strpos($i['mid'],'http') === 0) ? $i['mid'] : z_root() . '/activity/' . urlencode($i['mid'])); if($i['title']) @@ -460,6 +493,10 @@ class Activity { if(! is_array($i['obj'])) { $i['obj'] = json_decode($i['obj'],true); } + if($i['obj']['type'] === ACTIVITY_OBJ_PHOTO) { + $i['obj']['id'] = $i['id']; + } + $obj = self::encode_object($i['obj']); if($obj) $ret['object'] = $obj; @@ -1374,6 +1411,9 @@ class Activity { $s['owner_xchan'] = $act->actor['id']; $s['author_xchan'] = $act->actor['id']; + // ensure we store the original actor + self::actor_store($act->actor['id'],$act->actor); + $s['mid'] = $act->obj['id']; $s['parent_mid'] = $act->parent_id; @@ -1446,7 +1486,8 @@ class Activity { $s['verb'] = self::activity_decode_mapper($act->type); - if($act->type === 'Tombstone') { + + if($act->type === 'Tombstone' || ($act->type === 'Create' && $act->obj['type'] === 'Tombstone')) { $s['item_deleted'] = 1; } @@ -1455,7 +1496,6 @@ class Activity { $s['obj_type'] = ACTIVITY_OBJ_COMMENT; } - if($act->obj['type'] === 'Event') { $s['obj'] = []; $s['obj']['asld'] = $act->obj; @@ -1609,7 +1649,9 @@ class Activity { } - if($act->obj['type'] === 'Image') { + // avoid double images from hubzilla to zap/osada + + if($act->obj['type'] === 'Image' && strpos($s['body'],'zrl=') === false) { $ptr = null; diff --git a/Zotlabs/Lib/Apps.php b/Zotlabs/Lib/Apps.php index de7439ed7..56283ff76 100644 --- a/Zotlabs/Lib/Apps.php +++ b/Zotlabs/Lib/Apps.php @@ -1,32 +1,34 @@ -<?php /** @file */ +<?php namespace Zotlabs\Lib; -/** - * Apps - * - */ - require_once('include/plugin.php'); require_once('include/channel.php'); - +/** + * @brief Apps class. + * + */ class Apps { static public $available_apps = null; static public $installed_apps = null; - static public $base_apps = null; - - + /** + * @brief + * + * @param boolean $translate (optional) default true + * @return array + */ static public function get_system_apps($translate = true) { + $ret = []; - $ret = array(); if(is_dir('apps')) $files = glob('apps/*.apd'); else $files = glob('app/*.apd'); + if($files) { foreach($files as $f) { $x = self::parse_app_description($f,$translate); @@ -50,14 +52,17 @@ class Apps { } } - call_hooks('get_system_apps',$ret); + /** + * @hooks get_system_apps + * Hook to manipulate the system apps array. + */ + call_hooks('get_system_apps', $ret); return $ret; - } static public function get_base_apps() { - $x = get_config('system','base_apps',[ + $x = get_config('system','base_apps',[ 'Connections', 'Network', 'Settings', @@ -72,7 +77,13 @@ class Apps { 'Mail', 'Profile Photo' ]); - call_hooks('get_base_apps',$x); + + /** + * @hooks get_base_apps + * Hook to manipulate the base apps array. + */ + call_hooks('get_base_apps', $x); + return $x; } @@ -81,7 +92,7 @@ class Apps { return; self::$base_apps = self::get_base_apps(); - + $apps = self::get_system_apps(false); self::$available_apps = q("select * from app where app_channel = 0"); @@ -106,6 +117,7 @@ class Apps { // $id will be boolean true or false to install an app, or an integer id to update an existing app if($id === false) continue; + if($id !== true) { // if we already installed this app, but it changed, preserve any categories we created $s = EMPTY_STR; @@ -126,16 +138,17 @@ class Apps { $app['guid'] = hash('whirlpool',$app['name']); $app['system'] = 1; self::app_install(local_channel(),$app); - } - } + } } /** - * Install the system app if no system apps have been installed, or if a new system app + * Install the system app if no system apps have been installed, or if a new system app * is discovered, or if the version of a system app changes. + * + * @param array $app + * @return boolean|int */ - static public function check_install_system_app($app) { if((! is_array(self::$available_apps)) || (! count(self::$available_apps))) { return true; @@ -159,17 +172,16 @@ class Apps { return $notfound; } - /** - * Install the system app if no system apps have been installed, or if a new system app - * is discovered, or if the version of a system app changes. + * Install the personal app if no personal apps have been installed, or if a new personal app + * is discovered, or if the version of a personal app changes. + * + * @param array $app + * @return boolean|int */ - - - static public function check_install_personal_app($app) { $installed = false; - foreach(self::$installed_apps as $iapp) { + foreach(self::$installed_apps as $iapp) { if($iapp['app_id'] == hash('whirlpool',$app['name'])) { $installed = true; if(($iapp['app_version'] != $app['version']) @@ -189,19 +201,24 @@ class Apps { return strcasecmp($a['name'],$b['name']); } - - static public function parse_app_description($f,$translate = true) { - - $ret = array(); + /** + * @brief Parse app description. + * + * @param string $f filename + * @param boolean $translate (optional) default true + * @return boolean|array + */ + static public function parse_app_description($f, $translate = true) { + $ret = []; + $matches = []; $baseurl = z_root(); - $channel = \App::get_channel(); - $address = (($channel) ? $channel['channel_address'] : ''); - + //$channel = \App::get_channel(); + //$address = (($channel) ? $channel['channel_address'] : ''); + //future expansion $observer = \App::get_observer(); - $lines = @file($f); if($lines) { @@ -210,7 +227,7 @@ class Apps { $ret[$matches[1]] = trim($matches[2]); } } - } + } if(! $ret['photo']) $ret['photo'] = $baseurl . '/' . get_default_profile_photo(80); @@ -292,15 +309,18 @@ class Apps { if($ret) { if($translate) self::translate_system_apps($ret); + return $ret; } + return false; - } + } static public function translate_system_apps(&$arr) { $apps = array( 'Apps' => t('Apps'), + 'Affinity Tool' => t('Affinity Tool'), 'Articles' => t('Articles'), 'Cards' => t('Cards'), 'Admin' => t('Site Admin'), @@ -311,17 +331,17 @@ class Apps { 'Remote Diagnostics' => t('Remote Diagnostics'), 'Suggest Channels' => t('Suggest Channels'), 'Login' => t('Login'), - 'Channel Manager' => t('Channel Manager'), + 'Channel Manager' => t('Channel Manager'), 'Network' => t('Stream'), 'Settings' => t('Settings'), 'Files' => t('Files'), 'Webpages' => t('Webpages'), 'Wiki' => t('Wiki'), - 'Channel Home' => t('Channel Home'), + 'Channel Home' => t('Channel Home'), 'View Profile' => t('View Profile'), - 'Photos' => t('Photos'), - 'Events' => t('Events'), - 'Directory' => t('Directory'), + 'Photos' => t('Photos'), + 'Events' => t('Events'), + 'Directory' => t('Directory'), 'Help' => t('Help'), 'Mail' => t('Mail'), 'Mood' => t('Mood'), @@ -366,30 +386,31 @@ class Apps { if(array_key_exists($arr[$x]['name'],$apps)) { $arr[$x]['name'] = $apps[$arr[$x]['name']]; } else { - // Try to guess by app name if not in list - $arr[$x]['name'] = t(trim($arr[$x]['name'])); + // Try to guess by app name if not in list + $arr[$x]['name'] = t(trim($arr[$x]['name'])); } } } - } - - // papp is a portable app - - static public function app_render($papp,$mode = 'view') { - - /** - * modes: - * view: normal mode for viewing an app via bbcode from a conversation or page - * provides install/update button if you're logged in locally - * install: like view but does not display app-bin options if they are present - * list: normal mode for viewing an app on the app page - * no buttons are shown - * edit: viewing the app page in editing mode provides a delete button - * nav: render apps for app-bin - */ - + /** + * @brief + * + * @param array $papp + * papp is a portable app + * @param string $mode (optional) default 'view' + * Render modes: + * * \b view: normal mode for viewing an app via bbcode from a conversation or page + * provides install/update button if you're logged in locally + * * \b install: like view but does not display app-bin options if they are present + * * \b list: normal mode for viewing an app on the app page + * no buttons are shown + * * \b edit: viewing the app page in editing mode provides a delete button + * * \b nav: render apps for app-bin + * + * @return void|string Parsed HTML + */ + static public function app_render($papp, $mode = 'view') { $installed = false; if(! $papp) @@ -414,7 +435,7 @@ class Apps { $sys = get_sys_channel(); $view_channel = $sys['channel_id']; } - self::app_macros($view_channel,$papp); + self::app_macros($view_channel,$papp); } if(strpos($papp['url'], ',')) { @@ -427,7 +448,6 @@ class Apps { $papp['url'] = z_root() . ((strpos($papp['url'],'/') === 0) ? '' : '/') . $papp['url']; - foreach($papp as $k => $v) { if(strpos($v,'http') === 0 && $k != 'papp') { if(! (local_channel() && strpos($v,z_root()) === 0)) { @@ -509,7 +529,7 @@ class Apps { if($x) { $hosturl = $x['scheme'] . '://' . $x['host'] . '/'; } - } + } } $install_action = (($installed) ? t('Update') : t('Install')); @@ -592,8 +612,14 @@ class Apps { return false; } - - static public function can_delete($uid,$app) { + /** + * @brief + * + * @param mixed $uid If not set return false, otherwise no influence + * @param array $app + * @return boolean + */ + static public function can_delete($uid, $app) { if(! $uid) { return false; } @@ -601,7 +627,7 @@ class Apps { $base_apps = self::get_base_apps(); if($base_apps) { foreach($base_apps as $b) { - if($app['guid'] === hash('whirlpool',$b)) { + if($app['guid'] === hash('whirlpool', $b)) { return false; } } @@ -613,7 +639,6 @@ class Apps { static public function app_destroy($uid,$app) { if($uid && $app['guid']) { - $x = q("select * from app where app_id = '%s' and app_channel = %d limit 1", dbesc($app['guid']), intval($uid) @@ -622,7 +647,7 @@ class Apps { if(! intval($x[0]['app_deleted'])) { $x[0]['app_deleted'] = 1; if(self::can_delete($uid,$app)) { - $r = q("delete from app where app_id = '%s' and app_channel = %d", + q("delete from app where app_id = '%s' and app_channel = %d", dbesc($app['guid']), intval($uid) ); @@ -630,10 +655,15 @@ class Apps { intval(TERM_OBJ_APP), intval($x[0]['id']) ); + /** + * @hooks app_destroy + * Called after app entry got removed from database + * and provide app array from database. + */ call_hooks('app_destroy', $x[0]); } else { - $r = q("update app set app_deleted = 1 where app_id = '%s' and app_channel = %d", + q("update app set app_deleted = 1 where app_id = '%s' and app_channel = %d", dbesc($app['guid']), intval($uid) ); @@ -647,22 +677,23 @@ class Apps { } } } - } - static public function app_undestroy($uid,$app) { - - // undelete a system app - + /** + * @brief Undelete a system app. + * + * @param int $uid + * @param array $app + */ + static public function app_undestroy($uid, $app) { if($uid && $app['guid']) { - $x = q("select * from app where app_id = '%s' and app_channel = %d limit 1", dbesc($app['guid']), intval($uid) ); if($x) { if($x[0]['app_system']) { - $r = q("update app set app_deleted = 0 where app_id = '%s' and app_channel = %d", + q("update app set app_deleted = 0 where app_id = '%s' and app_channel = %d", dbesc($app['guid']), intval($uid) ); @@ -671,7 +702,15 @@ class Apps { } } - static public function app_feature($uid,$app,$term) { + /** + * @brief + * + * @param int $uid + * @param array $app + * @param string $term + * @return void + */ + static public function app_feature($uid, $app, $term) { $r = q("select id from app where app_id = '%s' and app_channel = %d limit 1", dbesc($app['guid']), intval($uid) @@ -695,23 +734,37 @@ class Apps { } } - static public function app_installed($uid,$app,$bypass_filter=false) { + /** + * @brief + * + * @param int $uid + * @param array $app + * @param boolean $bypass_filter (optional) default false + * @return boolean + */ + static public function app_installed($uid, $app, $bypass_filter = false) { $r = q("select id from app where app_id = '%s' and app_channel = %d limit 1", - dbesc((array_key_exists('guid',$app)) ? $app['guid'] : ''), + dbesc((array_key_exists('guid', $app)) ? $app['guid'] : ''), intval($uid) ); - if (!$bypass_filter) { + if(!$bypass_filter) { $filter_arr = [ - 'uid'=>$uid, - 'app'=>$app, - 'installed'=>$r + 'uid' => $uid, + 'app' => $app, + 'installed' => $r ]; - call_hooks('app_installed_filter',$filter_arr); + /** + * @hooks app_installed_filter + * * \e int \b uid + * * \e array \b app + * * \e mixed \b installed - return value + */ + call_hooks('app_installed_filter', $filter_arr); $r = $filter_arr['installed']; } - return(($r) ? true : false); + return(($r) ? true : false); } @@ -727,11 +780,17 @@ class Apps { 'app'=>$app, 'installed'=>$r ]; - call_hooks('addon_app_installed_filter',$filter_arr); + /** + * @hooks addon_app_installed_filter + * * \e int \b uid + * * \e array \b app + * * \e mixed \b installed - return value + */ + call_hooks('addon_app_installed_filter', $filter_arr); $r = $filter_arr['installed']; } - return(($r) ? true : false); + return(($r) ? true : false); } static public function system_app_installed($uid,$app,$bypass_filter=false) { @@ -746,28 +805,39 @@ class Apps { 'app'=>$app, 'installed'=>$r ]; - call_hooks('system_app_installed_filter',$filter_arr); + /** + * @hooks system_app_installed_filter + * * \e int \b uid + * * \e array \b app + * * \e mixed \b installed - return value + */ + call_hooks('system_app_installed_filter', $filter_arr); $r = $filter_arr['installed']; } - return(($r) ? true : false); + return(($r) ? true : false); } - - + /** + * @brief + * + * @param int $uid + * @param boolean $deleted + * @param array $cats + * @return boolean|array + */ static public function app_list($uid, $deleted = false, $cats = []) { - if($deleted) - $sql_extra = ""; + if($deleted) + $sql_extra = ''; else - $sql_extra = " and app_deleted = 0 "; + $sql_extra = ' and app_deleted = 0 '; if($cats) { - - $cat_sql_extra = " and ( "; + $cat_sql_extra = ' and ( '; foreach($cats as $cat) { if(strpos($cat_sql_extra, 'term')) - $cat_sql_extra .= "or "; + $cat_sql_extra .= 'or '; $cat_sql_extra .= "term = '" . dbesc($cat) . "' "; } @@ -779,11 +849,13 @@ class Apps { ); if(! $r) return $r; - $sql_extra .= " and app.id in ( "; + + $sql_extra .= ' and app.id in ( '; $s = ''; foreach($r as $rr) { if($s) $s .= ','; + $s .= intval($rr['oid']); } $sql_extra .= $s . ') '; @@ -794,12 +866,26 @@ class Apps { ); if($r) { - $hookinfo = Array('uid'=>$uid,'deleted'=>$deleted,'cats'=>$cats,'apps'=>$r); - call_hooks('app_list',$hookinfo); + $hookinfo = [ + 'uid' => $uid, + 'deleted' => $deleted, + 'cats' => $cats, + 'apps' => $r, + ]; + /** + * @hooks app_list + * * \e int \b uid + * * \e boolean \b deleted + * * \e array \b cats + * * \e array \b apps - return value + */ + call_hooks('app_list', $hookinfo); $r = $hookinfo['apps']; - for($x = 0; $x < count($r); $x ++) { + + for($x = 0; $x < count($r); $x++) { if(! $r[$x]['app_system']) $r[$x]['type'] = 'personal'; + $r[$x]['term'] = q("select * from term where otype = %d and oid = %d", intval(TERM_OBJ_APP), intval($r[$x]['id']) @@ -807,7 +893,7 @@ class Apps { } } - return($r); + return $r; } static public function app_order($uid,$apps,$menu) { @@ -839,13 +925,14 @@ class Apps { $ret[] = $ap; } } - return $ret; + return $ret; } static function find_app_in_array($name,$arr) { if(! $arr) return false; + foreach($arr as $x) { if($x['name'] === $name) { return $x; @@ -854,8 +941,16 @@ class Apps { return false; } - static function moveup($uid,$guid,$menu) { - $syslist = array(); + /** + * @brief + * + * @param int $uid + * @param int $guid + * @param string $menu + * @return void + */ + static function moveup($uid, $guid, $menu) { + $syslist = []; $conf = (($menu === 'nav_featured_app') ? 'app_order' : 'app_pin_order'); @@ -865,6 +960,7 @@ class Apps { $papp = self::app_encode($li); if($menu !== 'nav_pinned_app' && strpos($papp['categories'],'nav_pinned_app') !== false) continue; + $syslist[] = $papp; } } @@ -877,8 +973,6 @@ class Apps { if(! $syslist) return; - $newlist = []; - foreach($syslist as $k => $li) { if($li['guid'] === $guid) { $position = $k; @@ -887,6 +981,7 @@ class Apps { } if(! $position) return; + $dest_position = $position - 1; $saved = $syslist[$dest_position]; $syslist[$dest_position] = $syslist[$position]; @@ -898,11 +993,18 @@ class Apps { } set_pconfig($uid,'system',$conf,implode(',',$narr)); - } - static function movedown($uid,$guid,$menu) { - $syslist = array(); + /** + * @brief + * + * @param int $uid + * @param int $guid + * @param string $menu + * @return void + */ + static function movedown($uid, $guid, $menu) { + $syslist = []; $conf = (($menu === 'nav_featured_app') ? 'app_order' : 'app_pin_order'); @@ -912,6 +1014,7 @@ class Apps { $papp = self::app_encode($li); if($menu !== 'nav_pinned_app' && strpos($papp['categories'],'nav_pinned_app') !== false) continue; + $syslist[] = $papp; } } @@ -924,8 +1027,6 @@ class Apps { if(! $syslist) return; - $newlist = []; - foreach($syslist as $k => $li) { if($li['guid'] === $guid) { $position = $k; @@ -934,6 +1035,7 @@ class Apps { } if($position >= count($syslist) - 1) return; + $dest_position = $position + 1; $saved = $syslist[$dest_position]; $syslist[$dest_position] = $syslist[$position]; @@ -945,7 +1047,6 @@ class Apps { } set_pconfig($uid,'system',$conf,implode(',',$narr)); - } static public function app_decode($s) { @@ -953,8 +1054,14 @@ class Apps { return json_decode($x,true); } - - static public function app_macros($uid,&$arr) { + /** + * @brief + * + * @param int $uid + * @param[in,out] array $arr + * @return void + */ + static public function app_macros($uid, &$arr) { if(! intval($uid)) return; @@ -962,21 +1069,17 @@ class Apps { $baseurl = z_root(); $channel = channelx_by_n($uid); $address = (($channel) ? $channel['channel_address'] : ''); - + //future expansion - $observer = \App::get_observer(); - + //$observer = \App::get_observer(); + $arr['url'] = str_replace(array('$baseurl','$nick'),array($baseurl,$address),$arr['url']); $arr['photo'] = str_replace(array('$baseurl','$nick'),array($baseurl,$address),$arr['photo']); - } - - - static public function app_store($arr) { //logger('app_store: ' . print_r($arr,true)); @@ -1160,16 +1263,20 @@ class Apps { } return $ret; - } - - static public function app_encode($app,$embed = false) { - - $ret = array(); + /** + * @brief + * + * @param array $app + * @param boolean $embed (optional) default false + * @return array|string + */ + static public function app_encode($app, $embed = false) { + $ret = []; $ret['type'] = 'personal'; - + if($app['app_id']) $ret['guid'] = $app['app_id']; @@ -1202,7 +1309,7 @@ class Apps { if($app['app_price']) $ret['price'] = $app['app_price']; - + if($app['app_page']) $ret['page'] = $app['app_page']; @@ -1226,12 +1333,12 @@ class Apps { foreach($app['term'] as $t) { if($s) $s .= ','; + $s .= $t['term']; } $ret['categories'] = $s; } - if(! $embed) return $ret; @@ -1239,18 +1346,15 @@ class Apps { if(array_key_exists('categories',$ret)) unset($ret['categories']); - + $j = json_encode($ret); - return '[app]' . chunk_split(base64_encode($j),72,"\n") . '[/app]'; + return '[app]' . chunk_split(base64_encode($j),72,"\n") . '[/app]'; } static public function papp_encode($papp) { return chunk_split(base64_encode(json_encode($papp)),72,"\n"); - } } - - diff --git a/Zotlabs/Lib/Libzot.php b/Zotlabs/Lib/Libzot.php index e66c929bf..019237568 100644 --- a/Zotlabs/Lib/Libzot.php +++ b/Zotlabs/Lib/Libzot.php @@ -2,11 +2,6 @@ namespace Zotlabs\Lib; -/** - * @brief lowlevel implementation of Zot6 protocol. - * - */ - use Zotlabs\Zot6\HTTPSig; use Zotlabs\Access\Permissions; use Zotlabs\Access\PermissionLimits; @@ -14,14 +9,17 @@ use Zotlabs\Daemon\Master; require_once('include/crypto.php'); - +/** + * @brief Lowlevel implementation of Zot6 protocol. + * + */ class Libzot { /** * @brief Generates a unique string for use as a zot guid. * - * Generates a unique string for use as a zot guid using our DNS-based url, the - * channel nickname and some entropy. + * Generates a unique string for use as a zot guid using our DNS-based url, + * the channel nickname and some entropy. * The entropy ensures uniqueness against re-installs where the same URL and * nickname are chosen. * @@ -32,9 +30,8 @@ class Libzot { * immediate universe. * * @param string $channel_nick a unique nickname of controlling entity - * @returns string + * @return string */ - static function new_uid($channel_nick) { $rawstr = z_root() . '/' . $channel_nick . '.' . mt_rand(); return(base64url_encode(hash('whirlpool', $rawstr, true), true)); @@ -52,8 +49,8 @@ class Libzot { * * @param string $guid * @param string $pubkey + * @return string */ - static function make_xchan_hash($guid, $pubkey) { return base64url_encode(hash('whirlpool', $guid . $pubkey, true)); } @@ -65,10 +62,8 @@ class Libzot { * should only be used by channels which are defined on this hub. * * @param string $hash - xchan_hash - * @returns array of hubloc (hub location structures) - * + * @return array of hubloc (hub location structures) */ - static function get_hublocs($hash) { /* Only search for active hublocs - e.g. those that haven't been marked deleted */ @@ -92,16 +87,17 @@ class Libzot { * packet type: one of 'ping', 'pickup', 'purge', 'refresh', 'keychange', 'force_refresh', 'notify', 'auth_check' * @param array $recipients * envelope recipients, array of portable_id's; empty for public posts - * @param string msg + * @param string $msg * optional message + * @param string $encoding + * optional encoding, default 'activitystreams' * @param string $remote_key * optional public site key of target hub used to encrypt entire packet * NOTE: remote_key and encrypted packets are required for 'auth_check' packets, optional for all others * @param string $methods - * optional comma separated list of encryption methods @ref self::best_algorithm() + * optional comma separated list of encryption methods @ref best_algorithm() * @returns string json encoded zot packet */ - static function build_packet($channel, $type = 'activity', $recipients = null, $msg = '', $encoding = 'activitystreams', $remote_key = null, $methods = '') { $sig_method = get_config('system','signature_algorithm','sha256'); @@ -146,11 +142,10 @@ class Libzot { * @brief Choose best encryption function from those available on both sites. * * @param string $methods - * comma separated list of encryption methods + * Comma separated list of encryption methods * @return string first match from our site method preferences crypto_methods() array - * of a method which is common to both sites; or 'aes256cbc' if no matches are found. + * of a method which is common to both sites; or 'aes256cbc' if no matches are found. */ - static function best_algorithm($methods) { $x = [ @@ -164,7 +159,6 @@ class Libzot { * * \e string \b methods - comma separated list of encryption methods * * \e string \b result - the algorithm to return */ - call_hooks('zot_best_algorithm', $x); if($x['result']) @@ -190,7 +184,7 @@ class Libzot { /** - * @brief send a zot message + * @brief Send a zot message. * * @see z_post_url() * @@ -200,18 +194,17 @@ class Libzot { * @param array $crypto (required if encrypted httpsig, requires hubloc_sitekey and site_crypto elements) * @return array see z_post_url() for returned data format */ - static function zot($url, $data, $channel = null,$crypto = null) { if($channel) { - $headers = [ - 'X-Zot-Token' => random_string(), - 'Digest' => HTTPSig::generate_digest_header($data), + $headers = [ + 'X-Zot-Token' => random_string(), + 'Digest' => HTTPSig::generate_digest_header($data), 'Content-type' => 'application/x-zot+json', '(request-target)' => 'post ' . get_request_string($url) ]; - $h = HTTPSig::create_sig($headers,$channel['channel_prvkey'],channel_url($channel),false,'sha512', + $h = HTTPSig::create_sig($headers,$channel['channel_prvkey'],channel_url($channel),false,'sha512', (($crypto) ? [ 'key' => $crypto['hubloc_sitekey'], 'algorithm' => self::best_algorithm($crypto['site_crypto']) ] : false)); } else { @@ -227,7 +220,6 @@ class Libzot { /** * @brief Refreshes after permission changed or friending, etc. * - * * refresh is typically invoked when somebody has changed permissions of a channel and they are notified * to fetch new permissions via a finger/discovery operation. This may result in a new connection * (abook entry) being added to a local channel and it may result in auto-permissions being granted. @@ -251,7 +243,6 @@ class Libzot { * * \b true if successful * * otherwise \b false */ - static function refresh($them, $channel = null, $force = false) { logger('them: ' . print_r($them,true), LOGGER_DATA, LOG_DEBUG); @@ -265,13 +256,13 @@ class Libzot { } else { $r = null; - + // if they re-installed the server we could end up with the wrong record - pointing to the old install. // We'll order by reverse id to try and pick off the newest one first and hopefully end up with the // correct hubloc. If this doesn't work we may have to re-write this section to try them all. if(array_key_exists('xchan_addr',$them) && $them['xchan_addr']) { - $r = q("select hubloc_id_url, hubloc_primary from hubloc where hubloc_addr = '%s' order by hubloc_id desc", + $r = q("select hubloc_id_url, hubloc_primary from hubloc where hubloc_addr = '%s' and hubloc_network = 'zot6' order by hubloc_id desc", dbesc($them['xchan_addr']) ); } @@ -317,7 +308,7 @@ class Libzot { if(! $hsig_valid) { logger('http signature not valid: ' . print_r($hsig,true)); - return $result; + return false; } @@ -356,7 +347,7 @@ class Libzot { ); if($r) { -logger('4'); + // connection exists // if the dob is the same as what we have stored (disregarding the year), keep the one @@ -416,7 +407,7 @@ logger('4'); if($y) { logger("New introduction received for {$channel['channel_name']}"); $new_perms = get_all_perms($channel['channel_id'],$x['hash'],false); - + // Send a clone sync packet and a permissions update if permissions have changed $new_connection = q("select * from abook left join xchan on abook_xchan = xchan_hash where abook_xchan = '%s' and abook_channel = %d and abook_self = 0 order by abook_created desc limit 1", @@ -524,10 +515,14 @@ logger('4'); return false; } - - - - static function valid_hub($sender,$site_id) { + /** + * @brief + * + * @param string $sender + * @param string $site_id + * @return null|array + */ + static function valid_hub($sender, $site_id) { $r = q("select hubloc.*, site.site_crypto from hubloc left join site on hubloc_url = site_url where hubloc_hash = '%s' and hubloc_site_id = '%s' limit 1", dbesc($sender), @@ -548,7 +543,6 @@ logger('4'); } return $r[0]; - } /** @@ -559,21 +553,14 @@ logger('4'); * origination address. This will fetch the discovery packet of the sender, * which contains the public key we need to verify our guid and url signatures. * - * @param array $arr an associative array which must contain: - * * \e string \b guid => guid of conversant - * * \e string \b guid_sig => guid signed with conversant's private key - * * \e string \b url => URL of the origination hub of this communication - * * \e string \b url_sig => URL signed with conversant's private key + * @param string $id * * @return array An associative array with - * * \b success boolean true or false - * * \b message (optional) error string only if success is false + * * \e boolean \b success + * * \e string \b message (optional, unused) error string only if success is false */ - static function register_hub($id) { - $id_hash = false; - $valid = false; $hsig_valid = false; $result = [ 'success' => false ]; @@ -807,7 +794,7 @@ logger('4'); // If setting for the default profile, unset the profile photo flag from any other photos I own if($is_default_profile) { - q("UPDATE photo SET photo_usage = %d WHERE photo_usage = %d AND resource_id != '%s' AND aid = %d AND uid = %d", + q("UPDATE photo SET photo_usage = %d WHERE photo_usage = %d AND resource_id != '%s' AND aid = %d AND uid = %d", intval(PHOTO_NORMAL), intval(PHOTO_PROFILE), dbesc($hash), @@ -954,8 +941,8 @@ logger('4'); * @param string $hub - url of site we just contacted * @param array $arr - output of z_post_url() * @param array $outq - The queue structure attached to this request + * @return void */ - static function process_response($hub, $arr, $outq) { logger('remote: ' . print_r($arr,true),LOGGER_DATA); @@ -986,7 +973,7 @@ logger('4'); if(! $x['success']) { // handle remote validation issues - + $b = q("update dreport set dreport_result = '%s', dreport_time = '%s' where dreport_queue = '%s'", dbesc(($x['message']) ? $x['message'] : 'unknown delivery error'), dbesc(datetime_convert()), @@ -994,7 +981,7 @@ logger('4'); ); } - if(is_array($x) && array_key_exists('delivery_report',$x) && is_array($x['delivery_report'])) { + if(is_array($x) && array_key_exists('delivery_report',$x) && is_array($x['delivery_report'])) { foreach($x['delivery_report'] as $xx) { call_hooks('dreport_process',$xx); @@ -1083,11 +1070,6 @@ logger('4'); * * @param array $arr * 'pickup' structure returned from remote site - * @param string $sender_url - * the url specified by the sender in the initial communication. - * We will verify the sender and url in each returned message structure and - * also verify that all the messages returned match the site url that we are - * currently processing. * * @returns array * Suitable for logging remotely, enumerating the processing results of each message/recipient combination @@ -1095,7 +1077,6 @@ logger('4'); * * [1] => \e string $delivery_status * * [2] => \e string $address */ - static function import($arr) { $env = $arr; @@ -1117,7 +1098,7 @@ logger('4'); $has_data = array_key_exists('data',$env) && $env['data']; $data = (($has_data) ? $env['data'] : false); - $AS = null; + $AS = null; if($env['encoding'] === 'activitystreams') { @@ -1175,7 +1156,6 @@ logger('4'); $deliveries = self::public_recips($env,$AS); - } $deliveries = array_unique($deliveries); @@ -1194,31 +1174,31 @@ logger('4'); //logger($AS->debug()); - $r = q("select hubloc_hash from hubloc where hubloc_id_url = '%s' limit 1", + $r = q("select hubloc_hash from hubloc where hubloc_id_url = '%s' and hubloc_network = 'zot6' limit 1", dbesc($AS->actor['id']) - ); + ); if($r) { $arr['author_xchan'] = $r[0]['hubloc_hash']; } - $s = q("select hubloc_hash from hubloc where hubloc_id_url = '%s' limit 1", + $s = q("select hubloc_hash from hubloc where hubloc_id_url = '%s' and hubloc_network = 'zot6' limit 1", dbesc($env['sender']) - ); + ); // in individual delivery, change owner if needed if($s) { $arr['owner_xchan'] = $s[0]['hubloc_hash']; } else { - $arr['owner_xchan'] = $env['sender']; + $arr['owner_xchan'] = $env['sender']; } if($private) { $arr['item_private'] = true; } - // @fixme - spoofable + /// @FIXME - spoofable if($AS->data['hubloc']) { $arr['item_verified'] = true; } @@ -1247,12 +1227,19 @@ logger('4'); } if ($result) { $return = array_merge($return, $result); - } + } return $return; } - static function is_top_level($env,$act) { + /** + * @brief + * + * @param array $env + * @param object $act + * @return boolean + */ + static function is_top_level($env, $act) { if($env['encoding'] === 'zot' && array_key_exists('flags',$env) && in_array('thread_parent', $env['flags'])) { return true; } @@ -1295,9 +1282,9 @@ logger('4'); * Some of these will be rejected, but this gives us a place to start. * * @param array $msg - * @return NULL|array + * @param object $act + * @return array */ - static function public_recips($msg, $act) { require_once('include/channel.php'); @@ -1442,7 +1429,7 @@ logger('4'); * will normally arrive first via sync delivery, but this isn't guaranteed. * There's a chance the current delivery could take place before the cloned copy arrives * hence the item could have the wrong ACL and *could* be used in subsequent deliveries or - * access checks. + * access checks. */ if($sender === $channel['channel_portable_id'] && $arr['author_xchan'] === $channel['channel_portable_id'] && $arr['mid'] === $arr['parent_mid']) { @@ -1497,14 +1484,37 @@ logger('4'); intval($channel['channel_id']) ); if ($parent) { - $allowed = can_comment_on_post($d,$parent[0]); + $allowed = can_comment_on_post($sender,$parent[0]); } } - if($request) { - $allowed = true; + + if ($request) { + + // Conversation fetches (e.g. $request == true) take place for + // a) new comments on expired posts + // b) hyperdrive (friend-of-friend) conversations + // c) Repeats of posts by others + + + // over-ride normal connection permissions for hyperdrive (friend-of-friend) conversations + // (if hyperdrive is enabled) and repeated posts by a friend. + // If $allowed is already true, this is probably the conversation of a direct friend or a + // conversation fetch for a new comment on an expired post + // Comments of all these activities are allowed and will only be rejected (later) if the parent + // doesn't exist. + + if ($perm === 'send_stream') { + if (get_pconfig($channel['channel_id'],'system','hyperdrive',false) || $arr['verb'] === ACTIVITY_SHARE) { + $allowed = true; + } + } + else { + $allowed = true; + } + $friendofriend = true; } - + if (! $allowed) { logger("permission denied for delivery to channel {$channel['channel_id']} {$channel['channel_address']}"); $DR->update('permission denied'); @@ -1513,16 +1523,18 @@ logger('4'); } } -logger('item: ' . print_r($arr,true), LOGGER_DATA); + // logger('item: ' . print_r($arr,true), LOGGER_DATA); if($arr['mid'] !== $arr['parent_mid']) { -logger('checking source: "' . $arr['mid'] . '" != "' . $arr['parent_mid'] . '"'); + + logger('checking source: "' . $arr['mid'] . '" != "' . $arr['parent_mid'] . '"'); + // check source route. // We are only going to accept comments from this sender if the comment has the same route as the top-level-post, // this is so that permissions mismatches between senders apply to the entire conversation // As a side effect we will also do a preliminary check that we have the top-level-post, otherwise // processing it is pointless. - + $r = q("select route, id, owner_xchan, item_private from item where mid = '%s' and uid = %d limit 1", dbesc($arr['parent_mid']), intval($channel['channel_id']) @@ -1537,10 +1549,7 @@ logger('checking source: "' . $arr['mid'] . '" != "' . $arr['parent_mid'] . '"') // have the copy and we don't want the request to loop. // Also don't do this if this comment came from a conversation request packet. // It's possible that comments are allowed but posting isn't and that could - // cause a conversation fetch loop. We can detect these packets since they are - // delivered via a 'notify' packet type that has a message_id element in the - // initial zot packet (just like the corresponding 'request' packet type which - // makes the request). + // cause a conversation fetch loop. // We'll also check the send_stream permission - because if it isn't allowed, // the top level post is unlikely to be imported and // this is just an exercise in futility. @@ -1551,14 +1560,14 @@ logger('checking source: "' . $arr['mid'] . '" != "' . $arr['parent_mid'] . '"') } continue; } - + if($relay || $friendofriend || (intval($r[0]['item_private']) === 0 && intval($arr['item_private']) === 0)) { // reset the route in case it travelled a great distance upstream // use our parent's route so when we go back downstream we'll match // with whatever route our parent has. // Also friend-of-friend conversations may have been imported without a route, // but we are now getting comments via listener delivery - // and if there is no privacy on this or the parent, we don't care about the route, + // and if there is no privacy on this or the parent, we don't care about the route, // so just set the owner and route accordingly. $arr['route'] = $r[0]['route']; $arr['owner_xchan'] = $r[0]['owner_xchan']; @@ -1601,7 +1610,7 @@ logger('checking source: "' . $arr['mid'] . '" != "' . $arr['parent_mid'] . '"') $arr['route'] = $last_prior_route; } } -logger('hey'); + $ab = q("select * from abook where abook_channel = %d and abook_xchan = '%s'", intval($channel['channel_id']), dbesc($arr['owner_xchan']) @@ -1612,13 +1621,13 @@ logger('hey'); // remove_community_tag is a no-op if this isn't a community tag activity self::remove_community_tag($sender,$arr,$channel['channel_id']); - + // set these just in case we need to store a fresh copy of the deleted post. // This could happen if the delete got here before the original post did. $arr['aid'] = $channel['channel_account_id']; $arr['uid'] = $channel['channel_id']; - + $item_id = self::delete_imported_item($sender,$arr,$channel['channel_id'],$relay); $DR->update(($item_id) ? 'deleted' : 'delete_failed'); $result[] = $DR->get(); @@ -1714,7 +1723,7 @@ logger('hey'); * * \e array \b item * * \e array \b sender * * \e array \b channel - */ + */ call_hooks('activity_received', $parr); // don't add a source route if it's a relay or later recipients will get a route mismatch if(! $relay) @@ -1779,17 +1788,17 @@ logger('hey'); logger($AS->debug()); - $r = q("select hubloc_hash from hubloc where hubloc_id_url = '%s' limit 1", + $r = q("select hubloc_hash from hubloc where hubloc_id_url = '%s' and hubloc_network = 'zot6' limit 1", dbesc($AS->actor['id']) - ); + ); if(! $r) { $y = import_author_xchan([ 'url' => $AS->actor['id'] ]); if($y) { - $r = q("select hubloc_hash from hubloc where hubloc_id_url = '%s' limit 1", + $r = q("select hubloc_hash from hubloc where hubloc_id_url = '%s' and hubloc_network = 'zot6' limit 1", dbesc($AS->actor['id']) ); - } + } if(! $r) { logger('FOF Activity: no actor'); continue; @@ -1809,9 +1818,9 @@ logger('hey'); $arr['author_xchan'] = $r[0]['hubloc_hash']; } - $s = q("select hubloc_hash from hubloc where hubloc_id_url = '%s' limit 1", + $s = q("select hubloc_hash from hubloc where hubloc_id_url = '%s' and hubloc_network = 'zot6' limit 1", dbesc($a['signature']['signer']) - ); + ); if($s) { $arr['owner_xchan'] = $s[0]['hubloc_hash']; @@ -1820,7 +1829,8 @@ logger('hey'); $arr['owner_xchan'] = $a['signature']['signer']; } - // @fixme - spoofable + + /// @FIXME - spoofable if($AS->data['hubloc']) { $arr['item_verified'] = true; } @@ -1834,7 +1844,7 @@ logger('hey'); $result = self::process_delivery($arr['owner_xchan'],$arr, [ $channel['channel_portable_id'] ],false,false,true); if ($result) { $ret = array_merge($ret, $result); - } + } } return $ret; @@ -1851,8 +1861,8 @@ logger('hey'); * * \e int \b obj_type * * \e int \b mid * @param int $uid + * @return void */ - static function remove_community_tag($sender, $arr, $uid) { if(! (activity_match($arr['verb'], ACTIVITY_TAG) && ($arr['obj_type'] == ACTIVITY_OBJ_TAGTERM))) @@ -1880,7 +1890,7 @@ logger('hey'); } $i = $r[0]; - + if($i['target']) $i['target'] = json_decode($i['target'],true); if($i['object']) @@ -1923,8 +1933,8 @@ logger('hey'); * @param array $orig * @param int $uid * @param boolean $tag_delivery + * @return void|array */ - static function update_imported_item($sender, $item, $orig, $uid, $tag_delivery) { // If this is a comment being updated, remove any privacy information @@ -2064,7 +2074,7 @@ logger('hey'); } foreach($deliveries as $d) { - + $DR = new DReport(z_root(),$sender,$d,$arr['mid']); $r = q("select * from channel where channel_portable_id = '%s' limit 1", @@ -2083,7 +2093,7 @@ logger('hey'); if(! perm_is_allowed($channel['channel_id'],$sender,'post_mail')) { - /* + /* * Always allow somebody to reply if you initiated the conversation. It's anti-social * and a bit rude to send a private message to somebody and block their ability to respond. * If you are being harrassed and want to put an end to it, delete the conversation. @@ -2143,12 +2153,13 @@ logger('hey'); * @brief Processes delivery of profile. * * @see import_directory_profile() + * * @param array $sender an associative array * * \e string \b hash a xchan_hash * @param array $arr * @param array $deliveries (unused) + * @return void */ - static function process_profile_delivery($sender, $arr, $deliveries) { logger('process_profile_delivery', LOGGER_DEBUG); @@ -2169,6 +2180,7 @@ logger('hey'); * * \e string \b hash a xchan_hash * @param array $arr * @param array $deliveries (unused) deliveries is irrelevant + * @return void */ static function process_location_delivery($sender, $arr, $deliveries) { @@ -2186,7 +2198,7 @@ logger('hey'); $x = Libsync::sync_locations($xchan,$arr,true); logger('results: ' . print_r($x,true), LOGGER_DEBUG); if($x['changed']) { - $guid = random_string() . '@' . App::get_hostname(); + //$guid = random_string() . '@' . App::get_hostname(); Libzotdir::update_modtime($sender,$r[0]['xchan_guid'],$arr['locations'][0]['address'],UPDATE_FLAGS_UPDATED); } } @@ -2210,8 +2222,8 @@ logger('hey'); * * @param string $sender_hash A channel hash * @param array $locations + * @return void */ - static function check_location_move($sender_hash, $locations) { if(! $locations) @@ -2253,7 +2265,6 @@ logger('hey'); } - /** * @brief Returns an array with all known distinct hubs for this channel. * @@ -2262,7 +2273,6 @@ logger('hey'); * * \e string \b channel_hash the hash of the channel * @return array an array with associative arrays */ - static function encode_locations($channel) { $ret = []; @@ -2303,7 +2313,7 @@ logger('hey'); if(! $z['site_id']) { $z['site_id'] = Libzot::make_xchan_hash($z['url'],$z['sitekey']); } - + $ret[] = $z; } } @@ -2316,10 +2326,8 @@ logger('hey'); * @brief * * @param array $arr - * @param string $pubkey * @return boolean true if updated or inserted */ - static function import_site($arr) { if( (! is_array($arr)) || (! $arr['url']) || (! $arr['site_sig'])) @@ -2594,20 +2602,20 @@ logger('hey'); $feed = ((x($arr,'feed')) ? intval($arr['feed']) : 0); if($ztarget) { - $t = q("select * from hubloc where hubloc_id_url = '%s' limit 1", + $t = q("select * from hubloc where hubloc_id_url = '%s' and hubloc_network = 'zot6' limit 1", dbesc($ztarget) ); if($t) { - + $ztarget_hash = $t[0]['hubloc_hash']; } else { - + // should probably perform discovery of the requestor (target) but if they actually had - // permissions we would know about them and we only want to know who they are to + // permissions we would know about them and we only want to know who they are to // enumerate their specific permissions - + $ztarget_hash = EMPTY_STR; } } @@ -2754,7 +2762,7 @@ logger('hey'); $ret['id'] = $e['xchan_guid']; $ret['id_sig'] = self::sign($e['xchan_guid'], $e['channel_prvkey']); - $ret['primary_location'] = [ + $ret['primary_location'] = [ 'address' => $e['xchan_addr'], 'url' => $e['xchan_url'], 'connections_url' => $e['xchan_connurl'], @@ -2776,7 +2784,7 @@ logger('hey'); $ret['searchable'] = $searchable; $ret['adult_content'] = $adult_channel; $ret['public_forum'] = $public_forum; - + $ret['comments'] = map_scope(PermissionLimits::Get($e['channel_id'],'post_comments')); $ret['mail'] = map_scope(PermissionLimits::Get($e['channel_id'],'post_mail')); @@ -2834,14 +2842,20 @@ logger('hey'); $ret['locations'] = $x; $ret['site'] = self::site_info(); + /** + * @hooks zotinfo + * Hook to manipulate the zotinfo array before it is returned. + */ + call_hooks('zotinfo', $ret); - call_hooks('zotinfo',$ret); - - return($ret); - + return $ret; } - + /** + * @brief Get siteinfo. + * + * @return array + */ static function site_info() { $signing_key = get_config('system','prvkey'); @@ -2878,7 +2892,7 @@ logger('hey'); if($dirmode != DIRECTORY_MODE_STANDALONE) { $register_policy = intval(get_config('system','register_policy')); - + if($register_policy == REGISTER_CLOSED) $ret['site']['register_policy'] = 'closed'; if($register_policy == REGISTER_APPROVE) @@ -2925,18 +2939,16 @@ logger('hey'); } return $ret['site']; - } /** * @brief * * @param array $hub - * @param string $sitekey (optional, default empty) + * @param string $site_id (optional, default empty) * * @return string hubloc_url */ - static function update_hub_connected($hub, $site_id = '') { if ($site_id) { @@ -2995,12 +3007,21 @@ logger('hey'); return $hub['hubloc_url']; } - + /** + * @brief + * + * @param string $data + * @param string $key + * @param string $alg (optional) default 'sha256' + * @return string + */ static function sign($data,$key,$alg = 'sha256') { if(! $key) return 'no key'; + $sig = ''; openssl_sign($data,$sig,$key,$alg); + return $alg . '.' . base64url_encode($sig); } @@ -3013,24 +3034,27 @@ logger('hey'); if ($key && count($x) === 2) { $alg = $x[0]; $signature = base64url_decode($x[1]); - + $verify = @openssl_verify($data,$signature,$key,$alg); if ($verify === (-1)) { while ($msg = openssl_error_string()) { logger('openssl_verify: ' . $msg,LOGGER_NORMAL,LOG_ERR); } - btlogger('openssl_verify: key: ' . $key, LOGGER_DEBUG, LOG_ERR); + btlogger('openssl_verify: key: ' . $key, LOGGER_DEBUG, LOG_ERR); } } return(($verify > 0) ? true : false); } - - + /** + * @brief + * + * @return boolean + */ static function is_zot_request() { - $x = getBestSupportedMimeType([ 'application/x-zot+json' ]); + return(($x) ? true : false); } diff --git a/Zotlabs/Lib/PConfig.php b/Zotlabs/Lib/PConfig.php index 69f4de2db..c08c11e75 100644 --- a/Zotlabs/Lib/PConfig.php +++ b/Zotlabs/Lib/PConfig.php @@ -112,9 +112,11 @@ class PConfig { * The configuration key to set * @param string $value * The value to store + * @param string $updated (optional) + * The datetime to store * @return mixed Stored $value or false */ - static public function Set($uid, $family, $key, $value, $updated=NULL) { + static public function Set($uid, $family, $key, $value, $updated = NULL) { // this catches subtle errors where this function has been called // with local_channel() when not logged in (which returns false) @@ -239,7 +241,9 @@ class PConfig { * The category of the configuration value * @param string $key * The configuration key to delete - * @return mixed + * @param string $updated (optional) + * The datetime to store + * @return boolean */ static public function Delete($uid, $family, $key, $updated = NULL) { @@ -271,22 +275,13 @@ class PConfig { dbesc($key) ); + // Synchronize delete with clones. + if ($family != 'hz_delpconfig') { $hash = hash('sha256',$family.':'.$key); set_pconfig($uid,'hz_delpconfig',$hash,$updated); } - // Synchronize delete with clones. - - if(! array_key_exists('transient', \App::$config[$uid])) - \App::$config[$uid]['transient'] = array(); - if(! array_key_exists($family, \App::$config[$uid]['transient'])) - \App::$config[$uid]['transient'][$family] = array(); - - if ($new) { - \App::$config[$uid]['transient'][$family]['pcfgdel:'.$key] = $updated; - } - return $ret; } diff --git a/Zotlabs/Lib/Share.php b/Zotlabs/Lib/Share.php index d3ecbf7fa..3a2ab1783 100644 --- a/Zotlabs/Lib/Share.php +++ b/Zotlabs/Lib/Share.php @@ -54,6 +54,7 @@ class Share { if(! $this->item) return $obj; + $obj['asld'] = $this->item['mid']; $obj['type'] = $this->item['obj_type']; $obj['id'] = $this->item['mid']; $obj['content'] = $this->item['body']; diff --git a/Zotlabs/Lib/ThreadItem.php b/Zotlabs/Lib/ThreadItem.php index 83d243177..40c0fca4b 100644 --- a/Zotlabs/Lib/ThreadItem.php +++ b/Zotlabs/Lib/ThreadItem.php @@ -76,7 +76,7 @@ class ThreadItem { * _ false on failure */ - public function get_template_data($conv_responses, $thread_level=1) { + public function get_template_data($conv_responses, $thread_level=1, $conv_flags = []) { $result = array(); @@ -101,6 +101,7 @@ class ThreadItem { || strlen($item['deny_cid']) || strlen($item['deny_gid'])))) ? t('Private Message') : false); + $shareable = ((($conv->get_profile_owner() == local_channel() && local_channel()) && ($item['item_private'] != 1)) ? true : false); // allow an exemption for sharing stuff from your private feeds @@ -115,6 +116,19 @@ class ThreadItem { $privacy_warning = true; } + if ($lock) { + if (($item['mid'] == $item['parent_mid']) && count(get_terms_oftype($item['term'],TERM_FORUM))) { + $privacy_warning = true; + $conv_flags['parent_privacy_warning'] = true; + } + } + + $privacy_warning = (isset($conv_flags['parent_privacy_warning'])) ? $conv_flags['parent_privacy_warning'] : $privacy_warning; + + if ($lock && $privacy_warning) { + $lock = t('Privacy conflict. Discretion advised.'); + } + $mode = $conv->get_mode(); switch($item['item_type']) { @@ -293,8 +307,15 @@ class ThreadItem { $dislike = array( t("I don't like this \x28toggle\x29"), t("dislike")); } - if ($shareable) - $share = array( t('Share This'), t('share')); + if ($shareable) { + // This actually turns out not to be possible in some protocol stacks without opening up hundreds of new issues. + // Will allow it only for uri resolvable sources. + if(strpos($item['mid'],'http') === 0) { + $share = []; //Not yet ready for primetime + //$share = array( t('Repeat This'), t('repeat')); + } + $embed = array( t('Share This'), t('share')); + } $dreport = ''; @@ -408,12 +429,13 @@ class ThreadItem { 'like' => $like, 'dislike' => ((feature_enabled($conv->get_profile_owner(),'dislike')) ? $dislike : ''), 'share' => $share, + 'embed' => $embed, 'rawmid' => $item['mid'], 'plink' => get_plink($item), 'edpost' => $edpost, // ((feature_enabled($conv->get_profile_owner(),'edit_posts')) ? $edpost : ''), - 'star' => ((feature_enabled($conv->get_profile_owner(),'star_posts')) ? $star : ''), + 'star' => ((feature_enabled($conv->get_profile_owner(),'star_posts') && ($item['item_type'] == ITEM_TYPE_POST)) ? $star : ''), 'tagger' => ((feature_enabled($conv->get_profile_owner(),'commtag')) ? $tagger : ''), - 'filer' => ((feature_enabled($conv->get_profile_owner(),'filing')) ? $filer : ''), + 'filer' => ((feature_enabled($conv->get_profile_owner(),'filing') && ($item['item_type'] == ITEM_TYPE_POST)) ? $filer : ''), 'bookmark' => (($conv->get_profile_owner() == local_channel() && local_channel() && $has_bookmarks) ? t('Save Bookmarks') : ''), 'addtocal' => (($has_event) ? t('Add to Calendar') : ''), 'drop' => $drop, @@ -470,7 +492,7 @@ class ThreadItem { if(($this->get_display_mode() === 'normal') && ($nb_children > 0)) { foreach($children as $child) { - $result['children'][] = $child->get_template_data($conv_responses, $thread_level + 1); + $result['children'][] = $child->get_template_data($conv_responses, $thread_level + 1,$conv_flags); } // Collapse if(($nb_children > $visible_comments) || ($thread_level > 1)) { diff --git a/Zotlabs/Lib/ThreadListener.php b/Zotlabs/Lib/ThreadListener.php new file mode 100644 index 000000000..308e02255 --- /dev/null +++ b/Zotlabs/Lib/ThreadListener.php @@ -0,0 +1,53 @@ +<?php + +namespace Zotlabs\Lib; + +class ThreadListener { + + static public function store($target_id,$portable_id,$ltype = 0) { + $x = self::fetch($target_id,$portable_id,$ltype = 0); + if(! $x) { + $r = q("insert into listeners ( target_id, portable_id, ltype ) values ( '%s', '%s' , %d ) ", + dbesc($target_id), + dbesc($portable_id), + intval($ltype) + ); + } + } + + static public function fetch($target_id,$portable_id,$ltype = 0) { + $x = q("select * from listeners where target_id = '%s' and portable_id = '%s' and ltype = %d limit 1", + dbesc($target_id), + dbesc($portable_id), + intval($ltype) + ); + if($x) { + return $x[0]; + } + return false; + } + + static public function fetch_by_target($target_id,$ltype = 0) { + $x = q("select * from listeners where target_id = '%s' and ltype = %d", + dbesc($target_id), + intval($ltype) + ); + + return $x; + } + + static public function delete_by_target($target_id, $ltype = 0) { + return q("delete from listeners where target_id = '%s' and ltype = %d", + dbesc($target_id), + intval($ltype) + ); + } + + static public function delete_by_pid($portable_id, $ltype = 0) { + return q("delete from listeners where portable_id = '%s' and ltype = %d", + dbesc($portable_id), + intval($ltype) + ); + } + +} diff --git a/Zotlabs/Module/Admin.php b/Zotlabs/Module/Admin.php index 8ccdaf4f5..88b84b9d2 100644 --- a/Zotlabs/Module/Admin.php +++ b/Zotlabs/Module/Admin.php @@ -86,7 +86,7 @@ class Admin extends \Zotlabs\Web\Controller { // list total user accounts, expirations etc. $accounts = array(); - $r = q("SELECT COUNT(*) AS total, COUNT(CASE WHEN account_expires > %s THEN 1 ELSE NULL END) AS expiring, COUNT(CASE WHEN account_expires < %s AND account_expires > '%s' THEN 1 ELSE NULL END) AS expired, COUNT(CASE WHEN (account_flags & %d)>0 THEN 1 ELSE NULL END) AS blocked FROM account", + $r = q("SELECT COUNT(CASE WHEN account_id > 0 THEN 1 ELSE NULL END) AS total, COUNT(CASE WHEN account_expires > %s THEN 1 ELSE NULL END) AS expiring, COUNT(CASE WHEN account_expires < %s AND account_expires > '%s' THEN 1 ELSE NULL END) AS expired, COUNT(CASE WHEN (account_flags & %d)>0 THEN 1 ELSE NULL END) AS blocked FROM account", db_utcnow(), db_utcnow(), dbesc(NULL_DATE), diff --git a/Zotlabs/Module/Admin/Addons.php b/Zotlabs/Module/Admin/Addons.php index b35922aef..b8e3e3a2e 100644 --- a/Zotlabs/Module/Admin/Addons.php +++ b/Zotlabs/Module/Admin/Addons.php @@ -375,6 +375,9 @@ class Addons { if($files) { foreach($files as $file) { if (is_dir($file)){ + if($file == 'addon/addon_common/') + continue; + list($tmp, $id) = array_map('trim', explode('/', $file)); $info = get_plugin_info($id); $enabled = in_array($id,\App::$plugins); @@ -476,4 +479,4 @@ class Addons { return(strcmp(strtolower($a[2]['name']),strtolower($b[2]['name']))); } -}
\ No newline at end of file +} diff --git a/Zotlabs/Module/Admin/Site.php b/Zotlabs/Module/Admin/Site.php index 09b038729..55c8ca928 100644 --- a/Zotlabs/Module/Admin/Site.php +++ b/Zotlabs/Module/Admin/Site.php @@ -119,7 +119,7 @@ class Site { del_config('system', 'admininfo'); } else { require_once('include/text.php'); - linkify_tags($a, $admininfo, local_channel()); + linkify_tags($admininfo, local_channel()); set_config('system', 'admininfo', $admininfo); } set_config('system','siteinfo',$siteinfo); diff --git a/Zotlabs/Module/Affinity.php b/Zotlabs/Module/Affinity.php new file mode 100644 index 000000000..f0d99f1e7 --- /dev/null +++ b/Zotlabs/Module/Affinity.php @@ -0,0 +1,94 @@ +<?php + +namespace Zotlabs\Module; + +use App; +use Zotlabs\Lib\Apps; +use Zotlabs\Lib\Libsync; + +class Affinity extends \Zotlabs\Web\Controller { + + function post() { + + if(! local_channel()) + return; + + if(! Apps::system_app_installed(local_channel(),'Affinity Tool')) + return; + + check_form_security_token_redirectOnErr('affinity', 'affinity'); + + $cmax = intval($_POST['affinity_cmax']); + if($cmax < 0 || $cmax > 99) + $cmax = 99; + + $cmin = intval($_POST['affinity_cmin']); + if($cmin < 0 || $cmin > 99) + $cmin = 0; + + $lock = intval($_POST['affinity_lock']); + + set_pconfig(local_channel(),'affinity','cmin',$cmin); + set_pconfig(local_channel(),'affinity','cmax',$cmax); + set_pconfig(local_channel(),'affinity','lock',$lock); + + info( t('Affinity Tool settings updated.') . EOL); + + Libsync::build_sync_packet(); + + } + + + function get() { + + if(! local_channel()) + return; + + $desc = t('This app presents a slider control in your connection editor and also on your network page. The slider represents your degree of friendship (affinity) with each connection. It allows you to zoom in or out and display conversations from only your closest friends or everybody in your stream.'); + if(! Apps::system_app_installed(local_channel(),'Affinity Tool')) { + //Do not display any associated widgets at this point + App::$pdl = ''; + + $o = '<b>' . t('Affinity Tool App') . ' (' . t('Not Installed') . '):</b><br>'; + $o .= $desc; + return $o; + } + + $text = t('The numbers below represent the minimum and maximum slider default positions for your network/stream page as a percentage.'); + + $content = '<div class="section-content-info-wrapper">' . $text . '</div>'; + + $cmax = intval(get_pconfig(local_channel(),'affinity','cmax')); + $cmax = (($cmax) ? $cmax : 99); + $content .= replace_macros(get_markup_template('field_input.tpl'), array( + '$field' => array('affinity_cmax', t('Default maximum affinity level'), $cmax, t('0-99 default 99')) + )); + + $cmin = intval(get_pconfig(local_channel(),'affinity','cmin')); + $cmin = (($cmin) ? $cmin : 0); + $content .= replace_macros(get_markup_template('field_input.tpl'), array( + '$field' => array('affinity_cmin', t('Default minimum affinity level'), $cmin, t('0-99 - default 0')) + )); + + $lock = intval(get_pconfig(local_channel(),'affinity','lock',1)); + + $content .= replace_macros(get_markup_template('field_checkbox.tpl'), array( + '$field' => array('affinity_lock', t('Persistent affinity levels'), $lock, t('If disabled the max and min levels will be reset to default after page reload'), ['No','Yes']) + )); + + $tpl = get_markup_template("settings_addon.tpl"); + + $o = replace_macros($tpl, array( + '$action_url' => 'affinity', + '$form_security_token' => get_form_security_token("affinity"), + '$title' => t('Affinity Tool Settings'), + '$content' => $content, + '$baseurl' => z_root(), + '$submit' => t('Submit'), + )); + + return $o; + } + + +} diff --git a/Zotlabs/Module/Cards.php b/Zotlabs/Module/Cards.php index b66de158b..3f0e93de5 100644 --- a/Zotlabs/Module/Cards.php +++ b/Zotlabs/Module/Cards.php @@ -10,9 +10,13 @@ require_once('include/channel.php'); require_once('include/conversation.php'); require_once('include/acl_selectors.php'); +/** + * @brief Provides the Cards module. + * + */ class Cards extends Controller { - function init() { + public function init() { if(argc() > 1) $which = argv(1); @@ -20,14 +24,15 @@ class Cards extends Controller { return; profile_load($which); - } /** * {@inheritDoc} - * @see \Zotlabs\Web\Controller::get() + * @see \\Zotlabs\\Web\\Controller::get() + * + * @return string Parsed HTML from template 'cards.tpl' */ - function get($update = 0, $load = false) { + public function get($update = 0, $load = false) { if(observer_prohibited(true)) { return login(); @@ -99,7 +104,6 @@ class Cards extends Controller { } - if(perm_is_allowed($owner, $ob_hash, 'write_pages')) { $x = [ @@ -110,7 +114,7 @@ class Cards extends Controller { 'nickname' => $channel['channel_address'], 'lockstate' => (($channel['channel_allow_cid'] || $channel['channel_allow_gid'] || $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock'), - 'acl' => (($is_owner) ? populate_acl($channel_acl, false, + 'acl' => (($is_owner) ? populate_acl($channel_acl, false, PermissionDescription::fromGlobalPermission('view_pages')) : ''), 'permissions' => $channel_acl, 'showacl' => (($is_owner) ? true : false), diff --git a/Zotlabs/Module/Chanview.php b/Zotlabs/Module/Chanview.php index 779c7e646..2e653d030 100644 --- a/Zotlabs/Module/Chanview.php +++ b/Zotlabs/Module/Chanview.php @@ -106,7 +106,7 @@ class Chanview extends \Zotlabs\Web\Controller { if (\App::$poi) { $url = \App::$poi['xchan_url']; - if(\App::$poi['xchan_network'] === 'zot') { + if(in_array(\App::$poi['xchan_network'], ['zot', 'zot6'])) { $is_zot = true; } if(local_channel()) { diff --git a/Zotlabs/Module/Connedit.php b/Zotlabs/Module/Connedit.php index c14bcd0dd..a587324df 100644 --- a/Zotlabs/Module/Connedit.php +++ b/Zotlabs/Module/Connedit.php @@ -710,7 +710,7 @@ class Connedit extends \Zotlabs\Web\Controller { $tpl = get_markup_template("abook_edit.tpl"); - if(feature_enabled(local_channel(),'affinity')) { + if(Apps::system_app_installed(local_channel(),'Affinity Tool')) { $sections['affinity'] = [ 'label' => t('Affinity'), diff --git a/Zotlabs/Module/Display.php b/Zotlabs/Module/Display.php index e3691702d..04e5f9fce 100644 --- a/Zotlabs/Module/Display.php +++ b/Zotlabs/Module/Display.php @@ -178,8 +178,7 @@ class Display extends \Zotlabs\Web\Controller { $static = ((array_key_exists('static',$_REQUEST)) ? intval($_REQUEST['static']) : 0); - - + $simple_update = (($update) ? " AND item_unseen = 1 " : ''); if($update && $_SESSION['loadtime']) @@ -314,7 +313,7 @@ class Display extends \Zotlabs\Web\Controller { } } - if(! $r) { + if($r === null) { // in case somebody turned off public access to sys channel content using permissions // make that content unsearchable by ensuring the owner_xchan can't match if(! perm_is_allowed($sysid,$observer_hash,'view_stream')) diff --git a/Zotlabs/Module/Embed.php b/Zotlabs/Module/Embed.php new file mode 100644 index 000000000..77b9254dd --- /dev/null +++ b/Zotlabs/Module/Embed.php @@ -0,0 +1,22 @@ +<?php +namespace Zotlabs\Module; + +require_once('include/security.php'); +require_once('include/bbcode.php'); + + +class Embed extends \Zotlabs\Web\Controller { + + function init() { + + $post_id = ((argc() > 1) ? intval(argv(1)) : 0); + + if(! $post_id) + killme(); + + echo '[share=' . $post_id . '][/share]'; + killme(); + + } + +} diff --git a/Zotlabs/Module/Embedphotos.php b/Zotlabs/Module/Embedphotos.php index bcbb0e116..2df14c239 100644 --- a/Zotlabs/Module/Embedphotos.php +++ b/Zotlabs/Module/Embedphotos.php @@ -3,8 +3,10 @@ namespace Zotlabs\Module; /** - * @brief + * @brief Embedphoto endpoint. * + * Provide an AJAX endpoint to fill the embedPhotoModal with folders and photos + * selection. */ class Embedphotos extends \Zotlabs\Web\Controller { @@ -13,42 +15,42 @@ class Embedphotos extends \Zotlabs\Web\Controller { } /** + * @brief This is the POST destination for the embedphotos button. * - * This is the POST destination for the embedphotos button - * + * @return string A JSON string. */ - function post() { + public function post() { if (argc() > 1 && argv(1) === 'album') { // API: /embedphotos/album - $name = (x($_POST,'name') ? $_POST['name'] : null ); - if(!$name) { + $name = (x($_POST, 'name') ? $_POST['name'] : null ); + if (!$name) { json_return_and_die(array('errormsg' => 'Error retrieving album', 'status' => false)); } $album = $this->embedphotos_widget_album(array('channel' => \App::get_channel(), 'album' => $name)); json_return_and_die(array('status' => true, 'content' => $album)); } - if(argc() > 1 && argv(1) === 'albumlist') { + if (argc() > 1 && argv(1) === 'albumlist') { // API: /embedphotos/albumlist - $album_list = $this->embedphotos_album_list($a); + $album_list = $this->embedphotos_album_list(); json_return_and_die(array('status' => true, 'albumlist' => $album_list)); } - if(argc() > 1 && argv(1) === 'photolink') { + if (argc() > 1 && argv(1) === 'photolink') { // API: /embedphotos/photolink - $href = (x($_POST,'href') ? $_POST['href'] : null ); - if(!$href) { + $href = (x($_POST, 'href') ? $_POST['href'] : null ); + if (!$href) { json_return_and_die(array('errormsg' => 'Error retrieving link ' . $href, 'status' => false)); } - $resource_id = array_pop(explode("/", $href)); + $resource_id = array_pop(explode('/', $href)); $r = q("SELECT obj from item where resource_type = 'photo' and resource_id = '%s' limit 1", dbesc($resource_id) ); - if(!$r) { + if (!$r) { json_return_and_die(array('errormsg' => 'Error retrieving resource ' . $resource_id, 'status' => false)); } $obj = json_decode($r[0]['obj'], true); - if(x($obj,'body')) { + if (x($obj, 'body')) { $photolink = $obj['body']; - } elseif (x($obj,'bbcode')) { + } elseif (x($obj, 'bbcode')) { $photolink = $obj['bbcode']; } else { json_return_and_die(array('errormsg' => 'Error retrieving resource ' . $resource_id, 'status' => false)); @@ -58,48 +60,51 @@ class Embedphotos extends \Zotlabs\Web\Controller { } /** - * Copied from include/widgets.php::widget_album() with a modification to get the profile_uid from - * the input array as in widget_item() + * @brief Get photos from an album. + * + * @see \\Zotlabs\\Widget\\Album::widget() * - * @param array $args - * @return string with HTML + * @param array $args associative array with + * * \e array \b channel + * * \e string \b album + * @return string with HTML code from 'photo_album.tpl' */ - function embedphotos_widget_album($args) { - + protected function embedphotos_widget_album($args) { $channel_id = 0; - if(array_key_exists('channel', $args)) + + if (array_key_exists('channel', $args)) { $channel = $args['channel']; - $channel_id = intval($channel['channel_id']); - if(! $channel_id) + $channel_id = intval($channel['channel_id']); + } + if (! $channel_id) $channel_id = \App::$profile_uid; - if(! $channel_id) + if (! $channel_id) return ''; - $owner_uid = $channel_id; require_once('include/security.php'); $sql_extra = permissions_sql($channel_id); - if(! perm_is_allowed($channel_id,get_observer_hash(),'view_storage')) + if (! perm_is_allowed($channel_id, get_observer_hash(), 'view_storage')) return ''; - if($args['album']) + if (isset($args['album'])) $album = (($args['album'] === '/') ? '' : $args['album']); - if($args['title']) + if (isset($args['title'])) $title = $args['title']; /** - * This may return incorrect permissions if you have multiple directories of the same name. + * @note This may return incorrect permissions if you have multiple directories of the same name. * It is a limitation of the photo table using a name for a photo album instead of a folder hash */ - if($album) { + if ($album) { require_once('include/attach.php'); $x = q("select hash from attach where filename = '%s' and uid = %d limit 1", dbesc($album), - intval($owner_uid) + intval($channel_id) ); - if($x) { - $y = attach_can_view_folder($owner_uid,get_observer_hash(),$x[0]['hash']); - if(! $y) + if ($x) { + $y = attach_can_view_folder($channel_id, get_observer_hash(), $x[0]['hash']); + if (! $y) return ''; } } @@ -110,30 +115,33 @@ class Embedphotos extends \Zotlabs\Web\Controller { (SELECT resource_id, max(imgscale) imgscale FROM photo WHERE uid = %d AND album = '%s' AND imgscale <= 4 AND photo_usage IN ( %d, %d ) $sql_extra GROUP BY resource_id) ph ON (p.resource_id = ph.resource_id AND p.imgscale = ph.imgscale) ORDER BY created $order", - intval($owner_uid), + intval($channel_id), dbesc($album), intval(PHOTO_NORMAL), intval(PHOTO_PROFILE) ); - $photos = array(); - if(count($r)) { + $photos = []; + if (count($r)) { $twist = 'rotright'; - foreach($r as $rr) { - if($twist == 'rotright') + foreach ($r as $rr) { + if ($twist == 'rotright') $twist = 'rotleft'; else $twist = 'rotright'; + $ph = photo_factory(''); + $phototypes = $ph->supportedTypes(); + $ext = $phototypes[$rr['mimetype']]; $imgalt_e = $rr['filename']; $desc_e = $rr['description']; - $imagelink = (z_root() . '/photos/' . \App::$data['channel']['channel_address'] . '/image/' . $rr['resource_id'] + $imagelink = (z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $rr['resource_id'] . (($_GET['order'] === 'posted') ? '?f=&order=posted' : '')); - $photos[] = array( + $photos[] = [ 'id' => $rr['id'], 'twist' => ' ' . $twist . rand(2,4), 'link' => $imagelink, @@ -143,35 +151,43 @@ class Embedphotos extends \Zotlabs\Web\Controller { 'desc'=> $desc_e, 'ext' => $ext, 'hash'=> $rr['resource_id'], - 'unknown' => t('Unknown') - ); + 'unknown' => t('Unknown'), + ]; } } $tpl = get_markup_template('photo_album.tpl'); - $o .= replace_macros($tpl, array( + $o = replace_macros($tpl, [ '$photos' => $photos, '$album' => (($title) ? $title : $album), '$album_id' => rand(), - '$album_edit' => array(t('Edit Album'), $album_edit), + '$album_edit' => array(t('Edit Album'), false), '$can_post' => false, '$upload' => array(t('Upload'), z_root() . '/photos/' . \App::$profile['channel_address'] . '/upload/' . bin2hex($album)), '$order' => false, - '$upload_form' => $upload_form, - '$no_fullscreen_btn' => true - )); + '$upload_form' => '', + '$no_fullscreen_btn' => true, + ]); return $o; } - function embedphotos_album_list($a) { + /** + * @brief Get albums observer is allowed to see. + * + * @see photos_albums_list() + * + * @return NULL|array + */ + protected function embedphotos_album_list() { require_once('include/photos.php'); $p = photos_albums_list(\App::get_channel(), \App::get_observer()); - if($p['success']) { + + if ($p['success']) { return $p['albums']; - } else { - return null; } + + return null; } } diff --git a/Zotlabs/Module/Events.php b/Zotlabs/Module/Events.php index 7e5204e62..e883db49f 100644 --- a/Zotlabs/Module/Events.php +++ b/Zotlabs/Module/Events.php @@ -97,8 +97,8 @@ class Events extends \Zotlabs\Web\Controller { $type = escape_tags(trim($_POST['type'])); require_once('include/text.php'); - linkify_tags($a, $desc, local_channel()); - linkify_tags($a, $location, local_channel()); + linkify_tags($desc, local_channel()); + linkify_tags($location, local_channel()); //$action = ($event_hash == '') ? 'new' : "event/" . $event_hash; diff --git a/Zotlabs/Module/Group.php b/Zotlabs/Module/Group.php index 3dcf903ad..12edf8428 100644 --- a/Zotlabs/Module/Group.php +++ b/Zotlabs/Module/Group.php @@ -66,6 +66,9 @@ class Group extends Controller { $groupname = notags(trim($_POST['groupname'])); $public = intval($_POST['public']); + $hookinfo = [ 'pgrp_extras' => '', 'group'=>$group['id'] ]; + call_hooks ('privacygroup_extras_post',$hookinfo); + if((strlen($groupname)) && (($groupname != $group['gname']) || ($public != $group['visible']))) { $r = q("UPDATE pgrp SET gname = '%s', visible = %d WHERE uid = %d AND id = %d", dbesc($groupname), @@ -76,8 +79,6 @@ class Group extends Controller { if($r) info( t('Privacy group updated.') . EOL ); - $hookinfo = [ 'pgrp_extras' => '', 'group'=>$group['id'] ]; - call_hooks ('privacygroup_extras_post',$hookinfo); build_sync_packet(local_channel(),null,true); } @@ -242,6 +243,10 @@ class Group extends Controller { } } + $hookinfo = [ 'pgrp_extras' => '', 'group'=>$group['id'] ]; + call_hooks ('privacygroup_extras',$hookinfo); + $pgrp_extras = $hookinfo['pgrp_extras']; + $context = $context + array( '$title' => sprintf(t('Privacy Group: %s'), $group['gname']), '$details_label' => t('Edit'), @@ -252,6 +257,7 @@ class Group extends Controller { '$form_security_token_edit' => get_form_security_token('group_edit'), '$delete' => t('Delete Group'), '$form_security_token_drop' => get_form_security_token("group_drop"), + '$pgrp_extras' => $pgrp_extras, ); } @@ -295,6 +301,7 @@ class Group extends Controller { $context['$groupeditor'] = $groupeditor; $context['$desc'] = t('Click a channel to toggle membership'); + $context['$pgrp_extras'] = $pgrp_extras; if($change) { $tpl = get_markup_template('groupeditor.tpl'); diff --git a/Zotlabs/Module/Item.php b/Zotlabs/Module/Item.php index 24949c626..ebcf632ef 100644 --- a/Zotlabs/Module/Item.php +++ b/Zotlabs/Module/Item.php @@ -6,6 +6,13 @@ use Zotlabs\Lib\IConfig; use Zotlabs\Lib\Enotify; use Zotlabs\Web\Controller; use Zotlabs\Daemon\Master; +use Zotlabs\Lib\Activity; +use Zotlabs\Lib\ActivityStreams; +use Zotlabs\Lib\LDSignatures; +use Zotlabs\Zot6\HTTPSig; +use Zotlabs\Lib\Libzot; +use Zotlabs\Lib\ThreadListener; +use App; require_once('include/crypto.php'); require_once('include/items.php'); @@ -30,6 +37,144 @@ require_once('include/security.php'); class Item extends Controller { + + function init() { + + if(Libzot::is_zot_request()) { + + $conversation = false; + + $item_id = argv(1); + + if(! $item_id) + http_status_exit(404, 'Not found'); + + + $portable_id = EMPTY_STR; + + $sigdata = HTTPSig::verify(EMPTY_STR); + if($sigdata['portable_id'] && $sigdata['header_valid']) { + $portable_id = $sigdata['portable_id']; + } + + $item_normal = " and item.item_hidden = 0 and item.item_type = 0 and item.item_unpublished = 0 and item.item_delayed = 0 and item.item_blocked = 0 "; + + $sql_extra = item_permissions_sql(0); + + $r = q("select * from item where mid = '%s' $item_normal $sql_extra limit 1", + dbesc(z_root() . '/item/' . $item_id) + ); + if(! $r) { + + + $r = q("select * from item where mid = '%s' $item_normal limit 1", + dbesc(z_root() . '/item/' . $item_id) + ); + if($r) { + http_status_exit(403, 'Forbidden'); + } + http_status_exit(404, 'Not found'); + } + + + $items = q("select parent as item_id from item where mid = '%s' and uid = %d $item_normal $sql_extra ", + dbesc($r[0]['parent_mid']), + intval($r[0]['uid']) + ); + if(! $items) { + http_status_exit(404, 'Not found'); + } + + $r = $items; + + $parents_str = ids_to_querystr($r,'item_id'); + + $items = q("SELECT item.*, item.id AS item_id FROM item WHERE item.parent IN ( %s ) $item_normal $sql_extra ", + dbesc($parents_str) + ); + + if(! $items) { + http_status_exit(404, 'Not found'); + } + + $r = $items; + xchan_query($r,true); + $items = fetch_post_tags($r,true); + + $observer = App::get_observer(); + $parent = $items[0]; + $recips = (($parent['owner']['xchan_network'] === 'activitypub') ? get_iconfig($parent['id'],'activitypub','recips', []) : []); + $to = (($recips && array_key_exists('to',$recips) && is_array($recips['to'])) ? $recips['to'] : null); + $nitems = []; + foreach($items as $i) { + + $mids = []; + + if(intval($i['item_private'])) { + if(! $observer) { + continue; + } + // ignore private reshare, possibly from hubzilla + if($i['verb'] === 'Announce') { + if(! in_array($i['thr_parent'],$mids)) { + $mids[] = $i['thr_parent']; + } + continue; + } + // also ignore any children of the private reshares + if(in_array($i['thr_parent'],$mids)) { + continue; + } + + if((! $to) || (! in_array($observer['xchan_url'],$to))) { + continue; + } + + } + $nitems[] = $i; + } + + if(! $nitems) + http_status_exit(404, 'Not found'); + + $chan = channelx_by_n($nitems[0]['uid']); + + if(! $chan) + http_status_exit(404, 'Not found'); + + if(! perm_is_allowed($chan['channel_id'],get_observer_hash(),'view_stream')) + http_status_exit(403, 'Forbidden'); + + $i = Activity::encode_item_collection($nitems,'conversation/' . $item_id,'OrderedCollection',( defined('NOMADIC') ? false : true)); + if($portable_id) { + ThreadListener::store(z_root() . '/item/' . $item_id,$portable_id); + } + + if(! $i) + http_status_exit(404, 'Not found'); + + $x = array_merge(['@context' => [ + ACTIVITYSTREAMS_JSONLD_REV, + 'https://w3id.org/security/v1', + z_root() . ZOT_APSCHEMA_REV + ]], $i); + + $headers = []; + $headers['Content-Type'] = 'application/x-zot+json' ; + $x['signature'] = LDSignatures::sign($x,$chan); + $ret = json_encode($x, JSON_UNESCAPED_SLASHES); + $headers['Digest'] = HTTPSig::generate_digest_header($ret); + $headers['(request-target)'] = strtolower($_SERVER['REQUEST_METHOD']) . ' ' . $_SERVER['REQUEST_URI']; + $h = HTTPSig::create_sig($headers,$chan['channel_prvkey'],channel_url($chan)); + HTTPSig::set_headers($h); + echo $ret; + killme(); + + } + } + + + function post() { // This will change. Figure out who the observer is and whether or not @@ -553,8 +698,8 @@ class Item extends Controller { // Look for tags and linkify them - $results = linkify_tags($a, $summary, ($uid) ? $uid : $profile_uid); - $results = linkify_tags($a, $body, ($uid) ? $uid : $profile_uid); + $results = linkify_tags($summary, ($uid) ? $uid : $profile_uid); + $results = linkify_tags($body, ($uid) ? $uid : $profile_uid); if($results) { @@ -639,9 +784,9 @@ class Item extends Controller { if(preg_match_all('/(\[share=(.*?)\](.*?)\[\/share\])/',$body,$match)) { + // process share by id - $verb = ACTIVITY_SHARE; $i = 0; foreach($match[2] as $mtch) { $reshare = new \Zotlabs\Lib\Share($mtch); diff --git a/Zotlabs/Module/Mail.php b/Zotlabs/Module/Mail.php index d38c1d88c..3202d38a5 100644 --- a/Zotlabs/Module/Mail.php +++ b/Zotlabs/Module/Mail.php @@ -34,7 +34,7 @@ class Mail extends \Zotlabs\Web\Controller { } else { $body = cleanup_bbcode($body); - $results = linkify_tags($a, $body, local_channel()); + $results = linkify_tags($body, local_channel()); if(preg_match_all('/(\[attachment\](.*?)\[\/attachment\])/',$body,$match)) { $attachments = array(); @@ -111,7 +111,7 @@ class Mail extends \Zotlabs\Web\Controller { } require_once('include/text.php'); - linkify_tags($a, $body, local_channel()); + linkify_tags($body, local_channel()); if(! $recipient) { diff --git a/Zotlabs/Module/Network.php b/Zotlabs/Module/Network.php index d5cc06d09..2019082ed 100644 --- a/Zotlabs/Module/Network.php +++ b/Zotlabs/Module/Network.php @@ -1,6 +1,8 @@ <?php namespace Zotlabs\Module; +use Zotlabs\Lib\Group; +use Zotlabs\Lib\Apps; use App; require_once('include/items.php'); @@ -114,8 +116,8 @@ class Network extends \Zotlabs\Web\Controller { $def_acl = array('allow_gid' => '<' . $r[0]['hash'] . '>'); } - $default_cmin = ((feature_enabled(local_channel(),'affinity')) ? get_pconfig(local_channel(),'affinity','cmin',0) : (-1)); - $default_cmax = ((feature_enabled(local_channel(),'affinity')) ? get_pconfig(local_channel(),'affinity','cmax',99) : (-1)); + $default_cmin = ((Apps::system_app_installed(local_channel(),'Affinity Tool')) ? get_pconfig(local_channel(),'affinity','cmin',0) : (-1)); + $default_cmax = ((Apps::system_app_installed(local_channel(),'Affinity Tool')) ? get_pconfig(local_channel(),'affinity','cmax',99) : (-1)); $cid = ((x($_GET,'cid')) ? intval($_GET['cid']) : 0); $star = ((x($_GET,'star')) ? intval($_GET['star']) : 0); @@ -132,7 +134,7 @@ class Network extends \Zotlabs\Web\Controller { $deftag = ''; - if (feature_enabled(local_channel(),'affinity')) { + if (Apps::system_app_installed(local_channel(),'Affinity Tool')) { $affinity_locked = intval(get_pconfig(local_channel(),'affinity','lock',1)); if ($affinity_locked) { set_pconfig(local_channel(),'affinity','cmin',$cmin); diff --git a/Zotlabs/Module/Notes.php b/Zotlabs/Module/Notes.php index 178a6bce0..7572f7420 100644 --- a/Zotlabs/Module/Notes.php +++ b/Zotlabs/Module/Notes.php @@ -1,28 +1,31 @@ <?php -namespace Zotlabs\Module; /** @file */ +namespace Zotlabs\Module; use App; use Zotlabs\Web\Controller; use Zotlabs\Lib\Apps; +/** + * @brief Notes Module controller. + */ class Notes extends Controller { function post() { - + if(! local_channel()) return EMPTY_STR; if(! Apps::system_app_installed(local_channel(), 'Notes')) return EMPTY_STR; - + $ret = array('success' => true); if(array_key_exists('note_text',$_REQUEST)) { $body = escape_tags($_REQUEST['note_text']); - + // I've had my notes vanish into thin air twice in four years. - // Provide a backup copy if there were contents previously + // Provide a backup copy if there were contents previously // and there are none being saved now. - + if(! $body) { $old_text = get_pconfig(local_channel(),'notes','text'); if($old_text) @@ -40,11 +43,9 @@ class Notes extends Controller { logger('notes saved.', LOGGER_DEBUG); json_return_and_die($ret); - } function get() { - if(! local_channel()) return EMPTY_STR; @@ -61,7 +62,6 @@ class Notes extends Controller { $arr = ['app' => true]; return $w->widget($arr); - } - + } diff --git a/Zotlabs/Module/Oep.php b/Zotlabs/Module/Oep.php index 0f20a5f9a..c0d8e15e5 100644 --- a/Zotlabs/Module/Oep.php +++ b/Zotlabs/Module/Oep.php @@ -181,7 +181,7 @@ class Oep extends \Zotlabs\Web\Controller { dbesc($res) ); if($r) { - $sql_extra = "and item.id = " . intval($r[0]['iid']) . " "; + $sql_extra .= " and item.id = " . intval($r[0]['iid']) . " "; } else { return $ret; @@ -194,6 +194,9 @@ class Oep extends \Zotlabs\Web\Controller { intval(ITEM_TYPE_CARD) ); + if(! $r) + return; + $item_normal = " and item.item_hidden = 0 and item.item_type in (0,6) and item.item_deleted = 0 and item.item_unpublished = 0 and item.item_delayed = 0 and item.item_pending_remove = 0 and item.item_blocked = 0 "; @@ -255,7 +258,6 @@ class Oep extends \Zotlabs\Web\Controller { if(! $channel) return $ret; - if(! perm_is_allowed($channel['channel_id'],get_observer_hash(),'view_pages')) return $ret; @@ -265,7 +267,7 @@ class Oep extends \Zotlabs\Web\Controller { dbesc($res) ); if($r) { - $sql_extra = "and item.id = " . intval($r[0]['iid']) . " "; + $sql_extra .= " and item.id = " . intval($r[0]['iid']) . " "; } else { return $ret; @@ -278,6 +280,9 @@ class Oep extends \Zotlabs\Web\Controller { intval(ITEM_TYPE_ARTICLE) ); + if(! $r) + return; + $item_normal = " and item.item_hidden = 0 and item.item_type in (0,7) and item.item_deleted = 0 and item.item_unpublished = 0 and item.item_delayed = 0 and item.item_pending_remove = 0 and item.item_blocked = 0 "; diff --git a/Zotlabs/Module/Photos.php b/Zotlabs/Module/Photos.php index 3833d5088..a761dbd14 100644 --- a/Zotlabs/Module/Photos.php +++ b/Zotlabs/Module/Photos.php @@ -422,7 +422,7 @@ class Photos extends \Zotlabs\Web\Controller { require_once('include/text.php'); $profile_uid = \App::$profile['profile_uid']; - $results = linkify_tags($a, $rawtags, (local_channel()) ? local_channel() : $profile_uid); + $results = linkify_tags($rawtags, (local_channel()) ? local_channel() : $profile_uid); $success = $results['success']; $post_tags = array(); diff --git a/Zotlabs/Module/Profiles.php b/Zotlabs/Module/Profiles.php index de4075ba9..33e7d8a9d 100644 --- a/Zotlabs/Module/Profiles.php +++ b/Zotlabs/Module/Profiles.php @@ -354,20 +354,20 @@ class Profiles extends \Zotlabs\Web\Controller { require_once('include/text.php'); - linkify_tags($a, $likes, local_channel()); - linkify_tags($a, $dislikes, local_channel()); - linkify_tags($a, $about, local_channel()); - linkify_tags($a, $interest, local_channel()); - linkify_tags($a, $interest, local_channel()); - linkify_tags($a, $contact, local_channel()); - linkify_tags($a, $channels, local_channel()); - linkify_tags($a, $music, local_channel()); - linkify_tags($a, $book, local_channel()); - linkify_tags($a, $tv, local_channel()); - linkify_tags($a, $film, local_channel()); - linkify_tags($a, $romance, local_channel()); - linkify_tags($a, $work, local_channel()); - linkify_tags($a, $education, local_channel()); + linkify_tags($likes, local_channel()); + linkify_tags($dislikes, local_channel()); + linkify_tags($about, local_channel()); + linkify_tags($interest, local_channel()); + linkify_tags($interest, local_channel()); + linkify_tags($contact, local_channel()); + linkify_tags($channels, local_channel()); + linkify_tags($music, local_channel()); + linkify_tags($book, local_channel()); + linkify_tags($tv, local_channel()); + linkify_tags($film, local_channel()); + linkify_tags($romance, local_channel()); + linkify_tags($work, local_channel()); + linkify_tags($education, local_channel()); $with = ((x($_POST,'with')) ? escape_tags(trim($_POST['with'])) : ''); diff --git a/Zotlabs/Module/Settings/Featured.php b/Zotlabs/Module/Settings/Featured.php index 1d903fcf7..d5d740aff 100644 --- a/Zotlabs/Module/Settings/Featured.php +++ b/Zotlabs/Module/Settings/Featured.php @@ -10,24 +10,6 @@ class Featured { call_hooks('feature_settings_post', $_POST); - if($_POST['affinity_slider-submit']) { - $cmax = intval($_POST['affinity_cmax']); - if($cmax < 0 || $cmax > 99) - $cmax = 99; - $cmin = intval($_POST['affinity_cmin']); - if($cmin < 0 || $cmin > 99) - $cmin = 0; - - $lock = ($_POST['affinity_lock']) ? intval($_POST['affinity_lock']) : 1; - - set_pconfig(local_channel(),'affinity','cmin',$cmin); - set_pconfig(local_channel(),'affinity','cmax',$cmax); - set_pconfig(local_channel(),'affinity','lock',$lock); - - info( t('Affinity Slider settings updated.') . EOL); - - } - build_sync_packet(); return; } @@ -41,34 +23,10 @@ class Featured { if(! $r) $settings_addons = t('No feature settings configured'); - if(feature_enabled(local_channel(),'affinity')) { - - $cmax = intval(get_pconfig(local_channel(),'affinity','cmax')); - $cmax = (($cmax) ? $cmax : 99); - $setting_fields .= replace_macros(get_markup_template('field_input.tpl'), array( - '$field' => array('affinity_cmax', t('Default maximum affinity level'), $cmax, t('0-99 default 99')) - )); - $cmin = intval(get_pconfig(local_channel(),'affinity','cmin')); - $cmin = (($cmin) ? $cmin : 0); - $setting_fields .= replace_macros(get_markup_template('field_input.tpl'), array( - '$field' => array('affinity_cmin', t('Default minimum affinity level'), $cmin, t('0-99 - default 0')) - )); - $lock = intval(get_pconfig(local_channel(),'affinity','lock',1)); - $setting_fields .= replace_macros(get_markup_template('field_checkbox.tpl'), array( - '$field' => array('affinity_lock', t('Always reset on new page visit.'), $lock, t('default: yes'), Array('No','Yes')) - )); - - $settings_addons .= replace_macros(get_markup_template('generic_addon_settings.tpl'), array( - '$addon' => array('affinity_slider', '' . t('Affinity Slider Settings'), '', t('Submit')), - '$content' => $setting_fields - )); - } - call_hooks('feature_settings', $settings_addons); $this->sortpanels($settings_addons); - $tpl = get_markup_template("settings_addons.tpl"); $o .= replace_macros($tpl, array( '$form_security_token' => get_form_security_token("settings_featured"), diff --git a/Zotlabs/Module/Share.php b/Zotlabs/Module/Share.php index c6d0be051..53a06b072 100644 --- a/Zotlabs/Module/Share.php +++ b/Zotlabs/Module/Share.php @@ -1,6 +1,11 @@ <?php namespace Zotlabs\Module; +use App; +use Zotlabs\Daemon\Master; +use Zotlabs\Lib\Activity; + + require_once('include/security.php'); require_once('include/bbcode.php'); @@ -14,23 +19,23 @@ class Share extends \Zotlabs\Web\Controller { if(! $post_id) killme(); - echo '[share=' . $post_id . '][/share]'; - killme(); + if(! local_channel()) { + killme(); + } + $observer = App::get_observer(); - /** - * The remaining code is deprecated and handled in Zotlabs/Lib/Share.php at post - * submission time. - */ + $channel = App::get_channel(); - if(! (local_channel() || remote_channel())) - killme(); - $r = q("SELECT * from item left join xchan on author_xchan = xchan_hash WHERE id = %d LIMIT 1", intval($post_id) ); if(! $r) killme(); + + + + if(($r[0]['item_private']) && ($r[0]['xchan_network'] !== 'rss')) killme(); @@ -46,59 +51,86 @@ class Share extends \Zotlabs\Web\Controller { if($r[0]['mimetype'] !== 'text/bbcode') killme(); - - /** @FIXME eventually we want to post remotely via rpost on your home site */ - // When that works remove this next bit: - - if(! local_channel()) - killme(); - + xchan_query($r); - $is_photo = (($r[0]['obj_type'] === ACTIVITY_OBJ_PHOTO) ? true : false); - if($is_photo) { - $object = json_decode($r[0]['obj'],true); - $photo_bb = $object['body']; - } - - if (strpos($r[0]['body'], "[/share]") !== false) { - $pos = strpos($r[0]['body'], "[share"); - $o = substr($r[0]['body'], $pos); - } else { - $o = "[share author='" . urlencode($r[0]['author']['xchan_name']) . - "' profile='" . $r[0]['author']['xchan_url'] . - "' avatar='" . $r[0]['author']['xchan_photo_s'] . - "' link='" . $r[0]['plink'] . - "' auth='" . (($r[0]['author']['network'] === 'zot') ? 'true' : 'false') . - "' posted='" . $r[0]['created'] . - "' message_id='" . $r[0]['mid'] . - "']"; - if($r[0]['title']) - $o .= '[b]'.$r[0]['title'].'[/b]'."\r\n"; - $o .= (($is_photo) ? $photo_bb . "\r\n" . $r[0]['body'] : $r[0]['body']); - $o .= "[/share]"; - } - - if(local_channel()) { - echo $o; + $arr = []; + + $item = $r[0]; + + $owner_uid = $r[0]['uid']; + $owner_aid = $r[0]['aid']; + + $can_comment = false; + if((array_key_exists('owner',$item)) && intval($item['owner']['abook_self'])) + $can_comment = perm_is_allowed($item['uid'],$observer['xchan_hash'],'post_comments'); + else + $can_comment = can_comment_on_post($observer['xchan_hash'],$item); + + if(! $can_comment) { + notice( t('Permission denied') . EOL); killme(); } + + $r = q("select * from xchan where xchan_hash = '%s' limit 1", + dbesc($item['owner_xchan']) + ); + + if($r) + $thread_owner = $r[0]; + else + killme(); - $observer = \App::get_observer(); - $parsed = $observer['xchan_url']; - if($parsed) { - $post_url = $parsed['scheme'] . '://' . $parsed['host'] . (($parsed['port']) ? ':' . $parsed['port'] : '') - . '/rpost'; + $r = q("select * from xchan where xchan_hash = '%s' limit 1", + dbesc($item['author_xchan']) + ); + if($r) + $item_author = $r[0]; + else + killme(); - /** - * @FIXME we were probably called from JS so we don't know the return page. - * In fact we won't be able to load the remote page. - * we might need an iframe - */ + + $arr['aid'] = $owner_aid; + $arr['uid'] = $owner_uid; + + $arr['item_origin'] = 1; + $arr['item_wall'] = $item['item_wall']; + $arr['uuid'] = item_message_id(); + $arr['mid'] = z_root() . '/activity/' . $arr['uuid']; + $arr['parent_mid'] = $item['mid']; + + $mention = '@[zrl=' . $item['author']['xchan_url'] . ']' . $item['author']['xchan_name'] . '[/zrl]'; + $arr['body'] = sprintf( t('🔁 Repeated %1$s\'s %2$s'), $mention, Activity::activity_obj_mapper($item['obj_type'])); + + $arr['author_xchan'] = $channel['channel_hash']; + $arr['owner_xchan'] = $item['author_xchan']; + $arr['obj'] = Activity::encode_item($item); + $arr['obj_type'] = $item['obj_type']; + $arr['verb'] = 'Announce'; + + $post = item_store($arr); + + $post_id = $post['item_id']; + + $arr['id'] = $post_id; - $x = z_post_url($post_url, array('f' => '', 'body' => $o )); - killme(); + call_hooks('post_local_end', $arr); + + info( t('Post repeated') . EOL); + + $r = q("select * from item where id = %d", + intval($post_id) + ); + if($r) { + xchan_query($r); + $sync_item = fetch_post_tags($r); + build_sync_packet($channel['channel_id'], [ 'item' => [ encode_item($sync_item[0],true) ] ]); } + + Master::Summon([ 'Notifier','like',$post_id ]); + + killme(); + } } diff --git a/Zotlabs/Module/Viewsrc.php b/Zotlabs/Module/Viewsrc.php index 119990b57..b73d81283 100644 --- a/Zotlabs/Module/Viewsrc.php +++ b/Zotlabs/Module/Viewsrc.php @@ -28,7 +28,7 @@ class Viewsrc extends \Zotlabs\Web\Controller { $item_normal = item_normal(); if(local_channel() && $item_id) { - $r = q("select id, item_flags, mimetype, item_obscured, body, llink, plink from item where uid in (%d , %d) and id = %d $item_normal limit 1", + $r = q("select id, mid, item_flags, mimetype, item_obscured, body, llink, plink from item where uid in (%d , %d) and id = %d $item_normal limit 1", intval(local_channel()), intval($sys['channel_id']), intval($item_id) @@ -53,7 +53,7 @@ class Viewsrc extends \Zotlabs\Web\Controller { if(is_ajax()) { echo '<div class="p-1">'; - echo '<div>id: ' . $r[0]['id'] . ' | <a href="' . $r[0]['plink'] . '" target="_blank">plink</a> | <a href="' . $r[0]['llink'] . '" target="_blank">llink</a></div>'; + echo '<div>id: ' . $r[0]['id'] . ' | <a href="' . $r[0]['plink'] . '" target="_blank">plink</a> | <a href="' . $r[0]['llink'] . '" target="_blank">llink</a><br>mid: ' . $r[0]['mid'] . '</div>'; echo '<hr>'; echo '<pre class="p-1">' . $o . '</pre>'; echo '</div>'; diff --git a/Zotlabs/Photo/PhotoDriver.php b/Zotlabs/Photo/PhotoDriver.php new file mode 100644 index 000000000..c47a7c3b2 --- /dev/null +++ b/Zotlabs/Photo/PhotoDriver.php @@ -0,0 +1,498 @@ +<?php + +namespace Zotlabs\Photo; + +/** + * @brief Abstract photo driver class. + * + * Inheritance seems not to be the best design pattern for such photo drivers. + */ +abstract class PhotoDriver { + + /** + * @brief This variable keeps the image. + * + * For GD it is a PHP image resource. + * For ImageMagick it is an \Imagick object. + * + * @var resource|\Imagick + */ + protected $image; + + /** + * @var integer + */ + protected $width; + + /** + * @var integer + */ + protected $height; + + /** + * @var boolean + */ + protected $valid; + + /** + * @brief The mimetype of the image. + * + * @var string + */ + protected $type; + + /** + * @brief Supported mimetypes by the used photo driver. + * + * @var array + */ + protected $types; + + /** + * @brief Return an array with supported mimetypes. + * + * @return array + * Associative array with mimetype as key and file extension as value. + */ + abstract public function supportedTypes(); + + abstract protected function load($data, $type); + + abstract protected function destroy(); + + abstract protected function setDimensions(); + + /** + * @brief Return the current image. + * + * @fixme Shouldn't his method be protected, because outside of the current + * driver it makes no sense at all because of the different return values. + * + * @return boolean|resource|\Imagick + * false on failure, a PHP image resource for GD driver, an \Imagick object + * for ImageMagick driver. + */ + abstract public function getImage(); + + abstract public function doScaleImage($new_width, $new_height); + + abstract public function rotate($degrees); + + abstract public function flip($horiz = true, $vert = false); + + /** + * @brief Crops the image. + * + * @param int $maxx width of the new image + * @param int $maxy height of the new image + * @param int $x x-offset for region + * @param int $y y-offset for region + * @param int $w width of region + * @param int $h height of region + * + * @return boolean|void false on failure + */ + abstract public function cropImageRect($maxx, $maxy, $x, $y, $w, $h); + + /** + * @brief Return a binary string from the image resource. + * + * @return string A Binary String. + */ + abstract public function imageString(); + + abstract public function clearexif(); + + + /** + * @brief PhotoDriver constructor. + * + * @param string $data Image + * @param string $type mimetype + */ + public function __construct($data, $type = '') { + $this->types = $this->supportedTypes(); + if(! array_key_exists($type, $this->types)) { + $type = 'image/jpeg'; + } + $this->type = $type; + $this->valid = false; + $this->load($data, $type); + } + + public function __destruct() { + if($this->is_valid()) + $this->destroy(); + } + + /** + * @brief Is it a valid image object. + * + * @return boolean + */ + public function is_valid() { + return $this->valid; + } + + /** + * @brief Get the width of the image. + * + * @return boolean|number Width of image in pixels, or false on failure + */ + public function getWidth() { + if(! $this->is_valid()) + return false; + + return $this->width; + } + + /** + * @brief Get the height of the image. + * + * @return boolean|number Height of image in pixels, or false on failure + */ + public function getHeight() { + if(! $this->is_valid()) + return false; + + return $this->height; + } + + /** + * @brief Saves the image resource to a file in filesystem. + * + * @param string $path Path and filename where to save the image + * @return boolean False on failure, otherwise true + */ + public function saveImage($path) { + if(! $this->is_valid()) + return false; + + return (file_put_contents($path, $this->imageString()) ? true : false); + } + + /** + * @brief Return mimetype of the image resource. + * + * @return boolean|string False on failure, otherwise mimetype. + */ + public function getType() { + if(! $this->is_valid()) + return false; + + return $this->type; + } + + /** + * @brief Return file extension of the image resource. + * + * @return boolean|string False on failure, otherwise file extension. + */ + public function getExt() { + if(! $this->is_valid()) + return false; + + return $this->types[$this->getType()]; + } + + /** + * @brief Scale image to max pixel size in either dimension. + * + * @param int $max maximum pixel size in either dimension + * @param boolean $float_height (optional) + * If true allow height to float to any length on tall images, constraining + * only the width + * @return boolean|void false on failure, otherwise void + */ + public function scaleImage($max, $float_height = true) { + if(! $this->is_valid()) + return false; + + $width = $this->width; + $height = $this->height; + + $dest_width = $dest_height = 0; + + if((! $width) || (! $height)) + return false; + + if($width > $max && $height > $max) { + + // very tall image (greater than 16:9) + // constrain the width - let the height float. + + if(((($height * 9) / 16) > $width) && ($float_height)) { + $dest_width = $max; + $dest_height = intval(($height * $max) / $width); + } // else constrain both dimensions + elseif($width > $height) { + $dest_width = $max; + $dest_height = intval(($height * $max) / $width); + } else { + $dest_width = intval(($width * $max) / $height); + $dest_height = $max; + } + } else { + if($width > $max) { + $dest_width = $max; + $dest_height = intval(($height * $max) / $width); + } else { + if($height > $max) { + + // very tall image (greater than 16:9) + // but width is OK - don't do anything + + if(((($height * 9) / 16) > $width) && ($float_height)) { + $dest_width = $width; + $dest_height = $height; + } else { + $dest_width = intval(($width * $max) / $height); + $dest_height = $max; + } + } else { + $dest_width = $width; + $dest_height = $height; + } + } + } + $this->doScaleImage($dest_width, $dest_height); + } + + public function scaleImageUp($min) { + if(! $this->is_valid()) { + return false; + } + + $width = $this->width; + $height = $this->height; + + $dest_width = $dest_height = 0; + + if((! $width) || (! $height)) + return false; + + if($width < $min && $height < $min) { + if($width > $height) { + $dest_width = $min; + $dest_height = intval(($height * $min) / $width); + } else { + $dest_width = intval(($width * $min) / $height); + $dest_height = $min; + } + } else { + if($width < $min) { + $dest_width = $min; + $dest_height = intval(($height * $min) / $width); + } else { + if($height < $min) { + $dest_width = intval(($width * $min) / $height); + $dest_height = $min; + } else { + $dest_width = $width; + $dest_height = $height; + } + } + } + $this->doScaleImage($dest_width, $dest_height); + } + + /** + * @brief Scales image to a square. + * + * @param int $dim Pixel of square image + * @return boolean|void false on failure, otherwise void + */ + public function scaleImageSquare($dim) { + if(! $this->is_valid()) + return false; + + $this->doScaleImage($dim, $dim); + } + + /** + * @brief Crops a square image. + * + * @see cropImageRect() + * + * @param int $max size of the new image + * @param int $x x-offset for region + * @param int $y y-offset for region + * @param int $w width of region + * @param int $h height of region + * + * @return boolean|void false on failure + */ + public function cropImage($max, $x, $y, $w, $h) { + if(! $this->is_valid()) + return false; + + $this->cropImageRect($max, $max, $x, $y, $w, $h); + } + + /** + * @brief Reads exif data from a given filename. + * + * @param string $filename + * @return boolean|array + */ + public function exif($filename) { + if((! function_exists('exif_read_data')) + || (! in_array($this->getType(), ['image/jpeg', 'image/tiff']))) + { + return false; + } + + /* + * PHP 7.2 allows you to use a stream resource, which should reduce/avoid + * memory exhaustion on large images. + */ + + if(version_compare(PHP_VERSION, '7.2.0') >= 0) { + $f = @fopen($filename, 'rb'); + } else { + $f = $filename; + } + + if($f) { + return @exif_read_data($f, null, true); + } + + return false; + } + + /** + * @brief Orients current image based on exif orientation information. + * + * @param array $exif + * @return boolean true if oriented, otherwise false + */ + public function orient($exif) { + if(! ($this->is_valid() && $exif)) { + return false; + } + + $ort = ((array_key_exists('IFD0', $exif)) ? $exif['IFD0']['Orientation'] : $exif['Orientation']); + + if(! $ort) { + return false; + } + + switch($ort) { + case 1 : // nothing + break; + case 2 : // horizontal flip + $this->flip(); + break; + case 3 : // 180 rotate left + $this->rotate(180); + break; + case 4 : // vertical flip + $this->flip(false, true); + break; + case 5 : // vertical flip + 90 rotate right + $this->flip(false, true); + $this->rotate(-90); + break; + case 6 : // 90 rotate right + $this->rotate(-90); + break; + case 7 : // horizontal flip + 90 rotate right + $this->flip(); + $this->rotate(-90); + break; + case 8 : // 90 rotate left + $this->rotate(90); + break; + default : + break; + } + + return true; + } + + /** + * @brief Save photo to database. + * + * @param array $arr + * @param boolean $skipcheck (optional) default false + * @return boolean|array + */ + public function save($arr, $skipcheck = false) { + if(! ($skipcheck || $this->is_valid())) { + logger('Attempt to store invalid photo.'); + return false; + } + + $p = []; + + $p['aid'] = ((intval($arr['aid'])) ? intval($arr['aid']) : 0); + $p['uid'] = ((intval($arr['uid'])) ? intval($arr['uid']) : 0); + $p['xchan'] = (($arr['xchan']) ? $arr['xchan'] : ''); + $p['resource_id'] = (($arr['resource_id']) ? $arr['resource_id'] : ''); + $p['filename'] = (($arr['filename']) ? $arr['filename'] : ''); + $p['mimetype'] = (($arr['mimetype']) ? $arr['mimetype'] : $this->getType()); + $p['album'] = (($arr['album']) ? $arr['album'] : ''); + $p['imgscale'] = ((intval($arr['imgscale'])) ? intval($arr['imgscale']) : 0); + $p['allow_cid'] = (($arr['allow_cid']) ? $arr['allow_cid'] : ''); + $p['allow_gid'] = (($arr['allow_gid']) ? $arr['allow_gid'] : ''); + $p['deny_cid'] = (($arr['deny_cid']) ? $arr['deny_cid'] : ''); + $p['deny_gid'] = (($arr['deny_gid']) ? $arr['deny_gid'] : ''); + $p['edited'] = (($arr['edited']) ? $arr['edited'] : datetime_convert()); + $p['title'] = (($arr['title']) ? $arr['title'] : ''); + $p['description'] = (($arr['description']) ? $arr['description'] : ''); + $p['photo_usage'] = intval($arr['photo_usage']); + $p['os_storage'] = intval($arr['os_storage']); + $p['os_path'] = $arr['os_path']; + $p['os_syspath'] = ((array_key_exists('os_syspath', $arr)) ? $arr['os_syspath'] : ''); + $p['display_path'] = (($arr['display_path']) ? $arr['display_path'] : ''); + $p['width'] = (($arr['width']) ? $arr['width'] : $this->getWidth()); + $p['height'] = (($arr['height']) ? $arr['height'] : $this->getHeight()); + $p['expires'] = (($arr['expires']) ? $arr['expires'] : gmdate('Y-m-d H:i:s', time() + get_config('system', 'photo_cache_time', 86400))); + + if(! intval($p['imgscale'])) + logger('save: ' . print_r($arr, true), LOGGER_DATA); + + $x = q("select id, created from photo where resource_id = '%s' and uid = %d and xchan = '%s' and imgscale = %d limit 1", dbesc($p['resource_id']), intval($p['uid']), dbesc($p['xchan']), intval($p['imgscale'])); + + if($x) { + $p['created'] = (($x['created']) ? $x['created'] : $p['edited']); + $r = q("UPDATE photo set + aid = %d, + uid = %d, + xchan = '%s', + resource_id = '%s', + created = '%s', + edited = '%s', + filename = '%s', + mimetype = '%s', + album = '%s', + height = %d, + width = %d, + content = '%s', + os_storage = %d, + filesize = %d, + imgscale = %d, + photo_usage = %d, + title = '%s', + description = '%s', + os_path = '%s', + display_path = '%s', + allow_cid = '%s', + allow_gid = '%s', + deny_cid = '%s', + deny_gid = '%s', + expires = '%s' + where id = %d", + intval($p['aid']), intval($p['uid']), dbesc($p['xchan']), dbesc($p['resource_id']), dbescdate($p['created']), dbescdate($p['edited']), dbesc(basename($p['filename'])), dbesc($p['mimetype']), dbesc($p['album']), intval($p['height']), intval($p['width']), (intval($p['os_storage']) ? dbescbin($p['os_syspath']) : dbescbin($this->imageString())), intval($p['os_storage']), (intval($p['os_storage']) ? @filesize($p['os_syspath']) : strlen($this->imageString())), intval($p['imgscale']), intval($p['photo_usage']), dbesc($p['title']), dbesc($p['description']), dbesc($p['os_path']), dbesc($p['display_path']), dbesc($p['allow_cid']), dbesc($p['allow_gid']), dbesc($p['deny_cid']), dbesc($p['deny_gid']), dbescdate($p['expires']), intval($x[0]['id'])); + } else { + $p['created'] = (($arr['created']) ? $arr['created'] : $p['edited']); + $r = q("INSERT INTO photo + ( aid, uid, xchan, resource_id, created, edited, filename, mimetype, album, height, width, content, os_storage, filesize, imgscale, photo_usage, title, description, os_path, display_path, allow_cid, allow_gid, deny_cid, deny_gid, expires ) + VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d, %d, %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' )", intval($p['aid']), intval($p['uid']), dbesc($p['xchan']), dbesc($p['resource_id']), dbescdate($p['created']), dbescdate($p['edited']), dbesc(basename($p['filename'])), dbesc($p['mimetype']), dbesc($p['album']), intval($p['height']), intval($p['width']), (intval($p['os_storage']) ? dbescbin($p['os_syspath']) : dbescbin($this->imageString())), intval($p['os_storage']), (intval($p['os_storage']) ? @filesize($p['os_syspath']) : strlen($this->imageString())), intval($p['imgscale']), intval($p['photo_usage']), dbesc($p['title']), dbesc($p['description']), dbesc($p['os_path']), dbesc($p['display_path']), dbesc($p['allow_cid']), dbesc($p['allow_gid']), dbesc($p['deny_cid']), dbesc($p['deny_gid']), dbescdate($p['expires'])); + } + logger('Photo save imgscale ' . $p['imgscale'] . ' returned ' . intval($r)); + + return $r; + } + +} diff --git a/Zotlabs/Photo/PhotoGd.php b/Zotlabs/Photo/PhotoGd.php new file mode 100644 index 000000000..4054e1866 --- /dev/null +++ b/Zotlabs/Photo/PhotoGd.php @@ -0,0 +1,176 @@ +<?php + +namespace Zotlabs\Photo; + +/** + * @brief GD photo driver. + * + */ +class PhotoGd extends PhotoDriver { + + /** + * {@inheritDoc} + * @see \Zotlabs\Photo\PhotoDriver::supportedTypes() + */ + public function supportedTypes() { + $t = []; + $t['image/jpeg'] = 'jpg'; + if(imagetypes() & IMG_PNG) + $t['image/png'] = 'png'; + if(imagetypes() & IMG_GIF) + $t['image/gif'] = 'gif'; + + return $t; + } + + protected function load($data, $type) { + $this->valid = false; + if(! $data) + return; + + $this->image = @imagecreatefromstring($data); + if($this->image !== false) { + $this->valid = true; + $this->setDimensions(); + imagealphablending($this->image, false); + imagesavealpha($this->image, true); + } + } + + protected function setDimensions() { + $this->width = imagesx($this->image); + $this->height = imagesy($this->image); + } + + /** + * @brief GD driver does not preserve EXIF, so not need to clear it. + * + * @return void + */ + public function clearexif() { + return; + } + + protected function destroy() { + if($this->is_valid()) { + imagedestroy($this->image); + } + } + + /** + * @brief Return a PHP image resource of the current image. + * + * @see \Zotlabs\Photo\PhotoDriver::getImage() + * + * @return boolean|resource + */ + public function getImage() { + if(! $this->is_valid()) + return false; + + return $this->image; + } + + public function doScaleImage($dest_width, $dest_height) { + + $dest = imagecreatetruecolor($dest_width, $dest_height); + $width = imagesx($this->image); + $height = imagesy($this->image); + + imagealphablending($dest, false); + imagesavealpha($dest, true); + if($this->type == 'image/png') + imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha + + imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dest_width, $dest_height, $width, $height); + if($this->image) + imagedestroy($this->image); + + $this->image = $dest; + $this->setDimensions(); + } + + public function rotate($degrees) { + if(! $this->is_valid()) + return false; + + $this->image = imagerotate($this->image, $degrees, 0); + $this->setDimensions(); + } + + public function flip($horiz = true, $vert = false) { + if(! $this->is_valid()) + return false; + + $w = imagesx($this->image); + $h = imagesy($this->image); + $flipped = imagecreate($w, $h); + if($horiz) { + for($x = 0; $x < $w; $x++) { + imagecopy($flipped, $this->image, $x, 0, $w - $x - 1, 0, 1, $h); + } + } + if($vert) { + for($y = 0; $y < $h; $y++) { + imagecopy($flipped, $this->image, 0, $y, 0, $h - $y - 1, $w, 1); + } + } + $this->image = $flipped; + $this->setDimensions(); // Shouldn't really be necessary + } + + public function cropImageRect($maxx, $maxy, $x, $y, $w, $h) { + if(! $this->is_valid()) + return false; + + $dest = imagecreatetruecolor($maxx, $maxy); + imagealphablending($dest, false); + imagesavealpha($dest, true); + if($this->type == 'image/png') + imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha + + imagecopyresampled($dest, $this->image, 0, 0, $x, $y, $maxx, $maxy, $w, $h); + if($this->image) + imagedestroy($this->image); + + $this->image = $dest; + $this->setDimensions(); + } + + /** + * {@inheritDoc} + * @see \Zotlabs\Photo\PhotoDriver::imageString() + */ + public function imageString() { + if(! $this->is_valid()) + return false; + + $quality = false; + + ob_start(); + + switch($this->getType()){ + case 'image/png': + $quality = get_config('system', 'png_quality'); + if((! $quality) || ($quality > 9)) + $quality = PNG_QUALITY; + + \imagepng($this->image, NULL, $quality); + break; + case 'image/jpeg': + // gd can lack imagejpeg(), but we verify during installation it is available + default: + $quality = get_config('system', 'jpeg_quality'); + if((! $quality) || ($quality > 100)) + $quality = JPEG_QUALITY; + + \imagejpeg($this->image, NULL, $quality); + break; + } + $string = ob_get_contents(); + ob_end_clean(); + + return $string; + } + +} diff --git a/include/photo/photo_imagick.php b/Zotlabs/Photo/PhotoImagick.php index cb3ad27fb..a7026e8ca 100644 --- a/include/photo/photo_imagick.php +++ b/Zotlabs/Photo/PhotoImagick.php @@ -1,45 +1,44 @@ -<?php /** @file */ +<?php +namespace Zotlabs\Photo; -require_once('include/photo/photo_driver.php'); +/** + * @brief ImageMagick photo driver. + */ +class PhotoImagick extends PhotoDriver { - -class photo_imagick extends photo_driver { - - - function supportedTypes() { - return array( + public function supportedTypes() { + return [ 'image/jpeg' => 'jpg', 'image/png' => 'png', - 'image/gif' => 'gif' - ); + 'image/gif' => 'gif', + ]; } - public function get_FormatsMap() { - return array( + private function get_FormatsMap() { + return [ 'image/jpeg' => 'JPG', 'image/png' => 'PNG', - 'image/gif' => 'GIF' - ); + 'image/gif' => 'GIF', + ]; } - function load($data, $type) { + protected function load($data, $type) { $this->valid = false; - $this->image = new Imagick(); + $this->image = new \Imagick(); if(! $data) return; try { $this->image->readImageBlob($data); - } - catch (Exception $e) { - logger('imagick readImageBlob() exception:' . print_r($e,true)); + } catch(\Exception $e) { + logger('Imagick readImageBlob() exception:' . print_r($e, true)); return; } - /** + /* * Setup the image to the format it will be saved to */ @@ -52,19 +51,18 @@ class photo_imagick extends photo_driver { // Always coalesce, if it is not a multi-frame image it won't hurt anyway $this->image = $this->image->coalesceImages(); - $this->valid = true; $this->setDimensions(); - /** + /* * setup the compression here, so we'll do it only once */ switch($this->getType()) { - case "image/png": - $quality = get_config('system','png_quality'); + case 'image/png': + $quality = get_config('system', 'png_quality'); if((! $quality) || ($quality > 9)) $quality = PNG_QUALITY; - /** + /* * From http://www.imagemagick.org/script/command-line-options.php#quality: * * 'For the MNG and PNG image formats, the quality value sets @@ -75,56 +73,64 @@ class photo_imagick extends photo_driver { $quality = $quality * 10; $this->image->setCompressionQuality($quality); break; - case "image/jpeg": - $quality = get_config('system','jpeg_quality'); + case 'image/jpeg': + $quality = get_config('system', 'jpeg_quality'); if((! $quality) || ($quality > 100)) $quality = JPEG_QUALITY; $this->image->setCompressionQuality($quality); default: break; - } } } - public function destroy() { + protected function destroy() { if($this->is_valid()) { $this->image->clear(); $this->image->destroy(); } } - - public function setDimensions() { + protected function setDimensions() { $this->width = $this->image->getImageWidth(); $this->height = $this->image->getImageHeight(); } - + /** + * @brief Strips the image of all profiles and comments. + * + * Keep ICC profile for better colors. + * + * @see \Zotlabs\Photo\PhotoDriver::clearexif() + */ public function clearexif() { - - $profiles = $this->image->getImageProfiles("icc", true); + $profiles = $this->image->getImageProfiles('icc', true); $this->image->stripImage(); - if(!empty($profiles)) { - $this->image->profileImage("icc", $profiles['icc']); + if(! empty($profiles)) { + $this->image->profileImage('icc', $profiles['icc']); } } - + /** + * @brief Return a \Imagick object of the current image. + * + * @see \Zotlabs\Photo\PhotoDriver::getImage() + * + * @return boolean|\Imagick + */ public function getImage() { - if(!$this->is_valid()) - return FALSE; + if(! $this->is_valid()) + return false; $this->image = $this->image->deconstructImages(); return $this->image; } - public function doScaleImage($dest_width,$dest_height) { - - /** + public function doScaleImage($dest_width, $dest_height) { + /* * If it is not animated, there will be only one iteration here, * so don't bother checking */ @@ -132,82 +138,63 @@ class photo_imagick extends photo_driver { $this->image->setFirstIterator(); do { $this->image->scaleImage($dest_width, $dest_height); - } while ($this->image->nextImage()); + } while($this->image->nextImage()); $this->setDimensions(); } public function rotate($degrees) { - if(!$this->is_valid()) - return FALSE; + if(! $this->is_valid()) + return false; $this->image->setFirstIterator(); do { // ImageMagick rotates in the opposite direction of imagerotate() - $this->image->rotateImage(new ImagickPixel(), -$degrees); - } while ($this->image->nextImage()); + $this->image->rotateImage(new \ImagickPixel(), -$degrees); + } while($this->image->nextImage()); $this->setDimensions(); } public function flip($horiz = true, $vert = false) { - if(!$this->is_valid()) - return FALSE; + if(! $this->is_valid()) + return false; $this->image->setFirstIterator(); do { if($horiz) $this->image->flipImage(); if($vert) $this->image->flopImage(); - } while ($this->image->nextImage()); + } while($this->image->nextImage()); $this->setDimensions(); // Shouldn't really be necessary } - public function cropImage($max,$x,$y,$w,$h) { - if(!$this->is_valid()) - return FALSE; - - $this->image->setFirstIterator(); - do { - $this->image->cropImage($w, $h, $x, $y); - /** - * We need to remove the canvas, - * or the image is not resized to the crop: - * http://php.net/manual/en/imagick.cropimage.php#97232 - */ - $this->image->setImagePage(0, 0, 0, 0); - } while ($this->image->nextImage()); - - $this->doScaleImage($max,$max); - } - - public function cropImageRect($maxx,$maxy,$x,$y,$w,$h) { - if(!$this->is_valid()) - return FALSE; + public function cropImageRect($maxx, $maxy, $x, $y, $w, $h) { + if(! $this->is_valid()) + return false; $this->image->setFirstIterator(); do { $this->image->cropImage($w, $h, $x, $y); - /** + /* * We need to remove the canvas, * or the image is not resized to the crop: * http://php.net/manual/en/imagick.cropimage.php#97232 */ $this->image->setImagePage(0, 0, 0, 0); - } while ($this->image->nextImage()); + } while($this->image->nextImage()); - $this->doScaleImage($maxx,$maxy); + $this->doScaleImage($maxx, $maxy); } public function imageString() { - if(!$this->is_valid()) - return FALSE; + if(! $this->is_valid()) + return false; /* Clean it */ $this->image = $this->image->deconstructImages(); + return $this->image->getImagesBlob(); } - - } diff --git a/Zotlabs/Web/Session.php b/Zotlabs/Web/Session.php index 4f2a3f1f7..fe0a3fbf9 100644 --- a/Zotlabs/Web/Session.php +++ b/Zotlabs/Web/Session.php @@ -15,7 +15,7 @@ class Session { private $handler = null; private $session_started = false; - + private $custom_handler = false; public function init() { $gc_probability = 50; @@ -23,25 +23,46 @@ class Session { ini_set('session.gc_probability', $gc_probability); ini_set('session.use_only_cookies', 1); ini_set('session.cookie_httponly', 1); - + + $this->custom_handler = boolval(get_config('system', 'session_custom', false)); + /* * Set our session storage functions. */ + + if($this->custom_handler) { + /* Custom handler (files, memached, redis..) */ + + $session_save_handler = strval(get_config('system', 'session_save_handler', Null)); + $session_save_path = strval(get_config('system', 'session_save_path', Null)); + $session_gc_probability = intval(get_config('system', 'session_gc_probability', 1)); + $session_gc_divisor = intval(get_config('system', 'session_gc_divisor', 100)); + if(!$session_save_handler || !$session_save_path) { + logger('Session save handler or path not set.',LOGGER_NORMAL,LOG_ERR); + } + else { + ini_set('session.save_handler', $session_save_handler); + ini_set('session.save_path', $session_save_path); + ini_set('session.gc_probability', $session_gc_probability); + ini_set('session.gc_divisor', $session_gc_divisor); + } + } + else { + $handler = new \Zotlabs\Web\SessionHandler(); - $handler = new \Zotlabs\Web\SessionHandler(); - - $this->handler = $handler; + $this->handler = $handler; - $x = session_set_save_handler($handler,false); - if(! $x) - logger('Session save handler initialisation failed.',LOGGER_NORMAL,LOG_ERR); + $x = session_set_save_handler($handler,false); + if(! $x) + logger('Session save handler initialisation failed.',LOGGER_NORMAL,LOG_ERR); + } // Force cookies to be secure (https only) if this site is SSL enabled. // Must be done before session_start(). $arr = session_get_cookie_params(); - + // Note when setting cookies: set the domain to false which creates a single domain // cookie. If you use a hostname it will create a .domain.com wildcard which will // have some nasty side effects if you have any other subdomains running hubzilla. @@ -86,14 +107,15 @@ class Session { $arr = session_get_cookie_params(); - if($this->handler && $this->session_started) { + if(($this->handler || $this->custom_handler) && $this->session_started) { session_regenerate_id(true); // force SessionHandler record creation with the new session_id // which occurs as a side effect of read() - - $this->handler->read(session_id()); + if (! $this->custom_handler) { + $this->handler->read(session_id()); + } } else logger('no session handler'); diff --git a/Zotlabs/Widget/Affinity.php b/Zotlabs/Widget/Affinity.php index 28190e187..572af0503 100644 --- a/Zotlabs/Widget/Affinity.php +++ b/Zotlabs/Widget/Affinity.php @@ -2,60 +2,65 @@ namespace Zotlabs\Widget; +use Zotlabs\Lib\Apps; + class Affinity { function widget($arr) { if(! local_channel()) - return ''; - - $default_cmin = ((feature_enabled(local_channel(),'affinity')) ? get_pconfig(local_channel(),'affinity','cmin',0) : 0); - $default_cmax = ((feature_enabled(local_channel(),'affinity')) ? get_pconfig(local_channel(),'affinity','cmax',99) : 99); + return; + + if(! Apps::system_app_installed(local_channel(),'Affinity Tool')) + return; + + $default_cmin = ((Apps::system_app_installed(local_channel(),'Affinity Tool')) ? get_pconfig(local_channel(),'affinity','cmin',0) : 0); + $default_cmax = ((Apps::system_app_installed(local_channel(),'Affinity Tool')) ? get_pconfig(local_channel(),'affinity','cmax',99) : 99); $cmin = ((x($_REQUEST,'cmin')) ? intval($_REQUEST['cmin']) : $default_cmin); $cmax = ((x($_REQUEST,'cmax')) ? intval($_REQUEST['cmax']) : $default_cmax); - if(feature_enabled(local_channel(),'affinity')) { - - $affinity_locked = intval(get_pconfig(local_channel(),'affinity','lock',1)); - if ($affinity_locked) { - set_pconfig(local_channel(),'affinity','cmin',$cmin); - set_pconfig(local_channel(),'affinity','cmax',$cmax); - } - - $labels = array( - t('Me'), - t('Family'), - t('Friends'), - t('Acquaintances'), - t('All') - ); - call_hooks('affinity_labels',$labels); - $label_str = ''; - - if($labels) { - foreach($labels as $l) { - if($label_str) { - $label_str .= ", '|'"; - $label_str .= ", '" . $l . "'"; - } - else - $label_str .= "'" . $l . "'"; + $affinity_locked = intval(get_pconfig(local_channel(),'affinity','lock',1)); + if ($affinity_locked) { + set_pconfig(local_channel(),'affinity','cmin',$cmin); + set_pconfig(local_channel(),'affinity','cmax',$cmax); + } + + $labels = array( + t('Me'), + t('Family'), + t('Friends'), + t('Acquaintances'), + t('All') + ); + call_hooks('affinity_labels',$labels); + + $label_str = ''; + + if($labels) { + foreach($labels as $l) { + if($label_str) { + $label_str .= ", '|'"; + $label_str .= ", '" . $l . "'"; } + else + $label_str .= "'" . $l . "'"; } - - $tpl = get_markup_template('main_slider.tpl'); - $x = replace_macros($tpl,array( - '$val' => $cmin . ',' . $cmax, - '$refresh' => t('Refresh'), - '$labels' => $label_str, - )); - - $arr = array('html' => $x); - call_hooks('main_slider',$arr); - return $arr['html']; } - return ''; + + $tpl = get_markup_template('main_slider.tpl'); + $x = replace_macros($tpl,array( + '$val' => $cmin . ',' . $cmax, + '$refresh' => t('Refresh'), + '$labels' => $label_str, + )); + + $arr = array('html' => $x); + call_hooks('main_slider',$arr); + + return $arr['html']; + + } } diff --git a/Zotlabs/Widget/Settings_menu.php b/Zotlabs/Widget/Settings_menu.php index c537c3835..25b80a4b4 100644 --- a/Zotlabs/Widget/Settings_menu.php +++ b/Zotlabs/Widget/Settings_menu.php @@ -42,19 +42,12 @@ class Settings_menu { ); - $tabs[] = array( 'label' => t('Display settings'), 'url' => z_root().'/settings/display', 'selected' => ((argv(1) === 'display') ? 'active' : ''), ); - $tabs[] = array( - 'label' => t('Addon settings'), - 'url' => z_root().'/settings/featured', - 'selected' => ((argv(1) === 'featured') ? 'active' : ''), - ); - if($hublocs) { $tabs[] = array( 'label' => t('Manage locations'), diff --git a/Zotlabs/Zot6/Zot6Handler.php b/Zotlabs/Zot6/Zot6Handler.php index e320e7825..8f8957037 100644 --- a/Zotlabs/Zot6/Zot6Handler.php +++ b/Zotlabs/Zot6/Zot6Handler.php @@ -29,7 +29,7 @@ class Zot6Handler implements IHandler { // Implementation of specific methods follows; - // These generally do a small amout of validation and call Libzot + // These generally do a small amout of validation and call Libzot // to do any heavy lifting static function reply_notify($data,$hub) { @@ -40,7 +40,7 @@ class Zot6Handler implements IHandler { $x = Libzot::fetch($data); $ret['delivery_report'] = $x; - + $ret['success'] = true; return $ret; @@ -58,11 +58,11 @@ class Zot6Handler implements IHandler { * * @param array $sender * @param array $recipients + * @param array $hub * - * @return json_return_and_die() + * @return array */ - - static function reply_refresh($sender, $recipients,$hub) { + static function reply_refresh($sender, $recipients, $hub) { $ret = array('success' => false); if($recipients) { @@ -70,19 +70,18 @@ class Zot6Handler implements IHandler { // This would be a permissions update, typically for one connection foreach ($recipients as $recip) { - $r = q("select channel.*,xchan.* from channel left join xchan on channel_portable_id = xchan_hash where xchan_hash ='%s' limit 1", dbesc($recip) ); - + /// @FIXME $msgtype is undefined $x = Libzot::refresh( [ 'hubloc_id_url' => $hub['hubloc_id_url'] ], $r[0], (($msgtype === 'force_refresh') ? true : false)); } } else { // system wide refresh - + /// @FIXME $msgtype is undefined $x = Libzot::refresh( [ 'hubloc_id_url' => $hub['hubloc_id_url'] ], null, (($msgtype === 'force_refresh') ? true : false)); } @@ -100,17 +99,16 @@ class Zot6Handler implements IHandler { * for that packet. We will create a message_list array of the entire conversation starting with * the missing parent and invoke delivery to the sender of the packet. * - * Zotlabs/Daemon/Deliver.php (for local delivery) and + * Zotlabs/Daemon/Deliver.php (for local delivery) and * mod/post.php???? @fixme (for web delivery) detect the existence of * this 'message_list' at the destination and split it into individual messages which are * processed/delivered in order. * - * * @param array $data + * @param array $hub * @return array */ - - static function reply_message_request($data,$hub) { + static function reply_message_request($data, $hub) { $ret = [ 'success' => false ]; $message_id = EMPTY_STR; @@ -153,11 +151,10 @@ class Zot6Handler implements IHandler { /* * fetch the requested conversation */ - + /// @FIXME $sender_hash is undefined $messages = zot_feed($c[0]['channel_id'],$sender_hash, [ 'message_id' => $data['message_id'], 'encoding' => 'activitystreams' ]); return (($messages) ? : [] ); - } static function rekey_request($sender,$data,$hub) { @@ -183,7 +180,7 @@ class Zot6Handler implements IHandler { dbesc($oldhash) ); } - else + else return $ret; @@ -219,10 +216,10 @@ class Zot6Handler implements IHandler { * * @param array $sender * @param array $recipients + * @param array $hub * - * return json_return_and_die() + * @return array */ - static function reply_purge($sender, $recipients, $hub) { $ret = array('success' => false); @@ -259,9 +256,4 @@ class Zot6Handler implements IHandler { return $ret; } - - - - - } diff --git a/app/affinity.apd b/app/affinity.apd new file mode 100644 index 000000000..3860581aa --- /dev/null +++ b/app/affinity.apd @@ -0,0 +1,7 @@ +version: 1 +url: $baseurl/affinity +requires: local_channel +name: Affinity Tool +photo: icon:arrows-h +categories: Networking +desc: This app presents a slider control in your connection editor and also on your network page. The slider represents your degree of friendship (affinity) with each connection. It allows you to zoom in or out and display conversations from only your closest friends or everybody in your stream. @@ -50,7 +50,7 @@ require_once('include/attach.php'); require_once('include/bbcode.php'); define ( 'PLATFORM_NAME', 'hubzilla' ); -define ( 'STD_VERSION', '3.9.5' ); +define ( 'STD_VERSION', '3.9.6' ); define ( 'ZOT_REVISION', '6.0a' ); define ( 'DB_UPDATE_VERSION', 1230 ); @@ -83,7 +83,6 @@ define ( 'DIRECTORY_REALM', 'RED_GLOBAL'); define ( 'DIRECTORY_FALLBACK_MASTER', 'https://zotadel.net'); $DIRECTORY_FALLBACK_SERVERS = array( - 'https://hubzilla.zottel.net', 'https://zotadel.net', 'https://zotsite.net' ); @@ -468,7 +467,7 @@ define ( 'NAMESPACE_YMEDIA', 'http://search.yahoo.com/mrss/' ); define ( 'ACTIVITYSTREAMS_JSONLD_REV', 'https://www.w3.org/ns/activitystreams' ); -define ( 'ZOT_APSCHEMA_REV', '/apschema/v1.2' ); +define ( 'ZOT_APSCHEMA_REV', '/apschema/v1.3' ); /** * activity stream defines */ @@ -513,6 +512,7 @@ define ( 'ACTIVITY_MOOD', NAMESPACE_ZOT . '/activity/mood' ); define ( 'ACTIVITY_OBJ_COMMENT', NAMESPACE_ACTIVITY_SCHEMA . 'comment' ); define ( 'ACTIVITY_OBJ_ACTIVITY',NAMESPACE_ACTIVITY_SCHEMA . 'activity' ); define ( 'ACTIVITY_OBJ_NOTE', NAMESPACE_ACTIVITY_SCHEMA . 'note' ); +define ( 'ACTIVITY_OBJ_ARTICLE', NAMESPACE_ACTIVITY_SCHEMA . 'article' ); define ( 'ACTIVITY_OBJ_PERSON', NAMESPACE_ACTIVITY_SCHEMA . 'person' ); define ( 'ACTIVITY_OBJ_PHOTO', NAMESPACE_ACTIVITY_SCHEMA . 'photo' ); define ( 'ACTIVITY_OBJ_P_PHOTO', NAMESPACE_ACTIVITY_SCHEMA . 'profile-photo' ); @@ -733,11 +733,11 @@ class App { private static $perms = null; // observer permissions private static $widgets = array(); // widgets for this page public static $config = array(); // config cache - public static $override_intltext_templates = array(); - public static $override_markup_templates = array(); - public static $override_templateroot = null; - public static $override_helproot = null; - public static $override_helpfiles = array(); + public static $override_intltext_templates = array(); + public static $override_markup_templates = array(); + public static $override_templateroot = null; + public static $override_helproot = null; + public static $override_helpfiles = array(); public static $session = null; public static $groups; @@ -888,7 +888,7 @@ class App { // removing trailing / - maybe a nginx problem if (substr(self::$query_string, 0, 1) == "/") self::$query_string = substr(self::$query_string, 1); - // change the first & to ? + // change the first & to ? self::$query_string = preg_replace('/&/','?',self::$query_string,1); } @@ -1579,7 +1579,7 @@ function login($register = false, $form_id = 'main-login', $hiddens = false, $lo // Here's the current description of how the register link works (2018-05-15) - // Register links are enabled on the site home page and login page and navbar. + // Register links are enabled on the site home page and login page and navbar. // They are not shown by default on other pages which may require login. // If the register link is enabled and registration is closed, the request is directed @@ -1591,10 +1591,10 @@ function login($register = false, $form_id = 'main-login', $hiddens = false, $lo // system.register_link may or may not be the same destination as system.sellpage - // system.sellpage is the destination linked from the /pubsites page on other sites. If + // system.sellpage is the destination linked from the /pubsites page on other sites. If // system.sellpage is not set, the 'register' link in /pubsites will go to 'register' on your - // site. - + // site. + // If system.register_link is set to the word 'none', no registration link will be shown on // your site. @@ -1833,8 +1833,6 @@ function proc_run(){ $args = func_get_args(); - $newargs = array(); - if(! count($args)) return; @@ -2282,7 +2280,7 @@ function construct_page() { $cspheader = "Content-Security-Policy:"; foreach ($cspsettings as $cspdirective => $csp) { if (!in_array($cspdirective,$validcspdirectives)) { - logger("INVALID CSP DIRECTIVE: ".$cspdirective,LOGGER_DEBUG); + logger("INVALID CSP DIRECTIVE: ".$cspdirective,LOGGER_DEBUG); continue; } $cspsettingsarray=array_unique($cspsettings[$cspdirective]); @@ -2401,7 +2399,7 @@ function z_get_temp_dir() { if(! $temp_dir) $temp_dir = sys_get_temp_dir(); - return $upload_dir; + return $temp_dir; } diff --git a/doc/hook/jot_header_tpl_filter.bb b/doc/hook/jot_header_tpl_filter.bb new file mode 100644 index 000000000..b17d81d03 --- /dev/null +++ b/doc/hook/jot_header_tpl_filter.bb @@ -0,0 +1,5 @@ +[h2]jot_header_tpl_filter[/h2] + +Allows addon developers to modify the values of replacements fed into jot-header.tpl + +cxref: include/conversation.php diff --git a/doc/hook/jot_tpl_filter.bb b/doc/hook/jot_tpl_filter.bb new file mode 100644 index 000000000..426da3c56 --- /dev/null +++ b/doc/hook/jot_tpl_filter.bb @@ -0,0 +1,5 @@ +[h2]jot_tpl_filter[/h2] + +Allows addon developers to alter the macro replacements prior to being fed into jot.tpl + +cxref: include/conversation.php diff --git a/doc/hooklist.bb b/doc/hooklist.bb index 6d56d5e71..5a804c819 100644 --- a/doc/hooklist.bb +++ b/doc/hooklist.bb @@ -370,6 +370,12 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the [zrl=[baseurl]/help/hook/jot_tool]jot_tool[/zrl] Deprecated and possibly obsolete. Allows one to add action buttons to the post editor. +[zrl=[baseurl]/help/hook/jot_tpl_filter]jot_tpl_filter[/zrl] + Called to filter template vars before replacement in jot.tpl. + +[zrl=[baseurl]/help/hook/jot_header_tpl_filter]jot_header_tpl_filter[/zrl] + Called to filter template vars before replacement in jot_header.tpl. + [zrl=[baseurl]/help/hook/legal_webbie]legal_webbie[/zrl] Called to validate a channel address diff --git a/include/attach.php b/include/attach.php index dd718aa14..17a47d9ac 100644 --- a/include/attach.php +++ b/include/attach.php @@ -137,7 +137,7 @@ function z_mime_content_type($filename) { * @param string $hash (optional) * @param string $filename (optional) * @param string $filetype (optional) - * @return associative array with: + * @return array Associative array with: * * \e boolean \b success * * \e int|boolean \b results amount of found results, or false * * \e string \b message with error messages if any @@ -176,15 +176,17 @@ function attach_count_files($channel_id, $observer, $hash = '', $filename = '', /** * @brief Returns a list of files/attachments. * - * @param $channel_id - * @param $observer - * @param $hash (optional) - * @param $filename (optional) - * @param $filetype (optional) - * @param $orderby - * @param $start - * @param $entries - * @return associative array with: + * @param int $channel_id + * @param string $observer + * @param string $hash (optional) + * @param string $filename (optional) + * @param string $filetype (optional) + * @param string $orderby (optional) + * @param int $start (optional) + * @param int $entries (optional) + * @param string $since (optional) + * @param string $until (optional) + * @return array an associative array with: * * \e boolean \b success * * \e array|boolean \b results array with results, or false * * \e string \b message with error messages if any @@ -1428,8 +1430,17 @@ function attach_delete($channel_id, $resource, $is_photo = 0) { if(! $r) { attach_drop_photo($channel_id,$resource); - $arr = ['channel_id' => $channel_id, 'resource' => $resource, 'is_photo'=>$is_photo]; - call_hooks("attach_delete",$arr); + $arr = ['channel_id' => $channel_id, 'resource' => $resource, 'is_photo' => $is_photo]; + + /** + * @hooks attach_delete + * Called when deleting an attachment from channel. + * * \e int \b channel_id - the channel_id + * * \e string \b resource + * * \e int \b is_photo + */ + call_hooks('attach_delete', $arr); + return; } @@ -1488,8 +1499,15 @@ function attach_delete($channel_id, $resource, $is_photo = 0) { intval($channel_id) ); - $arr = ['channel_id' => $channel_id, 'resource' => $resource, 'is_photo'=>$is_photo]; - call_hooks("attach_delete",$arr); + $arr = ['channel_id' => $channel_id, 'resource' => $resource, 'is_photo' => $is_photo]; + /** + * @hooks attach_delete + * Called when deleting an attachment from channel. + * * \e int \b channel_id - the channel_id + * * \e string \b resource + * * \e int \b is_photo + */ + call_hooks('attach_delete', $arr); file_activity($channel_id, $object, $object['allow_cid'], $object['allow_gid'], $object['deny_cid'], $object['deny_gid'], 'update', true); @@ -1868,7 +1886,7 @@ function file_activity($channel_id, $object, $allow_cid, $allow_gid, $deny_cid, * @param int $channel_id * @param string $hash * @param string $url - * @return array An associative array for the specified file. + * @return array Associative array for the specified file. */ function get_file_activity_object($channel_id, $hash, $url) { @@ -2110,7 +2128,7 @@ function attach_export_data($channel, $resource_id, $deleted = false) { if($attach_ptr['is_photo']) { - // This query could potentially result in a few megabytes of data use. + // This query could potentially result in a few megabytes of data use. $r = q("select * from photo where resource_id = '%s' and uid = %d order by imgscale asc", dbesc($resource_id), @@ -2352,7 +2370,7 @@ function attach_move($channel_id, $resource_id, $new_folder_hash) { $filename = $r[0]['filename']; - // don't do duplicate check unless our parent folder has changed. + // don't do duplicate check unless our parent folder has changed. if($r[0]['folder'] !== $new_folder_hash) { @@ -2468,7 +2486,7 @@ function attach_move($channel_id, $resource_id, $new_folder_hash) { /** - * Used to generate a select input box of all your folders + * Used to generate a select input box of all your folders */ @@ -2551,10 +2569,10 @@ function attach_syspaths($channel_id,$attach_hash) { /** * in earlier releases we did not fill in os_path and display_path in the attach DB structure. - * (It was not needed or used). Going forward we intend to make use of these fields. + * (It was not needed or used). Going forward we intend to make use of these fields. * A cron task checks for empty values (as older attachments may have arrived at our site - * in a clone operation) and executes attach_syspaths() to generate these field values and correct - * the attach table entry. The operation is limited to 100 DB entries at a time so as not to + * in a clone operation) and executes attach_syspaths() to generate these field values and correct + * the attach table entry. The operation is limited to 100 DB entries at a time so as not to * overload the system in any cron run. Eventually it will catch up with old attach structures * and switch into maintenance mode to correct any that might arrive in clone packets from older * sites. diff --git a/include/contact_widgets.php b/include/contact_widgets.php index a105bca19..6ad276b00 100644 --- a/include/contact_widgets.php +++ b/include/contact_widgets.php @@ -7,14 +7,14 @@ function findpeople_widget() { if(get_config('system','invitation_only')) { $x = get_pconfig(local_channel(),'system','invites_remaining'); if($x || is_site_admin()) { - App::$page['aside'] .= '<div class="side-link" id="side-invite-remain">' - . sprintf( tt('%d invitation available','%d invitations available',$x), $x) - . '</div>' . $inv; + App::$page['aside'] .= '<div class="side-link" id="side-invite-remain">' + . sprintf( tt('%d invitation available','%d invitations available',$x), $x) + . '</div>'; } } $advanced_search = ((local_channel() && feature_enabled(local_channel(),'advanced_dirsearch')) ? t('Advanced') : false); - + return replace_macros(get_markup_template('peoplefind.tpl'),array( '$findpeople' => t('Find Channels'), '$desc' => t('Enter name or interest'), @@ -22,7 +22,7 @@ function findpeople_widget() { '$hint' => t('Examples: Robert Morgenstein, Fishing'), '$findthem' => t('Find'), '$suggest' => t('Channel Suggestions'), - '$similar' => '', // FIXME and uncomment when mod/match working // t('Similar Interests'), + '$similar' => '', /// @FIXME fixme and uncomment when mod/match working // t('Similar Interests'), '$random' => t('Random Profile'), '$inv' => t('Invite Friends'), '$advanced_search' => $advanced_search, @@ -56,12 +56,11 @@ function fileas_widget($baseurl,$selected = '') { '$all' => t('Everything'), '$terms' => $terms, '$base' => $baseurl, - )); } function categories_widget($baseurl,$selected = '') { - + if(! feature_enabled(App::$profile['profile_uid'],'categories')) return ''; @@ -100,14 +99,13 @@ function categories_widget($baseurl,$selected = '') { '$all' => t('Everything'), '$terms' => $terms, '$base' => $baseurl, - )); } return ''; } function cardcategories_widget($baseurl,$selected = '') { - + if(! feature_enabled(App::$profile['profile_uid'],'categories')) return ''; @@ -128,7 +126,7 @@ function cardcategories_widget($baseurl,$selected = '') { $item_normal $sql_extra order by term.term asc", - intval(App::$profile['profile_uid']), + intval(App::$profile['profile_uid']), intval(TERM_CATEGORY), intval(TERM_OBJ_POST), dbesc(App::$profile['channel_hash']) @@ -144,15 +142,15 @@ function cardcategories_widget($baseurl,$selected = '') { '$all' => t('Everything'), '$terms' => $terms, '$base' => $baseurl, - )); } + return ''; } function articlecategories_widget($baseurl,$selected = '') { - + if(! feature_enabled(App::$profile['profile_uid'],'categories')) return ''; @@ -173,7 +171,7 @@ function articlecategories_widget($baseurl,$selected = '') { $item_normal $sql_extra order by term.term asc", - intval(App::$profile['profile_uid']), + intval(App::$profile['profile_uid']), intval(TERM_CATEGORY), intval(TERM_OBJ_POST), dbesc(App::$profile['channel_hash']) @@ -189,17 +187,14 @@ function articlecategories_widget($baseurl,$selected = '') { '$all' => t('Everything'), '$terms' => $terms, '$base' => $baseurl, - )); } + return ''; } - - - function common_friends_visitor_widget($profile_uid,$cnt = 25) { if(local_channel() == $profile_uid) @@ -218,17 +213,14 @@ function common_friends_visitor_widget($profile_uid,$cnt = 25) { return; $r = common_friends($profile_uid,$observer_hash,0,$cnt,true); - - return replace_macros(get_markup_template('remote_friends_common.tpl'), array( + + return replace_macros(get_markup_template('remote_friends_common.tpl'), [ '$desc' => t('Common Connections'), '$base' => z_root(), '$uid' => $profile_uid, - '$cid' => $observer, '$linkmore' => (($t > $cnt) ? 'true' : ''), '$more' => sprintf( t('View all %d common connections'), $t), - '$items' => $r - )); + '$items' => $r, + ]); }; - - diff --git a/include/conversation.php b/include/conversation.php index 041994b90..e2dd02ffc 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -1328,7 +1328,7 @@ function hz_status_editor($a, $x, $popup = false) { $tpl = get_markup_template('jot-header.tpl'); - App::$page['htmlhead'] .= replace_macros($tpl, array( + $tplmacros = [ '$baseurl' => z_root(), '$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'), '$pretext' => ((x($x,'pretext')) ? $x['pretext'] : ''), @@ -1349,7 +1349,10 @@ function hz_status_editor($a, $x, $popup = false) { '$nocomment_disabled' => t('Comments disabled'), '$auto_save_draft' => $feature_auto_save_draft, '$reset' => $reset - )); + ]; + + call_hooks('jot_header_tpl_filter',$tplmacros); + App::$page['htmlhead'] .= replace_macros($tpl, $tplmacros); $tpl = get_markup_template('jot.tpl'); @@ -1389,7 +1392,7 @@ function hz_status_editor($a, $x, $popup = false) { $sharebutton = (x($x,'button') ? $x['button'] : t('Share')); $placeholdtext = (x($x,'content_label') ? $x['content_label'] : $sharebutton); - $o .= replace_macros($tpl, array( + $tplmacros = [ '$return_path' => ((x($x, 'return_path')) ? $x['return_path'] : App::$query_string), '$action' => z_root() . '/item', '$share' => $sharebutton, @@ -1463,9 +1466,15 @@ function hz_status_editor($a, $x, $popup = false) { '$bbcode' => ((x($x, 'bbcode')) ? $x['bbcode'] : false), '$parent' => ((array_key_exists('parent',$x) && $x['parent']) ? $x['parent'] : 0), '$reset' => $reset, - '$is_owner' => ((local_channel() && (local_channel() == $x['profile_uid'])) ? true : false) - )); + '$is_owner' => ((local_channel() && (local_channel() == $x['profile_uid'])) ? true : false), + '$custommoretoolsdropdown' => '', + '$custommoretoolsbuttons' => '', + '$customsubmitright' => [] + ]; + + call_hooks('jot_tpl_filter',$tplmacros); + $o .= replace_macros($tpl, $tplmacros); if ($popup === true) { $o = '<div id="jot-popup" style="display:none">' . $o . '</div>'; } diff --git a/include/event.php b/include/event.php index a34250e7a..fdb9e1415 100644 --- a/include/event.php +++ b/include/event.php @@ -6,6 +6,10 @@ use Sabre\VObject; +use Ramsey\Uuid\Uuid; +use Ramsey\Uuid\Exception\UnsatisfiedDependencyException; + + require_once('include/bbcode.php'); /** @@ -463,8 +467,13 @@ function event_store_event($arr) { $hash = $arr['external_id']; elseif(array_key_exists('event_hash',$arr)) $hash = $arr['event_hash']; - else - $hash = random_string() . '@' . App::get_hostname(); + else { + try { + $hash = Uuid::uuid4()->toString(); + } catch (UnsatisfiedDependencyException $e) { + $hash = random_string(48); + } + } $r = q("INSERT INTO event ( uid,aid,event_xchan,event_hash,created,edited,dtstart,dtend,summary,description,location,etype, adjust,nofinish, event_status, event_status_date, event_percent, event_repeat, event_sequence, event_priority, event_vdata, allow_cid,allow_gid,deny_cid,deny_gid) @@ -1126,8 +1135,8 @@ function event_store_item($arr, $event) { } if(! $arr['mid']) { - $arr['uuid'] = item_message_id(); - $arr['mid'] = z_root() . '/item/' . $arr['uuid']; + $arr['uuid'] = $event['event_hash']; + $arr['mid'] = z_root() . '/event/' . $event['event_hash']; } $item_arr['aid'] = $z[0]['channel_account_id']; diff --git a/include/features.php b/include/features.php index 05ce3db32..35a4c0dd4 100644 --- a/include/features.php +++ b/include/features.php @@ -361,14 +361,6 @@ function get_features($filtered = true, $level = (-1)) { ], [ - 'affinity', - t('Affinity Tool'), - t('Filter stream activity by depth of relationships'), - false, - get_config('feature_lock','affinity') - ], - - [ 'suggest', t('Suggest Channels'), t('Show friend and connection suggestions'), diff --git a/include/feedutils.php b/include/feedutils.php index afbe4229e..5e52828c3 100644 --- a/include/feedutils.php +++ b/include/feedutils.php @@ -261,13 +261,13 @@ function construct_activity_target($item) { * @param SimplePie $item * @return array $author */ - function get_atom_author($feed, $item) { $author = []; $found_author = $item->get_author(); if($found_author) { + /// @FIXME $rawauthor is undefined here if($rawauthor) { if($rawauthor[0]['child'][NAMESPACE_POCO]['displayName'][0]['data']) $author['full_name'] = unxmlify($rawauthor[0]['child'][NAMESPACE_POCO]['displayName'][0]['data']); @@ -398,10 +398,10 @@ function get_atom_author($feed, $item) { 'author' => $author ]; /** - * @hooks parse_atom + * @hooks parse_atom_author * * \e SimplePie \b feed - The original SimplePie feed * * \e SimplePie \b item - * * \e array \b result - the result array that will also get returned + * * \e array \b author - the result array that will also get returned */ call_hooks('parse_atom_author', $arr); @@ -416,10 +416,8 @@ function get_atom_author($feed, $item) { * * @param SimplePie $feed * @param SimplePie $item - * @param[out] array $author * @return array Associative array with the parsed item data */ - function get_atom_elements($feed, $item) { require_once('include/html2bbcode.php'); @@ -669,10 +667,10 @@ function get_atom_elements($feed, $item) { $termterm = notags(trim(unxmlify($term))); // Mastodon auto generates an nsfw category tag for any 'content-warning' message. - // Most people use CW and use both summary/content as a spoiler and we honour that - // construct so the post will already be collapsed. The generated tag is almost + // Most people use CW and use both summary/content as a spoiler and we honour that + // construct so the post will already be collapsed. The generated tag is almost // always wrong and even if it isn't we would already be doing the right thing. - + if($mastodon && $termterm === 'nsfw' && $summary && $res['body']) continue; @@ -1336,7 +1334,7 @@ function consume_feed($xml, $importer, &$contact, $pass = 0) { if( ! \Zotlabs\Lib\MessageFilter::evaluate($datarray,get_config('system','pubstream_incl'),get_config('system','pubstream_excl'))) { continue; } - } + } if(! post_is_importable($datarray, $contact)) continue; @@ -1492,7 +1490,7 @@ function consume_feed($xml, $importer, &$contact, $pass = 0) { if( ! \Zotlabs\Lib\MessageFilter::evaluate($datarray,get_config('system','pubstream_incl'),get_config('system','pubstream_excl'))) { continue; } - } + } if(! post_is_importable($datarray, $contact)) continue; @@ -1900,7 +1898,7 @@ function atom_entry($item, $type, $author, $owner, $comment = false, $cid = 0, $ $body = $item['body']; - if($summary) + if($summary) $body = preg_replace('|^(.*?)\[summary\](.*?)\[/summary\](.*?)$|ism','$1$3',$item['body']); if($compat) diff --git a/include/help.php b/include/help.php index 61dbc7bb3..e82fa96da 100644 --- a/include/help.php +++ b/include/help.php @@ -7,9 +7,10 @@ use \Michelf\MarkdownExtra; * @brief * * @param string $path - * @return string|unknown + * @param string $suffix (optional) default null + * @return string */ -function get_help_fullpath($path,$suffix=null) { +function get_help_fullpath($path, $suffix = null) { $docroot = (\App::$override_helproot) ? \App::$override_helproot : 'doc/'; $docroot = (substr($docroot,-1)!='/') ? $docroot .= '/' : $docroot; @@ -49,8 +50,8 @@ function get_help_fullpath($path,$suffix=null) { /** * @brief * - * @param string $tocpath - * @return string|unknown + * @param string $tocpath (optional) default false + * @return string */ function get_help_content($tocpath = false) { @@ -171,16 +172,20 @@ function preg_callback_help_include($matches) { } /** - * @brief + * @brief Determines help language. + * + * If the language was specified in the URL, override the language preference + * of the browser. Default to English if both of these are absent. * - * @return boolean|array + * @return array Associative array with: + * * \e string \b language - 2-letter ISO 639-1 code ("en") + * * \e boolean \b from_url - true if language from URL overrides browser default */ function determine_help_language() { $lang_detect = new Text_LanguageDetect(); // Set this mode to recognize language by the short code like "en", "ru", etc. $lang_detect->setNameMode(2); - // If the language was specified in the URL, override the language preference - // of the browser. Default to English if both of these are absent. + if($lang_detect->languageExists(argv(1))) { $lang = argv(1); $from_url = true; @@ -211,10 +216,10 @@ function find_doc_file($s) { } /** - * @brief + * @brief Search in doc files. * - * @param string $s - * @return number|mixed|unknown|boolean + * @param string $s The search string to search for + * @return array */ function search_doc_files($s) { @@ -275,7 +280,6 @@ function doc_rank_sort($s1, $s2) { * * @return string */ - function load_context_help() { $path = App::$cmd; @@ -305,7 +309,7 @@ function load_context_help() { * @brief * * @param string $s - * @return void|boolean[]|number[]|string[]|unknown[] + * @return void|array */ function store_doc_file($s) { diff --git a/include/import.php b/include/import.php index 3bd8b4105..f391400bd 100644 --- a/include/import.php +++ b/include/import.php @@ -12,6 +12,7 @@ require_once('include/perm_upgrade.php'); * @param array $channel * @param int $account_id * @param int $seize + * @param string $newname (optional) * @return boolean|array */ function import_channel($channel, $account_id, $seize, $newname = '') { @@ -650,7 +651,7 @@ function import_items($channel, $items, $sync = false, $relocate = null) { // preserve conversations you've been involved in from being expired $stored = $item_result['item']; - if((is_array($stored)) && ($stored['id'] != $stored['parent']) + if((is_array($stored)) && ($stored['id'] != $stored['parent']) && ($stored['author_xchan'] === $channel['channel_hash'])) { retain_item($stored['item']['parent']); } @@ -672,7 +673,7 @@ function import_items($channel, $items, $sync = false, $relocate = null) { /** * @brief Sync items to channel. * - * @see import_items + * @see import_items() * * @param array $channel where to import to * @param array $items @@ -1049,7 +1050,7 @@ function import_mail($channel, $mails, $sync = false) { /** * @brief Synchronise mails. * - * @see import_mail + * @see import_mail() * @param array $channel * @param array $mails */ @@ -1337,7 +1338,7 @@ function sync_files($channel, $files) { if($str) $str .= ","; - + $str .= " " . TQUOT . $k . TQUOT . " = '" . (($k === 'content') ? dbescbin($v) : dbesc($v)) . "' "; } $r = dbq("update photo set " . $str . " where id = " . intval($exists[0]['id']) ); diff --git a/include/items.php b/include/items.php index e5f2be003..30e758add 100755 --- a/include/items.php +++ b/include/items.php @@ -7,6 +7,7 @@ use Zotlabs\Lib\Enotify; use Zotlabs\Lib\MarkdownSoap; use Zotlabs\Lib\MessageFilter; +use Zotlabs\Lib\ThreadListener; use Zotlabs\Lib\IConfig; use Zotlabs\Access\PermissionLimits; use Zotlabs\Access\AccessList; @@ -25,7 +26,7 @@ require_once('include/permissions.php'); * * @param array $item * @param[out] boolean $private_envelope - * @param boolean $include_groups + * @param boolean $include_groups * @return array containing the recipients */ function collect_recipients($item, &$private_envelope,$include_groups = true) { @@ -97,9 +98,9 @@ function collect_recipients($item, &$private_envelope,$include_groups = true) { if(array_key_exists('public_policy',$item) && $item['public_policy'] !== 'self') { $hookinfo = [ - 'recipients' => [], - 'item' => $item, - 'private_envelope' => $private_envelope, + 'recipients' => [], + 'item' => $item, + 'private_envelope' => $private_envelope, 'include_groups' => $include_groups ]; @@ -141,6 +142,22 @@ function collect_recipients($item, &$private_envelope,$include_groups = true) { // $recipients[] = $sys['xchan_hash']; } + + // Forward to thread listeners, *unless* there is even a remote hint that the item + // might have some privacy attached. This could be (for instance) an ActivityPub DM + // in the middle of a public thread. Unless we can guarantee beyond all doubt that + // this is public, don't allow it to go to thread listeners. + + if(! intval($item['item_private'])) { + $r = ThreadListener::fetch_by_target($item['parent_mid']); + if($r) { + foreach($r as $rv) { + $recipients[] = $rv['portable_id']; + } + } + } + + // Add the authors of any posts in this thread, if they are known to us. // This is specifically designed to forward wall-to-wall posts to the original author, // in case they aren't a connection but have permission to write on our wall. @@ -410,7 +427,7 @@ function post_activity_item($arr, $allow_code = false, $deliver = true) { if(! $arr['mid']) { - $arr['uuid'] = ((x($arr,'uuid')) ? $arr['uuid'] : item_message_id()); + $arr['uuid'] = ((x($arr,'uuid')) ? $arr['uuid'] : item_message_id()); } $arr['mid'] = ((x($arr,'mid')) ? $arr['mid'] : z_root() . '/item/' . $arr['uuid']); $arr['parent_mid'] = ((x($arr,'parent_mid')) ? $arr['parent_mid'] : $arr['mid']); @@ -469,6 +486,8 @@ function post_activity_item($arr, $allow_code = false, $deliver = true) { */ call_hooks('post_local_end', $ret['activity']); } + else + return $ret; if($post_id && $deliver) { Master::Summon([ 'Notifier','activity',$post_id ]); @@ -2048,6 +2067,11 @@ function item_store($arr, $allow_exec = false, $deliver = true) { item_update_parent_commented($arr); + + if(strpos($arr['body'],'[embed]') !== false) { + Master::Summon([ 'Cache_embeds', $current_post ]); + } + // If _creating_ a deleted item, don't propagate it further or send out notifications. // We need to store the item details just in case the delete came in before the original post, // so that we have an item in the DB that's marked deleted and won't store a fresh post @@ -2384,6 +2408,13 @@ function item_store_update($arr, $allow_exec = false, $deliver = true) { */ call_hooks('item_stored_update',$arr); + if(strpos($arr['body'],'[embed]') !== false) { + Master::Summon([ 'Cache_embeds', $orig_post_id ]); + } + + + + if($deliver) { send_status_notifications($orig_post_id,$arr); tag_deliver($uid,$orig_post_id); @@ -2400,15 +2431,15 @@ function item_update_parent_commented($item) { $update_parent = true; - // update the commented timestamp on the parent + // update the commented timestamp on the parent // - unless this is a moderated comment or a potential clone of an older item - // which we don't wish to bring to the surface. As the queue only holds deliveries - // for 3 days, it's suspected of being an older cloned item if the creation time + // which we don't wish to bring to the surface. As the queue only holds deliveries + // for 3 days, it's suspected of being an older cloned item if the creation time //is older than that. if(intval($item['item_blocked']) === ITEM_MODERATED) $update_parent = false; - + if($item['created'] < datetime_convert('','','now - 4 days')) $update_parent = false; @@ -3004,7 +3035,9 @@ function tgroup_check($uid, $item) { * @param array $channel * @param array $item * @param int $item_id - * @param boolean $parent + * @param array $parent + * @param boolean $edit (optional) default false + * @return void */ function start_delivery_chain($channel, $item, $item_id, $parent, $edit = false) { @@ -3039,7 +3072,7 @@ function start_delivery_chain($channel, $item, $item_id, $parent, $edit = false) } // This will change the author to the post owner. Useful for RSS feeds which are to be syndicated - // to federated platforms which can't verify the identity of the author. + // to federated platforms which can't verify the identity of the author. // This MAY cause you to run afoul of copyright law. $rewrite_author = intval(get_abconfig($channel['channel_id'],$item['owner_xchan'],'system','rself')); @@ -3552,7 +3585,7 @@ function item_expire($uid,$days,$comment_days = 7) { if(! $comment_days) $comment_days = 7; - + // $expire_network_only = save your own wall posts // and just expire conversations started by others // do not enable this until we can pass bulk delete messages through zot @@ -3853,6 +3886,8 @@ function delete_item_lowlevel($item, $stage = DROPITEM_NORMAL, $force = false) { intval(TERM_OBJ_POST) ); + ThreadListener::delete_by_target($item['mid']); + /** @FIXME remove notifications for this item */ return true; @@ -4547,7 +4582,7 @@ function set_linkified_perms($linkified, &$str_contact_allow, &$str_group_allow, $first_access_tag = true; foreach($linkified as $x) { - $access_tag = $x['access_tag']; + $access_tag = $x['success']['access_tag']; if(($access_tag) && (! $parent_item)) { logger('access_tag: ' . $tag . ' ' . print_r($access_tag,true), LOGGER_DATA); if ($first_access_tag && (! get_pconfig($profile_uid,'system','no_private_mention_acl_override'))) { @@ -4892,7 +4927,7 @@ function copy_of_pubitem($channel,$mid) { dbesc($mid), intval($syschan['channel_id']) ); - + if($r) { $items = fetch_post_tags($r,true); foreach($items as $rv) { @@ -4918,5 +4953,5 @@ function copy_of_pubitem($channel,$mid) { } } - return $result; + return $result; } diff --git a/include/message.php b/include/message.php index 936c01631..037c59c60 100644 --- a/include/message.php +++ b/include/message.php @@ -44,7 +44,7 @@ function send_message($uid = 0, $recipient = '', $body = '', $subject = '', $rep $body = cleanup_bbcode($body); - $results = linkify_tags($a, $body, $uid); + $results = linkify_tags($body, $uid); if(! $raw) { if(preg_match_all("/\[attachment\](.*?)\[\/attachment\]/",((strpos($body,'[/crypt]')) ? $_POST['media_str'] : $body),$match)) { diff --git a/include/photo/photo_driver.php b/include/photo/photo_driver.php index 5c8ed9bdc..c11580bdc 100644 --- a/include/photo/photo_driver.php +++ b/include/photo/photo_driver.php @@ -1,18 +1,34 @@ -<?php /** @file */ +<?php +use Zotlabs\Photo\PhotoDriver; +use Zotlabs\Photo\PhotoGd; +use Zotlabs\Photo\PhotoImagick; + +/** + * @brief Return a PhotoDriver object. + * + * Use this factory when manipulating images. + * + * Return a photo driver object implementing ImageMagick or GD. + * + * @param string $data Image data + * @param string $type Mimetype + * @return null|PhotoDriver + * NULL if unsupported image type or failure, otherwise photo driver object + */ function photo_factory($data, $type = null) { $ph = null; + $m = null; - - $unsupported_types = array( + $unsupported_types = [ 'image/bmp', 'image/vnd.microsoft.icon', 'image/tiff', - 'image/svg+xml' - ); + 'image/svg+xml', + ]; - if($type && in_array(strtolower($type),$unsupported_types)) { - logger('photo_factory: unsupported image type'); + if($type && in_array(strtolower($type), $unsupported_types)) { + logger('Unsupported image type ' . $type); return null; } @@ -21,475 +37,47 @@ function photo_factory($data, $type = null) { if(class_exists('Imagick') && !$ignore_imagick) { $v = Imagick::getVersion(); preg_match('/ImageMagick ([0-9]+\.[0-9]+\.[0-9]+)/', $v['versionString'], $m); - if(version_compare($m[1],'6.6.7') >= 0) { - require_once('include/photo/photo_imagick.php'); - $ph = new photo_imagick($data,$type); - } - else { + if(version_compare($m[1], '6.6.7') >= 0) { + $ph = new PhotoImagick($data, $type); + } else { // earlier imagick versions have issues with scaling png's // don't log this because it will just fill the logfile. - // leave this note here so those who are looking for why + // leave this note here so those who are looking for why // we aren't using imagick can find it } } if(! $ph) { - require_once('include/photo/photo_gd.php'); - $ph = new photo_gd($data,$type); + $ph = new PhotoGd($data, $type); } return $ph; } - - -abstract class photo_driver { - - protected $image; - protected $width; - protected $height; - protected $valid; - protected $type; - protected $types; - - abstract function supportedTypes(); - - abstract function load($data,$type); - - abstract function destroy(); - - abstract function setDimensions(); - - abstract function getImage(); - - abstract function doScaleImage($new_width,$new_height); - - abstract function rotate($degrees); - - abstract function flip($horiz = true, $vert = false); - - abstract function cropImage($max,$x,$y,$w,$h); - - abstract function cropImageRect($maxx,$maxy,$x,$y,$w,$h); - - abstract function imageString(); - - abstract function clearexif(); - - public function __construct($data, $type='') { - $this->types = $this->supportedTypes(); - if (! array_key_exists($type,$this->types)){ - $type='image/jpeg'; - } - $this->type = $type; - $this->valid = false; - $this->load($data,$type); - } - - public function __destruct() { - if($this->is_valid()) - $this->destroy(); - } - - public function is_valid() { - return $this->valid; - } - - public function getWidth() { - if(!$this->is_valid()) - return FALSE; - return $this->width; - } - - public function getHeight() { - if(!$this->is_valid()) - return FALSE; - return $this->height; - } - - - public function saveImage($path) { - if(!$this->is_valid()) - return FALSE; - return (file_put_contents($path, $this->imageString()) ? true : false); - } - - - public function getType() { - if(!$this->is_valid()) - return FALSE; - - return $this->type; - } - - public function getExt() { - if(!$this->is_valid()) - return FALSE; - - return $this->types[$this->getType()]; - } - - /** - * @brief scale image - * int $max maximum pixel size in either dimension - * boolean $float_height - if true allow height to float to any length on tall images, - * constraining only the width - */ - - public function scaleImage($max, $float_height = true) { - if(!$this->is_valid()) - return FALSE; - - $width = $this->width; - $height = $this->height; - - $dest_width = $dest_height = 0; - - if((! $width)|| (! $height)) - return FALSE; - - if($width > $max && $height > $max) { - - // very tall image (greater than 16:9) - // constrain the width - let the height float. - - if(((($height * 9) / 16) > $width) && ($float_height)) { - $dest_width = $max; - $dest_height = intval(( $height * $max ) / $width); - } - - // else constrain both dimensions - - elseif($width > $height) { - $dest_width = $max; - $dest_height = intval(( $height * $max ) / $width); - } - else { - $dest_width = intval(( $width * $max ) / $height); - $dest_height = $max; - } - } - else { - if( $width > $max ) { - $dest_width = $max; - $dest_height = intval(( $height * $max ) / $width); - } - else { - if( $height > $max ) { - - // very tall image (greater than 16:9) - // but width is OK - don't do anything - - if(((($height * 9) / 16) > $width) && ($float_height)) { - $dest_width = $width; - $dest_height = $height; - } - else { - $dest_width = intval(( $width * $max ) / $height); - $dest_height = $max; - } - } - else { - $dest_width = $width; - $dest_height = $height; - } - } - } - $this->doScaleImage($dest_width,$dest_height); - } - - public function scaleImageUp($min) { - if(!$this->is_valid()) - return FALSE; - - - $width = $this->width; - $height = $this->height; - - $dest_width = $dest_height = 0; - - if((! $width)|| (! $height)) - return FALSE; - - if($width < $min && $height < $min) { - if($width > $height) { - $dest_width = $min; - $dest_height = intval(( $height * $min ) / $width); - } - else { - $dest_width = intval(( $width * $min ) / $height); - $dest_height = $min; - } - } - else { - if( $width < $min ) { - $dest_width = $min; - $dest_height = intval(( $height * $min ) / $width); - } - else { - if( $height < $min ) { - $dest_width = intval(( $width * $min ) / $height); - $dest_height = $min; - } - else { - $dest_width = $width; - $dest_height = $height; - } - } - } - $this->doScaleImage($dest_width,$dest_height); - } - - - public function scaleImageSquare($dim) { - if(!$this->is_valid()) - return FALSE; - $this->doScaleImage($dim,$dim); - } - - - /** - * @brief reads exif data from filename - */ - - public function exif($filename) { - - - if((! function_exists('exif_read_data')) - || (! in_array($this->getType(), [ 'image/jpeg' , 'image/tiff'] ))) { - return false; - } - - /* - * PHP 7.2 allows you to use a stream resource, which should reduce/avoid - * memory exhaustion on large images. - */ - - if(version_compare(PHP_VERSION,'7.2.0') >= 0) { - $f = @fopen($filename,'rb'); - } - else { - $f = $filename; - } - - if($f) { - return @exif_read_data($f,null,true); - } - - return false; - } - - /** - * @brief orients current image based on exif orientation information - */ - - public function orient($exif) { - - if(! ($this->is_valid() && $exif)) { - return false; - } - - $ort = ((array_key_exists('IFD0',$exif)) ? $exif['IFD0']['Orientation'] : $exif['Orientation']); - - if(! $ort) { - return false; - } - - switch($ort) { - case 1: // nothing - break; - case 2: // horizontal flip - $this->flip(); - break; - case 3: // 180 rotate left - $this->rotate(180); - break; - case 4: // vertical flip - $this->flip(false, true); - break; - case 5: // vertical flip + 90 rotate right - $this->flip(false, true); - $this->rotate(-90); - break; - case 6: // 90 rotate right - $this->rotate(-90); - break; - case 7: // horizontal flip + 90 rotate right - $this->flip(); - $this->rotate(-90); - break; - case 8: // 90 rotate left - $this->rotate(90); - break; - default: - break; - } - - return true; - } - - - public function save($arr, $skipcheck = false) { - - if(! ($skipcheck || $this->is_valid())) { - logger('attempt to store invalid photo.'); - return false; - } - - $p = array(); - - $p['aid'] = ((intval($arr['aid'])) ? intval($arr['aid']) : 0); - $p['uid'] = ((intval($arr['uid'])) ? intval($arr['uid']) : 0); - $p['xchan'] = (($arr['xchan']) ? $arr['xchan'] : ''); - $p['resource_id'] = (($arr['resource_id']) ? $arr['resource_id'] : ''); - $p['filename'] = (($arr['filename']) ? $arr['filename'] : ''); - $p['mimetype'] = (($arr['mimetype']) ? $arr['mimetype'] : $this->getType()); - $p['album'] = (($arr['album']) ? $arr['album'] : ''); - $p['imgscale'] = ((intval($arr['imgscale'])) ? intval($arr['imgscale']) : 0); - $p['allow_cid'] = (($arr['allow_cid']) ? $arr['allow_cid'] : ''); - $p['allow_gid'] = (($arr['allow_gid']) ? $arr['allow_gid'] : ''); - $p['deny_cid'] = (($arr['deny_cid']) ? $arr['deny_cid'] : ''); - $p['deny_gid'] = (($arr['deny_gid']) ? $arr['deny_gid'] : ''); - $p['edited'] = (($arr['edited']) ? $arr['edited'] : datetime_convert()); - $p['title'] = (($arr['title']) ? $arr['title'] : ''); - $p['description'] = (($arr['description']) ? $arr['description'] : ''); - $p['photo_usage'] = intval($arr['photo_usage']); - $p['os_storage'] = intval($arr['os_storage']); - $p['os_path'] = $arr['os_path']; - $p['os_syspath'] = ((array_key_exists('os_syspath',$arr)) ? $arr['os_syspath'] : ''); - $p['display_path'] = (($arr['display_path']) ? $arr['display_path'] : ''); - $p['width'] = (($arr['width']) ? $arr['width'] : $this->getWidth()); - $p['height'] = (($arr['height']) ? $arr['height'] : $this->getHeight()); - $p['expires'] = (($arr['expires']) ? $arr['expires'] : gmdate('Y-m-d H:i:s', time() + get_config('system','photo_cache_time', 86400))); - - if(! intval($p['imgscale'])) - logger('save: ' . print_r($arr,true), LOGGER_DATA); - - $x = q("select id, created from photo where resource_id = '%s' and uid = %d and xchan = '%s' and imgscale = %d limit 1", - dbesc($p['resource_id']), - intval($p['uid']), - dbesc($p['xchan']), - intval($p['imgscale']) - ); - - if($x) { - $p['created'] = (($x['created']) ? $x['created'] : $p['edited']); - $r = q("UPDATE photo set - aid = %d, - uid = %d, - xchan = '%s', - resource_id = '%s', - created = '%s', - edited = '%s', - filename = '%s', - mimetype = '%s', - album = '%s', - height = %d, - width = %d, - content = '%s', - os_storage = %d, - filesize = %d, - imgscale = %d, - photo_usage = %d, - title = '%s', - description = '%s', - os_path = '%s', - display_path = '%s', - allow_cid = '%s', - allow_gid = '%s', - deny_cid = '%s', - deny_gid = '%s', - expires = '%s' - where id = %d", - - intval($p['aid']), - intval($p['uid']), - dbesc($p['xchan']), - dbesc($p['resource_id']), - dbescdate($p['created']), - dbescdate($p['edited']), - dbesc(basename($p['filename'])), - dbesc($p['mimetype']), - dbesc($p['album']), - intval($p['height']), - intval($p['width']), - (intval($p['os_storage']) ? dbescbin($p['os_syspath']) : dbescbin($this->imageString())), - intval($p['os_storage']), - (intval($p['os_storage']) ? @filesize($p['os_syspath']) : strlen($this->imageString())), - intval($p['imgscale']), - intval($p['photo_usage']), - dbesc($p['title']), - dbesc($p['description']), - dbesc($p['os_path']), - dbesc($p['display_path']), - dbesc($p['allow_cid']), - dbesc($p['allow_gid']), - dbesc($p['deny_cid']), - dbesc($p['deny_gid']), - dbescdate($p['expires']), - intval($x[0]['id']) - ); - } - else { - $p['created'] = (($arr['created']) ? $arr['created'] : $p['edited']); - $r = q("INSERT INTO photo - ( aid, uid, xchan, resource_id, created, edited, filename, mimetype, album, height, width, content, os_storage, filesize, imgscale, photo_usage, title, description, os_path, display_path, allow_cid, allow_gid, deny_cid, deny_gid, expires ) - VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d, %d, %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' )", - intval($p['aid']), - intval($p['uid']), - dbesc($p['xchan']), - dbesc($p['resource_id']), - dbescdate($p['created']), - dbescdate($p['edited']), - dbesc(basename($p['filename'])), - dbesc($p['mimetype']), - dbesc($p['album']), - intval($p['height']), - intval($p['width']), - (intval($p['os_storage']) ? dbescbin($p['os_syspath']) : dbescbin($this->imageString())), - intval($p['os_storage']), - (intval($p['os_storage']) ? @filesize($p['os_syspath']) : strlen($this->imageString())), - intval($p['imgscale']), - intval($p['photo_usage']), - dbesc($p['title']), - dbesc($p['description']), - dbesc($p['os_path']), - dbesc($p['display_path']), - dbesc($p['allow_cid']), - dbesc($p['allow_gid']), - dbesc($p['deny_cid']), - dbesc($p['deny_gid']), - dbescdate($p['expires']) - ); - } - logger('photo save ' . $p['imgscale'] . ' returned ' . intval($r)); - return $r; - } - -} - - - /** - * Guess image mimetype from filename or from Content-Type header + * @brief Guess image mimetype from filename or from Content-Type header. * - * @arg $filename string Image filename - * @arg $headers string Headers to check for Content-Type (from curl request) + * @param string $filename + * Image filename + * @param string $headers (optional) + * Headers to check for Content-Type (from curl request) + * @return null|string Guessed mimetype */ - function guess_image_type($filename, $headers = '') { // logger('Photo: guess_image_type: '.$filename . ($headers?' from curl headers':''), LOGGER_DEBUG); $type = null; - if ($headers) { - $hdrs=array(); - $h = explode("\n",$headers); + $m = null; + + if($headers) { + $hdrs = []; + $h = explode("\n", $headers); foreach ($h as $l) { - list($k,$v) = array_map("trim", explode(":", trim($l), 2)); + list($k, $v) = array_map('trim', explode(':', trim($l), 2)); $hdrs[strtolower($k)] = $v; } - logger('Curl headers: '.var_export($hdrs, true), LOGGER_DEBUG); - if (array_key_exists('content-type', $hdrs)) { + logger('Curl headers: ' .var_export($hdrs, true), LOGGER_DEBUG); + if(array_key_exists('content-type', $hdrs)) { $ph = photo_factory(''); $types = $ph->supportedTypes(); @@ -498,13 +86,13 @@ function guess_image_type($filename, $headers = '') { } } - if (is_null($type)){ + if(is_null($type)){ $ignore_imagick = get_config('system', 'ignore_imagick'); // Guessing from extension? Isn't that... dangerous? if(class_exists('Imagick') && file_exists($filename) && is_readable($filename) && !$ignore_imagick) { $v = Imagick::getVersion(); preg_match('/ImageMagick ([0-9]+\.[0-9]+\.[0-9]+)/', $v['versionString'], $m); - if(version_compare($m[1],'6.6.7') >= 0) { + if(version_compare($m[1], '6.6.7') >= 0) { /** * Well, this not much better, * but at least it comes from the data inside the image, @@ -516,7 +104,7 @@ function guess_image_type($filename, $headers = '') { else { // earlier imagick versions have issues with scaling png's // don't log this because it will just fill the logfile. - // leave this note here so those who are looking for why + // leave this note here so those who are looking for why // we aren't using imagick can find it } } @@ -532,7 +120,7 @@ function guess_image_type($filename, $headers = '') { } } - if(is_null($type) && (strpos($filename,'http') === false)) { + if(is_null($type) && (strpos($filename, 'http') === false)) { $size = getimagesize($filename); $ph = photo_factory(''); $types = $ph->supportedTypes(); @@ -551,33 +139,36 @@ function guess_image_type($filename, $headers = '') { } logger('Photo: guess_image_type: filename = ' . $filename . ' type = ' . $type, LOGGER_DEBUG); - return $type; + return $type; } - -function delete_thing_photo($url,$ob_hash) { +/** + * @brief Delete thing photo from database. + * + * @param string $url + * @param string $ob_hash + * @return void + */ +function delete_thing_photo($url, $ob_hash) { $hash = basename($url); - $hash = substr($hash,0,strpos($hash,'-')); + $hash = substr($hash, 0, strpos($hash, '-')); - // hashes should be 32 bytes. + // hashes should be 32 bytes. if((! $ob_hash) || (strlen($hash) < 16)) - return; + return; - $r = q("delete from photo where xchan = '%s' and photo_usage = %d and resource_id = '%s'", + q("delete from photo where xchan = '%s' and photo_usage = %d and resource_id = '%s'", dbesc($ob_hash), intval(PHOTO_THING), dbesc($hash) ); - } - - /** - * @brief fetches an photo from external site and prepares its miniatures. + * @brief Fetches a photo from external site and prepares its miniatures. * * @param string $photo * external URL to fetch base image @@ -596,223 +187,215 @@ function delete_thing_photo($url,$ob_hash) { * * \e boolean \b 4 => TRUE if fetch failure * * \e string \b 5 => modification date */ +function import_xchan_photo($photo, $xchan, $thing = false, $force = false) { + $modified = ''; + $o = null; + + $flags = (($thing) ? PHOTO_THING : PHOTO_XCHAN); + $album = (($thing) ? 'Things' : 'Contact Photos'); + + logger('Updating channel photo from ' . $photo . ' for ' . $xchan, LOGGER_DEBUG); + + if($thing) { + $hash = photo_new_resource(); + } else { + $r = q("select resource_id, edited, mimetype from photo where xchan = '%s' and photo_usage = %d and imgscale = 4 limit 1", dbesc($xchan), intval(PHOTO_XCHAN)); + if($r) { + $hash = $r[0]['resource_id']; + $modified = $r[0]['edited']; + $type = $r[0]['mimetype']; + } else { + $hash = photo_new_resource(); + } + } -function import_xchan_photo($photo,$xchan,$thing = false,$force = false) { - - $modified = ''; - - $flags = (($thing) ? PHOTO_THING : PHOTO_XCHAN); - $album = (($thing) ? 'Things' : 'Contact Photos'); - - logger('import_xchan_photo: updating channel photo from ' . $photo . ' for ' . $xchan, LOGGER_DEBUG); - - if($thing) { - $hash = photo_new_resource(); - } - else { - $r = q("select resource_id, edited, mimetype from photo where xchan = '%s' and photo_usage = %d and imgscale = 4 limit 1", - dbesc($xchan), - intval(PHOTO_XCHAN) - ); - if($r) { - $hash = $r[0]['resource_id']; - $modified = $r[0]['edited']; - $type = $r[0]['mimetype']; - } - else { - $hash = photo_new_resource(); - } - } - - $photo_failure = false; - $img_str = ''; - - if($photo) { - $filename = basename($photo); - - if($force || $modified == '') { - $result = z_fetch_url($photo,true); - } - else { - $h = array('headers' => array("If-Modified-Since: " . gmdate("D, d M Y H:i:s", strtotime($modified . "Z")) . " GMT")); - $result = z_fetch_url($photo,true,0,$h); - } - - if($result['success']) { - $img_str = $result['body']; - $type = guess_image_type($photo, $result['header']); - $modified = gmdate('Y-m-d H:i:s', (preg_match('/last-modified: (.+) \S+/i', $result['header'], $o) ? strtotime($o[1] . 'Z') : time())); - if(is_null($type)) - $photo_failure = true; - } - elseif($result['return_code'] == 304) { - $photo = z_root() . '/photo/' . $hash . '-4'; - $thumb = z_root() . '/photo/' . $hash . '-5'; - $micro = z_root() . '/photo/' . $hash . '-6'; - } - else { - $photo_failure = true; - } - - } - else - $photo_failure = true; - - if(! $photo_failure && $result['return_code'] != 304) { - $img = photo_factory($img_str, $type); - if($img->is_valid()) { - $width = $img->getWidth(); - $height = $img->getHeight(); - - if($width && $height) { - if(($width / $height) > 1.2) { - // crop out the sides - $margin = $width - $height; - $img->cropImage(300,($margin / 2),0,$height,$height); - } - elseif(($height / $width) > 1.2) { - // crop out the bottom - $margin = $height - $width; - $img->cropImage(300,0,0,$width,$width); - - } - else { - $img->scaleImageSquare(300); - } - - } - else - $photo_failure = true; - - $p = array( - 'xchan' => $xchan, - 'resource_id' => $hash, - 'filename' => basename($photo), - 'album' => $album, - 'photo_usage' => $flags, - 'imgscale' => 4, - 'edited' => $modified - ); - - $r = $img->save($p); - - if($r === false) - $photo_failure = true; - - $img->scaleImage(80); - $p['imgscale'] = 5; - - $r = $img->save($p); - - if($r === false) - $photo_failure = true; - - $img->scaleImage(48); - $p['imgscale'] = 6; - - $r = $img->save($p); - - if($r === false) - $photo_failure = true; - - $photo = z_root() . '/photo/' . $hash . '-4'; - $thumb = z_root() . '/photo/' . $hash . '-5'; - $micro = z_root() . '/photo/' . $hash . '-6'; - } - else { - logger('import_xchan_photo: invalid image from ' . $photo); - $photo_failure = true; - } - } - if($photo_failure) { - $default = get_default_profile_photo(); - $photo = z_root() . '/' . $default; - $thumb = z_root() . '/' . get_default_profile_photo(80); - $micro = z_root() . '/' . get_default_profile_photo(48); - $type = 'image/png'; - $modified = gmdate('Y-m-d H:i:s', filemtime($default)); - } - - logger('HTTP code: ' . $result['return_code'] . '; modified: ' . $modified . '; failure: ' . ($photo_failure ? 'yes' : 'no') . '; URL: ' . $photo, LOGGER_DEBUG); - return(array($photo,$thumb,$micro,$type,$photo_failure,$modified)); - -} - -function import_channel_photo_from_url($photo,$aid,$uid) { + $photo_failure = false; + $img_str = ''; if($photo) { - $filename = basename($photo); - $result = z_fetch_url($photo,true); + if($force || $modified == '') { + $result = z_fetch_url($photo, true); + } else { + $h = [ + 'headers' => [ + 'If-Modified-Since: ' . gmdate('D, d M Y H:i:s', strtotime($modified . 'Z')) . ' GMT' + ] + ]; + $result = z_fetch_url($photo, true, 0, $h); + } if($result['success']) { $img_str = $result['body']; $type = guess_image_type($photo, $result['header']); + $modified = gmdate('Y-m-d H:i:s', (preg_match('/last-modified: (.+) \S+/i', $result['header'], $o) ? strtotime($o[1] . 'Z') : time())); + if(is_null($type)) + $photo_failure = true; + } elseif($result['return_code'] == 304) { + $photo = z_root() . '/photo/' . $hash . '-4'; + $thumb = z_root() . '/photo/' . $hash . '-5'; + $micro = z_root() . '/photo/' . $hash . '-6'; + } else { + $photo_failure = true; + } + } else { + $photo_failure = true; + } + + if(!$photo_failure && $result['return_code'] != 304) { + $img = photo_factory($img_str, $type); + if($img->is_valid()) { + $width = $img->getWidth(); + $height = $img->getHeight(); + + if($width && $height) { + if(($width / $height) > 1.2) { + // crop out the sides + $margin = $width - $height; + $img->cropImage(300, ($margin / 2), 0, $height, $height); + } elseif(($height / $width) > 1.2) { + // crop out the bottom + $margin = $height - $width; + $img->cropImage(300, 0, 0, $width, $width); + } else { + $img->scaleImageSquare(300); + } + } else { + $photo_failure = true; + } - if(is_null($type)) - $photo_failure = true; + $p = [ + 'xchan' => $xchan, + 'resource_id' => $hash, + 'filename' => basename($photo), + 'album' => $album, + 'photo_usage' => $flags, + 'imgscale' => 4, + 'edited' => $modified, + ]; + + $r = $img->save($p); + if($r === false) + $photo_failure = true; + + $img->scaleImage(80); + $p['imgscale'] = 5; + $r = $img->save($p); + if($r === false) + $photo_failure = true; + + $img->scaleImage(48); + $p['imgscale'] = 6; + $r = $img->save($p); + if($r === false) + $photo_failure = true; + + $photo = z_root() . '/photo/' . $hash . '-4'; + $thumb = z_root() . '/photo/' . $hash . '-5'; + $micro = z_root() . '/photo/' . $hash . '-6'; + } else { + logger('Invalid image from ' . $photo); + $photo_failure = true; } } - else { - $photo_failure = true; + if($photo_failure) { + $default = get_default_profile_photo(); + $photo = z_root() . '/' . $default; + $thumb = z_root() . '/' . get_default_profile_photo(80); + $micro = z_root() . '/' . get_default_profile_photo(48); + $type = 'image/png'; + $modified = gmdate('Y-m-d H:i:s', filemtime($default)); } - import_channel_photo($img_str,$type,$aid,$uid); + logger('HTTP code: ' . $result['return_code'] . '; modified: ' . $modified + . '; failure: ' . ($photo_failure ? 'yes' : 'no') . '; URL: ' . $photo, LOGGER_DEBUG); - return $type; + return([$photo, $thumb, $micro, $type, $photo_failure, $modified]); } +/** + * @brief Import channel photo from a URL. + * + * @param string $photo URL to a photo + * @param int $aid + * @param int $uid channel_id + * @return null|string Guessed image mimetype or null. + */ +function import_channel_photo_from_url($photo, $aid, $uid) { + $type = null; -function import_channel_photo($photo,$type,$aid,$uid) { + if($photo) { + $result = z_fetch_url($photo, true); - logger('import_channel_photo: importing channel photo for ' . $uid, LOGGER_DEBUG); + if($result['success']) { + $img_str = $result['body']; + $type = guess_image_type($photo, $result['header']); - $hash = photo_new_resource(); + import_channel_photo($img_str, $type, $aid, $uid); + } + } - $photo_failure = false; + return $type; +} +/** + * @brief Import a channel photo and prepare its miniatures. + * + * @param string $photo Image data + * @param string $type + * @param int $aid + * @param int $uid channel_id + * @return boolean|string false on failure, otherwise resource_id of photo + */ +function import_channel_photo($photo, $type, $aid, $uid) { + logger('Importing channel photo for ' . $uid, LOGGER_DEBUG); + + $photo_failure = false; + $hash = photo_new_resource(); $filename = $hash; $img = photo_factory($photo, $type); if($img->is_valid()) { + // config array for image save method + $p = [ + 'aid' => $aid, + 'uid' => $uid, + 'resource_id' => $hash, + 'filename' => $filename, + 'album' => t('Profile Photos'), + 'photo_usage' => PHOTO_PROFILE, + 'imgscale' => 4, + ]; + + // photo size $img->scaleImageSquare(300); - - $p = array('aid' => $aid, 'uid' => $uid, 'resource_id' => $hash, 'filename' => $filename, 'album' => t('Profile Photos'), 'photo_usage' => PHOTO_PROFILE, 'imgscale' => 4); - $r = $img->save($p); - if($r === false) $photo_failure = true; + // thumb size $img->scaleImage(80); $p['imgscale'] = 5; - $r = $img->save($p); - if($r === false) $photo_failure = true; + // micro size $img->scaleImage(48); $p['imgscale'] = 6; - $r = $img->save($p); - if($r === false) $photo_failure = true; - } - else { - logger('import_channel_photo: invalid image.'); + } else { + logger('Invalid image.'); $photo_failure = true; } - //return(($photo_failure)? false : true); - if($photo_failure) return false; else return $hash; - } diff --git a/include/photo/photo_gd.php b/include/photo/photo_gd.php deleted file mode 100644 index e98ac2827..000000000 --- a/include/photo/photo_gd.php +++ /dev/null @@ -1,162 +0,0 @@ -<?php /** @file */ - - -require_once('include/photo/photo_driver.php'); - - -class photo_gd extends photo_driver { - - function supportedTypes() { - $t = array(); - $t['image/jpeg'] ='jpg'; - if (imagetypes() & IMG_PNG) $t['image/png'] = 'png'; - if (imagetypes() & IMG_GIF) $t['image/gif'] = 'gif'; - return $t; - - } - - function load($data, $type) { - $this->valid = false; - if(! $data) - return; - - $this->image = @imagecreatefromstring($data); - if($this->image !== FALSE) { - $this->valid = true; - $this->setDimensions(); - imagealphablending($this->image, false); - imagesavealpha($this->image, true); - } - } - - function setDimensions() { - $this->width = imagesx($this->image); - $this->height = imagesy($this->image); - } - - - public function clearexif() { - return; - } - - - public function destroy() { - if($this->is_valid()) { - imagedestroy($this->image); - } - } - - public function getImage() { - if(!$this->is_valid()) - return FALSE; - - return $this->image; - } - - public function doScaleImage($dest_width,$dest_height) { - - $dest = imagecreatetruecolor( $dest_width, $dest_height ); - $width = imagesx($this->image); - $height = imagesy($this->image); - - imagealphablending($dest, false); - imagesavealpha($dest, true); - if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha - imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dest_width, $dest_height, $width, $height); - if($this->image) - imagedestroy($this->image); - $this->image = $dest; - $this->setDimensions(); - } - - public function rotate($degrees) { - if(!$this->is_valid()) - return FALSE; - - $this->image = imagerotate($this->image,$degrees,0); - $this->setDimensions(); - } - - public function flip($horiz = true, $vert = false) { - if(!$this->is_valid()) - return FALSE; - - $w = imagesx($this->image); - $h = imagesy($this->image); - $flipped = imagecreate($w, $h); - if($horiz) { - for ($x = 0; $x < $w; $x++) { - imagecopy($flipped, $this->image, $x, 0, $w - $x - 1, 0, 1, $h); - } - } - if($vert) { - for ($y = 0; $y < $h; $y++) { - imagecopy($flipped, $this->image, 0, $y, 0, $h - $y - 1, $w, 1); - } - } - $this->image = $flipped; - $this->setDimensions(); // Shouldn't really be necessary - } - - public function cropImage($max,$x,$y,$w,$h) { - if(!$this->is_valid()) - return FALSE; - - $dest = imagecreatetruecolor( $max, $max ); - imagealphablending($dest, false); - imagesavealpha($dest, true); - if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha - imagecopyresampled($dest, $this->image, 0, 0, $x, $y, $max, $max, $w, $h); - if($this->image) - imagedestroy($this->image); - $this->image = $dest; - $this->setDimensions(); - } - - public function cropImageRect($maxx,$maxy,$x,$y,$w,$h) { - if(!$this->is_valid()) - return FALSE; - - $dest = imagecreatetruecolor( $maxx, $maxy ); - imagealphablending($dest, false); - imagesavealpha($dest, true); - if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha - imagecopyresampled($dest, $this->image, 0, 0, $x, $y, $maxx, $maxy, $w, $h); - if($this->image) - imagedestroy($this->image); - $this->image = $dest; - $this->setDimensions(); - } - - - - public function imageString() { - if(!$this->is_valid()) - return FALSE; - - $quality = FALSE; - - ob_start(); - - switch($this->getType()){ - case "image/png": - $quality = get_config('system','png_quality'); - if((! $quality) || ($quality > 9)) - $quality = PNG_QUALITY; - imagepng($this->image,NULL, $quality); - break; - case "image/jpeg": - default: - $quality = get_config('system','jpeg_quality'); - if((! $quality) || ($quality > 100)) - $quality = JPEG_QUALITY; - imagejpeg($this->image,NULL,$quality); - break; - } - $string = ob_get_contents(); - ob_end_clean(); - - return $string; - } - -} diff --git a/include/photos.php b/include/photos.php index ae51703e0..44406e0b0 100644 --- a/include/photos.php +++ b/include/photos.php @@ -356,7 +356,7 @@ function photo_upload($channel, $observer, $args) { $large_photos = feature_enabled($channel['channel_id'], 'large_photos'); - linkify_tags($a, $args['body'], $channel_id); + linkify_tags($args['body'], $channel_id); if($large_photos) { $scale = 1; diff --git a/include/plugin.php b/include/plugin.php index ec14fd945..c789ad522 100755 --- a/include/plugin.php +++ b/include/plugin.php @@ -7,13 +7,15 @@ /** - * @brief Handle errors in plugin calls + * @brief Handle errors in plugin calls. * * @param string $plugin name of the addon - * @param string $error_text text of error - * @param bool $uninstall uninstall plugin + * @param string $notice UI visible text of error + * @param string $log technical error message for logging + * @param bool $uninstall (optional) default false + * uninstall plugin on error */ -function handleerrors_plugin($plugin,$notice,$log,$uninstall=false){ +function handleerrors_plugin($plugin, $notice, $log, $uninstall = false){ logger("Addons: [" . $plugin . "] Error: ".$log, LOGGER_ERROR); if ($notice != '') { notice("[" . $plugin . "] Error: ".$notice, LOGGER_ERROR); @@ -23,7 +25,7 @@ function handleerrors_plugin($plugin,$notice,$log,$uninstall=false){ $idx = array_search($plugin, \App::$plugins); unset(\App::$plugins[$idx]); uninstall_plugin($plugin); - set_config("system","addon", implode(", ",\App::$plugins)); + set_config("system", "addon", implode(", ", \App::$plugins)); } } @@ -381,8 +383,6 @@ function unregister_hook($hook, $file, $function) { * array in their theme_init() and use this to customise the app behaviour. * use insert_hook($hookname,$function_name) to do this. */ - - function load_hooks() { App::$hooks = []; @@ -1085,10 +1085,11 @@ function get_markup_template($s, $root = '') { } /** - * @brief + * @brief Test if a folder exists. * * @param string $folder * @return boolean|string + * False if folder does not exist, or canonicalized absolute pathname */ function folder_exists($folder) { // Get canonicalized absolute pathname diff --git a/include/text.php b/include/text.php index 26cb61977..b017b038a 100644 --- a/include/text.php +++ b/include/text.php @@ -41,12 +41,12 @@ function replace_macros($s, $r) { $t = App::template_engine(); - try { - $output = $t->replace_macros($arr['template'], $arr['params']); - } catch (Exception $e) { - logger("Unable to render template: ".$e->getMessage()); - $output = "<h3>ERROR: there was an error creating the output.</h3>"; - } + try { + $output = $t->replace_macros($arr['template'], $arr['params']); + } catch (Exception $e) { + logger('Unable to render template: ' . $e->getMessage()); + $output = '<h3>ERROR: there was an error creating the output.</h3>'; + } return $output; } @@ -539,7 +539,14 @@ function paginate(&$a) { return $o; } - +/** + * @brief + * + * @param int $i + * @param string $more + * @param string $less + * @return string Parsed HTML from template 'alt_pager.tpl' + */ function alt_pager($i, $more = '', $less = '') { if(! $more) @@ -810,7 +817,7 @@ function activity_match($haystack,$needle) { * and strip the period from any tags which end with one. * * @param string $s - * @return Returns array of tags found, or empty array. + * @return array Returns an array of tags found, or empty array. */ function get_tags($s) { $ret = array(); @@ -826,6 +833,9 @@ function get_tags($s) { // ignore anything in [color= ], because it may contain color codes which are mistaken for tags $s = preg_replace('/\[color=(.*?)\]/sm','',$s); + // skip anchors in URL + $s = preg_replace('/\[url=(.*?)\]/sm','',$s); + // match any double quoted tags if(preg_match_all('/([@#\!]\"\;.*?\"\;)/',$s,$match)) { @@ -897,6 +907,7 @@ function tag_sort_length($a,$b) { function total_sort($a,$b) { if($a['total'] == $b['total']) return 0; + return(($b['total'] > $a['total']) ? 1 : (-1)); } @@ -983,7 +994,7 @@ function contact_block() { // There is no setting to discover if you are bi-directionally connected // Use the ability to post comments as an indication that this relationship is more - // than wishful thinking; even though soapbox channels and feeds will disable it. + // than wishful thinking; even though soapbox channels and feeds will disable it. if(! intval(get_abconfig(App::$profile['uid'],$rr['xchan_hash'],'their_perms','post_comments'))) { $rr['oneway'] = true; @@ -1001,9 +1012,15 @@ function contact_block() { '$micropro' => $micropro, )); - $arr = array('contacts' => $r, 'output' => $o); - + $arr = ['contacts' => $r, 'output' => $o]; + /** + * @hooks contact_block_end + * Called at the end of contact_block(), but can not manipulate the output. + * * \e array \b contacts - Result array from database + * * \e string \b output - the generated output + */ call_hooks('contact_block_end', $arr); + return $o; } @@ -1090,7 +1107,7 @@ function searchbox($s,$id='search-box',$url='/search',$save = false) { * @return string */ function linkify($s, $me = false) { - $s = preg_replace("/(https?\:\/\/[a-zA-Z0-9\pL\:\/\-\?\&\;\.\=\_\@\~\#\'\%\$\!\+\,\@]*)/u", (($me) ? ' <a href="$1" rel="me" >$1</a>' : ' <a href="$1" >$1</a>'), $s); + $s = preg_replace("/(https?\:\/\/[a-zA-Z0-9\pL\:\/\-\?\&\;\.\=\_\@\~\#\'\%\$\!\+\,\@]*)/u", (($me) ? ' <a href="$1" rel="me nofollow" >$1</a>' : ' <a href="$1" >$1</a>'), $s); $s = preg_replace("/\<(.*?)(src|href)=(.*?)\&\;(.*?)\>/ism",'<$1$2=$3&$4>',$s); return($s); @@ -1105,23 +1122,27 @@ function linkify($s, $me = false) { * to a local redirector which uses https and which redirects to the selected content * * @param string $s - * @param int $uid * @returns string */ function sslify($s) { - + // Local photo cache - $str = array( + $str = [ 'body' => $s, 'uid' => local_channel() - ); + ]; + /** + * @hooks cache_body_hook + * * \e string \b body The content to parse and also the return value + * * \e int|bool \b uid + */ call_hooks('cache_body_hook', $str); - + $s = $str['body']; if (strpos(z_root(),'https:') === false) return $s; - + // By default we'll only sslify img tags because media files will probably choke. // You can set sslify_everything if you want - but it will likely white-screen if it hits your php memory limit. // The downside is that http: media files will likely be blocked by your browser @@ -1219,7 +1240,11 @@ function get_mood_verbs() { /** * @brief Function to list all smilies, both internal and from addons. * - * @return Returns array with keys 'texts' and 'icons' + * @param boolean $default_only (optional) default false + * true will prevent that plugins can add smilies + * @return array Returns an associative array with: + * * \e array \b texts + * * \e array \b icons */ function list_smilies($default_only = false) { @@ -1297,6 +1322,11 @@ function list_smilies($default_only = false) { if($default_only) return $params; + /** + * @hooks smile + * * \e array \b texts - default values and also return value + * * \e array \b icons - default values and also return value + */ call_hooks('smilie', $params); return $params; @@ -1452,7 +1482,7 @@ function theme_attachments(&$item) { foreach($arr as $r) { $icon = getIconFromType($r['type']); - + if($r['title']) $label = urldecode(htmlspecialchars($r['title'], ENT_COMPAT, 'UTF-8')); @@ -1622,6 +1652,10 @@ function generate_named_map($location) { function prepare_body(&$item,$attach = false,$opts = false) { + /** + * @hooks prepare_body_init + * * \e array \b item + */ call_hooks('prepare_body_init', $item); $s = ''; @@ -1653,13 +1687,19 @@ function prepare_body(&$item,$attach = false,$opts = false) { $event = (($item['obj_type'] === ACTIVITY_OBJ_EVENT) ? format_event_obj($item['obj']) : false); - $prep_arr = array( + $prep_arr = [ 'item' => $item, 'html' => $event ? $event['content'] : $s, 'event' => $event['header'], 'photo' => $photo - ); - + ]; + /** + * @hooks prepare_body + * * \e array \b item + * * \e string \b html - the parsed HTML to return + * * \e string \b event - the event header to return + * * \e string \b photo - the photo to return + */ call_hooks('prepare_body', $prep_arr); $s = $prep_arr['html']; @@ -1729,17 +1769,24 @@ function prepare_binary($item) { /** - * @brief Given a text string, convert from bbcode to html and add smilie icons. + * @brief Given a text string, convert from content_type to HTML. * - * @param string $text - * @param string $content_type (optional) default text/bbcode - * @param boolean $cache (optional) default false + * Take a text in plain text, html, markdown, bbcode, PDL or PHP and prepare + * it to return HTML. * + * In bbcode this function will add smilie icons. + * + * @param string $text + * @param string $content_type (optional) + * default 'text/bbcode', other values are 'text/plain', 'text/html', + * 'text/markdown', 'application/x-pdl', 'application/x-php' + * @param boolean|array $opts (optional) + * default false, otherwise configuration array for bbcode() * @return string + * The parsed $text as prepared HTML. */ function prepare_text($text, $content_type = 'text/bbcode', $opts = false) { - switch($content_type) { case 'text/plain': $s = escape_tags($text); @@ -1779,8 +1826,8 @@ function prepare_text($text, $content_type = 'text/bbcode', $opts = false) { default: require_once('include/bbcode.php'); - if(stristr($text,'[nosmile]')) - $s = bbcode($text, [ 'cache' => $cache ]); + if(stristr($text, '[nosmile]')) + $s = bbcode($text, ((is_array($opts)) ? $opts : [] )); else $s = smilies(bbcode($text, ((is_array($opts)) ? $opts : [] ))); @@ -2140,7 +2187,7 @@ function legal_webbie($s) { return ''; // WARNING: This regex may not work in a federated environment. - // You will probably want something like + // You will probably want something like // preg_replace('/([^a-z0-9\_])/','',strtolower($s)); $r = preg_replace('/([^a-z0-9\-\_])/','',strtolower($s)); @@ -2239,19 +2286,24 @@ function ids_to_querystr($arr,$idx = 'id',$quote = false) { } /** - * @brief array_elm_to_str($arr,$elm,$delim = ',') extract unique individual elements from an array of arrays and return them as a string separated by a delimiter - * similar to ids_to_querystr, but allows a different delimiter instead of a db-quote option - * empty elements (evaluated after trim()) are ignored. - * @param $arr array - * @param $elm array key to extract from sub-array - * @param $delim string default ',' - * @param $each filter function to apply to each element before evaluation, default is 'trim'. + * @brief Extract unique individual elements from an array of arrays and return + * them as a string separated by a delimiter. + * + * Similar to ids_to_querystr, but allows a different delimiter instead of a + * db-quote option empty elements (evaluated after trim()) are ignored. + * + * @see ids_to_querystr() + * + * @param array $arr + * @param string $elm key to extract from sub-array + * @param string $delim (optional) default ',' + * @param string $each (optional) default is 'trim' + * Filter function to apply to each element before evaluation. * @returns string */ - -function array_elm_to_str($arr,$elm,$delim = ',',$each = 'trim') { - +function array_elm_to_str($arr, $elm, $delim = ',', $each = 'trim') { $tmp = []; + if($arr && is_array($arr)) { foreach($arr as $x) { if(is_array($x) && array_key_exists($elm,$x)) { @@ -2262,7 +2314,8 @@ function array_elm_to_str($arr,$elm,$delim = ',',$each = 'trim') { } } } - return implode($delim,$tmp); + + return implode($delim, $tmp); } function trim_and_unpunify($s) { @@ -2486,9 +2539,9 @@ function design_tools() { } /** - * @brief Creates website portation tools menu + * @brief Creates website portation tools menu. * - * @return string + * @return string Parsed HTML code from template 'website_portation_tools.tpl' */ function website_portation_tools() { @@ -2501,7 +2554,7 @@ function website_portation_tools() { $sys = true; } - return replace_macros(get_markup_template('website_portation_tools.tpl'), array( + return replace_macros(get_markup_template('website_portation_tools.tpl'), [ '$title' => t('Import'), '$import_label' => t('Import website...'), '$import_placeholder' => t('Select folder to import'), @@ -2518,7 +2571,7 @@ function website_portation_tools() { '$cloud_export_desc' => t('/path/to/export/folder'), '$cloud_export_hint' => t('Enter a path to a cloud files destination.'), '$cloud_export_select' => t('Specify folder'), - )); + ]); } /** @@ -2578,8 +2631,9 @@ function extra_query_args() { * @param boolean $in_network default true * @return boolean true if replaced, false if not replaced */ -function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $in_network = true) { +function handle_tag(&$body, &$str_tags, $profile_uid, $tag, $in_network = true) { + $channel = App::get_channel(); $replaced = false; $r = null; $match = array(); @@ -2635,21 +2689,20 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $i $str_tags .= $newtag; } - return [ - 'replaced' => $replaced, - 'termtype' => $termtype, - 'term' => $basetag, - 'url' => $url, - 'contact' => [] - ]; - + return [ [ + 'replaced' => $replaced, + 'termtype' => $termtype, + 'term' => $basetag, + 'url' => $url, + 'contact' => [], + 'access_tag' => '', + ]]; } // END hashtags // BEGIN mentions - if ( in_array($termtype, [ TERM_MENTION, TERM_FORUM ] )) { // The @! tag and !! tag will alter permissions @@ -2660,13 +2713,13 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $i $exclusive = (((strpos(substr($tag,1), '!') === 0) && $in_network) ? true : false); //is it already replaced? - if(strpos($tag,'[zrl=') || strpos($tag,'[url=')) + if(strpos($tag,"[zrl=") || strpos($tag,"[url=")) return $replaced; // get the channel name // First extract the name or name fragment we are going to replace - $name = substr($tag,(($exclusive) ? 2 : 1)); + $name = substr($tag,(($exclusive) ? 2 : 1)); $newname = $name; // make a copy that we can mess with $tagcid = 0; @@ -2678,7 +2731,7 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $i $newname = substr($name,1); $newname = substr($newname,0,-1); - $r = q("select * from xchan where xchan_addr = '%s' or xchan_url = '%s' limit 1", + $r = q("select * from xchan where xchan_addr = '%s' or xchan_url = '%s'", dbesc($newname), dbesc($newname) ); @@ -2701,7 +2754,7 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $i // select someone from this user's contacts by name $r = q("SELECT * FROM abook left join xchan on abook_xchan = xchan_hash - WHERE xchan_name = '%s' AND abook_channel = %d LIMIT 1", + WHERE xchan_name = '%s' AND abook_channel = %d ", dbesc($newname), intval($profile_uid) ); @@ -2709,8 +2762,8 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $i // select anybody by full hubloc_addr if((! $r) && strpos($newname,'@')) { - $r = q("SELECT * FROM xchan left join hubloc on xchan_hash = hubloc_hash - WHERE hubloc_addr = '%s' LIMIT 1", + $r = q("SELECT * FROM xchan left join hubloc on xchan_hash = hubloc_hash + WHERE hubloc_addr = '%s' ", dbesc($newname) ); } @@ -2719,7 +2772,7 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $i if(! $r) { $r = q("SELECT * FROM abook left join xchan on abook_xchan = xchan_hash - WHERE xchan_addr like ('%s') AND abook_channel = %d LIMIT 1", + WHERE xchan_addr like ('%s') AND abook_channel = %d ", dbesc(((strpos($newname,'@')) ? $newname : $newname . '@%')), intval($profile_uid) ); @@ -2727,17 +2780,62 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $i } + + + + + $fn_results = []; + $access_tag = EMPTY_STR; + + // $r is set if we found something - $channel = App::get_channel(); - if($r) { - $profile = $r[0]['xchan_url']; - $newname = $r[0]['xchan_name']; - // add the channel's xchan_hash to $access_tag if exclusive - if($exclusive) { - $access_tag .= 'cid:' . $r[0]['xchan_hash']; + foreach($r as $xc) { + $profile = $xc['xchan_url']; + $newname = $xc['xchan_name']; + // add the channel's xchan_hash to $access_tag if exclusive + if($exclusive) { + $access_tag = 'cid:' . $xc['xchan_hash']; + } + + // if there is a url for this channel + + if(isset($profile)) { + $replaced = true; + //create profile link + $profile = str_replace(',','%2c',$profile); + $url = $profile; + if($termtype === TERM_FORUM) { + $newtag = '!' . (($exclusive) ? '!' : '') . '[zrl=' . $profile . ']' . $newname . '[/zrl]'; + $body = str_replace('!' . (($exclusive) ? '!' : '') . $name, $newtag, $body); + } + else { + // ( $termtype === TERM_MENTION ) + $newtag = '@' . (($exclusive) ? '!' : '') . '[zrl=' . $profile . ']' . $newname . '[/zrl]'; + $body = str_replace('@' . (($exclusive) ? '!' : '') . $name, $newtag, $body); + } + + // append tag to str_tags + if(! stristr($str_tags,$newtag)) { + if(strlen($str_tags)) + $str_tags .= ','; + $str_tags .= $newtag; + } + } + + + $fn_results[] = [ + 'replaced' => $replaced, + 'termtype' => $termtype, + 'term' => $newname, + 'url' => $url, + 'access_tag' => $access_tag, + 'contact' => (($r) ? $xc : []), + ]; + } + } else { @@ -2749,7 +2847,6 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $i // weird - as all the other tags are linked to something. if(local_channel() && local_channel() == $profile_uid) { - require_once('include/group.php'); $grp = group_byname($profile_uid,$name); if($grp) { @@ -2766,58 +2863,62 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $i } } } - } - // if there is a url for this channel - if(isset($profile)) { - $replaced = true; - //create profile link - $profile = str_replace(',','%2c',$profile); - $url = $profile; - if($termtype === TERM_FORUM) { - $newtag = '!' . (($exclusive) ? '!' : '') . '[zrl=' . $profile . ']' . $newname . '[/zrl]'; - $body = str_replace('!' . (($exclusive) ? '!' : '') . $name, $newtag, $body); - } - else { - // ( $termtype === TERM_MENTION ) - $newtag = '@' . (($exclusive) ? '!' : '') . '[zrl=' . $profile . ']' . $newname . '[/zrl]'; - $body = str_replace('@' . (($exclusive) ? '!' : '') . $name, $newtag, $body); - } + // if there is a url for this channel - // append tag to str_tags - if(! stristr($str_tags,$newtag)) { - if(strlen($str_tags)) - $str_tags .= ','; - $str_tags .= $newtag; + if(isset($profile)) { + $replaced = true; + //create profile link + $profile = str_replace(',','%2c',$profile); + $url = $profile; + if($termtype === TERM_FORUM) { + $newtag = '!' . (($exclusive) ? '!' : '') . '[zrl=' . $profile . ']' . $newname . '[/zrl]'; + $body = str_replace('!' . (($exclusive) ? '!' : '') . $name, $newtag, $body); + } + else { + // ( $termtype === TERM_MENTION ) + $newtag = '@' . (($exclusive) ? '!' : '') . '[zrl=' . $profile . ']' . $newname . '[/zrl]'; + $body = str_replace('@' . (($exclusive) ? '!' : '') . $name, $newtag, $body); + } + + // append tag to str_tags + if(! stristr($str_tags,$newtag)) { + if(strlen($str_tags)) + $str_tags .= ','; + $str_tags .= $newtag; + } } + + $fn_results[] = [ + 'replaced' => $replaced, + 'termtype' => $termtype, + 'term' => $newname, + 'url' => $url, + 'access_tag' => $access_tag, + 'contact' => [], + ]; } } + + return $fn_results; - return [ - 'replaced' => $replaced, - 'termtype' => $termtype, - 'term' => $newname, - 'url' => $url, - 'contact' => (($r) ? $r[0] : []) - ]; } -function linkify_tags($a, &$body, $uid, $in_network = true) { +function linkify_tags(&$body, $uid, $in_network = true) { $str_tags = EMPTY_STR; - $tagged = []; $results = []; $tags = get_tags($body); if(count($tags)) { foreach($tags as $tag) { - $access_tag = ''; - $success = handle_tag($a, $body, $access_tag, $str_tags, ($uid) ? $uid : App::$profile_uid , $tag, $in_network); + $success = handle_tag($body, $str_tags, ($uid) ? $uid : App::$profile_uid , $tag, $in_network); - $results[] = array('success' => $success, 'access_tag' => $access_tag); - if($success['replaced']) $tagged[] = $tag; + foreach($success as $handled_tag) { + $results[] = [ 'success' => $handled_tag ]; + } } } @@ -2875,7 +2976,7 @@ function getIconFromType($type) { 'video/x-matroska' => 'fa-file-video-o' ); - $catMap = [ + $catMap = [ 'application' => 'fa-file-code-o', 'multipart' => 'fa-folder', 'audio' => 'fa-file-audio-o', @@ -2883,7 +2984,7 @@ function getIconFromType($type) { 'text' => 'fa-file-text-o', 'image' => 'fa=file-picture-o', 'message' => 'fa-file-text-o' - ]; + ]; $iconFromType = ''; @@ -2893,7 +2994,7 @@ function getIconFromType($type) { } else { $parts = explode('/',$type); - if($parts[0] && $catMap[$parts[0]]) { + if($parts[0] && $catMap[$parts[0]]) { $iconFromType = $catMap[$parts[0]]; } } @@ -2981,9 +3082,9 @@ function item_url_replace($channel,&$item,$old,$new,$oldnick = '') { json_url_replace('/' . $oldnick . '/' ,'/' . $channel['channel_address'] . '/' ,$item['target']); } - $x = preg_replace("/".preg_quote($old,'/')."\/(search|\w+\/".$channel['channel_address'].")/", $new.'/${1}', $item['body']); - if($x) { - $item['body'] = $x; + $x = preg_replace("/".preg_quote($old,'/')."\/(search|\w+\/".$channel['channel_address'].")/", $new.'/${1}', $item['body']); + if($x) { + $item['body'] = $x; $item['sig'] = base64url_encode(rsa_sign($item['body'],$channel['channel_prvkey'])); $item['item_verified'] = 1; } @@ -3093,7 +3194,13 @@ function pdl_selector($uid, $current='') { intval($uid) ); - $arr = array('channel_id' => $uid, 'current' => $current, 'entries' => $r); + $arr = ['channel_id' => $uid, 'current' => $current, 'entries' => $r]; + /** + * @hooks pdl_selector + * * \e int \b channel_id + * * \e string \b current + * * \e array \b entries - Result from database query + */ call_hooks('pdl_selector', $arr); $entries = $arr['entries']; @@ -3149,7 +3256,7 @@ function flatten_array_recursive($arr) { * @param string $lang Which language should be highlighted * @return string * Important: The returned text has the text pattern 'http' translated to '%eY9-!' which should be converted back - * after further processing. This was done to prevent oembed links from occurring inside code blocks. + * after further processing. This was done to prevent oembed links from occurring inside code blocks. * See include/bbcode.php */ function text_highlight($s, $lang) { @@ -3168,7 +3275,6 @@ function text_highlight($s, $lang) { 'language' => $lang, 'success' => false ]; - /** * @hooks text_highlight * * \e string \b text @@ -3369,13 +3475,17 @@ function punify($s) { } -// Be aware that unpunify will only convert domain names and not pathnames - +/** + * Be aware that unpunify() will only convert domain names and not pathnames. + * + * @param string $s + * @return string + */ function unpunify($s) { require_once('vendor/simplepie/simplepie/idn/idna_convert.class.php'); $x = new idna_convert(['encoding' => 'utf8']); - return $x->decode($s); + return $x->decode($s); } @@ -3383,7 +3493,7 @@ function unique_multidim_array($array, $key) { $temp_array = array(); $i = 0; $key_array = array(); - + foreach($array as $val) { if (!in_array($val[$key], $key_array)) { $key_array[$i] = $val[$key]; @@ -3411,7 +3521,7 @@ function get_forum_channels($uid) { intval($uid) ); - if($x2) { + if($x2) { $xf = ids_to_querystr($x2,'xchan',true); // private forums @@ -3424,7 +3534,7 @@ function get_forum_channels($uid) { } } - $sql_extra = (($xf) ? " and ( xchan_hash in (" . $xf . ") or xchan_pubforum = 1 ) " : " and xchan_pubforum = 1 "); + $sql_extra = (($xf) ? " and ( xchan_hash in (" . $xf . ") or xchan_pubforum = 1 ) " : " and xchan_pubforum = 1 "); $r = q("select abook_id, xchan_hash, xchan_name, xchan_url, xchan_addr, xchan_photo_s from abook left join xchan on abook_xchan = xchan_hash where xchan_deleted = 0 and abook_channel = %d and abook_pending = 0 and abook_ignored = 0 and abook_blocked = 0 and abook_archived = 0 $sql_extra order by xchan_name", intval($uid) @@ -3460,14 +3570,14 @@ function print_array($arr, $level = 0) { $o .= $tabs . '[' . $k . '] => ' . print_array($v, $level + 1) . "\n"; } else { - $o .= $tabs . '[' . $k . '] => ' . print_val($v) . ",\n"; + $o .= $tabs . '[' . $k . '] => ' . print_val($v) . ",\n"; } } } $o .= substr($tabs,0,-1) . ']' . (($level) ? ',' : ';' ). "\n"; return $o; } - + } function print_val($v) { @@ -3494,7 +3604,7 @@ function array_path_exists($str,$arr) { } else { return false; - } + } } return true; } @@ -3511,12 +3621,11 @@ function array_path_exists($str,$arr) { */ function new_uuid() { - try { - $hash = Uuid::uuid4()->toString(); - } catch (UnsatisfiedDependencyException $e) { - $hash = random_string(48); - } + try { + $hash = Uuid::uuid4()->toString(); + } catch (UnsatisfiedDependencyException $e) { + $hash = random_string(48); + } - return $hash; + return $hash; } - diff --git a/include/zot.php b/include/zot.php index bc2187f91..3b089831b 100644 --- a/include/zot.php +++ b/include/zot.php @@ -174,7 +174,7 @@ function zot_build_packet($channel, $type = 'notify', $recipients = null, $remot * packet type: one of 'ping', 'pickup', 'purge', 'refresh', 'keychange', 'force_refresh', 'notify', 'auth_check' * @param array $recipients * envelope information, array ( 'guid' => string, 'guid_sig' => string ); empty for public posts - * @param string msg + * @param string $msg * optional message * @param string $remote_key * optional public site key of target hub used to encrypt entire packet @@ -1829,7 +1829,7 @@ function process_delivery($sender, $arr, $deliveries, $relay, $public = false, $ else { $arr['item_wall'] = 0; } - + if ((! $tag_delivery) && (! $local_public)) { $allowed = (perm_is_allowed($channel['channel_id'],$sender['hash'],$perm)); @@ -1843,7 +1843,7 @@ function process_delivery($sender, $arr, $deliveries, $relay, $public = false, $ $allowed = can_comment_on_post($d['hash'],$parent[0]); } } - + if (! $allowed) { logger("permission denied for delivery to channel {$channel['channel_id']} {$channel['channel_address']}"); $DR->update('permission denied'); @@ -2330,7 +2330,7 @@ function process_mail_delivery($sender, $arr, $deliveries) { if(! perm_is_allowed($channel['channel_id'],$sender['hash'],'post_mail')) { - /* + /* * Always allow somebody to reply if you initiated the conversation. It's anti-social * and a bit rude to send a private message to somebody and block their ability to respond. * If you are being harrassed and want to put an end to it, delete the conversation. @@ -2358,7 +2358,7 @@ function process_mail_delivery($sender, $arr, $deliveries) { ); if($r) { if(intval($arr['mail_recalled'])) { - msg_drop($r[0]['id'], $channel['channel_id'], $r[0]['conv_guid']); + msg_drop($r[0]['id'], $channel['channel_id'], $r[0]['conv_guid']); $DR->update('mail recalled'); $result[] = $DR->get(); logger('mail_recalled'); @@ -3247,7 +3247,7 @@ function build_sync_packet($uid = 0, $packet = null, $groups_changed = false) { $channel = $r[0]; - // don't provide these in the export + // don't provide these in the export unset($channel['channel_active']); unset($channel['channel_password']); @@ -3616,7 +3616,7 @@ function process_channel_sync_delivery($sender, $arr, $deliveries) { if(array_key_exists('channel_pageflags',$arr['channel']) && intval($arr['channel']['channel_pageflags'])) { // Several pageflags are site-specific and cannot be sync'd. - // Only allow those bits which are shareable from the remote and then + // Only allow those bits which are shareable from the remote and then // logically OR with the local flags $arr['channel']['channel_pageflags'] = $arr['channel']['channel_pageflags'] & (PAGE_HIDDEN|PAGE_AUTOCONNECT|PAGE_APPLICATION|PAGE_PREMIUM|PAGE_ADULT); @@ -4974,9 +4974,9 @@ function zot_reply_pickup($data) { // It's possible that we have more than 100 messages waiting to be sent. // See if there are any more messages in the queue. - $x = q("select * from outq where outq_posturl = '%s' order by outq_created limit 1", - dbesc($data['callback']) - ); + $x = q("select * from outq where outq_posturl = '%s' order by outq_created limit 1", + dbesc($data['callback']) + ); // If so, kick off a new delivery notification for the next batch if ($x) { @@ -5057,7 +5057,7 @@ function zot_reply_auth_check($data,$encrypted_packet) { } // There should be exactly one recipient, the original auth requestor - + /// @FIXME $recipients is undefined here. $ret['message'] .= 'recipients ' . print_r($recipients,true) . EOL; if ($data['recipients']) { diff --git a/install/sample-lighttpd.conf b/install/sample-lighttpd.conf index db26c3b64..b65d86645 100644 --- a/install/sample-lighttpd.conf +++ b/install/sample-lighttpd.conf @@ -79,7 +79,7 @@ $HTTP["url"] =~ "\.(out|log|htaccess)$" { url.access-deny = ("") } -$HTTP["url"] =~ "(^|/)\.git|(^|/)store" { +$HTTP["url"] =~ "(^|/)\.git|(^|/)store|(^|/)util" { url.access-deny = ("") } diff --git a/install/sample-nginx.conf b/install/sample-nginx.conf index 839f208ae..6a986d426 100644 --- a/install/sample-nginx.conf +++ b/install/sample-nginx.conf @@ -141,5 +141,10 @@ server { deny all; } +#deny access to util + location ~ /util { + deny all; + } + } diff --git a/tests/unit/Photo/PhotoGdTest.php b/tests/unit/Photo/PhotoGdTest.php new file mode 100644 index 000000000..1d4f9467f --- /dev/null +++ b/tests/unit/Photo/PhotoGdTest.php @@ -0,0 +1,147 @@ +<?php + +namespace Zotlabs\Tests\Unit\Photo; + +use Zotlabs\Photo\PhotoGd; +use phpmock\phpunit\PHPMock; +use Zotlabs\Tests\Unit\UnitTestCase; + +/** + * @brief PhotoGd test case. + * + * These tests are not really useful yet, just some obvious behaviour. + * + * @todo Compare the actual results. + * @todo Test different image types. + */ +class PhotoGdTest extends UnitTestCase { + + use PHPMock; + + /** + * @var PhotoGd + */ + private $photoGd; + + /** + * Prepares the environment before running a test. + */ + protected function setUp() { + parent::setUp(); + + $data = file_get_contents('images/hz-16.png'); + + $this->photoGd = new PhotoGd($data, 'image/png'); + } + + /** + * Cleans up the environment after running a test. + */ + protected function tearDown() { + $this->photoGd = null; + + parent::tearDown(); + } + + /** + * Tests PhotoGd->supportedTypes() + * + * Without mocking gd this check is environment dependent. + * + public function testSupportedTypes() { + $sft = $this->photoGd->supportedTypes(); + + $this->assertArrayHasKey('image/jpeg', $sft); + $this->assertArrayHasKey('image/gif', $sft); + $this->assertArrayHasKey('image/png', $sft); + + $this->assertArrayNotHasKey('image/foo', $sft); + } + */ + + /** + * Tests PhotoGd->clearexif() + */ + public function testClearexifIsNotImplementedInGdAndDoesNotAlterImageOrReturnSomething() { + $data_before = $this->photoGd->getImage(); + $this->assertNull($this->photoGd->clearexif()); + $this->assertSame($data_before, $this->photoGd->getImage()); + } + + /** + * Tests PhotoGd->getImage() + */ + public function testGetimageReturnsAResource() { + $res = $this->photoGd->getImage(); + $this->assertIsResource($res); + $this->assertEquals('gd', get_resource_type($res)); + } + public function testGetimageReturnsFalseOnFailure() { + $this->photoGd = new PhotoGd(''); + $this->assertFalse($this->photoGd->getImage()); + } + + /** + * Tests PhotoGd->doScaleImage() + */ + public function testDoscaleImageSetsCorrectDimensions() { + $this->photoGd->doScaleImage(5, 8); + + $this->assertSame(5, $this->photoGd->getWidth()); + $this->assertSame(8, $this->photoGd->getHeight()); + } + + /** + * Tests PhotoGd->rotate() + */ + public function testRotate360DegreesCreatesANewImage() { + $data = $this->photoGd->getImage(); + $this->photoGd->rotate(360); + $this->assertNotEquals($data, $this->photoGd->getImage()); + } + + /** + * Tests PhotoGd->flip() + * + public function testFlip() { + // TODO Auto-generated PhotoGdTest->testFlip() + $this->markTestIncomplete("flip test not implemented"); + + $this->photoGd->flip(); + } + */ + + /** + * Tests PhotoGd->cropImageRect() + */ + public function testCropimagerectSetsCorrectDimensions() { + $this->photoGd->cropImageRect(10, 12, 1, 2, 11, 11); + + $this->assertSame(10, $this->photoGd->getWidth()); + $this->assertSame(12, $this->photoGd->getHeight()); + } + + /** + * Tests PhotoGd->imageString() + */ + public function testImagestringReturnsABinaryString() { + // Create a stub for global function get_config() + // get_config('system', 'png_quality') + // get_config('system', 'jpeg_quality'); + $gc = $this->getFunctionMock('Zotlabs\Photo', 'get_config'); + $gc->expects($this->once())->willReturnCallback( + function() { + switch($this->photoGd->getType()){ + case 'image/png': + return 7; + case 'image/jpeg': + default: + return 70; + } + } + ); + + $this->assertIsString($this->photoGd->imageString()); + } + +} diff --git a/tests/unit/get_tags_test.php b/tests/unit/get_tags_test.php index 40f016747..bdffd8311 100644 --- a/tests/unit/get_tags_test.php +++ b/tests/unit/get_tags_test.php @@ -106,10 +106,9 @@ class GetTagsTest extends PHPUnit_Framework_TestCase { $tags=get_tags($text);
- $inform=''; $str_tags=''; foreach($tags as $tag) { - handle_tag($this->a, $text, $inform, $str_tags, 11, $tag); + handle_tag($text, $str_tags, 11, $tag); } //correct tags found? @@ -117,7 +116,6 @@ class GetTagsTest extends PHPUnit_Framework_TestCase { $this->assertTrue(in_array("@Mike", $tags)); //correct output from handle_tag? - $this->assertEquals("cid:15", $inform); $this->assertEquals("@[url=http://justatest.de]Mike Lastname[/url]", $str_tags); $this->assertEquals("hi @[url=http://justatest.de]Mike Lastname[/url]", $text);
} @@ -135,9 +133,8 @@ class GetTagsTest extends PHPUnit_Framework_TestCase { $this->assertEquals(1, count($tags));
$this->assertTrue(in_array("@Mike.because", $tags)); - $inform='';
$str_tags='';
- handle_tag($this->a, $text, $inform, $str_tags, 11, $tags[0]);
+ handle_tag($text, $str_tags, 11, $tags[0]);
// (mike) - This is a tricky case. // we support mentions as in @mike@example.com - which contains a period. @@ -149,7 +146,6 @@ class GetTagsTest extends PHPUnit_Framework_TestCase { // $this->assertEquals("@[url=http://justatest.de]Mike Lastname[/url]", $str_tags); // $this->assertEquals("hi @[url=http://justatest.de]Mike Lastname[/url].because", $text);
- $this->assertEquals("", $inform); $this->assertEquals("", $str_tags); } @@ -195,13 +191,11 @@ class GetTagsTest extends PHPUnit_Framework_TestCase { $this->assertTrue(in_array("@Mike This", $tags));
$this->assertTrue(in_array("#test_case", $tags));
- $inform=''; $str_tags=''; foreach($tags as $tag) { - handle_tag($this->a, $text, $inform, $str_tags, 11, $tag); + handle_tag($text, $str_tags, 11, $tag); } - $this->assertEquals("cid:15", $inform); $this->assertEquals("@[url=http://justatest.de]Mike Lastname[/url],#[url=baseurl/search?tag=test%20case]test case[/url]", $str_tags); $this->assertEquals("hi @[url=http://justatest.de]Mike Lastname[/url] This is a #[url=baseurl/search?tag=test%20case]test case[/url]", $text); @@ -255,16 +249,13 @@ class GetTagsTest extends PHPUnit_Framework_TestCase { //happens right now, but it shouldn't be necessary $this->assertTrue(in_array("@mike+15 id", $tags)); - $inform='';
$str_tags=''; foreach($tags as $tag) { - handle_tag($this->a, $text, $inform, $str_tags, 11, $tag); + handle_tag($text, $str_tags, 11, $tag); } $this->assertEquals("Test with @[url=http://justatest.de]Mike Lastname[/url] id tag", $text);
$this->assertEquals("@[url=http://justatest.de]Mike Lastname[/url]", $str_tags);
- // this test may produce two cid:15 entries - which is OK because duplicates are pruned before delivery - $this->assertContains("cid:15",$inform); } /** diff --git a/tests/unit/includes/PhotodriverTest.php b/tests/unit/includes/PhotodriverTest.php new file mode 100644 index 000000000..6f6ad0ffe --- /dev/null +++ b/tests/unit/includes/PhotodriverTest.php @@ -0,0 +1,39 @@ +<?php + +namespace Zotlabs\Tests\Unit\includes; + +//use Zotlabs\Photo\PhotoGd; +use Zotlabs\Tests\Unit\UnitTestCase; +//use phpmock\phpunit\PHPMock; + +/** + * @brief Unit Test cases for include/photo/photo_driver.php file. + */ +class PhotodriverTest extends UnitTestCase { + //use PHPMock; + + public function testPhotofactoryReturnsNullForUnsupportedType() { + // php-mock can not mock global functions which is called by a global function. + // If the calling function is in a namespace it would work. + //$logger = $this->getFunctionMock(__NAMESPACE__, 'logger'); + //$logger->expects($this->once()); + + //$ph = \photo_factory('', 'image/bmp'); + //$this->assertNull($ph); + + $this->markTestIncomplete('Need to mock logger(), otherwise not unit testable.'); + } + + public function testPhotofactoryReturnsPhotogdIfConfigIgnore_imagickIsSet() { + // php-mock can not mock global functions which is called by a global function. + // If the calling function is in a namespace it would work. + //$gc = $this->getFunctionMock(__NAMESPACE__, 'get_config'); + // simulate get_config('system', 'ignore_imagick') configured + //$gc->expects($this->once())->willReturn(1) + + //$ph = \photo_factory(file_get_contents('images/hz-16.png'), 'image/png'); + //$this->assertInstanceOf(PhotoGd::class, $ph); + + $this->markTestIncomplete('Need to mock get_config(), otherwise not unit testable.'); + } +}
\ No newline at end of file diff --git a/util/Doxyfile b/util/Doxyfile index 7be774a81..14464df81 100644 --- a/util/Doxyfile +++ b/util/Doxyfile @@ -1,7 +1,8 @@ INPUT = README.md index.php boot.php include/ install/ util/ view/ Zotlabs/ RECURSIVE = YES PROJECT_NAME = "The Hubzilla" -PROJECT_LOGO = images/rm-64.png +PROJECT_LOGO = images/hz-64.png +IMAGE_PATH = images/ EXCLUDE = .htconfig.php library/ doc/ store/ vendor/ .git/ util/zotsh/easywebdav/ util/generate-hooks-index/ EXCLUDE_PATTERNS = *smarty3* *strings.php *.out *test* OUTPUT_DIRECTORY = doc @@ -33,5 +34,6 @@ INTERACTIVE_SVG = YES CLASS_GRAPH = YES COLLABORATION_GRAPH = NO # fix @var (https://bugzilla.gnome.org/show_bug.cgi?id=626105) +# Should be obsolete with doxygen >= 1.8.15 #INPUT_FILTER = "sed -e 's/@var\s/@see /'" INPUT_FILTER = "php util/Doxygen_phpvarfilter.php" diff --git a/util/admins b/util/admins new file mode 100755 index 000000000..3c7f0e83e --- /dev/null +++ b/util/admins @@ -0,0 +1,60 @@ +#!/usr/bin/env php +<?php + +if(!file_exists('include/cli_startup.php')) { + echo 'Run admins from the top level Hubzilla web directory, as util/admins <args>' . PHP_EOL; + exit(1); +} + + + +require_once('include/cli_startup.php'); + +cli_startup(); + +$helpArgs = getopt('h', array('help')); +if (count($helpArgs) === 1) { + echo <<<'EndOfOutput' +adds, removes, or lists admins + +Usage: util/admins + util/admins list + util/admins add <account_id> + util/admins remove <account_id> + +EndOfOutput; + return; +} + +if($argc == 1) { + $r = q("select account_id, account_roles, account_email from account"); + if($r) { + foreach($r as $rr) { + echo sprintf('%4u %s %s', $rr['account_id'], $rr['account_email'],(($rr['account_roles'] & 4096) ? '*' : '')) . PHP_EOL; + } + } +} + + + +if($argc > 1 && $argv[1] === 'list') { + $r = q("select account_id, account_roles, account_email from account where (account_roles & 4096) > 0"); + if($r) { + foreach($r as $rr) { + echo sprintf('%4u %s %s', $rr['account_id'], $rr['account_email'],(($rr['account_roles'] & 4096) ? '*' : '')) . PHP_EOL; + } + } +} + + +if($argc > 2 && $argv[1] === 'add' && intval($argv[2])) { + $r = q("update account set account_roles = (account_roles | 4096) where account_id = %d", + intval($argv[2]) + ); +} + +if($argc > 2 && $argv[1] === 'remove' && intval($argv[2])) { + $r = q("update account set account_roles = (account_roles - 4096) where account_id = %d and (account_roles & 4096) > 0", + intval($argv[2]) + ); +} diff --git a/util/hmessages.po b/util/hmessages.po index 9561cab2b..91cc1f191 100644 --- a/util/hmessages.po +++ b/util/hmessages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 3.9.2\n" +"Project-Id-Version: 3.9.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-10-19 11:04+0200\n" +"POT-Creation-Date: 2019-02-19 10:11+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -150,11 +150,11 @@ msgid "Special - Group Repository" msgstr "" #: ../../Zotlabs/Access/PermissionRoles.php:306 -#: ../../Zotlabs/Module/Cdav.php:1227 ../../Zotlabs/Module/Connedit.php:919 +#: ../../Zotlabs/Module/Cdav.php:1227 ../../Zotlabs/Module/Connedit.php:935 #: ../../Zotlabs/Module/Profiles.php:795 ../../include/selectors.php:60 #: ../../include/selectors.php:77 ../../include/selectors.php:115 -#: ../../include/selectors.php:151 ../../include/event.php:1315 -#: ../../include/event.php:1322 ../../include/connections.php:703 +#: ../../include/selectors.php:151 ../../include/event.php:1327 +#: ../../include/event.php:1334 ../../include/connections.php:703 #: ../../include/connections.php:710 msgid "Other" msgstr "" @@ -163,22 +163,22 @@ msgstr "" msgid "Custom/Expert Mode" msgstr "" -#: ../../Zotlabs/Module/Blocks.php:33 ../../Zotlabs/Module/Articles.php:34 +#: ../../Zotlabs/Module/Blocks.php:33 ../../Zotlabs/Module/Articles.php:42 #: ../../Zotlabs/Module/Editlayout.php:31 ../../Zotlabs/Module/Connect.php:17 #: ../../Zotlabs/Module/Achievements.php:15 ../../Zotlabs/Module/Hcard.php:12 #: ../../Zotlabs/Module/Editblock.php:31 ../../Zotlabs/Module/Profile.php:20 #: ../../Zotlabs/Module/Menu.php:91 ../../Zotlabs/Module/Layouts.php:31 -#: ../../Zotlabs/Module/Editwebpage.php:32 ../../Zotlabs/Module/Cards.php:37 +#: ../../Zotlabs/Module/Editwebpage.php:32 ../../Zotlabs/Module/Cards.php:42 #: ../../Zotlabs/Module/Webpages.php:39 ../../Zotlabs/Module/Filestorage.php:51 -#: ../../addon/gallery/Mod_Gallery.php:47 ../../include/channel.php:1204 +#: ../../addon/gallery/Mod_Gallery.php:49 ../../include/channel.php:1253 msgid "Requested profile is not available." msgstr "" #: ../../Zotlabs/Module/Blocks.php:73 ../../Zotlabs/Module/Blocks.php:80 #: ../../Zotlabs/Module/Invite.php:21 ../../Zotlabs/Module/Invite.php:102 -#: ../../Zotlabs/Module/Articles.php:80 ../../Zotlabs/Module/Editlayout.php:67 -#: ../../Zotlabs/Module/Editlayout.php:90 ../../Zotlabs/Module/Channel.php:119 -#: ../../Zotlabs/Module/Channel.php:286 ../../Zotlabs/Module/Channel.php:325 +#: ../../Zotlabs/Module/Articles.php:88 ../../Zotlabs/Module/Editlayout.php:67 +#: ../../Zotlabs/Module/Editlayout.php:90 ../../Zotlabs/Module/Channel.php:168 +#: ../../Zotlabs/Module/Channel.php:335 ../../Zotlabs/Module/Channel.php:374 #: ../../Zotlabs/Module/Settings.php:59 ../../Zotlabs/Module/Locs.php:87 #: ../../Zotlabs/Module/Mitem.php:129 ../../Zotlabs/Module/Events.php:271 #: ../../Zotlabs/Module/Appman.php:87 ../../Zotlabs/Module/Regmod.php:20 @@ -191,17 +191,17 @@ msgstr "" #: ../../Zotlabs/Module/Thing.php:300 ../../Zotlabs/Module/Thing.php:341 #: ../../Zotlabs/Module/Api.php:24 ../../Zotlabs/Module/Editblock.php:67 #: ../../Zotlabs/Module/Profile.php:85 ../../Zotlabs/Module/Profile.php:101 -#: ../../Zotlabs/Module/Mood.php:124 ../../Zotlabs/Module/Connections.php:32 +#: ../../Zotlabs/Module/Mood.php:126 ../../Zotlabs/Module/Connections.php:32 #: ../../Zotlabs/Module/Viewsrc.php:19 ../../Zotlabs/Module/Bookmarks.php:70 #: ../../Zotlabs/Module/Photos.php:69 ../../Zotlabs/Module/Wiki.php:59 #: ../../Zotlabs/Module/Wiki.php:285 ../../Zotlabs/Module/Wiki.php:428 #: ../../Zotlabs/Module/Pdledit.php:34 ../../Zotlabs/Module/Poke.php:157 #: ../../Zotlabs/Module/Profile_photo.php:302 #: ../../Zotlabs/Module/Profile_photo.php:315 -#: ../../Zotlabs/Module/Authtest.php:16 ../../Zotlabs/Module/Item.php:229 -#: ../../Zotlabs/Module/Item.php:248 ../../Zotlabs/Module/Item.php:258 -#: ../../Zotlabs/Module/Item.php:1110 ../../Zotlabs/Module/Page.php:34 -#: ../../Zotlabs/Module/Page.php:133 ../../Zotlabs/Module/Connedit.php:390 +#: ../../Zotlabs/Module/Authtest.php:16 ../../Zotlabs/Module/Item.php:376 +#: ../../Zotlabs/Module/Item.php:395 ../../Zotlabs/Module/Item.php:405 +#: ../../Zotlabs/Module/Item.php:1281 ../../Zotlabs/Module/Page.php:34 +#: ../../Zotlabs/Module/Page.php:133 ../../Zotlabs/Module/Connedit.php:399 #: ../../Zotlabs/Module/Chat.php:115 ../../Zotlabs/Module/Chat.php:120 #: ../../Zotlabs/Module/Menu.php:129 ../../Zotlabs/Module/Menu.php:140 #: ../../Zotlabs/Module/Layouts.php:71 ../../Zotlabs/Module/Layouts.php:78 @@ -213,15 +213,15 @@ msgstr "" #: ../../Zotlabs/Module/Editwebpage.php:89 #: ../../Zotlabs/Module/Editwebpage.php:107 #: ../../Zotlabs/Module/Editwebpage.php:121 ../../Zotlabs/Module/Manage.php:10 -#: ../../Zotlabs/Module/Cards.php:81 ../../Zotlabs/Module/Webpages.php:133 +#: ../../Zotlabs/Module/Cards.php:86 ../../Zotlabs/Module/Webpages.php:133 #: ../../Zotlabs/Module/Block.php:24 ../../Zotlabs/Module/Block.php:74 #: ../../Zotlabs/Module/Editpost.php:17 ../../Zotlabs/Module/Sources.php:80 -#: ../../Zotlabs/Module/Like.php:185 ../../Zotlabs/Module/Suggest.php:32 +#: ../../Zotlabs/Module/Like.php:187 ../../Zotlabs/Module/Suggest.php:32 #: ../../Zotlabs/Module/Message.php:18 ../../Zotlabs/Module/Mail.php:146 #: ../../Zotlabs/Module/Register.php:77 #: ../../Zotlabs/Module/Cover_photo.php:313 #: ../../Zotlabs/Module/Cover_photo.php:326 -#: ../../Zotlabs/Module/Display.php:448 ../../Zotlabs/Module/Network.php:17 +#: ../../Zotlabs/Module/Display.php:446 ../../Zotlabs/Module/Network.php:19 #: ../../Zotlabs/Module/Filestorage.php:15 #: ../../Zotlabs/Module/Filestorage.php:70 #: ../../Zotlabs/Module/Filestorage.php:96 @@ -232,13 +232,14 @@ msgstr "" #: ../../Zotlabs/Module/Card_edit.php:51 #: ../../Zotlabs/Module/Notifications.php:11 ../../Zotlabs/Lib/Chatroom.php:133 #: ../../Zotlabs/Web/WebServer.php:123 ../../addon/keepout/keepout.php:36 -#: ../../addon/openid/Mod_Id.php:53 ../../addon/pumpio/pumpio.php:40 -#: ../../include/attach.php:150 ../../include/attach.php:197 -#: ../../include/attach.php:270 ../../include/attach.php:379 -#: ../../include/attach.php:393 ../../include/attach.php:400 -#: ../../include/attach.php:482 ../../include/attach.php:1042 -#: ../../include/attach.php:1116 ../../include/attach.php:1281 -#: ../../include/items.php:3675 ../../include/photos.php:27 +#: ../../addon/flashcards/Mod_Flashcards.php:167 +#: ../../addon/openid/Mod_Id.php:53 ../../addon/pumpio/pumpio.php:44 +#: ../../include/attach.php:150 ../../include/attach.php:199 +#: ../../include/attach.php:272 ../../include/attach.php:381 +#: ../../include/attach.php:395 ../../include/attach.php:402 +#: ../../include/attach.php:484 ../../include/attach.php:1044 +#: ../../include/attach.php:1118 ../../include/attach.php:1283 +#: ../../include/items.php:3781 ../../include/photos.php:27 msgid "Permission denied." msgstr "" @@ -247,7 +248,7 @@ msgstr "" msgid "Block Name" msgstr "" -#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2465 +#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2534 msgid "Blocks" msgstr "" @@ -265,11 +266,11 @@ msgstr "" msgid "Edited" msgstr "" -#: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Articles.php:108 +#: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Articles.php:116 #: ../../Zotlabs/Module/Cdav.php:1230 ../../Zotlabs/Module/New_channel.php:189 -#: ../../Zotlabs/Module/Connedit.php:922 ../../Zotlabs/Module/Menu.php:181 +#: ../../Zotlabs/Module/Connedit.php:938 ../../Zotlabs/Module/Menu.php:181 #: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Module/Profiles.php:798 -#: ../../Zotlabs/Module/Cards.php:109 ../../Zotlabs/Module/Webpages.php:254 +#: ../../Zotlabs/Module/Cards.php:113 ../../Zotlabs/Module/Webpages.php:254 #: ../../Zotlabs/Storage/Browser.php:276 ../../Zotlabs/Storage/Browser.php:390 #: ../../Zotlabs/Widget/Cdav.php:128 ../../Zotlabs/Widget/Cdav.php:165 msgid "Create" @@ -283,21 +284,21 @@ msgstr "" #: ../../Zotlabs/Module/Connections.php:322 #: ../../Zotlabs/Module/Connections.php:342 ../../Zotlabs/Module/Wiki.php:211 #: ../../Zotlabs/Module/Wiki.php:384 ../../Zotlabs/Module/Menu.php:175 -#: ../../Zotlabs/Module/Layouts.php:193 ../../Zotlabs/Module/Group.php:235 +#: ../../Zotlabs/Module/Layouts.php:193 ../../Zotlabs/Module/Group.php:252 #: ../../Zotlabs/Module/Editwebpage.php:142 #: ../../Zotlabs/Module/Webpages.php:255 ../../Zotlabs/Module/Card_edit.php:99 -#: ../../Zotlabs/Module/Oauth.php:173 ../../Zotlabs/Lib/Apps.php:534 -#: ../../Zotlabs/Lib/ThreadItem.php:130 ../../Zotlabs/Storage/Browser.php:290 +#: ../../Zotlabs/Module/Oauth.php:173 ../../Zotlabs/Lib/Apps.php:556 +#: ../../Zotlabs/Lib/ThreadItem.php:147 ../../Zotlabs/Storage/Browser.php:290 #: ../../Zotlabs/Widget/Cdav.php:126 ../../Zotlabs/Widget/Cdav.php:162 -#: ../../include/channel.php:1303 ../../include/channel.php:1307 +#: ../../include/channel.php:1352 ../../include/channel.php:1356 #: ../../include/menu.php:118 msgid "Edit" msgstr "" -#: ../../Zotlabs/Module/Blocks.php:161 ../../Zotlabs/Module/Photos.php:1104 +#: ../../Zotlabs/Module/Blocks.php:161 ../../Zotlabs/Module/Photos.php:1117 #: ../../Zotlabs/Module/Wiki.php:301 ../../Zotlabs/Module/Layouts.php:194 #: ../../Zotlabs/Module/Webpages.php:256 ../../Zotlabs/Widget/Cdav.php:124 -#: ../../addon/hsse/hsse.php:186 ../../include/conversation.php:1389 +#: ../../addon/hsse/hsse.php:186 ../../include/conversation.php:1392 msgid "Share" msgstr "" @@ -309,12 +310,12 @@ msgstr "" #: ../../Zotlabs/Module/Admin/Profs.php:176 ../../Zotlabs/Module/Thing.php:267 #: ../../Zotlabs/Module/Oauth2.php:195 ../../Zotlabs/Module/Editblock.php:139 #: ../../Zotlabs/Module/Connections.php:292 -#: ../../Zotlabs/Module/Photos.php:1205 ../../Zotlabs/Module/Connedit.php:655 -#: ../../Zotlabs/Module/Connedit.php:924 ../../Zotlabs/Module/Profiles.php:800 +#: ../../Zotlabs/Module/Photos.php:1220 ../../Zotlabs/Module/Connedit.php:668 +#: ../../Zotlabs/Module/Connedit.php:940 ../../Zotlabs/Module/Profiles.php:800 #: ../../Zotlabs/Module/Editwebpage.php:167 #: ../../Zotlabs/Module/Webpages.php:257 ../../Zotlabs/Module/Card_edit.php:129 -#: ../../Zotlabs/Module/Oauth.php:174 ../../Zotlabs/Lib/Apps.php:535 -#: ../../Zotlabs/Lib/ThreadItem.php:150 ../../Zotlabs/Storage/Browser.php:291 +#: ../../Zotlabs/Module/Oauth.php:174 ../../Zotlabs/Lib/Apps.php:557 +#: ../../Zotlabs/Lib/ThreadItem.php:167 ../../Zotlabs/Storage/Browser.php:291 #: ../../include/conversation.php:691 ../../include/conversation.php:736 msgid "Delete" msgstr "" @@ -360,20 +361,44 @@ msgstr[1] "" msgid "Invite App" msgstr "" -#: ../../Zotlabs/Module/Invite.php:110 ../../Zotlabs/Module/Articles.php:43 +#: ../../Zotlabs/Module/Invite.php:110 ../../Zotlabs/Module/Articles.php:51 #: ../../Zotlabs/Module/Cdav.php:839 ../../Zotlabs/Module/Cdav.php:848 #: ../../Zotlabs/Module/Permcats.php:62 ../../Zotlabs/Module/Lang.php:17 #: ../../Zotlabs/Module/Uexport.php:61 ../../Zotlabs/Module/Pubstream.php:20 #: ../../Zotlabs/Module/Connect.php:104 ../../Zotlabs/Module/Tokens.php:99 #: ../../Zotlabs/Module/Oauth2.php:106 ../../Zotlabs/Module/Randprof.php:29 -#: ../../Zotlabs/Module/Mood.php:132 ../../Zotlabs/Module/Bookmarks.php:78 +#: ../../Zotlabs/Module/Mood.php:134 ../../Zotlabs/Module/Bookmarks.php:78 #: ../../Zotlabs/Module/Wiki.php:52 ../../Zotlabs/Module/Pdledit.php:42 #: ../../Zotlabs/Module/Poke.php:165 ../../Zotlabs/Module/Chat.php:102 -#: ../../Zotlabs/Module/Notes.php:55 ../../Zotlabs/Module/Defperms.php:189 -#: ../../Zotlabs/Module/Group.php:101 ../../Zotlabs/Module/Cards.php:46 -#: ../../Zotlabs/Module/Webpages.php:48 ../../Zotlabs/Module/Sources.php:88 -#: ../../Zotlabs/Module/Suggest.php:40 ../../Zotlabs/Module/Probe.php:18 -#: ../../Zotlabs/Module/Oauth.php:100 +#: ../../Zotlabs/Module/Notes.php:56 ../../Zotlabs/Module/Affinity.php:52 +#: ../../Zotlabs/Module/Defperms.php:189 ../../Zotlabs/Module/Group.php:106 +#: ../../Zotlabs/Module/Cards.php:51 ../../Zotlabs/Module/Webpages.php:48 +#: ../../Zotlabs/Module/Sources.php:88 ../../Zotlabs/Module/Suggest.php:40 +#: ../../Zotlabs/Module/Probe.php:18 ../../Zotlabs/Module/Oauth.php:100 +#: ../../addon/skeleton/Mod_Skeleton.php:32 +#: ../../addon/gnusoc/Mod_Gnusoc.php:22 ../../addon/planets/Mod_Planets.php:20 +#: ../../addon/wppost/Mod_Wppost.php:41 ../../addon/nsfw/Mod_Nsfw.php:33 +#: ../../addon/ijpost/Mod_Ijpost.php:35 ../../addon/dwpost/Mod_Dwpost.php:36 +#: ../../addon/gallery/Mod_Gallery.php:58 ../../addon/ljpost/Mod_Ljpost.php:36 +#: ../../addon/startpage/Mod_Startpage.php:50 +#: ../../addon/diaspora/Mod_Diaspora.php:55 +#: ../../addon/photocache/Mod_Photocache.php:42 +#: ../../addon/rainbowtag/Mod_Rainbowtag.php:21 +#: ../../addon/nsabait/Mod_Nsabait.php:20 +#: ../../addon/fuzzloc/Mod_Fuzzloc.php:34 ../../addon/rtof/Mod_Rtof.php:36 +#: ../../addon/jappixmini/Mod_Jappixmini.php:96 +#: ../../addon/superblock/Mod_Superblock.php:20 +#: ../../addon/nofed/Mod_Nofed.php:33 ../../addon/redred/Mod_Redred.php:50 +#: ../../addon/hsse/Mod_Hsse.php:21 ../../addon/pubcrawl/Mod_Pubcrawl.php:40 +#: ../../addon/libertree/Mod_Libertree.php:35 +#: ../../addon/flattrwidget/Mod_Flattrwidget.php:53 +#: ../../addon/statusnet/Mod_Statusnet.php:146 +#: ../../addon/twitter/Mod_Twitter.php:78 +#: ../../addon/smileybutton/Mod_Smileybutton.php:35 +#: ../../addon/sendzid/Mod_Sendzid.php:20 +#: ../../addon/pageheader/Mod_Pageheader.php:34 +#: ../../addon/authchoose/Mod_Authchoose.php:28 +#: ../../addon/xmpp/Mod_Xmpp.php:35 ../../addon/pumpio/Mod_Pumpio.php:53 msgid "Not Installed" msgstr "" @@ -432,7 +457,7 @@ msgstr "" #: ../../Zotlabs/Module/Admin/Channels.php:147 #: ../../Zotlabs/Module/Admin/Themes.php:158 #: ../../Zotlabs/Module/Admin/Site.php:289 -#: ../../Zotlabs/Module/Admin/Addons.php:438 +#: ../../Zotlabs/Module/Admin/Addons.php:441 #: ../../Zotlabs/Module/Admin/Profs.php:178 #: ../../Zotlabs/Module/Admin/Account_edit.php:73 #: ../../Zotlabs/Module/Admin/Security.php:112 @@ -446,83 +471,84 @@ msgstr "" #: ../../Zotlabs/Module/Settings/Account.php:103 #: ../../Zotlabs/Module/Settings/Profiles.php:50 #: ../../Zotlabs/Module/Settings/Manage.php:41 -#: ../../Zotlabs/Module/Settings/Featured.php:54 #: ../../Zotlabs/Module/Settings/Channel_home.php:89 #: ../../Zotlabs/Module/Settings/Directory.php:41 #: ../../Zotlabs/Module/Settings/Editor.php:41 #: ../../Zotlabs/Module/Settings/Display.php:189 #: ../../Zotlabs/Module/Settings/Network.php:61 #: ../../Zotlabs/Module/Tokens.php:188 ../../Zotlabs/Module/Thing.php:326 -#: ../../Zotlabs/Module/Thing.php:379 ../../Zotlabs/Module/Import.php:565 +#: ../../Zotlabs/Module/Thing.php:379 ../../Zotlabs/Module/Import.php:574 #: ../../Zotlabs/Module/Oauth2.php:116 ../../Zotlabs/Module/Cal.php:344 -#: ../../Zotlabs/Module/Mood.php:156 ../../Zotlabs/Module/Photos.php:1084 -#: ../../Zotlabs/Module/Photos.php:1124 ../../Zotlabs/Module/Photos.php:1242 +#: ../../Zotlabs/Module/Mood.php:158 ../../Zotlabs/Module/Photos.php:1097 +#: ../../Zotlabs/Module/Photos.php:1138 ../../Zotlabs/Module/Photos.php:1257 #: ../../Zotlabs/Module/Wiki.php:215 ../../Zotlabs/Module/Pdledit.php:107 -#: ../../Zotlabs/Module/Poke.php:217 ../../Zotlabs/Module/Connedit.php:888 +#: ../../Zotlabs/Module/Poke.php:217 ../../Zotlabs/Module/Connedit.php:904 #: ../../Zotlabs/Module/Chat.php:211 ../../Zotlabs/Module/Chat.php:250 #: ../../Zotlabs/Module/Email_validation.php:40 -#: ../../Zotlabs/Module/Pconfig.php:111 ../../Zotlabs/Module/Defperms.php:265 -#: ../../Zotlabs/Module/Group.php:140 ../../Zotlabs/Module/Group.php:156 -#: ../../Zotlabs/Module/Profiles.php:723 ../../Zotlabs/Module/Editpost.php:85 -#: ../../Zotlabs/Module/Sources.php:125 ../../Zotlabs/Module/Sources.php:162 -#: ../../Zotlabs/Module/Xchan.php:15 ../../Zotlabs/Module/Mail.php:431 -#: ../../Zotlabs/Module/Filestorage.php:183 ../../Zotlabs/Module/Rate.php:166 -#: ../../Zotlabs/Module/Oauth.php:111 ../../Zotlabs/Lib/ThreadItem.php:767 -#: ../../Zotlabs/Widget/Eventstools.php:16 +#: ../../Zotlabs/Module/Pconfig.php:116 ../../Zotlabs/Module/Affinity.php:87 +#: ../../Zotlabs/Module/Defperms.php:265 ../../Zotlabs/Module/Group.php:150 +#: ../../Zotlabs/Module/Group.php:166 ../../Zotlabs/Module/Profiles.php:723 +#: ../../Zotlabs/Module/Editpost.php:85 ../../Zotlabs/Module/Sources.php:125 +#: ../../Zotlabs/Module/Sources.php:162 ../../Zotlabs/Module/Xchan.php:15 +#: ../../Zotlabs/Module/Mail.php:431 ../../Zotlabs/Module/Filestorage.php:183 +#: ../../Zotlabs/Module/Rate.php:166 ../../Zotlabs/Module/Oauth.php:111 +#: ../../Zotlabs/Lib/ThreadItem.php:795 ../../Zotlabs/Widget/Eventstools.php:16 #: ../../Zotlabs/Widget/Wiki_pages.php:42 #: ../../Zotlabs/Widget/Wiki_pages.php:99 #: ../../view/theme/redbasic_c/php/config.php:95 #: ../../view/theme/redbasic/php/config.php:94 -#: ../../addon/skeleton/skeleton.php:65 ../../addon/planets/planets.php:153 +#: ../../addon/skeleton/Mod_Skeleton.php:51 #: ../../addon/openclipatar/openclipatar.php:53 #: ../../addon/wppost/Mod_Wppost.php:97 ../../addon/nsfw/Mod_Nsfw.php:61 -#: ../../addon/ijpost/ijpost.php:89 ../../addon/dwpost/dwpost.php:89 +#: ../../addon/ijpost/Mod_Ijpost.php:72 ../../addon/dwpost/Mod_Dwpost.php:71 #: ../../addon/likebanner/likebanner.php:57 -#: ../../addon/redphotos/redphotos.php:136 ../../addon/irc/irc.php:53 -#: ../../addon/ljpost/ljpost.php:86 ../../addon/startpage/Mod_Startpage.php:73 -#: ../../addon/diaspora/Mod_Diaspora.php:99 ../../addon/hzfiles/hzfiles.php:84 -#: ../../addon/visage/visage.php:170 ../../addon/nsabait/nsabait.php:161 -#: ../../addon/mailtest/mailtest.php:100 -#: ../../addon/openstreetmap/openstreetmap.php:168 -#: ../../addon/fuzzloc/fuzzloc.php:191 ../../addon/rtof/rtof.php:101 -#: ../../addon/jappixmini/jappixmini.php:371 -#: ../../addon/channelreputation/channelreputation.php:139 -#: ../../addon/nofed/nofed.php:80 ../../addon/redred/redred.php:119 +#: ../../addon/redphotos/redphotos.php:136 ../../addon/irc/irc.php:45 +#: ../../addon/ljpost/Mod_Ljpost.php:73 +#: ../../addon/startpage/Mod_Startpage.php:73 +#: ../../addon/diaspora/Mod_Diaspora.php:99 +#: ../../addon/photocache/Mod_Photocache.php:67 +#: ../../addon/hzfiles/hzfiles.php:84 ../../addon/mailtest/mailtest.php:100 +#: ../../addon/openstreetmap/openstreetmap.php:169 +#: ../../addon/fuzzloc/Mod_Fuzzloc.php:56 ../../addon/rtof/Mod_Rtof.php:72 +#: ../../addon/jappixmini/Mod_Jappixmini.php:261 +#: ../../addon/channelreputation/channelreputation.php:140 +#: ../../addon/nofed/Mod_Nofed.php:53 ../../addon/redred/Mod_Redred.php:90 #: ../../addon/logrot/logrot.php:35 ../../addon/frphotos/frphotos.php:97 #: ../../addon/pubcrawl/Mod_Pubcrawl.php:63 -#: ../../addon/chords/Mod_Chords.php:60 ../../addon/libertree/libertree.php:85 -#: ../../addon/flattrwidget/flattrwidget.php:124 -#: ../../addon/statusnet/statusnet.php:322 -#: ../../addon/statusnet/statusnet.php:380 -#: ../../addon/statusnet/statusnet.php:432 -#: ../../addon/statusnet/statusnet.php:900 ../../addon/twitter/twitter.php:221 -#: ../../addon/twitter/twitter.php:268 -#: ../../addon/smileybutton/smileybutton.php:219 -#: ../../addon/cart/Settings/Cart.php:114 ../../addon/cart/cart.php:1263 +#: ../../addon/chords/Mod_Chords.php:60 +#: ../../addon/libertree/Mod_Libertree.php:70 +#: ../../addon/flattrwidget/Mod_Flattrwidget.php:92 +#: ../../addon/statusnet/Mod_Statusnet.php:193 +#: ../../addon/statusnet/Mod_Statusnet.php:251 +#: ../../addon/statusnet/Mod_Statusnet.php:306 +#: ../../addon/statusnet/statusnet.php:602 +#: ../../addon/twitter/Mod_Twitter.php:184 +#: ../../addon/smileybutton/Mod_Smileybutton.php:55 +#: ../../addon/cart/Settings/Cart.php:114 ../../addon/cart/cart.php:1264 #: ../../addon/cart/submodules/manualcat.php:248 #: ../../addon/cart/submodules/hzservices.php:640 #: ../../addon/cart/submodules/subscriptions.php:410 -#: ../../addon/piwik/piwik.php:95 ../../addon/pageheader/pageheader.php:48 -#: ../../addon/xmpp/xmpp.php:69 ../../addon/pumpio/pumpio.php:237 +#: ../../addon/piwik/piwik.php:95 ../../addon/pageheader/Mod_Pageheader.php:54 +#: ../../addon/xmpp/Mod_Xmpp.php:70 ../../addon/pumpio/Mod_Pumpio.php:115 #: ../../addon/redfiles/redfiles.php:124 ../../addon/hubwall/hubwall.php:95 #: ../../include/js_strings.php:22 msgid "Submit" msgstr "" -#: ../../Zotlabs/Module/Articles.php:43 +#: ../../Zotlabs/Module/Articles.php:51 msgid "Articles App" msgstr "" -#: ../../Zotlabs/Module/Articles.php:44 +#: ../../Zotlabs/Module/Articles.php:52 msgid "Create interactive articles" msgstr "" -#: ../../Zotlabs/Module/Articles.php:107 +#: ../../Zotlabs/Module/Articles.php:115 msgid "Add Article" msgstr "" -#: ../../Zotlabs/Module/Articles.php:214 ../../Zotlabs/Lib/Apps.php:302 -#: ../../include/nav.php:482 +#: ../../Zotlabs/Module/Articles.php:222 ../../Zotlabs/Lib/Apps.php:324 +#: ../../include/nav.php:512 msgid "Articles" msgstr "" @@ -550,11 +576,11 @@ msgstr "" #: ../../Zotlabs/Module/Editlayout.php:140 ../../Zotlabs/Module/Cdav.php:944 #: ../../Zotlabs/Module/Cdav.php:1233 ../../Zotlabs/Module/Article_edit.php:131 -#: ../../Zotlabs/Module/Admin/Addons.php:423 +#: ../../Zotlabs/Module/Admin/Addons.php:426 #: ../../Zotlabs/Module/Oauth2.php:117 ../../Zotlabs/Module/Oauth2.php:145 #: ../../Zotlabs/Module/Editblock.php:141 ../../Zotlabs/Module/Wiki.php:368 #: ../../Zotlabs/Module/Wiki.php:401 ../../Zotlabs/Module/Profile_photo.php:465 -#: ../../Zotlabs/Module/Connedit.php:925 ../../Zotlabs/Module/Fbrowser.php:66 +#: ../../Zotlabs/Module/Connedit.php:941 ../../Zotlabs/Module/Fbrowser.php:66 #: ../../Zotlabs/Module/Fbrowser.php:88 ../../Zotlabs/Module/Profiles.php:801 #: ../../Zotlabs/Module/Editwebpage.php:169 #: ../../Zotlabs/Module/Editpost.php:109 ../../Zotlabs/Module/Filer.php:55 @@ -562,17 +588,18 @@ msgstr "" #: ../../Zotlabs/Module/Tagrm.php:138 ../../Zotlabs/Module/Card_edit.php:131 #: ../../Zotlabs/Module/Oauth.php:112 ../../Zotlabs/Module/Oauth.php:138 #: ../../addon/hsse/hsse.php:209 ../../addon/hsse/hsse.php:258 -#: ../../include/conversation.php:1412 ../../include/conversation.php:1461 +#: ../../include/conversation.php:1415 ../../include/conversation.php:1464 msgid "Cancel" msgstr "" #: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Subthread.php:86 -#: ../../Zotlabs/Module/Import_items.php:120 ../../Zotlabs/Module/Cloud.php:126 -#: ../../Zotlabs/Module/Group.php:93 ../../Zotlabs/Module/Dreport.php:10 -#: ../../Zotlabs/Module/Dreport.php:68 ../../Zotlabs/Module/Like.php:296 -#: ../../Zotlabs/Web/WebServer.php:122 ../../addon/redphotos/redphotos.php:119 -#: ../../addon/hzfiles/hzfiles.php:73 ../../addon/frphotos/frphotos.php:82 -#: ../../addon/redfiles/redfiles.php:109 ../../include/items.php:384 +#: ../../Zotlabs/Module/Import_items.php:120 ../../Zotlabs/Module/Share.php:71 +#: ../../Zotlabs/Module/Cloud.php:126 ../../Zotlabs/Module/Group.php:98 +#: ../../Zotlabs/Module/Dreport.php:10 ../../Zotlabs/Module/Dreport.php:79 +#: ../../Zotlabs/Module/Like.php:301 ../../Zotlabs/Web/WebServer.php:122 +#: ../../addon/redphotos/redphotos.php:119 ../../addon/hzfiles/hzfiles.php:73 +#: ../../addon/frphotos/frphotos.php:82 ../../addon/redfiles/redfiles.php:109 +#: ../../include/items.php:416 msgid "Permission denied" msgstr "" @@ -584,8 +611,8 @@ msgstr "" msgid "Profile Visibility Editor" msgstr "" -#: ../../Zotlabs/Module/Profperm.php:113 ../../Zotlabs/Lib/Apps.php:337 -#: ../../include/channel.php:1651 +#: ../../Zotlabs/Module/Profperm.php:113 ../../Zotlabs/Lib/Apps.php:359 +#: ../../include/channel.php:1700 msgid "Profile" msgstr "" @@ -611,12 +638,12 @@ msgid "Summary: " msgstr "" #: ../../Zotlabs/Module/Cdav.php:811 ../../Zotlabs/Module/Cdav.php:812 -#: ../../Zotlabs/Module/Cdav.php:819 ../../Zotlabs/Module/Embedphotos.php:146 -#: ../../Zotlabs/Module/Photos.php:819 ../../Zotlabs/Module/Photos.php:1275 -#: ../../Zotlabs/Lib/Activity.php:858 ../../Zotlabs/Lib/Apps.php:994 -#: ../../Zotlabs/Lib/Apps.php:1078 ../../Zotlabs/Storage/Browser.php:164 +#: ../../Zotlabs/Module/Cdav.php:819 ../../Zotlabs/Module/Embedphotos.php:154 +#: ../../Zotlabs/Module/Photos.php:832 ../../Zotlabs/Module/Photos.php:1296 +#: ../../Zotlabs/Lib/Activity.php:1011 ../../Zotlabs/Lib/Apps.php:1113 +#: ../../Zotlabs/Lib/Apps.php:1197 ../../Zotlabs/Storage/Browser.php:164 #: ../../Zotlabs/Widget/Portfolio.php:95 ../../Zotlabs/Widget/Album.php:84 -#: ../../addon/pubcrawl/as.php:963 ../../include/conversation.php:1166 +#: ../../addon/pubcrawl/as.php:959 ../../include/conversation.php:1166 msgid "Unknown" msgstr "" @@ -685,14 +712,14 @@ msgstr "" #: ../../Zotlabs/Module/Cdav.php:924 ../../Zotlabs/Module/Events.php:690 #: ../../Zotlabs/Module/Events.php:699 ../../Zotlabs/Module/Cal.php:338 -#: ../../Zotlabs/Module/Cal.php:345 ../../Zotlabs/Module/Photos.php:973 +#: ../../Zotlabs/Module/Cal.php:345 ../../Zotlabs/Module/Photos.php:986 msgid "Previous" msgstr "" #: ../../Zotlabs/Module/Cdav.php:925 ../../Zotlabs/Module/Events.php:691 #: ../../Zotlabs/Module/Events.php:700 ../../Zotlabs/Module/Setup.php:263 #: ../../Zotlabs/Module/Cal.php:339 ../../Zotlabs/Module/Cal.php:346 -#: ../../Zotlabs/Module/Photos.php:982 +#: ../../Zotlabs/Module/Photos.php:995 msgid "Next" msgstr "" @@ -748,8 +775,8 @@ msgstr "" #: ../../Zotlabs/Module/Cdav.php:1215 ../../Zotlabs/Module/Sharedwithme.php:104 #: ../../Zotlabs/Module/Admin/Channels.php:159 #: ../../Zotlabs/Module/Oauth2.php:118 ../../Zotlabs/Module/Oauth2.php:146 -#: ../../Zotlabs/Module/Wiki.php:218 ../../Zotlabs/Module/Connedit.php:907 -#: ../../Zotlabs/Module/Chat.php:259 ../../Zotlabs/Module/Group.php:144 +#: ../../Zotlabs/Module/Wiki.php:218 ../../Zotlabs/Module/Connedit.php:923 +#: ../../Zotlabs/Module/Chat.php:259 ../../Zotlabs/Module/Group.php:154 #: ../../Zotlabs/Module/Oauth.php:113 ../../Zotlabs/Module/Oauth.php:139 #: ../../Zotlabs/Lib/NativeWikiPage.php:561 #: ../../Zotlabs/Storage/Browser.php:285 @@ -758,15 +785,15 @@ msgstr "" msgid "Name" msgstr "" -#: ../../Zotlabs/Module/Cdav.php:1216 ../../Zotlabs/Module/Connedit.php:908 +#: ../../Zotlabs/Module/Cdav.php:1216 ../../Zotlabs/Module/Connedit.php:924 msgid "Organisation" msgstr "" -#: ../../Zotlabs/Module/Cdav.php:1217 ../../Zotlabs/Module/Connedit.php:909 +#: ../../Zotlabs/Module/Cdav.php:1217 ../../Zotlabs/Module/Connedit.php:925 msgid "Title" msgstr "" -#: ../../Zotlabs/Module/Cdav.php:1218 ../../Zotlabs/Module/Connedit.php:910 +#: ../../Zotlabs/Module/Cdav.php:1218 ../../Zotlabs/Module/Connedit.php:926 #: ../../Zotlabs/Module/Profiles.php:786 msgid "Phone" msgstr "" @@ -774,97 +801,97 @@ msgstr "" #: ../../Zotlabs/Module/Cdav.php:1219 #: ../../Zotlabs/Module/Admin/Accounts.php:171 #: ../../Zotlabs/Module/Admin/Accounts.php:183 -#: ../../Zotlabs/Module/Connedit.php:911 ../../Zotlabs/Module/Profiles.php:787 +#: ../../Zotlabs/Module/Connedit.php:927 ../../Zotlabs/Module/Profiles.php:787 #: ../../addon/openid/MysqlProvider.php:56 -#: ../../addon/openid/MysqlProvider.php:57 ../../addon/rtof/rtof.php:93 -#: ../../addon/redred/redred.php:107 ../../include/network.php:1779 +#: ../../addon/openid/MysqlProvider.php:57 ../../addon/rtof/Mod_Rtof.php:57 +#: ../../addon/redred/Mod_Redred.php:71 ../../include/network.php:1721 msgid "Email" msgstr "" -#: ../../Zotlabs/Module/Cdav.php:1220 ../../Zotlabs/Module/Connedit.php:912 +#: ../../Zotlabs/Module/Cdav.php:1220 ../../Zotlabs/Module/Connedit.php:928 #: ../../Zotlabs/Module/Profiles.php:788 msgid "Instant messenger" msgstr "" -#: ../../Zotlabs/Module/Cdav.php:1221 ../../Zotlabs/Module/Connedit.php:913 +#: ../../Zotlabs/Module/Cdav.php:1221 ../../Zotlabs/Module/Connedit.php:929 #: ../../Zotlabs/Module/Profiles.php:789 msgid "Website" msgstr "" #: ../../Zotlabs/Module/Cdav.php:1222 ../../Zotlabs/Module/Locs.php:118 #: ../../Zotlabs/Module/Admin/Channels.php:160 -#: ../../Zotlabs/Module/Connedit.php:914 ../../Zotlabs/Module/Profiles.php:502 +#: ../../Zotlabs/Module/Connedit.php:930 ../../Zotlabs/Module/Profiles.php:502 #: ../../Zotlabs/Module/Profiles.php:790 msgid "Address" msgstr "" -#: ../../Zotlabs/Module/Cdav.php:1223 ../../Zotlabs/Module/Connedit.php:915 +#: ../../Zotlabs/Module/Cdav.php:1223 ../../Zotlabs/Module/Connedit.php:931 #: ../../Zotlabs/Module/Profiles.php:791 msgid "Note" msgstr "" -#: ../../Zotlabs/Module/Cdav.php:1224 ../../Zotlabs/Module/Connedit.php:916 -#: ../../Zotlabs/Module/Profiles.php:792 ../../include/event.php:1308 +#: ../../Zotlabs/Module/Cdav.php:1224 ../../Zotlabs/Module/Connedit.php:932 +#: ../../Zotlabs/Module/Profiles.php:792 ../../include/event.php:1320 #: ../../include/connections.php:696 msgid "Mobile" msgstr "" -#: ../../Zotlabs/Module/Cdav.php:1225 ../../Zotlabs/Module/Connedit.php:917 -#: ../../Zotlabs/Module/Profiles.php:793 ../../include/event.php:1309 +#: ../../Zotlabs/Module/Cdav.php:1225 ../../Zotlabs/Module/Connedit.php:933 +#: ../../Zotlabs/Module/Profiles.php:793 ../../include/event.php:1321 #: ../../include/connections.php:697 msgid "Home" msgstr "" -#: ../../Zotlabs/Module/Cdav.php:1226 ../../Zotlabs/Module/Connedit.php:918 -#: ../../Zotlabs/Module/Profiles.php:794 ../../include/event.php:1312 +#: ../../Zotlabs/Module/Cdav.php:1226 ../../Zotlabs/Module/Connedit.php:934 +#: ../../Zotlabs/Module/Profiles.php:794 ../../include/event.php:1324 #: ../../include/connections.php:700 msgid "Work" msgstr "" -#: ../../Zotlabs/Module/Cdav.php:1228 ../../Zotlabs/Module/Connedit.php:920 +#: ../../Zotlabs/Module/Cdav.php:1228 ../../Zotlabs/Module/Connedit.php:936 #: ../../Zotlabs/Module/Profiles.php:796 -#: ../../addon/jappixmini/jappixmini.php:368 +#: ../../addon/jappixmini/Mod_Jappixmini.php:216 msgid "Add Contact" msgstr "" -#: ../../Zotlabs/Module/Cdav.php:1229 ../../Zotlabs/Module/Connedit.php:921 +#: ../../Zotlabs/Module/Cdav.php:1229 ../../Zotlabs/Module/Connedit.php:937 #: ../../Zotlabs/Module/Profiles.php:797 msgid "Add Field" msgstr "" -#: ../../Zotlabs/Module/Cdav.php:1231 ../../Zotlabs/Module/Admin/Addons.php:453 +#: ../../Zotlabs/Module/Cdav.php:1231 ../../Zotlabs/Module/Admin/Addons.php:456 #: ../../Zotlabs/Module/Oauth2.php:58 ../../Zotlabs/Module/Oauth2.php:144 -#: ../../Zotlabs/Module/Connedit.php:923 ../../Zotlabs/Module/Profiles.php:799 +#: ../../Zotlabs/Module/Connedit.php:939 ../../Zotlabs/Module/Profiles.php:799 #: ../../Zotlabs/Module/Oauth.php:53 ../../Zotlabs/Module/Oauth.php:137 -#: ../../Zotlabs/Lib/Apps.php:513 +#: ../../Zotlabs/Lib/Apps.php:535 msgid "Update" msgstr "" -#: ../../Zotlabs/Module/Cdav.php:1234 ../../Zotlabs/Module/Connedit.php:926 +#: ../../Zotlabs/Module/Cdav.php:1234 ../../Zotlabs/Module/Connedit.php:942 msgid "P.O. Box" msgstr "" -#: ../../Zotlabs/Module/Cdav.php:1235 ../../Zotlabs/Module/Connedit.php:927 +#: ../../Zotlabs/Module/Cdav.php:1235 ../../Zotlabs/Module/Connedit.php:943 msgid "Additional" msgstr "" -#: ../../Zotlabs/Module/Cdav.php:1236 ../../Zotlabs/Module/Connedit.php:928 +#: ../../Zotlabs/Module/Cdav.php:1236 ../../Zotlabs/Module/Connedit.php:944 msgid "Street" msgstr "" -#: ../../Zotlabs/Module/Cdav.php:1237 ../../Zotlabs/Module/Connedit.php:929 +#: ../../Zotlabs/Module/Cdav.php:1237 ../../Zotlabs/Module/Connedit.php:945 msgid "Locality" msgstr "" -#: ../../Zotlabs/Module/Cdav.php:1238 ../../Zotlabs/Module/Connedit.php:930 +#: ../../Zotlabs/Module/Cdav.php:1238 ../../Zotlabs/Module/Connedit.php:946 msgid "Region" msgstr "" -#: ../../Zotlabs/Module/Cdav.php:1239 ../../Zotlabs/Module/Connedit.php:931 +#: ../../Zotlabs/Module/Cdav.php:1239 ../../Zotlabs/Module/Connedit.php:947 msgid "ZIP Code" msgstr "" -#: ../../Zotlabs/Module/Cdav.php:1240 ../../Zotlabs/Module/Connedit.php:932 +#: ../../Zotlabs/Module/Cdav.php:1240 ../../Zotlabs/Module/Connedit.php:948 #: ../../Zotlabs/Module/Profiles.php:757 msgid "Country" msgstr "" @@ -903,7 +930,7 @@ msgid "" "connections." msgstr "" -#: ../../Zotlabs/Module/Permcats.php:112 ../../Zotlabs/Lib/Apps.php:350 +#: ../../Zotlabs/Module/Permcats.php:112 ../../Zotlabs/Lib/Apps.php:372 msgid "Permission Categories" msgstr "" @@ -912,58 +939,58 @@ msgid "Permission category name" msgstr "" #: ../../Zotlabs/Module/Permcats.php:121 ../../Zotlabs/Module/Tokens.php:181 -#: ../../Zotlabs/Module/Connedit.php:892 ../../Zotlabs/Module/Defperms.php:266 +#: ../../Zotlabs/Module/Connedit.php:908 ../../Zotlabs/Module/Defperms.php:266 msgid "My Settings" msgstr "" #: ../../Zotlabs/Module/Permcats.php:123 ../../Zotlabs/Module/Tokens.php:183 -#: ../../Zotlabs/Module/Connedit.php:887 ../../Zotlabs/Module/Defperms.php:264 +#: ../../Zotlabs/Module/Connedit.php:903 ../../Zotlabs/Module/Defperms.php:264 msgid "inherited" msgstr "" #: ../../Zotlabs/Module/Permcats.php:126 ../../Zotlabs/Module/Tokens.php:186 -#: ../../Zotlabs/Module/Connedit.php:894 ../../Zotlabs/Module/Defperms.php:269 +#: ../../Zotlabs/Module/Connedit.php:910 ../../Zotlabs/Module/Defperms.php:269 msgid "Individual Permissions" msgstr "" #: ../../Zotlabs/Module/Permcats.php:127 ../../Zotlabs/Module/Tokens.php:187 -#: ../../Zotlabs/Module/Connedit.php:895 +#: ../../Zotlabs/Module/Connedit.php:911 msgid "" "Some permissions may be inherited from your channel's <a href=\"settings" "\"><strong>privacy settings</strong></a>, which have higher priority than " "individual settings. You can <strong>not</strong> change those settings here." msgstr "" -#: ../../Zotlabs/Module/Channel.php:39 ../../Zotlabs/Module/Ochannel.php:32 -#: ../../Zotlabs/Module/Chat.php:31 ../../addon/chess/chess.php:508 +#: ../../Zotlabs/Module/Channel.php:41 ../../Zotlabs/Module/Ochannel.php:32 +#: ../../Zotlabs/Module/Chat.php:31 ../../addon/chess/Mod_Chess.php:343 msgid "You must be logged in to see this page." msgstr "" -#: ../../Zotlabs/Module/Channel.php:54 ../../Zotlabs/Module/Hcard.php:37 +#: ../../Zotlabs/Module/Channel.php:98 ../../Zotlabs/Module/Hcard.php:37 #: ../../Zotlabs/Module/Profile.php:45 msgid "Posts and comments" msgstr "" -#: ../../Zotlabs/Module/Channel.php:61 ../../Zotlabs/Module/Hcard.php:44 +#: ../../Zotlabs/Module/Channel.php:105 ../../Zotlabs/Module/Hcard.php:44 #: ../../Zotlabs/Module/Profile.php:52 msgid "Only posts" msgstr "" -#: ../../Zotlabs/Module/Channel.php:116 +#: ../../Zotlabs/Module/Channel.php:165 msgid "Insufficient permissions. Request redirected to profile page." msgstr "" -#: ../../Zotlabs/Module/Channel.php:133 ../../Zotlabs/Module/Network.php:163 +#: ../../Zotlabs/Module/Channel.php:182 ../../Zotlabs/Module/Network.php:173 msgid "Search Results For:" msgstr "" -#: ../../Zotlabs/Module/Channel.php:168 ../../Zotlabs/Module/Hq.php:134 +#: ../../Zotlabs/Module/Channel.php:217 ../../Zotlabs/Module/Hq.php:134 #: ../../Zotlabs/Module/Pubstream.php:94 ../../Zotlabs/Module/Display.php:80 -#: ../../Zotlabs/Module/Network.php:193 +#: ../../Zotlabs/Module/Network.php:203 msgid "Reset form" msgstr "" -#: ../../Zotlabs/Module/Channel.php:424 ../../Zotlabs/Module/Display.php:374 +#: ../../Zotlabs/Module/Channel.php:476 ../../Zotlabs/Module/Display.php:373 msgid "" "You must enable javascript for your browser to be able to view this content." msgstr "" @@ -1050,7 +1077,7 @@ msgstr "" msgid "You have got no unseen posts..." msgstr "" -#: ../../Zotlabs/Module/Search.php:17 ../../Zotlabs/Module/Photos.php:545 +#: ../../Zotlabs/Module/Search.php:17 ../../Zotlabs/Module/Photos.php:558 #: ../../Zotlabs/Module/Ratings.php:83 ../../Zotlabs/Module/Directory.php:67 #: ../../Zotlabs/Module/Directory.php:72 ../../Zotlabs/Module/Display.php:29 #: ../../Zotlabs/Module/Viewconnections.php:23 @@ -1058,9 +1085,9 @@ msgid "Public access denied." msgstr "" #: ../../Zotlabs/Module/Search.php:44 ../../Zotlabs/Module/Connections.php:338 -#: ../../Zotlabs/Lib/Apps.php:328 ../../Zotlabs/Widget/Sitesearch.php:31 -#: ../../Zotlabs/Widget/Activity_filter.php:150 ../../include/text.php:1068 -#: ../../include/text.php:1080 ../../include/acl_selectors.php:118 +#: ../../Zotlabs/Lib/Apps.php:350 ../../Zotlabs/Widget/Sitesearch.php:31 +#: ../../Zotlabs/Widget/Activity_filter.php:151 ../../include/text.php:1084 +#: ../../include/text.php:1096 ../../include/acl_selectors.php:118 #: ../../include/nav.php:183 msgid "Search" msgstr "" @@ -1083,7 +1110,7 @@ msgstr "" msgid "The unmoderated public stream of this hub" msgstr "" -#: ../../Zotlabs/Module/Pubstream.php:109 ../../Zotlabs/Lib/Apps.php:352 +#: ../../Zotlabs/Module/Pubstream.php:109 ../../Zotlabs/Lib/Apps.php:374 #: ../../Zotlabs/Widget/Notifications.php:142 msgid "Public Stream" msgstr "" @@ -1114,7 +1141,7 @@ msgstr "" msgid "Manage Channel Locations" msgstr "" -#: ../../Zotlabs/Module/Locs.php:119 ../../Zotlabs/Module/Admin.php:115 +#: ../../Zotlabs/Module/Locs.php:119 msgid "Primary" msgstr "" @@ -1140,21 +1167,21 @@ msgstr "" msgid "Use this form to drop the location if the hub is no longer operating." msgstr "" -#: ../../Zotlabs/Module/Apporder.php:44 +#: ../../Zotlabs/Module/Apporder.php:47 msgid "Change Order of Pinned Navbar Apps" msgstr "" -#: ../../Zotlabs/Module/Apporder.php:44 +#: ../../Zotlabs/Module/Apporder.php:47 msgid "Change Order of App Tray Apps" msgstr "" -#: ../../Zotlabs/Module/Apporder.php:45 +#: ../../Zotlabs/Module/Apporder.php:48 msgid "" "Use arrows to move the corresponding app left (top) or right (bottom) in the " "navbar" msgstr "" -#: ../../Zotlabs/Module/Apporder.php:45 +#: ../../Zotlabs/Module/Apporder.php:48 msgid "Use arrows to move the corresponding app up or down in the app tray" msgstr "" @@ -1210,50 +1237,41 @@ msgstr "" #: ../../Zotlabs/Module/Removeme.php:63 ../../Zotlabs/Module/Admin/Site.php:255 #: ../../Zotlabs/Module/Settings/Channel.php:309 #: ../../Zotlabs/Module/Settings/Display.php:89 -#: ../../Zotlabs/Module/Import.php:554 ../../Zotlabs/Module/Import.php:558 -#: ../../Zotlabs/Module/Import.php:559 ../../Zotlabs/Module/Api.php:99 -#: ../../Zotlabs/Module/Photos.php:699 ../../Zotlabs/Module/Wiki.php:227 -#: ../../Zotlabs/Module/Wiki.php:228 ../../Zotlabs/Module/Connedit.php:397 -#: ../../Zotlabs/Module/Connedit.php:780 ../../Zotlabs/Module/Menu.php:162 +#: ../../Zotlabs/Module/Import.php:563 ../../Zotlabs/Module/Import.php:567 +#: ../../Zotlabs/Module/Import.php:568 ../../Zotlabs/Module/Api.php:99 +#: ../../Zotlabs/Module/Photos.php:712 ../../Zotlabs/Module/Wiki.php:227 +#: ../../Zotlabs/Module/Wiki.php:228 ../../Zotlabs/Module/Connedit.php:406 +#: ../../Zotlabs/Module/Connedit.php:796 ../../Zotlabs/Module/Menu.php:162 #: ../../Zotlabs/Module/Menu.php:221 ../../Zotlabs/Module/Defperms.php:197 #: ../../Zotlabs/Module/Profiles.php:681 ../../Zotlabs/Module/Sources.php:124 #: ../../Zotlabs/Module/Sources.php:159 #: ../../Zotlabs/Module/Filestorage.php:178 #: ../../Zotlabs/Module/Filestorage.php:186 ../../Zotlabs/Lib/Libzotdir.php:162 #: ../../Zotlabs/Lib/Libzotdir.php:163 ../../Zotlabs/Lib/Libzotdir.php:165 -#: ../../Zotlabs/Storage/Browser.php:405 ../../boot.php:1630 +#: ../../Zotlabs/Storage/Browser.php:405 ../../boot.php:1634 #: ../../view/theme/redbasic_c/php/config.php:100 #: ../../view/theme/redbasic_c/php/config.php:115 #: ../../view/theme/redbasic/php/config.php:99 #: ../../view/theme/redbasic/php/config.php:116 -#: ../../addon/planets/planets.php:149 ../../addon/wppost/Mod_Wppost.php:82 -#: ../../addon/wppost/Mod_Wppost.php:86 ../../addon/ijpost/ijpost.php:73 -#: ../../addon/ijpost/ijpost.php:85 ../../addon/dwpost/dwpost.php:73 -#: ../../addon/dwpost/dwpost.php:85 ../../addon/ljpost/ljpost.php:70 -#: ../../addon/ljpost/ljpost.php:82 ../../addon/visage/visage.php:166 -#: ../../addon/nsabait/nsabait.php:157 ../../addon/fuzzloc/fuzzloc.php:178 -#: ../../addon/rtof/rtof.php:81 ../../addon/rtof/rtof.php:85 -#: ../../addon/jappixmini/jappixmini.php:309 -#: ../../addon/jappixmini/jappixmini.php:313 -#: ../../addon/jappixmini/jappixmini.php:343 -#: ../../addon/jappixmini/jappixmini.php:351 -#: ../../addon/jappixmini/jappixmini.php:355 -#: ../../addon/jappixmini/jappixmini.php:359 -#: ../../addon/channelreputation/channelreputation.php:111 -#: ../../addon/nofed/nofed.php:72 ../../addon/nofed/nofed.php:76 -#: ../../addon/redred/redred.php:95 ../../addon/redred/redred.php:99 -#: ../../addon/libertree/libertree.php:69 -#: ../../addon/libertree/libertree.php:81 -#: ../../addon/flattrwidget/flattrwidget.php:120 -#: ../../addon/statusnet/statusnet.php:389 -#: ../../addon/statusnet/statusnet.php:411 -#: ../../addon/statusnet/statusnet.php:415 -#: ../../addon/statusnet/statusnet.php:424 ../../addon/twitter/twitter.php:246 -#: ../../addon/twitter/twitter.php:255 ../../addon/twitter/twitter.php:264 -#: ../../addon/smileybutton/smileybutton.php:211 -#: ../../addon/smileybutton/smileybutton.php:215 +#: ../../addon/wppost/Mod_Wppost.php:82 ../../addon/wppost/Mod_Wppost.php:86 +#: ../../addon/ijpost/Mod_Ijpost.php:61 ../../addon/dwpost/Mod_Dwpost.php:60 +#: ../../addon/ljpost/Mod_Ljpost.php:62 ../../addon/rtof/Mod_Rtof.php:49 +#: ../../addon/jappixmini/Mod_Jappixmini.php:161 +#: ../../addon/jappixmini/Mod_Jappixmini.php:191 +#: ../../addon/jappixmini/Mod_Jappixmini.php:199 +#: ../../addon/jappixmini/Mod_Jappixmini.php:203 +#: ../../addon/jappixmini/Mod_Jappixmini.php:207 +#: ../../addon/channelreputation/channelreputation.php:108 +#: ../../addon/nofed/Mod_Nofed.php:42 ../../addon/redred/Mod_Redred.php:63 +#: ../../addon/libertree/Mod_Libertree.php:59 +#: ../../addon/statusnet/Mod_Statusnet.php:260 +#: ../../addon/statusnet/Mod_Statusnet.php:282 +#: ../../addon/statusnet/Mod_Statusnet.php:291 +#: ../../addon/twitter/Mod_Twitter.php:162 +#: ../../addon/twitter/Mod_Twitter.php:171 +#: ../../addon/smileybutton/Mod_Smileybutton.php:44 #: ../../addon/cart/Settings/Cart.php:59 ../../addon/cart/Settings/Cart.php:71 -#: ../../addon/cart/cart.php:1257 +#: ../../addon/cart/cart.php:1258 #: ../../addon/cart/submodules/paypalbutton.php:87 #: ../../addon/cart/submodules/paypalbutton.php:95 #: ../../addon/cart/submodules/manualcat.php:63 @@ -1264,9 +1282,8 @@ msgstr "" #: ../../addon/cart/submodules/hzservices.php:650 #: ../../addon/cart/submodules/subscriptions.php:153 #: ../../addon/cart/submodules/subscriptions.php:425 -#: ../../addon/xmpp/xmpp.php:53 ../../addon/pumpio/pumpio.php:219 -#: ../../addon/pumpio/pumpio.php:223 ../../addon/pumpio/pumpio.php:227 -#: ../../addon/pumpio/pumpio.php:231 ../../include/dir_fns.php:143 +#: ../../addon/pumpio/Mod_Pumpio.php:94 ../../addon/pumpio/Mod_Pumpio.php:98 +#: ../../addon/pumpio/Mod_Pumpio.php:102 ../../include/dir_fns.php:143 #: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145 msgid "No" msgstr "" @@ -1277,49 +1294,40 @@ msgstr "" #: ../../Zotlabs/Module/Removeme.php:63 ../../Zotlabs/Module/Admin/Site.php:257 #: ../../Zotlabs/Module/Settings/Channel.php:309 #: ../../Zotlabs/Module/Settings/Display.php:89 -#: ../../Zotlabs/Module/Import.php:554 ../../Zotlabs/Module/Import.php:558 -#: ../../Zotlabs/Module/Import.php:559 ../../Zotlabs/Module/Api.php:98 -#: ../../Zotlabs/Module/Photos.php:699 ../../Zotlabs/Module/Wiki.php:227 -#: ../../Zotlabs/Module/Wiki.php:228 ../../Zotlabs/Module/Connedit.php:397 +#: ../../Zotlabs/Module/Import.php:563 ../../Zotlabs/Module/Import.php:567 +#: ../../Zotlabs/Module/Import.php:568 ../../Zotlabs/Module/Api.php:98 +#: ../../Zotlabs/Module/Photos.php:712 ../../Zotlabs/Module/Wiki.php:227 +#: ../../Zotlabs/Module/Wiki.php:228 ../../Zotlabs/Module/Connedit.php:406 #: ../../Zotlabs/Module/Menu.php:162 ../../Zotlabs/Module/Menu.php:221 #: ../../Zotlabs/Module/Defperms.php:197 ../../Zotlabs/Module/Profiles.php:681 #: ../../Zotlabs/Module/Sources.php:124 ../../Zotlabs/Module/Sources.php:159 #: ../../Zotlabs/Module/Filestorage.php:178 #: ../../Zotlabs/Module/Filestorage.php:186 ../../Zotlabs/Lib/Libzotdir.php:162 #: ../../Zotlabs/Lib/Libzotdir.php:163 ../../Zotlabs/Lib/Libzotdir.php:165 -#: ../../Zotlabs/Storage/Browser.php:405 ../../boot.php:1630 +#: ../../Zotlabs/Storage/Browser.php:405 ../../boot.php:1634 #: ../../view/theme/redbasic_c/php/config.php:100 #: ../../view/theme/redbasic_c/php/config.php:115 #: ../../view/theme/redbasic/php/config.php:99 #: ../../view/theme/redbasic/php/config.php:116 -#: ../../addon/planets/planets.php:149 ../../addon/wppost/Mod_Wppost.php:82 -#: ../../addon/wppost/Mod_Wppost.php:86 ../../addon/ijpost/ijpost.php:73 -#: ../../addon/ijpost/ijpost.php:85 ../../addon/dwpost/dwpost.php:73 -#: ../../addon/dwpost/dwpost.php:85 ../../addon/ljpost/ljpost.php:70 -#: ../../addon/ljpost/ljpost.php:82 ../../addon/visage/visage.php:166 -#: ../../addon/nsabait/nsabait.php:157 ../../addon/fuzzloc/fuzzloc.php:178 -#: ../../addon/rtof/rtof.php:81 ../../addon/rtof/rtof.php:85 -#: ../../addon/jappixmini/jappixmini.php:309 -#: ../../addon/jappixmini/jappixmini.php:313 -#: ../../addon/jappixmini/jappixmini.php:343 -#: ../../addon/jappixmini/jappixmini.php:351 -#: ../../addon/jappixmini/jappixmini.php:355 -#: ../../addon/jappixmini/jappixmini.php:359 -#: ../../addon/channelreputation/channelreputation.php:111 -#: ../../addon/nofed/nofed.php:72 ../../addon/nofed/nofed.php:76 -#: ../../addon/redred/redred.php:95 ../../addon/redred/redred.php:99 -#: ../../addon/libertree/libertree.php:69 -#: ../../addon/libertree/libertree.php:81 -#: ../../addon/flattrwidget/flattrwidget.php:120 -#: ../../addon/statusnet/statusnet.php:389 -#: ../../addon/statusnet/statusnet.php:411 -#: ../../addon/statusnet/statusnet.php:415 -#: ../../addon/statusnet/statusnet.php:424 ../../addon/twitter/twitter.php:246 -#: ../../addon/twitter/twitter.php:255 ../../addon/twitter/twitter.php:264 -#: ../../addon/smileybutton/smileybutton.php:211 -#: ../../addon/smileybutton/smileybutton.php:215 +#: ../../addon/wppost/Mod_Wppost.php:82 ../../addon/wppost/Mod_Wppost.php:86 +#: ../../addon/ijpost/Mod_Ijpost.php:61 ../../addon/dwpost/Mod_Dwpost.php:60 +#: ../../addon/ljpost/Mod_Ljpost.php:62 ../../addon/rtof/Mod_Rtof.php:49 +#: ../../addon/jappixmini/Mod_Jappixmini.php:161 +#: ../../addon/jappixmini/Mod_Jappixmini.php:191 +#: ../../addon/jappixmini/Mod_Jappixmini.php:199 +#: ../../addon/jappixmini/Mod_Jappixmini.php:203 +#: ../../addon/jappixmini/Mod_Jappixmini.php:207 +#: ../../addon/channelreputation/channelreputation.php:108 +#: ../../addon/nofed/Mod_Nofed.php:42 ../../addon/redred/Mod_Redred.php:63 +#: ../../addon/libertree/Mod_Libertree.php:59 +#: ../../addon/statusnet/Mod_Statusnet.php:260 +#: ../../addon/statusnet/Mod_Statusnet.php:282 +#: ../../addon/statusnet/Mod_Statusnet.php:291 +#: ../../addon/twitter/Mod_Twitter.php:162 +#: ../../addon/twitter/Mod_Twitter.php:171 +#: ../../addon/smileybutton/Mod_Smileybutton.php:44 #: ../../addon/cart/Settings/Cart.php:59 ../../addon/cart/Settings/Cart.php:71 -#: ../../addon/cart/cart.php:1257 +#: ../../addon/cart/cart.php:1258 #: ../../addon/cart/submodules/paypalbutton.php:87 #: ../../addon/cart/submodules/paypalbutton.php:95 #: ../../addon/cart/submodules/manualcat.php:63 @@ -1330,9 +1338,8 @@ msgstr "" #: ../../addon/cart/submodules/hzservices.php:650 #: ../../addon/cart/submodules/subscriptions.php:153 #: ../../addon/cart/submodules/subscriptions.php:425 -#: ../../addon/xmpp/xmpp.php:53 ../../addon/pumpio/pumpio.php:219 -#: ../../addon/pumpio/pumpio.php:223 ../../addon/pumpio/pumpio.php:227 -#: ../../addon/pumpio/pumpio.php:231 ../../include/dir_fns.php:143 +#: ../../addon/pumpio/Mod_Pumpio.php:94 ../../addon/pumpio/Mod_Pumpio.php:98 +#: ../../addon/pumpio/Mod_Pumpio.php:102 ../../include/dir_fns.php:143 #: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145 msgid "Yes" msgstr "" @@ -1443,8 +1450,8 @@ msgid "Event not found." msgstr "" #: ../../Zotlabs/Module/Events.php:260 ../../Zotlabs/Module/Tagger.php:73 -#: ../../Zotlabs/Module/Like.php:386 ../../include/conversation.php:119 -#: ../../include/text.php:2031 ../../include/event.php:1153 +#: ../../Zotlabs/Module/Like.php:394 ../../include/conversation.php:119 +#: ../../include/text.php:2094 ../../include/event.php:1165 msgid "event" msgstr "" @@ -1505,14 +1512,14 @@ msgstr "" msgid "Edit Location" msgstr "" -#: ../../Zotlabs/Module/Events.php:480 ../../Zotlabs/Module/Photos.php:1125 -#: ../../Zotlabs/Module/Webpages.php:262 ../../Zotlabs/Lib/ThreadItem.php:777 -#: ../../addon/hsse/hsse.php:153 ../../include/conversation.php:1356 +#: ../../Zotlabs/Module/Events.php:480 ../../Zotlabs/Module/Photos.php:1139 +#: ../../Zotlabs/Module/Webpages.php:262 ../../Zotlabs/Lib/ThreadItem.php:805 +#: ../../addon/hsse/hsse.php:153 ../../include/conversation.php:1359 msgid "Preview" msgstr "" #: ../../Zotlabs/Module/Events.php:481 ../../addon/hsse/hsse.php:225 -#: ../../include/conversation.php:1428 +#: ../../include/conversation.php:1431 msgid "Permission settings" msgstr "" @@ -1537,7 +1544,7 @@ msgid "Delete event" msgstr "" #: ../../Zotlabs/Module/Events.php:663 ../../Zotlabs/Module/Cal.php:314 -#: ../../include/text.php:1850 +#: ../../include/text.php:1913 msgid "Link to Source" msgstr "" @@ -1554,7 +1561,7 @@ msgid "Create Event" msgstr "" #: ../../Zotlabs/Module/Events.php:692 ../../Zotlabs/Module/Cal.php:340 -#: ../../include/channel.php:1654 +#: ../../include/channel.php:1703 msgid "Export" msgstr "" @@ -1626,27 +1633,27 @@ msgstr "" msgid "Hub not found." msgstr "" -#: ../../Zotlabs/Module/Subthread.php:111 ../../Zotlabs/Module/Tagger.php:69 -#: ../../Zotlabs/Module/Like.php:384 ../../Zotlabs/Lib/Activity.php:1570 +#: ../../Zotlabs/Module/Subthread.php:112 ../../Zotlabs/Module/Tagger.php:69 +#: ../../Zotlabs/Module/Like.php:392 ../../Zotlabs/Lib/Activity.php:1959 #: ../../addon/redphotos/redphotohelper.php:71 -#: ../../addon/diaspora/Receiver.php:1539 ../../addon/pubcrawl/as.php:1511 -#: ../../include/conversation.php:116 ../../include/text.php:2028 +#: ../../addon/diaspora/Receiver.php:1551 ../../addon/pubcrawl/as.php:1504 +#: ../../include/conversation.php:116 ../../include/text.php:2091 msgid "photo" msgstr "" -#: ../../Zotlabs/Module/Subthread.php:111 ../../Zotlabs/Module/Like.php:384 -#: ../../Zotlabs/Lib/Activity.php:1570 ../../addon/diaspora/Receiver.php:1539 -#: ../../addon/pubcrawl/as.php:1511 ../../include/conversation.php:144 -#: ../../include/text.php:2034 +#: ../../Zotlabs/Module/Subthread.php:112 ../../Zotlabs/Module/Like.php:392 +#: ../../Zotlabs/Lib/Activity.php:1959 ../../addon/diaspora/Receiver.php:1551 +#: ../../addon/pubcrawl/as.php:1504 ../../include/conversation.php:144 +#: ../../include/text.php:2097 msgid "status" msgstr "" -#: ../../Zotlabs/Module/Subthread.php:142 +#: ../../Zotlabs/Module/Subthread.php:143 #, php-format msgid "%1$s is following %2$s's %3$s" msgstr "" -#: ../../Zotlabs/Module/Subthread.php:144 +#: ../../Zotlabs/Module/Subthread.php:145 #, php-format msgid "%1$s stopped following %2$s's %3$s" msgstr "" @@ -1667,9 +1674,9 @@ msgid "Insert web link" msgstr "" #: ../../Zotlabs/Module/Article_edit.php:117 -#: ../../Zotlabs/Module/Editblock.php:129 ../../Zotlabs/Module/Photos.php:700 -#: ../../Zotlabs/Module/Photos.php:1070 ../../Zotlabs/Module/Card_edit.php:117 -#: ../../addon/hsse/hsse.php:221 ../../include/conversation.php:1424 +#: ../../Zotlabs/Module/Editblock.php:129 ../../Zotlabs/Module/Photos.php:713 +#: ../../Zotlabs/Module/Photos.php:1083 ../../Zotlabs/Module/Card_edit.php:117 +#: ../../addon/hsse/hsse.php:221 ../../include/conversation.php:1427 msgid "Title (optional)" msgstr "" @@ -1708,7 +1715,7 @@ msgid "Use this form to import existing posts and content from an export file." msgstr "" #: ../../Zotlabs/Module/Import_items.php:127 -#: ../../Zotlabs/Module/Import.php:548 +#: ../../Zotlabs/Module/Import.php:557 msgid "File to Upload" msgstr "" @@ -1719,8 +1726,8 @@ msgstr "" #: ../../Zotlabs/Module/New_channel.php:157 #: ../../Zotlabs/Module/New_channel.php:164 -#: ../../Zotlabs/Module/Connedit.php:853 ../../Zotlabs/Module/Defperms.php:256 -#: ../../Zotlabs/Widget/Notifications.php:162 ../../include/nav.php:293 +#: ../../Zotlabs/Module/Connedit.php:869 ../../Zotlabs/Module/Defperms.php:256 +#: ../../Zotlabs/Widget/Notifications.php:162 ../../include/nav.php:323 msgid "Loading" msgstr "" @@ -1844,7 +1851,7 @@ msgid "NEW" msgstr "" #: ../../Zotlabs/Module/Sharedwithme.php:106 -#: ../../Zotlabs/Storage/Browser.php:287 ../../include/text.php:1457 +#: ../../Zotlabs/Storage/Browser.php:287 ../../include/text.php:1496 msgid "Size" msgstr "" @@ -1890,7 +1897,7 @@ msgid "" msgstr "" #: ../../Zotlabs/Module/Setup.php:198 ../../Zotlabs/Module/Setup.php:262 -#: ../../Zotlabs/Module/Setup.php:756 +#: ../../Zotlabs/Module/Setup.php:761 msgid "Please see the file \"install/INSTALL.txt\"." msgstr "" @@ -2034,229 +2041,235 @@ msgstr "" msgid "PHP register_argc_argv" msgstr "" -#: ../../Zotlabs/Module/Setup.php:446 +#: ../../Zotlabs/Module/Setup.php:448 +msgid "" +"This is not sufficient to upload larger images or files. You should be able " +"to upload at least 4 MB at once." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:450 #, php-format msgid "" "Your max allowed total upload size is set to %s. Maximum size of one file to " "upload is set to %s. You are allowed to upload up to %d files at once." msgstr "" -#: ../../Zotlabs/Module/Setup.php:451 +#: ../../Zotlabs/Module/Setup.php:456 msgid "You can adjust these settings in the server php.ini file." msgstr "" -#: ../../Zotlabs/Module/Setup.php:453 +#: ../../Zotlabs/Module/Setup.php:458 msgid "PHP upload limits" msgstr "" -#: ../../Zotlabs/Module/Setup.php:476 +#: ../../Zotlabs/Module/Setup.php:481 msgid "" "Error: the \"openssl_pkey_new\" function on this system is not able to " "generate encryption keys" msgstr "" -#: ../../Zotlabs/Module/Setup.php:477 +#: ../../Zotlabs/Module/Setup.php:482 msgid "" "If running under Windows, please see \"http://www.php.net/manual/en/openssl." "installation.php\"." msgstr "" -#: ../../Zotlabs/Module/Setup.php:480 +#: ../../Zotlabs/Module/Setup.php:485 msgid "Generate encryption keys" msgstr "" -#: ../../Zotlabs/Module/Setup.php:497 +#: ../../Zotlabs/Module/Setup.php:502 msgid "libCurl PHP module" msgstr "" -#: ../../Zotlabs/Module/Setup.php:498 +#: ../../Zotlabs/Module/Setup.php:503 msgid "GD graphics PHP module" msgstr "" -#: ../../Zotlabs/Module/Setup.php:499 +#: ../../Zotlabs/Module/Setup.php:504 msgid "OpenSSL PHP module" msgstr "" -#: ../../Zotlabs/Module/Setup.php:500 +#: ../../Zotlabs/Module/Setup.php:505 msgid "PDO database PHP module" msgstr "" -#: ../../Zotlabs/Module/Setup.php:501 +#: ../../Zotlabs/Module/Setup.php:506 msgid "mb_string PHP module" msgstr "" -#: ../../Zotlabs/Module/Setup.php:502 +#: ../../Zotlabs/Module/Setup.php:507 msgid "xml PHP module" msgstr "" -#: ../../Zotlabs/Module/Setup.php:503 +#: ../../Zotlabs/Module/Setup.php:508 msgid "zip PHP module" msgstr "" -#: ../../Zotlabs/Module/Setup.php:507 ../../Zotlabs/Module/Setup.php:509 +#: ../../Zotlabs/Module/Setup.php:512 ../../Zotlabs/Module/Setup.php:514 msgid "Apache mod_rewrite module" msgstr "" -#: ../../Zotlabs/Module/Setup.php:507 +#: ../../Zotlabs/Module/Setup.php:512 msgid "" "Error: Apache webserver mod-rewrite module is required but not installed." msgstr "" -#: ../../Zotlabs/Module/Setup.php:513 ../../Zotlabs/Module/Setup.php:516 +#: ../../Zotlabs/Module/Setup.php:518 ../../Zotlabs/Module/Setup.php:521 msgid "exec" msgstr "" -#: ../../Zotlabs/Module/Setup.php:513 +#: ../../Zotlabs/Module/Setup.php:518 msgid "" "Error: exec is required but is either not installed or has been disabled in " "php.ini" msgstr "" -#: ../../Zotlabs/Module/Setup.php:519 ../../Zotlabs/Module/Setup.php:522 +#: ../../Zotlabs/Module/Setup.php:524 ../../Zotlabs/Module/Setup.php:527 msgid "shell_exec" msgstr "" -#: ../../Zotlabs/Module/Setup.php:519 +#: ../../Zotlabs/Module/Setup.php:524 msgid "" "Error: shell_exec is required but is either not installed or has been " "disabled in php.ini" msgstr "" -#: ../../Zotlabs/Module/Setup.php:527 +#: ../../Zotlabs/Module/Setup.php:532 msgid "Error: libCURL PHP module required but not installed." msgstr "" -#: ../../Zotlabs/Module/Setup.php:531 +#: ../../Zotlabs/Module/Setup.php:536 msgid "" "Error: GD PHP module with JPEG support or ImageMagick graphics library " "required but not installed." msgstr "" -#: ../../Zotlabs/Module/Setup.php:535 +#: ../../Zotlabs/Module/Setup.php:540 msgid "Error: openssl PHP module required but not installed." msgstr "" -#: ../../Zotlabs/Module/Setup.php:541 +#: ../../Zotlabs/Module/Setup.php:546 msgid "" "Error: PDO database PHP module missing a driver for either mysql or pgsql." msgstr "" -#: ../../Zotlabs/Module/Setup.php:546 +#: ../../Zotlabs/Module/Setup.php:551 msgid "Error: PDO database PHP module required but not installed." msgstr "" -#: ../../Zotlabs/Module/Setup.php:550 +#: ../../Zotlabs/Module/Setup.php:555 msgid "Error: mb_string PHP module required but not installed." msgstr "" -#: ../../Zotlabs/Module/Setup.php:554 +#: ../../Zotlabs/Module/Setup.php:559 msgid "Error: xml PHP module required for DAV but not installed." msgstr "" -#: ../../Zotlabs/Module/Setup.php:558 +#: ../../Zotlabs/Module/Setup.php:563 msgid "Error: zip PHP module required but not installed." msgstr "" -#: ../../Zotlabs/Module/Setup.php:577 ../../Zotlabs/Module/Setup.php:586 +#: ../../Zotlabs/Module/Setup.php:582 ../../Zotlabs/Module/Setup.php:591 msgid ".htconfig.php is writable" msgstr "" -#: ../../Zotlabs/Module/Setup.php:582 +#: ../../Zotlabs/Module/Setup.php:587 msgid "" "The web installer needs to be able to create a file called \".htconfig.php\" " "in the top folder of your web server and it is unable to do so." msgstr "" -#: ../../Zotlabs/Module/Setup.php:583 +#: ../../Zotlabs/Module/Setup.php:588 msgid "" "This is most often a permission setting, as the web server may not be able " "to write files in your folder - even if you can." msgstr "" -#: ../../Zotlabs/Module/Setup.php:584 +#: ../../Zotlabs/Module/Setup.php:589 msgid "Please see install/INSTALL.txt for additional information." msgstr "" -#: ../../Zotlabs/Module/Setup.php:600 +#: ../../Zotlabs/Module/Setup.php:605 msgid "" "This software uses the Smarty3 template engine to render its web views. " "Smarty3 compiles templates to PHP to speed up rendering." msgstr "" -#: ../../Zotlabs/Module/Setup.php:601 +#: ../../Zotlabs/Module/Setup.php:606 #, php-format msgid "" "In order to store these compiled templates, the web server needs to have " "write access to the directory %s under the top level web folder." msgstr "" -#: ../../Zotlabs/Module/Setup.php:602 ../../Zotlabs/Module/Setup.php:623 +#: ../../Zotlabs/Module/Setup.php:607 ../../Zotlabs/Module/Setup.php:628 msgid "" "Please ensure that the user that your web server runs as (e.g. www-data) has " "write access to this folder." msgstr "" -#: ../../Zotlabs/Module/Setup.php:603 +#: ../../Zotlabs/Module/Setup.php:608 #, php-format msgid "" "Note: as a security measure, you should give the web server write access to " "%s only--not the template files (.tpl) that it contains." msgstr "" -#: ../../Zotlabs/Module/Setup.php:606 +#: ../../Zotlabs/Module/Setup.php:611 #, php-format msgid "%s is writable" msgstr "" -#: ../../Zotlabs/Module/Setup.php:622 +#: ../../Zotlabs/Module/Setup.php:627 msgid "" "This software uses the store directory to save uploaded files. The web " "server needs to have write access to the store directory under the top level " "web folder" msgstr "" -#: ../../Zotlabs/Module/Setup.php:626 +#: ../../Zotlabs/Module/Setup.php:631 msgid "store is writable" msgstr "" -#: ../../Zotlabs/Module/Setup.php:658 +#: ../../Zotlabs/Module/Setup.php:663 msgid "" "SSL certificate cannot be validated. Fix certificate or disable https access " "to this site." msgstr "" -#: ../../Zotlabs/Module/Setup.php:659 +#: ../../Zotlabs/Module/Setup.php:664 msgid "" "If you have https access to your website or allow connections to TCP port " "443 (the https: port), you MUST use a browser-valid certificate. You MUST " "NOT use self-signed certificates!" msgstr "" -#: ../../Zotlabs/Module/Setup.php:660 +#: ../../Zotlabs/Module/Setup.php:665 msgid "" "This restriction is incorporated because public posts from you may for " "example contain references to images on your own hub." msgstr "" -#: ../../Zotlabs/Module/Setup.php:661 +#: ../../Zotlabs/Module/Setup.php:666 msgid "" "If your certificate is not recognized, members of other sites (who may " "themselves have valid certificates) will get a warning message on their own " "site complaining about security issues." msgstr "" -#: ../../Zotlabs/Module/Setup.php:662 +#: ../../Zotlabs/Module/Setup.php:667 msgid "" "This can cause usability issues elsewhere (not just on your own site) so we " "must insist on this requirement." msgstr "" -#: ../../Zotlabs/Module/Setup.php:663 +#: ../../Zotlabs/Module/Setup.php:668 msgid "" "Providers are available that issue free certificates which are browser-valid." msgstr "" -#: ../../Zotlabs/Module/Setup.php:665 +#: ../../Zotlabs/Module/Setup.php:670 msgid "" "If you are confident that the certificate is valid and signed by a trusted " "authority, check to see if you have failed to install an intermediate cert. " @@ -2264,36 +2277,36 @@ msgid "" "server communications." msgstr "" -#: ../../Zotlabs/Module/Setup.php:667 +#: ../../Zotlabs/Module/Setup.php:672 msgid "SSL certificate validation" msgstr "" -#: ../../Zotlabs/Module/Setup.php:673 +#: ../../Zotlabs/Module/Setup.php:678 msgid "" "Url rewrite in .htaccess is not working. Check your server configuration." "Test: " msgstr "" -#: ../../Zotlabs/Module/Setup.php:676 +#: ../../Zotlabs/Module/Setup.php:681 msgid "Url rewrite is working" msgstr "" -#: ../../Zotlabs/Module/Setup.php:690 +#: ../../Zotlabs/Module/Setup.php:695 msgid "" "The database configuration file \".htconfig.php\" could not be written. " "Please use the enclosed text to create a configuration file in your web " "server root." msgstr "" -#: ../../Zotlabs/Module/Setup.php:714 ../../addon/rendezvous/rendezvous.php:401 +#: ../../Zotlabs/Module/Setup.php:719 ../../addon/rendezvous/rendezvous.php:401 msgid "Errors encountered creating database tables." msgstr "" -#: ../../Zotlabs/Module/Setup.php:754 +#: ../../Zotlabs/Module/Setup.php:759 msgid "<h1>What next?</h1>" msgstr "" -#: ../../Zotlabs/Module/Setup.php:755 +#: ../../Zotlabs/Module/Setup.php:760 msgid "" "IMPORTANT: You will need to [manually] setup a scheduled task for the poller." msgstr "" @@ -2458,7 +2471,7 @@ msgstr[1] "" msgid "Account not found" msgstr "" -#: ../../Zotlabs/Module/Admin/Accounts.php:91 ../../include/channel.php:2497 +#: ../../Zotlabs/Module/Admin/Accounts.php:91 ../../include/channel.php:2562 #, php-format msgid "Account '%s' deleted" msgstr "" @@ -2480,9 +2493,9 @@ msgstr "" #: ../../Zotlabs/Module/Admin/Themes.php:156 #: ../../Zotlabs/Module/Admin/Site.php:287 #: ../../Zotlabs/Module/Admin/Addons.php:341 -#: ../../Zotlabs/Module/Admin/Addons.php:436 +#: ../../Zotlabs/Module/Admin/Addons.php:439 #: ../../Zotlabs/Module/Admin/Security.php:92 -#: ../../Zotlabs/Module/Admin.php:140 +#: ../../Zotlabs/Module/Admin.php:138 msgid "Administration" msgstr "" @@ -2520,12 +2533,12 @@ msgid "Deny" msgstr "" #: ../../Zotlabs/Module/Admin/Accounts.php:176 -#: ../../Zotlabs/Module/Connedit.php:623 +#: ../../Zotlabs/Module/Connedit.php:636 msgid "Block" msgstr "" #: ../../Zotlabs/Module/Admin/Accounts.php:177 -#: ../../Zotlabs/Module/Connedit.php:623 +#: ../../Zotlabs/Module/Connedit.php:636 msgid "Unblock" msgstr "" @@ -2667,7 +2680,7 @@ msgstr "" msgid "Disallow Code" msgstr "" -#: ../../Zotlabs/Module/Admin/Channels.php:154 ../../include/nav.php:391 +#: ../../Zotlabs/Module/Admin/Channels.php:154 ../../include/nav.php:421 msgid "Channel" msgstr "" @@ -2698,8 +2711,8 @@ msgstr "" #: ../../Zotlabs/Module/Admin/Themes.php:72 #: ../../Zotlabs/Module/Admin/Addons.php:259 ../../Zotlabs/Module/Thing.php:94 #: ../../Zotlabs/Module/Viewsrc.php:25 ../../Zotlabs/Module/Display.php:45 -#: ../../Zotlabs/Module/Display.php:452 ../../Zotlabs/Module/Filestorage.php:24 -#: ../../Zotlabs/Module/Admin.php:62 ../../include/items.php:3587 +#: ../../Zotlabs/Module/Display.php:450 ../../Zotlabs/Module/Filestorage.php:24 +#: ../../Zotlabs/Module/Admin.php:62 ../../include/items.php:3693 msgid "Item not found." msgstr "" @@ -2728,9 +2741,9 @@ msgid "Toggle" msgstr "" #: ../../Zotlabs/Module/Admin/Themes.php:125 -#: ../../Zotlabs/Module/Admin/Addons.php:344 ../../Zotlabs/Lib/Apps.php:314 +#: ../../Zotlabs/Module/Admin/Addons.php:344 ../../Zotlabs/Lib/Apps.php:336 #: ../../Zotlabs/Widget/Newmember.php:53 -#: ../../Zotlabs/Widget/Settings_menu.php:68 ../../include/nav.php:97 +#: ../../Zotlabs/Widget/Settings_menu.php:61 ../../include/nav.php:97 msgid "Settings" msgstr "" @@ -2758,7 +2771,7 @@ msgstr "" #: ../../Zotlabs/Module/Admin/Site.php:187 #: ../../view/theme/redbasic_c/php/config.php:15 -#: ../../view/theme/redbasic/php/config.php:15 ../../include/text.php:3087 +#: ../../view/theme/redbasic/php/config.php:15 ../../include/text.php:3210 msgid "Default" msgstr "" @@ -2831,7 +2844,7 @@ msgid "Advanced" msgstr "" #: ../../Zotlabs/Module/Admin/Site.php:297 -#: ../../addon/statusnet/statusnet.php:891 +#: ../../addon/statusnet/statusnet.php:593 msgid "Site name" msgstr "" @@ -3027,7 +3040,7 @@ msgstr "" #: ../../Zotlabs/Module/Admin/Site.php:323 #: ../../Zotlabs/Module/Admin/Site.php:324 -#: ../../Zotlabs/Module/Connedit.php:876 ../../Zotlabs/Module/Connedit.php:877 +#: ../../Zotlabs/Module/Connedit.php:892 ../../Zotlabs/Module/Connedit.php:893 msgid "" "words one per line or #tags or /patterns/ or lang=xx, leave blank to import " "all posts" @@ -3212,7 +3225,7 @@ msgid "Plugin %s enabled." msgstr "" #: ../../Zotlabs/Module/Admin/Addons.php:342 -#: ../../Zotlabs/Module/Admin/Addons.php:437 ../../Zotlabs/Widget/Admin.php:27 +#: ../../Zotlabs/Module/Admin/Addons.php:440 ../../Zotlabs/Widget/Admin.php:27 msgid "Addons" msgstr "" @@ -3237,56 +3250,56 @@ msgid "Requires: " msgstr "" #: ../../Zotlabs/Module/Admin/Addons.php:358 -#: ../../Zotlabs/Module/Admin/Addons.php:442 +#: ../../Zotlabs/Module/Admin/Addons.php:445 msgid "Disabled - version incompatibility" msgstr "" -#: ../../Zotlabs/Module/Admin/Addons.php:411 +#: ../../Zotlabs/Module/Admin/Addons.php:414 msgid "Enter the public git repository URL of the addon repo." msgstr "" -#: ../../Zotlabs/Module/Admin/Addons.php:412 +#: ../../Zotlabs/Module/Admin/Addons.php:415 msgid "Addon repo git URL" msgstr "" -#: ../../Zotlabs/Module/Admin/Addons.php:413 +#: ../../Zotlabs/Module/Admin/Addons.php:416 msgid "Custom repo name" msgstr "" -#: ../../Zotlabs/Module/Admin/Addons.php:413 +#: ../../Zotlabs/Module/Admin/Addons.php:416 msgid "(optional)" msgstr "" -#: ../../Zotlabs/Module/Admin/Addons.php:414 +#: ../../Zotlabs/Module/Admin/Addons.php:417 msgid "Download Addon Repo" msgstr "" -#: ../../Zotlabs/Module/Admin/Addons.php:421 +#: ../../Zotlabs/Module/Admin/Addons.php:424 msgid "Install new repo" msgstr "" -#: ../../Zotlabs/Module/Admin/Addons.php:422 ../../Zotlabs/Lib/Apps.php:513 +#: ../../Zotlabs/Module/Admin/Addons.php:425 ../../Zotlabs/Lib/Apps.php:535 msgid "Install" msgstr "" -#: ../../Zotlabs/Module/Admin/Addons.php:445 +#: ../../Zotlabs/Module/Admin/Addons.php:448 msgid "Manage Repos" msgstr "" -#: ../../Zotlabs/Module/Admin/Addons.php:446 +#: ../../Zotlabs/Module/Admin/Addons.php:449 msgid "Installed Addon Repositories" msgstr "" -#: ../../Zotlabs/Module/Admin/Addons.php:447 +#: ../../Zotlabs/Module/Admin/Addons.php:450 msgid "Install a New Addon Repository" msgstr "" -#: ../../Zotlabs/Module/Admin/Addons.php:454 +#: ../../Zotlabs/Module/Admin/Addons.php:457 msgid "Switch branch" msgstr "" -#: ../../Zotlabs/Module/Admin/Addons.php:455 -#: ../../Zotlabs/Module/Photos.php:1022 ../../Zotlabs/Module/Tagrm.php:137 +#: ../../Zotlabs/Module/Admin/Addons.php:458 +#: ../../Zotlabs/Module/Photos.php:1035 ../../Zotlabs/Module/Tagrm.php:137 #: ../../addon/superblock/Mod_Superblock.php:91 msgid "Remove" msgstr "" @@ -3333,8 +3346,9 @@ msgstr "" #: ../../Zotlabs/Module/Admin/Profs.php:94 #: ../../Zotlabs/Module/Admin/Profs.php:114 ../../Zotlabs/Module/Rbmark.php:32 #: ../../Zotlabs/Module/Rbmark.php:104 ../../Zotlabs/Module/Filer.php:53 -#: ../../Zotlabs/Widget/Notes.php:23 ../../include/text.php:1069 -#: ../../include/text.php:1081 +#: ../../Zotlabs/Widget/Notes.php:23 +#: ../../addon/queueworker/Mod_Queueworker.php:102 ../../include/text.php:1085 +#: ../../include/text.php:1097 msgid "Save" msgstr "" @@ -3540,7 +3554,7 @@ msgid "Visible to:" msgstr "" #: ../../Zotlabs/Module/Lockview.php:117 ../../Zotlabs/Module/Lockview.php:153 -#: ../../Zotlabs/Module/Acl.php:120 ../../include/acl_selectors.php:88 +#: ../../Zotlabs/Module/Acl.php:121 ../../include/acl_selectors.php:88 msgctxt "acl" msgid "Profile" msgstr "" @@ -3558,19 +3572,19 @@ msgstr "" #: ../../Zotlabs/Module/Settings/Channel.php:75 #: ../../Zotlabs/Module/Settings/Channel.php:78 #: ../../Zotlabs/Module/Settings/Channel.php:89 -#: ../../Zotlabs/Module/Connedit.php:712 ../../Zotlabs/Widget/Affinity.php:24 -#: ../../include/selectors.php:134 ../../include/channel.php:444 -#: ../../include/channel.php:445 ../../include/channel.php:452 +#: ../../Zotlabs/Module/Connedit.php:725 ../../Zotlabs/Widget/Affinity.php:32 +#: ../../include/selectors.php:134 ../../include/channel.php:493 +#: ../../include/channel.php:494 ../../include/channel.php:501 msgid "Friends" msgstr "" #: ../../Zotlabs/Module/Settings/Channel.php:266 #: ../../Zotlabs/Module/Defperms.php:111 #: ../../addon/rendezvous/rendezvous.php:82 -#: ../../addon/openstreetmap/openstreetmap.php:184 +#: ../../addon/openstreetmap/openstreetmap.php:185 #: ../../addon/msgfooter/msgfooter.php:54 ../../addon/logrot/logrot.php:54 -#: ../../addon/twitter/twitter.php:775 ../../addon/piwik/piwik.php:116 -#: ../../addon/xmpp/xmpp.php:102 +#: ../../addon/twitter/twitter.php:605 ../../addon/piwik/piwik.php:116 +#: ../../addon/xmpp/xmpp.php:54 msgid "Settings updated." msgstr "" @@ -3644,7 +3658,7 @@ msgstr "" msgid "Basic Settings" msgstr "" -#: ../../Zotlabs/Module/Settings/Channel.php:499 ../../include/channel.php:1528 +#: ../../Zotlabs/Module/Settings/Channel.php:499 ../../include/channel.php:1577 msgid "Full Name:" msgstr "" @@ -3861,7 +3875,7 @@ msgstr "" #: ../../Zotlabs/Module/Settings/Channel.php:572 #: ../../Zotlabs/Module/Settings/Channel.php:573 #: ../../Zotlabs/Module/Settings/Channel.php:574 -#: ../../addon/jappixmini/jappixmini.php:343 +#: ../../addon/jappixmini/Mod_Jappixmini.php:191 msgid "Recommended" msgstr "" @@ -4070,39 +4084,15 @@ msgstr "" msgid "Channel Manager Settings" msgstr "" -#: ../../Zotlabs/Module/Settings/Featured.php:23 -msgid "Affinity Slider settings updated." -msgstr "" - -#: ../../Zotlabs/Module/Settings/Featured.php:38 +#: ../../Zotlabs/Module/Settings/Featured.php:24 msgid "No feature settings configured" msgstr "" -#: ../../Zotlabs/Module/Settings/Featured.php:45 -msgid "Default maximum affinity level" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Featured.php:45 -msgid "0-99 default 99" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Featured.php:50 -msgid "Default minimum affinity level" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Featured.php:50 -msgid "0-99 - default 0" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Featured.php:54 -msgid "Affinity Slider Settings" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Featured.php:67 +#: ../../Zotlabs/Module/Settings/Featured.php:33 msgid "Addon Settings" msgstr "" -#: ../../Zotlabs/Module/Settings/Featured.php:68 +#: ../../Zotlabs/Module/Settings/Featured.php:34 msgid "Please save/submit changes to any panel before opening another." msgstr "" @@ -4228,18 +4218,18 @@ msgstr "" msgid "Stream Settings" msgstr "" -#: ../../Zotlabs/Module/Embedphotos.php:140 ../../Zotlabs/Module/Photos.php:813 -#: ../../Zotlabs/Module/Photos.php:1352 ../../Zotlabs/Widget/Portfolio.php:87 +#: ../../Zotlabs/Module/Embedphotos.php:148 ../../Zotlabs/Module/Photos.php:826 +#: ../../Zotlabs/Module/Photos.php:1374 ../../Zotlabs/Widget/Portfolio.php:87 #: ../../Zotlabs/Widget/Album.php:78 msgid "View Photo" msgstr "" -#: ../../Zotlabs/Module/Embedphotos.php:156 ../../Zotlabs/Module/Photos.php:844 +#: ../../Zotlabs/Module/Embedphotos.php:164 ../../Zotlabs/Module/Photos.php:857 #: ../../Zotlabs/Widget/Portfolio.php:108 ../../Zotlabs/Widget/Album.php:95 msgid "Edit Album" msgstr "" -#: ../../Zotlabs/Module/Embedphotos.php:158 ../../Zotlabs/Module/Photos.php:714 +#: ../../Zotlabs/Module/Embedphotos.php:166 ../../Zotlabs/Module/Photos.php:727 #: ../../Zotlabs/Module/Profile_photo.php:459 #: ../../Zotlabs/Module/Cover_photo.php:395 #: ../../Zotlabs/Storage/Browser.php:392 ../../Zotlabs/Widget/Cdav.php:133 @@ -4299,7 +4289,7 @@ msgstr "" msgid "Expires (yyyy-mm-dd)" msgstr "" -#: ../../Zotlabs/Module/Tokens.php:180 ../../Zotlabs/Module/Connedit.php:891 +#: ../../Zotlabs/Module/Tokens.php:180 ../../Zotlabs/Module/Connedit.php:907 msgid "Their Settings" msgstr "" @@ -4361,8 +4351,8 @@ msgid "URL for photo of thing (optional)" msgstr "" #: ../../Zotlabs/Module/Thing.php:319 ../../Zotlabs/Module/Thing.php:372 -#: ../../Zotlabs/Module/Photos.php:704 ../../Zotlabs/Module/Photos.php:1073 -#: ../../Zotlabs/Module/Connedit.php:677 ../../Zotlabs/Module/Chat.php:243 +#: ../../Zotlabs/Module/Photos.php:717 ../../Zotlabs/Module/Photos.php:1086 +#: ../../Zotlabs/Module/Connedit.php:690 ../../Zotlabs/Module/Chat.php:243 #: ../../Zotlabs/Module/Filestorage.php:170 ../../include/acl_selectors.php:123 msgid "Permissions" msgstr "" @@ -4383,56 +4373,56 @@ msgstr "" msgid "Connection added." msgstr "" -#: ../../Zotlabs/Module/Import.php:146 +#: ../../Zotlabs/Module/Import.php:155 #, php-format msgid "Your service plan only allows %d channels." msgstr "" -#: ../../Zotlabs/Module/Import.php:173 +#: ../../Zotlabs/Module/Import.php:182 msgid "No channel. Import failed." msgstr "" -#: ../../Zotlabs/Module/Import.php:513 +#: ../../Zotlabs/Module/Import.php:522 #: ../../addon/diaspora/import_diaspora.php:141 msgid "Import completed." msgstr "" -#: ../../Zotlabs/Module/Import.php:541 +#: ../../Zotlabs/Module/Import.php:550 msgid "You must be logged in to use this feature." msgstr "" -#: ../../Zotlabs/Module/Import.php:546 +#: ../../Zotlabs/Module/Import.php:555 msgid "Import Channel" msgstr "" -#: ../../Zotlabs/Module/Import.php:547 +#: ../../Zotlabs/Module/Import.php:556 msgid "" "Use this form to import an existing channel from a different server/hub. You " "may retrieve the channel identity from the old server/hub via the network or " "provide an export file." msgstr "" -#: ../../Zotlabs/Module/Import.php:549 +#: ../../Zotlabs/Module/Import.php:558 msgid "Or provide the old server/hub details" msgstr "" -#: ../../Zotlabs/Module/Import.php:551 +#: ../../Zotlabs/Module/Import.php:560 msgid "Your old identity address (xyz@example.com)" msgstr "" -#: ../../Zotlabs/Module/Import.php:552 +#: ../../Zotlabs/Module/Import.php:561 msgid "Your old login email address" msgstr "" -#: ../../Zotlabs/Module/Import.php:553 +#: ../../Zotlabs/Module/Import.php:562 msgid "Your old login password" msgstr "" -#: ../../Zotlabs/Module/Import.php:554 +#: ../../Zotlabs/Module/Import.php:563 msgid "Import a few months of posts if possible (limited by available memory" msgstr "" -#: ../../Zotlabs/Module/Import.php:556 +#: ../../Zotlabs/Module/Import.php:565 msgid "" "For either option, please choose whether to make this hub your new primary " "address, or whether your old location should continue this role. You will be " @@ -4440,44 +4430,44 @@ msgid "" "location for files, photos, and media." msgstr "" -#: ../../Zotlabs/Module/Import.php:558 +#: ../../Zotlabs/Module/Import.php:567 msgid "Make this hub my primary location" msgstr "" -#: ../../Zotlabs/Module/Import.php:559 +#: ../../Zotlabs/Module/Import.php:568 msgid "Move this channel (disable all previous locations)" msgstr "" -#: ../../Zotlabs/Module/Import.php:560 +#: ../../Zotlabs/Module/Import.php:569 msgid "Use this channel nickname instead of the one provided" msgstr "" -#: ../../Zotlabs/Module/Import.php:560 +#: ../../Zotlabs/Module/Import.php:569 msgid "" "Leave blank to keep your existing channel nickname. You will be randomly " "assigned a similar nickname if either name is already allocated on this site." msgstr "" -#: ../../Zotlabs/Module/Import.php:562 +#: ../../Zotlabs/Module/Import.php:571 msgid "" "This process may take several minutes to complete. Please submit the form " "only once and leave this page open until finished." msgstr "" -#: ../../Zotlabs/Module/Rmagic.php:35 +#: ../../Zotlabs/Module/Rmagic.php:44 msgid "Authentication failed." msgstr "" -#: ../../Zotlabs/Module/Rmagic.php:75 ../../boot.php:1626 -#: ../../include/channel.php:2341 +#: ../../Zotlabs/Module/Rmagic.php:93 ../../boot.php:1630 +#: ../../include/channel.php:2405 msgid "Remote Authentication" msgstr "" -#: ../../Zotlabs/Module/Rmagic.php:76 ../../include/channel.php:2342 +#: ../../Zotlabs/Module/Rmagic.php:94 ../../include/channel.php:2406 msgid "Enter your channel address (e.g. channel@example.com)" msgstr "" -#: ../../Zotlabs/Module/Rmagic.php:77 ../../include/channel.php:2343 +#: ../../Zotlabs/Module/Rmagic.php:95 ../../include/channel.php:2407 msgid "Authenticate" msgstr "" @@ -4504,7 +4494,7 @@ msgstr "" #: ../../Zotlabs/Module/Oauth2.php:119 ../../Zotlabs/Module/Oauth2.php:147 #: ../../Zotlabs/Module/Oauth.php:115 ../../Zotlabs/Module/Oauth.php:141 -#: ../../addon/statusnet/statusnet.php:893 ../../addon/twitter/twitter.php:785 +#: ../../addon/statusnet/statusnet.php:595 ../../addon/twitter/twitter.php:615 msgid "Consumer Secret" msgstr "" @@ -4570,7 +4560,7 @@ msgstr "" msgid "Permissions denied." msgstr "" -#: ../../Zotlabs/Module/Cal.php:343 ../../include/text.php:2489 +#: ../../Zotlabs/Module/Cal.php:343 ../../include/text.php:2558 msgid "Import" msgstr "" @@ -4628,21 +4618,21 @@ msgstr "" msgid "Create Custom App" msgstr "" -#: ../../Zotlabs/Module/Mood.php:75 ../../include/conversation.php:268 +#: ../../Zotlabs/Module/Mood.php:76 ../../include/conversation.php:268 #, php-format msgctxt "mood" msgid "%1$s is %2$s" msgstr "" -#: ../../Zotlabs/Module/Mood.php:132 +#: ../../Zotlabs/Module/Mood.php:134 msgid "Mood App" msgstr "" -#: ../../Zotlabs/Module/Mood.php:133 ../../Zotlabs/Module/Mood.php:153 +#: ../../Zotlabs/Module/Mood.php:135 ../../Zotlabs/Module/Mood.php:155 msgid "Set your current mood and tell your friends" msgstr "" -#: ../../Zotlabs/Module/Mood.php:152 ../../Zotlabs/Lib/Apps.php:325 +#: ../../Zotlabs/Module/Mood.php:154 ../../Zotlabs/Lib/Apps.php:347 msgid "Mood" msgstr "" @@ -4683,7 +4673,7 @@ msgstr "" #: ../../Zotlabs/Module/Connections.php:97 #: ../../Zotlabs/Module/Connections.php:111 -#: ../../Zotlabs/Module/Connedit.php:714 ../../Zotlabs/Widget/Affinity.php:26 +#: ../../Zotlabs/Module/Connedit.php:727 ../../Zotlabs/Widget/Affinity.php:34 msgid "All" msgstr "" @@ -4778,7 +4768,7 @@ msgid "Ignore connection" msgstr "" #: ../../Zotlabs/Module/Connections.php:308 -#: ../../Zotlabs/Module/Connedit.php:631 +#: ../../Zotlabs/Module/Connedit.php:644 msgid "Ignore" msgstr "" @@ -4786,8 +4776,8 @@ msgstr "" msgid "Recent activity" msgstr "" -#: ../../Zotlabs/Module/Connections.php:334 ../../Zotlabs/Lib/Apps.php:308 -#: ../../include/text.php:981 ../../include/features.php:125 +#: ../../Zotlabs/Module/Connections.php:334 ../../Zotlabs/Lib/Apps.php:330 +#: ../../include/text.php:991 ../../include/features.php:125 msgid "Connections" msgstr "" @@ -4869,190 +4859,190 @@ msgstr "" msgid "Delete Album" msgstr "" -#: ../../Zotlabs/Module/Photos.php:174 ../../Zotlabs/Module/Photos.php:1085 +#: ../../Zotlabs/Module/Photos.php:174 ../../Zotlabs/Module/Photos.php:1098 msgid "Delete Photo" msgstr "" -#: ../../Zotlabs/Module/Photos.php:556 +#: ../../Zotlabs/Module/Photos.php:569 msgid "No photos selected" msgstr "" -#: ../../Zotlabs/Module/Photos.php:605 +#: ../../Zotlabs/Module/Photos.php:618 msgid "Access to this item is restricted." msgstr "" -#: ../../Zotlabs/Module/Photos.php:648 +#: ../../Zotlabs/Module/Photos.php:661 #, php-format msgid "%1$.2f MB of %2$.2f MB photo storage used." msgstr "" -#: ../../Zotlabs/Module/Photos.php:651 +#: ../../Zotlabs/Module/Photos.php:664 #, php-format msgid "%1$.2f MB photo storage used." msgstr "" -#: ../../Zotlabs/Module/Photos.php:693 +#: ../../Zotlabs/Module/Photos.php:706 msgid "Upload Photos" msgstr "" -#: ../../Zotlabs/Module/Photos.php:697 +#: ../../Zotlabs/Module/Photos.php:710 msgid "Enter an album name" msgstr "" -#: ../../Zotlabs/Module/Photos.php:698 +#: ../../Zotlabs/Module/Photos.php:711 msgid "or select an existing album (doubleclick)" msgstr "" -#: ../../Zotlabs/Module/Photos.php:699 +#: ../../Zotlabs/Module/Photos.php:712 msgid "Create a status post for this upload" msgstr "" -#: ../../Zotlabs/Module/Photos.php:701 +#: ../../Zotlabs/Module/Photos.php:714 msgid "Description (optional)" msgstr "" -#: ../../Zotlabs/Module/Photos.php:787 +#: ../../Zotlabs/Module/Photos.php:800 msgid "Show Newest First" msgstr "" -#: ../../Zotlabs/Module/Photos.php:789 +#: ../../Zotlabs/Module/Photos.php:802 msgid "Show Oldest First" msgstr "" -#: ../../Zotlabs/Module/Photos.php:846 ../../Zotlabs/Module/Photos.php:1383 +#: ../../Zotlabs/Module/Photos.php:859 ../../Zotlabs/Module/Photos.php:1405 msgid "Add Photos" msgstr "" -#: ../../Zotlabs/Module/Photos.php:894 +#: ../../Zotlabs/Module/Photos.php:907 msgid "Permission denied. Access to this item may be restricted." msgstr "" -#: ../../Zotlabs/Module/Photos.php:896 +#: ../../Zotlabs/Module/Photos.php:909 msgid "Photo not available" msgstr "" -#: ../../Zotlabs/Module/Photos.php:954 +#: ../../Zotlabs/Module/Photos.php:967 msgid "Use as profile photo" msgstr "" -#: ../../Zotlabs/Module/Photos.php:955 +#: ../../Zotlabs/Module/Photos.php:968 msgid "Use as cover photo" msgstr "" -#: ../../Zotlabs/Module/Photos.php:962 +#: ../../Zotlabs/Module/Photos.php:975 msgid "Private Photo" msgstr "" -#: ../../Zotlabs/Module/Photos.php:977 +#: ../../Zotlabs/Module/Photos.php:990 msgid "View Full Size" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1059 +#: ../../Zotlabs/Module/Photos.php:1072 msgid "Edit photo" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1061 +#: ../../Zotlabs/Module/Photos.php:1074 msgid "Rotate CW (right)" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1062 +#: ../../Zotlabs/Module/Photos.php:1075 msgid "Rotate CCW (left)" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1065 +#: ../../Zotlabs/Module/Photos.php:1078 msgid "Move photo to album" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1066 +#: ../../Zotlabs/Module/Photos.php:1079 msgid "Enter a new album name" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1067 +#: ../../Zotlabs/Module/Photos.php:1080 msgid "or select an existing one (doubleclick)" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1072 +#: ../../Zotlabs/Module/Photos.php:1085 msgid "Add a Tag" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1080 +#: ../../Zotlabs/Module/Photos.php:1093 msgid "Example: @bob, @Barbara_Jensen, @jim@example.com" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1083 +#: ../../Zotlabs/Module/Photos.php:1096 msgid "Flag as adult in album view" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1102 ../../Zotlabs/Lib/ThreadItem.php:289 +#: ../../Zotlabs/Module/Photos.php:1115 ../../Zotlabs/Lib/ThreadItem.php:306 msgid "I like this (toggle)" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1103 ../../Zotlabs/Lib/ThreadItem.php:290 +#: ../../Zotlabs/Module/Photos.php:1116 ../../Zotlabs/Lib/ThreadItem.php:307 msgid "I don't like this (toggle)" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1105 ../../Zotlabs/Lib/ThreadItem.php:441 +#: ../../Zotlabs/Module/Photos.php:1118 ../../Zotlabs/Lib/ThreadItem.php:469 #: ../../include/conversation.php:787 msgid "Please wait" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1121 ../../Zotlabs/Module/Photos.php:1239 -#: ../../Zotlabs/Lib/ThreadItem.php:764 +#: ../../Zotlabs/Module/Photos.php:1135 ../../Zotlabs/Module/Photos.php:1254 +#: ../../Zotlabs/Lib/ThreadItem.php:792 msgid "This is you" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1123 ../../Zotlabs/Module/Photos.php:1241 -#: ../../Zotlabs/Lib/ThreadItem.php:766 ../../include/js_strings.php:6 +#: ../../Zotlabs/Module/Photos.php:1137 ../../Zotlabs/Module/Photos.php:1256 +#: ../../Zotlabs/Lib/ThreadItem.php:794 ../../include/js_strings.php:6 msgid "Comment" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1139 ../../include/conversation.php:619 +#: ../../Zotlabs/Module/Photos.php:1154 ../../include/conversation.php:619 msgctxt "title" msgid "Likes" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1139 ../../include/conversation.php:619 +#: ../../Zotlabs/Module/Photos.php:1154 ../../include/conversation.php:619 msgctxt "title" msgid "Dislikes" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1140 ../../include/conversation.php:620 +#: ../../Zotlabs/Module/Photos.php:1155 ../../include/conversation.php:620 msgctxt "title" msgid "Agree" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1140 ../../include/conversation.php:620 +#: ../../Zotlabs/Module/Photos.php:1155 ../../include/conversation.php:620 msgctxt "title" msgid "Disagree" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1140 ../../include/conversation.php:620 +#: ../../Zotlabs/Module/Photos.php:1155 ../../include/conversation.php:620 msgctxt "title" msgid "Abstain" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1141 ../../include/conversation.php:621 +#: ../../Zotlabs/Module/Photos.php:1156 ../../include/conversation.php:621 msgctxt "title" msgid "Attending" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1141 ../../include/conversation.php:621 +#: ../../Zotlabs/Module/Photos.php:1156 ../../include/conversation.php:621 msgctxt "title" msgid "Not attending" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1141 ../../include/conversation.php:621 +#: ../../Zotlabs/Module/Photos.php:1156 ../../include/conversation.php:621 msgctxt "title" msgid "Might attend" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1158 ../../Zotlabs/Module/Photos.php:1170 -#: ../../Zotlabs/Lib/ThreadItem.php:214 ../../Zotlabs/Lib/ThreadItem.php:226 +#: ../../Zotlabs/Module/Photos.php:1173 ../../Zotlabs/Module/Photos.php:1185 +#: ../../Zotlabs/Lib/ThreadItem.php:231 ../../Zotlabs/Lib/ThreadItem.php:243 msgid "View all" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1162 ../../Zotlabs/Lib/ThreadItem.php:218 -#: ../../include/conversation.php:1693 ../../include/channel.php:1546 +#: ../../Zotlabs/Module/Photos.php:1177 ../../Zotlabs/Lib/ThreadItem.php:235 +#: ../../include/conversation.php:1702 ../../include/channel.php:1595 #: ../../include/taxonomy.php:661 msgctxt "noun" msgid "Like" @@ -5060,47 +5050,48 @@ msgid_plural "Likes" msgstr[0] "" msgstr[1] "" -#: ../../Zotlabs/Module/Photos.php:1167 ../../Zotlabs/Lib/ThreadItem.php:223 -#: ../../include/conversation.php:1696 +#: ../../Zotlabs/Module/Photos.php:1182 ../../Zotlabs/Lib/ThreadItem.php:240 +#: ../../include/conversation.php:1705 msgctxt "noun" msgid "Dislike" msgid_plural "Dislikes" msgstr[0] "" msgstr[1] "" -#: ../../Zotlabs/Module/Photos.php:1267 +#: ../../Zotlabs/Module/Photos.php:1288 msgid "Photo Tools" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1276 +#: ../../Zotlabs/Module/Photos.php:1297 msgid "In This Photo:" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1281 +#: ../../Zotlabs/Module/Photos.php:1302 msgid "Map" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1289 ../../Zotlabs/Lib/ThreadItem.php:429 +#: ../../Zotlabs/Module/Photos.php:1310 ../../Zotlabs/Lib/ThreadItem.php:457 msgctxt "noun" msgid "Likes" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1290 ../../Zotlabs/Lib/ThreadItem.php:430 +#: ../../Zotlabs/Module/Photos.php:1311 ../../Zotlabs/Lib/ThreadItem.php:458 msgctxt "noun" msgid "Dislikes" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1295 ../../Zotlabs/Lib/ThreadItem.php:435 +#: ../../Zotlabs/Module/Photos.php:1316 ../../Zotlabs/Lib/ThreadItem.php:463 #: ../../include/acl_selectors.php:125 msgid "Close" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1367 ../../Zotlabs/Module/Photos.php:1380 -#: ../../Zotlabs/Module/Photos.php:1381 ../../include/photos.php:668 +#: ../../Zotlabs/Module/Photos.php:1389 ../../Zotlabs/Module/Photos.php:1402 +#: ../../Zotlabs/Module/Photos.php:1403 ../../include/photos.php:670 msgid "Recent Photos" msgstr "" -#: ../../Zotlabs/Module/Wiki.php:35 ../../addon/cart/cart.php:1297 +#: ../../Zotlabs/Module/Wiki.php:35 +#: ../../addon/flashcards/Mod_Flashcards.php:34 ../../addon/cart/cart.php:1298 msgid "Profile Unavailable." msgstr "" @@ -5113,7 +5104,7 @@ msgid "Provide a wiki for your channel" msgstr "" #: ../../Zotlabs/Module/Wiki.php:77 ../../addon/cart/myshop.php:37 -#: ../../addon/cart/cart.php:1440 +#: ../../addon/cart/cart.php:1444 #: ../../addon/cart/submodules/paypalbutton.php:456 #: ../../addon/cart/manual_payments.php:93 msgid "Invalid channel" @@ -5131,8 +5122,8 @@ msgstr "" msgid "Error downloading wiki: " msgstr "" -#: ../../Zotlabs/Module/Wiki.php:206 ../../Zotlabs/Widget/Wiki_list.php:19 -#: ../../include/nav.php:506 +#: ../../Zotlabs/Module/Wiki.php:206 ../../Zotlabs/Widget/Wiki_list.php:15 +#: ../../include/nav.php:536 msgid "Wikis" msgstr "" @@ -5156,18 +5147,18 @@ msgstr "" #: ../../Zotlabs/Module/Wiki.php:217 ../../Zotlabs/Module/Wiki.php:371 #: ../../Zotlabs/Widget/Wiki_pages.php:38 #: ../../Zotlabs/Widget/Wiki_pages.php:95 ../../addon/mdpost/mdpost.php:41 -#: ../../include/text.php:1892 +#: ../../include/text.php:1955 msgid "Markdown" msgstr "" #: ../../Zotlabs/Module/Wiki.php:217 ../../Zotlabs/Module/Wiki.php:371 #: ../../Zotlabs/Widget/Wiki_pages.php:38 -#: ../../Zotlabs/Widget/Wiki_pages.php:95 ../../include/text.php:1890 +#: ../../Zotlabs/Widget/Wiki_pages.php:95 ../../include/text.php:1953 msgid "BBcode" msgstr "" #: ../../Zotlabs/Module/Wiki.php:217 ../../Zotlabs/Widget/Wiki_pages.php:38 -#: ../../Zotlabs/Widget/Wiki_pages.php:95 ../../include/text.php:1893 +#: ../../Zotlabs/Widget/Wiki_pages.php:95 ../../include/text.php:1956 msgid "Text" msgstr "" @@ -5233,14 +5224,14 @@ msgid "Embed image from photo albums" msgstr "" #: ../../Zotlabs/Module/Wiki.php:400 ../../addon/hsse/hsse.php:208 -#: ../../include/conversation.php:1411 +#: ../../include/conversation.php:1414 msgid "Embed an image from your albums" msgstr "" #: ../../Zotlabs/Module/Wiki.php:402 ../../Zotlabs/Module/Profile_photo.php:466 #: ../../Zotlabs/Module/Cover_photo.php:400 ../../addon/hsse/hsse.php:210 -#: ../../addon/hsse/hsse.php:257 ../../include/conversation.php:1413 -#: ../../include/conversation.php:1460 +#: ../../addon/hsse/hsse.php:257 ../../include/conversation.php:1416 +#: ../../include/conversation.php:1463 msgid "OK" msgstr "" @@ -5335,6 +5326,15 @@ msgstr "" msgid "You must be authenticated." msgstr "" +#: ../../Zotlabs/Module/Share.php:103 ../../Zotlabs/Lib/Activity.php:1473 +#, php-format +msgid "🔁 Repeated %1$s's %2$s" +msgstr "" + +#: ../../Zotlabs/Module/Share.php:119 +msgid "Post repeated" +msgstr "" + #: ../../Zotlabs/Module/Chanview.php:139 msgid "toggle full screen mode" msgstr "" @@ -5391,7 +5391,7 @@ msgstr "" msgid "Poke somebody in your addressbook" msgstr "" -#: ../../Zotlabs/Module/Poke.php:199 ../../Zotlabs/Lib/Apps.php:326 +#: ../../Zotlabs/Module/Poke.php:199 ../../Zotlabs/Lib/Apps.php:348 #: ../../include/conversation.php:1098 msgid "Poke" msgstr "" @@ -5427,7 +5427,7 @@ msgstr "" #: ../../Zotlabs/Module/Profile_photo.php:120 #: ../../Zotlabs/Module/Profile_photo.php:248 -#: ../../include/photo/photo_driver.php:741 +#: ../../include/photo/photo_driver.php:367 msgid "Profile Photos" msgstr "" @@ -5534,73 +5534,73 @@ msgstr "" msgid "Online" msgstr "" -#: ../../Zotlabs/Module/Item.php:194 +#: ../../Zotlabs/Module/Item.php:341 msgid "Unable to locate original post." msgstr "" -#: ../../Zotlabs/Module/Item.php:479 +#: ../../Zotlabs/Module/Item.php:628 msgid "Empty post discarded." msgstr "" -#: ../../Zotlabs/Module/Item.php:866 +#: ../../Zotlabs/Module/Item.php:1037 msgid "Duplicate post suppressed." msgstr "" -#: ../../Zotlabs/Module/Item.php:1011 +#: ../../Zotlabs/Module/Item.php:1182 msgid "System error. Post not saved." msgstr "" -#: ../../Zotlabs/Module/Item.php:1047 +#: ../../Zotlabs/Module/Item.php:1218 msgid "Your comment is awaiting approval." msgstr "" -#: ../../Zotlabs/Module/Item.php:1164 +#: ../../Zotlabs/Module/Item.php:1335 msgid "Unable to obtain post information from database." msgstr "" -#: ../../Zotlabs/Module/Item.php:1171 +#: ../../Zotlabs/Module/Item.php:1342 #, php-format msgid "You have reached your limit of %1$.0f top level posts." msgstr "" -#: ../../Zotlabs/Module/Item.php:1178 +#: ../../Zotlabs/Module/Item.php:1349 #, php-format msgid "You have reached your limit of %1$.0f webpages." msgstr "" -#: ../../Zotlabs/Module/Ping.php:337 +#: ../../Zotlabs/Module/Ping.php:338 msgid "sent you a private message" msgstr "" -#: ../../Zotlabs/Module/Ping.php:390 +#: ../../Zotlabs/Module/Ping.php:394 msgid "added your channel" msgstr "" -#: ../../Zotlabs/Module/Ping.php:414 +#: ../../Zotlabs/Module/Ping.php:419 msgid "requires approval" msgstr "" -#: ../../Zotlabs/Module/Ping.php:424 +#: ../../Zotlabs/Module/Ping.php:429 msgid "g A l F d" msgstr "" -#: ../../Zotlabs/Module/Ping.php:442 +#: ../../Zotlabs/Module/Ping.php:447 msgid "[today]" msgstr "" -#: ../../Zotlabs/Module/Ping.php:451 +#: ../../Zotlabs/Module/Ping.php:457 msgid "posted an event" msgstr "" -#: ../../Zotlabs/Module/Ping.php:484 +#: ../../Zotlabs/Module/Ping.php:491 msgid "shared a file with you" msgstr "" -#: ../../Zotlabs/Module/Ping.php:659 +#: ../../Zotlabs/Module/Ping.php:673 msgid "Private forum" msgstr "" -#: ../../Zotlabs/Module/Ping.php:659 +#: ../../Zotlabs/Module/Ping.php:673 msgid "Public forum" msgstr "" @@ -5612,7 +5612,7 @@ msgstr "" #: ../../Zotlabs/Module/Display.php:140 ../../Zotlabs/Module/Display.php:157 #: ../../Zotlabs/Module/Display.php:174 #: ../../Zotlabs/Lib/NativeWikiPage.php:521 ../../Zotlabs/Web/Router.php:185 -#: ../../include/help.php:132 +#: ../../addon/chess/Mod_Chess.php:447 ../../include/help.php:132 msgid "Page not found." msgstr "" @@ -5626,302 +5626,302 @@ msgid "" "non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." msgstr "" -#: ../../Zotlabs/Module/Connedit.php:80 ../../Zotlabs/Module/Defperms.php:67 +#: ../../Zotlabs/Module/Connedit.php:81 ../../Zotlabs/Module/Defperms.php:67 msgid "Could not access contact record." msgstr "" -#: ../../Zotlabs/Module/Connedit.php:110 +#: ../../Zotlabs/Module/Connedit.php:112 msgid "Could not locate selected profile." msgstr "" -#: ../../Zotlabs/Module/Connedit.php:247 +#: ../../Zotlabs/Module/Connedit.php:256 msgid "Connection updated." msgstr "" -#: ../../Zotlabs/Module/Connedit.php:249 +#: ../../Zotlabs/Module/Connedit.php:258 msgid "Failed to update connection record." msgstr "" -#: ../../Zotlabs/Module/Connedit.php:303 +#: ../../Zotlabs/Module/Connedit.php:312 msgid "is now connected to" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:428 +#: ../../Zotlabs/Module/Connedit.php:437 msgid "Could not access address book record." msgstr "" -#: ../../Zotlabs/Module/Connedit.php:476 +#: ../../Zotlabs/Module/Connedit.php:485 ../../Zotlabs/Module/Connedit.php:489 msgid "Refresh failed - channel is currently unavailable." msgstr "" -#: ../../Zotlabs/Module/Connedit.php:491 ../../Zotlabs/Module/Connedit.php:500 -#: ../../Zotlabs/Module/Connedit.php:509 ../../Zotlabs/Module/Connedit.php:518 -#: ../../Zotlabs/Module/Connedit.php:531 +#: ../../Zotlabs/Module/Connedit.php:504 ../../Zotlabs/Module/Connedit.php:513 +#: ../../Zotlabs/Module/Connedit.php:522 ../../Zotlabs/Module/Connedit.php:531 +#: ../../Zotlabs/Module/Connedit.php:544 msgid "Unable to set address book parameters." msgstr "" -#: ../../Zotlabs/Module/Connedit.php:555 +#: ../../Zotlabs/Module/Connedit.php:568 msgid "Connection has been removed." msgstr "" -#: ../../Zotlabs/Module/Connedit.php:595 ../../Zotlabs/Lib/Apps.php:319 +#: ../../Zotlabs/Module/Connedit.php:608 ../../Zotlabs/Lib/Apps.php:341 #: ../../addon/openclipatar/openclipatar.php:57 #: ../../include/conversation.php:1038 ../../include/nav.php:106 msgid "View Profile" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:598 +#: ../../Zotlabs/Module/Connedit.php:611 #, php-format msgid "View %s's profile" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:602 +#: ../../Zotlabs/Module/Connedit.php:615 msgid "Refresh Permissions" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:605 +#: ../../Zotlabs/Module/Connedit.php:618 msgid "Fetch updated permissions" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:609 +#: ../../Zotlabs/Module/Connedit.php:622 msgid "Refresh Photo" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:612 +#: ../../Zotlabs/Module/Connedit.php:625 msgid "Fetch updated photo" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:616 ../../include/conversation.php:1048 +#: ../../Zotlabs/Module/Connedit.php:629 ../../include/conversation.php:1048 msgid "Recent Activity" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:619 +#: ../../Zotlabs/Module/Connedit.php:632 msgid "View recent posts and comments" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:626 +#: ../../Zotlabs/Module/Connedit.php:639 msgid "Block (or Unblock) all communications with this connection" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:627 +#: ../../Zotlabs/Module/Connedit.php:640 msgid "This connection is blocked!" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:631 +#: ../../Zotlabs/Module/Connedit.php:644 msgid "Unignore" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:634 +#: ../../Zotlabs/Module/Connedit.php:647 msgid "Ignore (or Unignore) all inbound communications from this connection" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:635 +#: ../../Zotlabs/Module/Connedit.php:648 msgid "This connection is ignored!" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:639 +#: ../../Zotlabs/Module/Connedit.php:652 msgid "Unarchive" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:639 +#: ../../Zotlabs/Module/Connedit.php:652 msgid "Archive" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:642 +#: ../../Zotlabs/Module/Connedit.php:655 msgid "" "Archive (or Unarchive) this connection - mark channel dead but keep content" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:643 +#: ../../Zotlabs/Module/Connedit.php:656 msgid "This connection is archived!" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:647 +#: ../../Zotlabs/Module/Connedit.php:660 msgid "Unhide" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:647 +#: ../../Zotlabs/Module/Connedit.php:660 msgid "Hide" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:650 +#: ../../Zotlabs/Module/Connedit.php:663 msgid "Hide or Unhide this connection from your other connections" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:651 +#: ../../Zotlabs/Module/Connedit.php:664 msgid "This connection is hidden!" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:658 +#: ../../Zotlabs/Module/Connedit.php:671 msgid "Delete this connection" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:666 +#: ../../Zotlabs/Module/Connedit.php:679 msgid "Fetch Vcard" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:669 +#: ../../Zotlabs/Module/Connedit.php:682 msgid "Fetch electronic calling card for this connection" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:680 +#: ../../Zotlabs/Module/Connedit.php:693 msgid "Open Individual Permissions section by default" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:703 +#: ../../Zotlabs/Module/Connedit.php:716 msgid "Affinity" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:706 +#: ../../Zotlabs/Module/Connedit.php:719 msgid "Open Set Affinity section by default" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:710 ../../Zotlabs/Widget/Affinity.php:22 +#: ../../Zotlabs/Module/Connedit.php:723 ../../Zotlabs/Widget/Affinity.php:30 msgid "Me" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:711 ../../Zotlabs/Widget/Affinity.php:23 +#: ../../Zotlabs/Module/Connedit.php:724 ../../Zotlabs/Widget/Affinity.php:31 msgid "Family" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:713 ../../Zotlabs/Widget/Affinity.php:25 +#: ../../Zotlabs/Module/Connedit.php:726 ../../Zotlabs/Widget/Affinity.php:33 msgid "Acquaintances" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:740 +#: ../../Zotlabs/Module/Connedit.php:756 msgid "Filter" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:743 +#: ../../Zotlabs/Module/Connedit.php:759 msgid "Open Custom Filter section by default" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:780 +#: ../../Zotlabs/Module/Connedit.php:796 msgid "Approve this connection" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:780 +#: ../../Zotlabs/Module/Connedit.php:796 msgid "Accept connection to allow communication" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:785 +#: ../../Zotlabs/Module/Connedit.php:801 msgid "Set Affinity" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:788 +#: ../../Zotlabs/Module/Connedit.php:804 msgid "Set Profile" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:791 +#: ../../Zotlabs/Module/Connedit.php:807 msgid "Set Affinity & Profile" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:839 +#: ../../Zotlabs/Module/Connedit.php:855 msgid "This connection is unreachable from this location." msgstr "" -#: ../../Zotlabs/Module/Connedit.php:840 +#: ../../Zotlabs/Module/Connedit.php:856 msgid "This connection may be unreachable from other channel locations." msgstr "" -#: ../../Zotlabs/Module/Connedit.php:842 +#: ../../Zotlabs/Module/Connedit.php:858 msgid "Location independence is not supported by their network." msgstr "" -#: ../../Zotlabs/Module/Connedit.php:848 +#: ../../Zotlabs/Module/Connedit.php:864 msgid "" "This connection is unreachable from this location. Location independence is " "not supported by their network." msgstr "" -#: ../../Zotlabs/Module/Connedit.php:851 ../../Zotlabs/Module/Defperms.php:254 +#: ../../Zotlabs/Module/Connedit.php:867 ../../Zotlabs/Module/Defperms.php:254 msgid "Connection Default Permissions" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:851 ../../include/items.php:4200 +#: ../../Zotlabs/Module/Connedit.php:867 ../../include/items.php:4308 #, php-format msgid "Connection: %s" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:852 ../../Zotlabs/Module/Defperms.php:255 +#: ../../Zotlabs/Module/Connedit.php:868 ../../Zotlabs/Module/Defperms.php:255 msgid "Apply these permissions automatically" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:852 +#: ../../Zotlabs/Module/Connedit.php:868 msgid "Connection requests will be approved without your interaction" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:853 ../../Zotlabs/Module/Defperms.php:256 +#: ../../Zotlabs/Module/Connedit.php:869 ../../Zotlabs/Module/Defperms.php:256 msgid "Permission role" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:854 ../../Zotlabs/Module/Defperms.php:257 +#: ../../Zotlabs/Module/Connedit.php:870 ../../Zotlabs/Module/Defperms.php:257 msgid "Add permission role" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:861 +#: ../../Zotlabs/Module/Connedit.php:877 msgid "This connection's primary address is" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:862 +#: ../../Zotlabs/Module/Connedit.php:878 msgid "Available locations:" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:867 ../../Zotlabs/Module/Defperms.php:261 +#: ../../Zotlabs/Module/Connedit.php:883 ../../Zotlabs/Module/Defperms.php:261 msgid "" "The permissions indicated on this page will be applied to all new " "connections." msgstr "" -#: ../../Zotlabs/Module/Connedit.php:868 +#: ../../Zotlabs/Module/Connedit.php:884 msgid "Connection Tools" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:870 +#: ../../Zotlabs/Module/Connedit.php:886 msgid "Slide to adjust your degree of friendship" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:871 ../../Zotlabs/Module/Rate.php:155 +#: ../../Zotlabs/Module/Connedit.php:887 ../../Zotlabs/Module/Rate.php:155 #: ../../include/js_strings.php:20 msgid "Rating" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:872 +#: ../../Zotlabs/Module/Connedit.php:888 msgid "Slide to adjust your rating" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:873 ../../Zotlabs/Module/Connedit.php:878 +#: ../../Zotlabs/Module/Connedit.php:889 ../../Zotlabs/Module/Connedit.php:894 msgid "Optionally explain your rating" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:875 +#: ../../Zotlabs/Module/Connedit.php:891 msgid "Custom Filter" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:876 +#: ../../Zotlabs/Module/Connedit.php:892 msgid "Only import posts with this text" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:877 +#: ../../Zotlabs/Module/Connedit.php:893 msgid "Do not import posts with this text" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:879 +#: ../../Zotlabs/Module/Connedit.php:895 msgid "This information is public!" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:884 +#: ../../Zotlabs/Module/Connedit.php:900 msgid "Connection Pending Approval" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:889 +#: ../../Zotlabs/Module/Connedit.php:905 #, php-format msgid "" "Please choose the profile you would like to display to %s when viewing your " "profile securely." msgstr "" -#: ../../Zotlabs/Module/Connedit.php:896 +#: ../../Zotlabs/Module/Connedit.php:912 msgid "" "Some permissions may be inherited from your channel's <a href=\"settings" "\"><strong>privacy settings</strong></a>, which have higher priority than " @@ -5929,11 +5929,11 @@ msgid "" "any impact unless the inherited setting changes." msgstr "" -#: ../../Zotlabs/Module/Connedit.php:897 +#: ../../Zotlabs/Module/Connedit.php:913 msgid "Last update:" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:905 +#: ../../Zotlabs/Module/Connedit.php:921 msgid "Details" msgstr "" @@ -5976,8 +5976,8 @@ msgid "Please enter a link URL:" msgstr "" #: ../../Zotlabs/Module/Chat.php:221 ../../Zotlabs/Module/Mail.php:294 -#: ../../Zotlabs/Module/Mail.php:436 ../../Zotlabs/Lib/ThreadItem.php:781 -#: ../../addon/hsse/hsse.php:255 ../../include/conversation.php:1458 +#: ../../Zotlabs/Module/Mail.php:436 ../../Zotlabs/Lib/ThreadItem.php:809 +#: ../../addon/hsse/hsse.php:255 ../../include/conversation.php:1461 msgid "Encrypt text" msgstr "" @@ -6010,13 +6010,13 @@ msgstr "" msgid "min" msgstr "" -#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:320 -#: ../../include/features.php:391 ../../include/nav.php:414 +#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:342 +#: ../../include/features.php:383 ../../include/nav.php:444 msgid "Photos" msgstr "" -#: ../../Zotlabs/Module/Fbrowser.php:85 ../../Zotlabs/Lib/Apps.php:315 -#: ../../Zotlabs/Storage/Browser.php:272 ../../include/nav.php:422 +#: ../../Zotlabs/Module/Fbrowser.php:85 ../../Zotlabs/Lib/Apps.php:337 +#: ../../Zotlabs/Storage/Browser.php:272 ../../include/nav.php:452 msgid "Files" msgstr "" @@ -6056,7 +6056,7 @@ msgstr "" msgid "Submit and proceed" msgstr "" -#: ../../Zotlabs/Module/Menu.php:170 ../../include/text.php:2466 +#: ../../Zotlabs/Module/Menu.php:170 ../../include/text.php:2535 msgid "Menus" msgstr "" @@ -6108,12 +6108,12 @@ msgstr "" msgid "Allow bookmarks" msgstr "" -#: ../../Zotlabs/Module/Layouts.php:184 ../../include/text.php:2467 +#: ../../Zotlabs/Module/Layouts.php:184 ../../include/text.php:2536 msgid "Layouts" msgstr "" -#: ../../Zotlabs/Module/Layouts.php:186 ../../Zotlabs/Lib/Apps.php:323 -#: ../../include/nav.php:168 ../../include/nav.php:289 +#: ../../Zotlabs/Module/Layouts.php:186 ../../Zotlabs/Lib/Apps.php:345 +#: ../../include/nav.php:168 ../../include/nav.php:319 #: ../../include/help.php:117 ../../include/help.php:125 msgid "Help" msgstr "" @@ -6130,11 +6130,11 @@ msgstr "" msgid "Download PDL file" msgstr "" -#: ../../Zotlabs/Module/Notes.php:55 +#: ../../Zotlabs/Module/Notes.php:56 msgid "Notes App" msgstr "" -#: ../../Zotlabs/Module/Notes.php:56 +#: ../../Zotlabs/Module/Notes.php:57 msgid "A simple notes app with a widget (note: notes are not encrypted)" msgstr "" @@ -6179,13 +6179,13 @@ msgstr "" msgid "Post not found." msgstr "" -#: ../../Zotlabs/Module/Tagger.php:77 ../../include/markdown.php:202 -#: ../../include/bbcode.php:354 +#: ../../Zotlabs/Module/Tagger.php:77 ../../include/markdown.php:200 +#: ../../include/bbcode.php:343 msgid "post" msgstr "" #: ../../Zotlabs/Module/Tagger.php:79 ../../include/conversation.php:146 -#: ../../include/text.php:2036 +#: ../../include/text.php:2099 msgid "comment" msgstr "" @@ -6194,21 +6194,72 @@ msgstr "" msgid "%1$s tagged %2$s's %3$s with %4$s" msgstr "" -#: ../../Zotlabs/Module/Pconfig.php:27 ../../Zotlabs/Module/Pconfig.php:63 +#: ../../Zotlabs/Module/Pconfig.php:32 ../../Zotlabs/Module/Pconfig.php:68 msgid "This setting requires special processing and editing has been blocked." msgstr "" -#: ../../Zotlabs/Module/Pconfig.php:52 +#: ../../Zotlabs/Module/Pconfig.php:57 msgid "Configuration Editor" msgstr "" -#: ../../Zotlabs/Module/Pconfig.php:53 +#: ../../Zotlabs/Module/Pconfig.php:58 msgid "" "Warning: Changing some settings could render your channel inoperable. Please " "leave this page unless you are comfortable with and knowledgeable about how " "to correctly use this feature." msgstr "" +#: ../../Zotlabs/Module/Affinity.php:35 +msgid "Affinity Tool settings updated." +msgstr "" + +#: ../../Zotlabs/Module/Affinity.php:47 +msgid "" +"This app presents a slider control in your connection editor and also on " +"your network page. The slider represents your degree of friendship " +"(affinity) with each connection. It allows you to zoom in or out and display " +"conversations from only your closest friends or everybody in your stream." +msgstr "" + +#: ../../Zotlabs/Module/Affinity.php:52 +msgid "Affinity Tool App" +msgstr "" + +#: ../../Zotlabs/Module/Affinity.php:57 +msgid "" +"The numbers below represent the minimum and maximum slider default positions " +"for your network/stream page as a percentage." +msgstr "" + +#: ../../Zotlabs/Module/Affinity.php:64 +msgid "Default maximum affinity level" +msgstr "" + +#: ../../Zotlabs/Module/Affinity.php:64 +msgid "0-99 default 99" +msgstr "" + +#: ../../Zotlabs/Module/Affinity.php:70 +msgid "Default minimum affinity level" +msgstr "" + +#: ../../Zotlabs/Module/Affinity.php:70 +msgid "0-99 - default 0" +msgstr "" + +#: ../../Zotlabs/Module/Affinity.php:76 +msgid "Persistent affinity levels" +msgstr "" + +#: ../../Zotlabs/Module/Affinity.php:76 +msgid "" +"If disabled the max and min levels will be reset to default after page reload" +msgstr "" + +#: ../../Zotlabs/Module/Affinity.php:84 +msgid "Affinity Tool Settings" +msgstr "" + #: ../../Zotlabs/Module/Defperms.php:189 msgid "Default Permissions App" msgstr "" @@ -6252,76 +6303,76 @@ msgstr "" msgid "Could not create privacy group." msgstr "" -#: ../../Zotlabs/Module/Group.php:61 ../../Zotlabs/Module/Group.php:200 -#: ../../include/items.php:4167 +#: ../../Zotlabs/Module/Group.php:61 ../../Zotlabs/Module/Group.php:213 +#: ../../include/items.php:4275 msgid "Privacy group not found." msgstr "" -#: ../../Zotlabs/Module/Group.php:77 +#: ../../Zotlabs/Module/Group.php:80 msgid "Privacy group updated." msgstr "" -#: ../../Zotlabs/Module/Group.php:101 +#: ../../Zotlabs/Module/Group.php:106 msgid "Privacy Groups App" msgstr "" -#: ../../Zotlabs/Module/Group.php:102 +#: ../../Zotlabs/Module/Group.php:107 msgid "Management of privacy groups" msgstr "" -#: ../../Zotlabs/Module/Group.php:132 ../../Zotlabs/Module/Group.php:143 -#: ../../Zotlabs/Lib/Apps.php:339 ../../Zotlabs/Lib/Group.php:324 -#: ../../Zotlabs/Widget/Activity_filter.php:70 ../../include/nav.php:95 +#: ../../Zotlabs/Module/Group.php:141 ../../Zotlabs/Module/Group.php:153 +#: ../../Zotlabs/Lib/Apps.php:361 ../../Zotlabs/Lib/Group.php:324 +#: ../../Zotlabs/Widget/Activity_filter.php:41 ../../include/nav.php:95 #: ../../include/group.php:320 msgid "Privacy Groups" msgstr "" -#: ../../Zotlabs/Module/Group.php:133 +#: ../../Zotlabs/Module/Group.php:142 msgid "Add Group" msgstr "" -#: ../../Zotlabs/Module/Group.php:137 +#: ../../Zotlabs/Module/Group.php:146 msgid "Privacy group name" msgstr "" -#: ../../Zotlabs/Module/Group.php:138 ../../Zotlabs/Module/Group.php:239 +#: ../../Zotlabs/Module/Group.php:147 ../../Zotlabs/Module/Group.php:256 msgid "Members are visible to other channels" msgstr "" -#: ../../Zotlabs/Module/Group.php:145 ../../Zotlabs/Module/Help.php:81 +#: ../../Zotlabs/Module/Group.php:155 ../../Zotlabs/Module/Help.php:81 msgid "Members" msgstr "" -#: ../../Zotlabs/Module/Group.php:170 +#: ../../Zotlabs/Module/Group.php:182 msgid "Privacy group removed." msgstr "" -#: ../../Zotlabs/Module/Group.php:172 +#: ../../Zotlabs/Module/Group.php:185 msgid "Unable to remove privacy group." msgstr "" -#: ../../Zotlabs/Module/Group.php:234 +#: ../../Zotlabs/Module/Group.php:251 #, php-format msgid "Privacy Group: %s" msgstr "" -#: ../../Zotlabs/Module/Group.php:236 +#: ../../Zotlabs/Module/Group.php:253 msgid "Privacy group name: " msgstr "" -#: ../../Zotlabs/Module/Group.php:241 +#: ../../Zotlabs/Module/Group.php:258 msgid "Delete Group" msgstr "" -#: ../../Zotlabs/Module/Group.php:251 +#: ../../Zotlabs/Module/Group.php:269 msgid "Group members" msgstr "" -#: ../../Zotlabs/Module/Group.php:253 +#: ../../Zotlabs/Module/Group.php:271 msgid "Not in this group" msgstr "" -#: ../../Zotlabs/Module/Group.php:285 +#: ../../Zotlabs/Module/Group.php:303 msgid "Click a channel to toggle membership" msgstr "" @@ -6416,7 +6467,7 @@ msgid "View this profile" msgstr "" #: ../../Zotlabs/Module/Profiles.php:725 ../../Zotlabs/Module/Profiles.php:824 -#: ../../include/channel.php:1326 +#: ../../include/channel.php:1375 msgid "Edit visibility" msgstr "" @@ -6428,7 +6479,7 @@ msgstr "" msgid "Change cover photo" msgstr "" -#: ../../Zotlabs/Module/Profiles.php:728 ../../include/channel.php:1296 +#: ../../Zotlabs/Module/Profiles.php:728 ../../include/channel.php:1345 msgid "Change profile photo" msgstr "" @@ -6594,11 +6645,11 @@ msgstr "" msgid "Communications" msgstr "" -#: ../../Zotlabs/Module/Profiles.php:820 ../../include/channel.php:1322 +#: ../../Zotlabs/Module/Profiles.php:820 ../../include/channel.php:1371 msgid "Profile Image" msgstr "" -#: ../../Zotlabs/Module/Profiles.php:830 ../../include/channel.php:1303 +#: ../../Zotlabs/Module/Profiles.php:830 ../../include/channel.php:1352 #: ../../include/nav.php:109 msgid "Edit Profiles" msgstr "" @@ -6678,7 +6729,7 @@ msgstr "" msgid "Create a new channel" msgstr "" -#: ../../Zotlabs/Module/Manage.php:170 ../../Zotlabs/Lib/Apps.php:312 +#: ../../Zotlabs/Module/Manage.php:170 ../../Zotlabs/Lib/Apps.php:334 #: ../../include/nav.php:92 msgid "Channel Manager" msgstr "" @@ -6713,20 +6764,20 @@ msgstr "" msgid "Delegated Channel" msgstr "" -#: ../../Zotlabs/Module/Cards.php:46 +#: ../../Zotlabs/Module/Cards.php:51 msgid "Cards App" msgstr "" -#: ../../Zotlabs/Module/Cards.php:47 +#: ../../Zotlabs/Module/Cards.php:52 msgid "Create personal planning cards" msgstr "" -#: ../../Zotlabs/Module/Cards.php:108 +#: ../../Zotlabs/Module/Cards.php:112 msgid "Add Card" msgstr "" -#: ../../Zotlabs/Module/Cards.php:203 ../../Zotlabs/Lib/Apps.php:303 -#: ../../include/nav.php:471 +#: ../../Zotlabs/Module/Cards.php:207 ../../Zotlabs/Lib/Apps.php:325 +#: ../../include/nav.php:501 msgid "Cards" msgstr "" @@ -6825,8 +6876,8 @@ msgstr "" msgid "Export selected" msgstr "" -#: ../../Zotlabs/Module/Webpages.php:252 ../../Zotlabs/Lib/Apps.php:316 -#: ../../include/nav.php:494 +#: ../../Zotlabs/Module/Webpages.php:252 ../../Zotlabs/Lib/Apps.php:338 +#: ../../include/nav.php:524 msgid "Webpages" msgstr "" @@ -6868,13 +6919,13 @@ msgid "" "password." msgstr "" -#: ../../Zotlabs/Module/Changeaddr.php:46 ../../include/channel.php:221 -#: ../../include/channel.php:606 +#: ../../Zotlabs/Module/Changeaddr.php:46 ../../include/channel.php:222 +#: ../../include/channel.php:655 msgid "Reserved nickname. Please choose another." msgstr "" -#: ../../Zotlabs/Module/Changeaddr.php:51 ../../include/channel.php:226 -#: ../../include/channel.php:611 +#: ../../Zotlabs/Module/Changeaddr.php:51 ../../include/channel.php:227 +#: ../../include/channel.php:660 msgid "" "Nickname has unsupported characters or is already being used on this site." msgstr "" @@ -6903,69 +6954,69 @@ msgstr "" msgid "Edit post" msgstr "" -#: ../../Zotlabs/Module/Dreport.php:45 +#: ../../Zotlabs/Module/Dreport.php:56 msgid "Invalid message" msgstr "" -#: ../../Zotlabs/Module/Dreport.php:78 +#: ../../Zotlabs/Module/Dreport.php:90 msgid "no results" msgstr "" -#: ../../Zotlabs/Module/Dreport.php:93 +#: ../../Zotlabs/Module/Dreport.php:104 msgid "channel sync processed" msgstr "" -#: ../../Zotlabs/Module/Dreport.php:97 +#: ../../Zotlabs/Module/Dreport.php:108 msgid "queued" msgstr "" -#: ../../Zotlabs/Module/Dreport.php:101 +#: ../../Zotlabs/Module/Dreport.php:112 msgid "posted" msgstr "" -#: ../../Zotlabs/Module/Dreport.php:105 +#: ../../Zotlabs/Module/Dreport.php:116 msgid "accepted for delivery" msgstr "" -#: ../../Zotlabs/Module/Dreport.php:109 +#: ../../Zotlabs/Module/Dreport.php:120 msgid "updated" msgstr "" -#: ../../Zotlabs/Module/Dreport.php:112 +#: ../../Zotlabs/Module/Dreport.php:123 msgid "update ignored" msgstr "" -#: ../../Zotlabs/Module/Dreport.php:115 +#: ../../Zotlabs/Module/Dreport.php:126 msgid "permission denied" msgstr "" -#: ../../Zotlabs/Module/Dreport.php:119 +#: ../../Zotlabs/Module/Dreport.php:130 msgid "recipient not found" msgstr "" -#: ../../Zotlabs/Module/Dreport.php:122 +#: ../../Zotlabs/Module/Dreport.php:133 msgid "mail recalled" msgstr "" -#: ../../Zotlabs/Module/Dreport.php:125 +#: ../../Zotlabs/Module/Dreport.php:136 msgid "duplicate mail received" msgstr "" -#: ../../Zotlabs/Module/Dreport.php:128 +#: ../../Zotlabs/Module/Dreport.php:139 msgid "mail delivered" msgstr "" -#: ../../Zotlabs/Module/Dreport.php:148 +#: ../../Zotlabs/Module/Dreport.php:159 #, php-format msgid "Delivery report for %1$s" msgstr "" -#: ../../Zotlabs/Module/Dreport.php:151 ../../Zotlabs/Widget/Wiki_pages.php:41 +#: ../../Zotlabs/Module/Dreport.php:162 ../../Zotlabs/Widget/Wiki_pages.php:41 #: ../../Zotlabs/Widget/Wiki_pages.php:98 msgid "Options" msgstr "" -#: ../../Zotlabs/Module/Dreport.php:152 +#: ../../Zotlabs/Module/Dreport.php:163 msgid "Redeliver" msgstr "" @@ -6993,7 +7044,7 @@ msgstr "" msgid "*" msgstr "" -#: ../../Zotlabs/Module/Sources.php:107 ../../Zotlabs/Lib/Apps.php:344 +#: ../../Zotlabs/Module/Sources.php:107 ../../Zotlabs/Lib/Apps.php:366 msgid "Channel Sources" msgstr "" @@ -7062,89 +7113,89 @@ msgstr "" msgid "Unable to remove source." msgstr "" -#: ../../Zotlabs/Module/Like.php:54 +#: ../../Zotlabs/Module/Like.php:56 msgid "Like/Dislike" msgstr "" -#: ../../Zotlabs/Module/Like.php:59 +#: ../../Zotlabs/Module/Like.php:61 msgid "This action is restricted to members." msgstr "" -#: ../../Zotlabs/Module/Like.php:60 +#: ../../Zotlabs/Module/Like.php:62 msgid "" "Please <a href=\"rmagic\">login with your $Projectname ID</a> or <a href=" "\"register\">register as a new $Projectname member</a> to continue." msgstr "" -#: ../../Zotlabs/Module/Like.php:109 ../../Zotlabs/Module/Like.php:135 -#: ../../Zotlabs/Module/Like.php:173 +#: ../../Zotlabs/Module/Like.php:111 ../../Zotlabs/Module/Like.php:137 +#: ../../Zotlabs/Module/Like.php:175 msgid "Invalid request." msgstr "" -#: ../../Zotlabs/Module/Like.php:121 ../../include/conversation.php:122 +#: ../../Zotlabs/Module/Like.php:123 ../../include/conversation.php:122 msgid "channel" msgstr "" -#: ../../Zotlabs/Module/Like.php:150 +#: ../../Zotlabs/Module/Like.php:152 msgid "thing" msgstr "" -#: ../../Zotlabs/Module/Like.php:196 +#: ../../Zotlabs/Module/Like.php:198 msgid "Channel unavailable." msgstr "" -#: ../../Zotlabs/Module/Like.php:244 +#: ../../Zotlabs/Module/Like.php:246 msgid "Previous action reversed." msgstr "" -#: ../../Zotlabs/Module/Like.php:438 ../../Zotlabs/Lib/Activity.php:1605 -#: ../../addon/diaspora/Receiver.php:1568 ../../addon/pubcrawl/as.php:1546 +#: ../../Zotlabs/Module/Like.php:447 ../../Zotlabs/Lib/Activity.php:1994 +#: ../../addon/diaspora/Receiver.php:1491 ../../addon/pubcrawl/as.php:1540 #: ../../include/conversation.php:160 #, php-format msgid "%1$s likes %2$s's %3$s" msgstr "" -#: ../../Zotlabs/Module/Like.php:440 ../../Zotlabs/Lib/Activity.php:1607 -#: ../../addon/pubcrawl/as.php:1548 ../../include/conversation.php:163 +#: ../../Zotlabs/Module/Like.php:449 ../../Zotlabs/Lib/Activity.php:1996 +#: ../../addon/pubcrawl/as.php:1542 ../../include/conversation.php:163 #, php-format msgid "%1$s doesn't like %2$s's %3$s" msgstr "" -#: ../../Zotlabs/Module/Like.php:442 +#: ../../Zotlabs/Module/Like.php:451 #, php-format msgid "%1$s agrees with %2$s's %3$s" msgstr "" -#: ../../Zotlabs/Module/Like.php:444 +#: ../../Zotlabs/Module/Like.php:453 #, php-format msgid "%1$s doesn't agree with %2$s's %3$s" msgstr "" -#: ../../Zotlabs/Module/Like.php:446 +#: ../../Zotlabs/Module/Like.php:455 #, php-format msgid "%1$s abstains from a decision on %2$s's %3$s" msgstr "" -#: ../../Zotlabs/Module/Like.php:448 ../../addon/diaspora/Receiver.php:2111 +#: ../../Zotlabs/Module/Like.php:457 ../../addon/diaspora/Receiver.php:2137 #, php-format msgid "%1$s is attending %2$s's %3$s" msgstr "" -#: ../../Zotlabs/Module/Like.php:450 ../../addon/diaspora/Receiver.php:2113 +#: ../../Zotlabs/Module/Like.php:459 ../../addon/diaspora/Receiver.php:2139 #, php-format msgid "%1$s is not attending %2$s's %3$s" msgstr "" -#: ../../Zotlabs/Module/Like.php:452 ../../addon/diaspora/Receiver.php:2115 +#: ../../Zotlabs/Module/Like.php:461 ../../addon/diaspora/Receiver.php:2141 #, php-format msgid "%1$s may attend %2$s's %3$s" msgstr "" -#: ../../Zotlabs/Module/Like.php:564 +#: ../../Zotlabs/Module/Like.php:572 msgid "Action completed." msgstr "" -#: ../../Zotlabs/Module/Like.php:565 +#: ../../Zotlabs/Module/Like.php:573 msgid "Thank you." msgstr "" @@ -7171,12 +7222,12 @@ msgstr "" msgid "Homepage: " msgstr "" -#: ../../Zotlabs/Module/Directory.php:323 ../../include/channel.php:1571 +#: ../../Zotlabs/Module/Directory.php:323 ../../include/channel.php:1620 msgid "Age:" msgstr "" -#: ../../Zotlabs/Module/Directory.php:328 ../../include/channel.php:1398 -#: ../../include/event.php:54 ../../include/event.php:86 +#: ../../Zotlabs/Module/Directory.php:328 ../../include/channel.php:1447 +#: ../../include/event.php:58 ../../include/event.php:90 msgid "Location:" msgstr "" @@ -7184,17 +7235,17 @@ msgstr "" msgid "Description:" msgstr "" -#: ../../Zotlabs/Module/Directory.php:339 ../../include/channel.php:1600 +#: ../../Zotlabs/Module/Directory.php:339 ../../include/channel.php:1649 msgid "Hometown:" msgstr "" -#: ../../Zotlabs/Module/Directory.php:341 ../../include/channel.php:1606 +#: ../../Zotlabs/Module/Directory.php:341 ../../include/channel.php:1655 msgid "About:" msgstr "" #: ../../Zotlabs/Module/Directory.php:342 ../../Zotlabs/Module/Suggest.php:71 #: ../../Zotlabs/Widget/Follow.php:32 ../../Zotlabs/Widget/Suggestions.php:44 -#: ../../include/conversation.php:1058 ../../include/channel.php:1383 +#: ../../include/conversation.php:1058 ../../include/channel.php:1432 #: ../../include/connections.php:110 msgid "Connect" msgstr "" @@ -7361,7 +7412,7 @@ msgid "Send" msgstr "" #: ../../Zotlabs/Module/Mail.php:292 ../../Zotlabs/Module/Mail.php:434 -#: ../../addon/hsse/hsse.php:250 ../../include/conversation.php:1453 +#: ../../addon/hsse/hsse.php:250 ../../include/conversation.php:1456 msgid "Set expiration date" msgstr "" @@ -7453,12 +7504,12 @@ msgstr "" msgid "menu" msgstr "" -#: ../../Zotlabs/Module/Impel.php:183 +#: ../../Zotlabs/Module/Impel.php:185 #, php-format msgid "%s element installed" msgstr "" -#: ../../Zotlabs/Module/Impel.php:186 +#: ../../Zotlabs/Module/Impel.php:188 #, php-format msgid "%s element installation failed" msgstr "" @@ -7487,7 +7538,7 @@ msgstr "" msgid "or select an existing folder (doubleclick)" msgstr "" -#: ../../Zotlabs/Module/Filer.php:54 ../../Zotlabs/Lib/ThreadItem.php:164 +#: ../../Zotlabs/Module/Filer.php:54 ../../Zotlabs/Lib/ThreadItem.php:181 msgid "Save to Folder" msgstr "" @@ -7606,7 +7657,7 @@ msgstr "" msgid "yes" msgstr "" -#: ../../Zotlabs/Module/Register.php:289 ../../boot.php:1605 +#: ../../Zotlabs/Module/Register.php:289 ../../boot.php:1609 #: ../../include/nav.php:156 msgid "Register" msgstr "" @@ -7622,30 +7673,30 @@ msgstr "" msgid "Cover Photos" msgstr "" -#: ../../Zotlabs/Module/Cover_photo.php:269 ../../include/items.php:4544 +#: ../../Zotlabs/Module/Cover_photo.php:269 ../../include/items.php:4652 msgid "female" msgstr "" -#: ../../Zotlabs/Module/Cover_photo.php:270 ../../include/items.php:4545 +#: ../../Zotlabs/Module/Cover_photo.php:270 ../../include/items.php:4653 #, php-format msgid "%1$s updated her %2$s" msgstr "" -#: ../../Zotlabs/Module/Cover_photo.php:271 ../../include/items.php:4546 +#: ../../Zotlabs/Module/Cover_photo.php:271 ../../include/items.php:4654 msgid "male" msgstr "" -#: ../../Zotlabs/Module/Cover_photo.php:272 ../../include/items.php:4547 +#: ../../Zotlabs/Module/Cover_photo.php:272 ../../include/items.php:4655 #, php-format msgid "%1$s updated his %2$s" msgstr "" -#: ../../Zotlabs/Module/Cover_photo.php:274 ../../include/items.php:4549 +#: ../../Zotlabs/Module/Cover_photo.php:274 ../../include/items.php:4657 #, php-format msgid "%1$s updated their %2$s" msgstr "" -#: ../../Zotlabs/Module/Cover_photo.php:276 ../../include/channel.php:2088 +#: ../../Zotlabs/Module/Cover_photo.php:276 ../../include/channel.php:2137 msgid "cover photo" msgstr "" @@ -7661,7 +7712,7 @@ msgstr "" msgid "Documentation Search" msgstr "" -#: ../../Zotlabs/Module/Help.php:80 ../../include/nav.php:404 +#: ../../Zotlabs/Module/Help.php:80 ../../include/nav.php:434 msgid "About" msgstr "" @@ -7685,11 +7736,11 @@ msgstr "" msgid "Contents" msgstr "" -#: ../../Zotlabs/Module/Display.php:393 +#: ../../Zotlabs/Module/Display.php:391 msgid "Article" msgstr "" -#: ../../Zotlabs/Module/Display.php:445 +#: ../../Zotlabs/Module/Display.php:443 msgid "Item has been removed." msgstr "" @@ -7705,27 +7756,27 @@ msgstr "" msgid "Select a tag to remove: " msgstr "" -#: ../../Zotlabs/Module/Network.php:107 +#: ../../Zotlabs/Module/Network.php:109 msgid "No such group" msgstr "" -#: ../../Zotlabs/Module/Network.php:148 +#: ../../Zotlabs/Module/Network.php:158 msgid "No such channel" msgstr "" -#: ../../Zotlabs/Module/Network.php:231 +#: ../../Zotlabs/Module/Network.php:242 msgid "Privacy group is empty" msgstr "" -#: ../../Zotlabs/Module/Network.php:242 +#: ../../Zotlabs/Module/Network.php:252 msgid "Privacy group: " msgstr "" -#: ../../Zotlabs/Module/Network.php:291 ../../addon/redred/redred.php:65 +#: ../../Zotlabs/Module/Network.php:325 ../../addon/redred/Mod_Redred.php:29 msgid "Invalid channel." msgstr "" -#: ../../Zotlabs/Module/Acl.php:359 +#: ../../Zotlabs/Module/Acl.php:360 msgid "network" msgstr "" @@ -7829,47 +7880,43 @@ msgstr "" msgid "Expiring accounts" msgstr "" -#: ../../Zotlabs/Module/Admin.php:116 -msgid "Clones" -msgstr "" - -#: ../../Zotlabs/Module/Admin.php:122 +#: ../../Zotlabs/Module/Admin.php:120 msgid "Message queues" msgstr "" -#: ../../Zotlabs/Module/Admin.php:136 +#: ../../Zotlabs/Module/Admin.php:134 msgid "Your software should be updated" msgstr "" -#: ../../Zotlabs/Module/Admin.php:141 +#: ../../Zotlabs/Module/Admin.php:139 msgid "Summary" msgstr "" -#: ../../Zotlabs/Module/Admin.php:144 +#: ../../Zotlabs/Module/Admin.php:142 msgid "Registered accounts" msgstr "" -#: ../../Zotlabs/Module/Admin.php:145 +#: ../../Zotlabs/Module/Admin.php:143 msgid "Pending registrations" msgstr "" -#: ../../Zotlabs/Module/Admin.php:146 +#: ../../Zotlabs/Module/Admin.php:144 msgid "Registered channels" msgstr "" -#: ../../Zotlabs/Module/Admin.php:147 +#: ../../Zotlabs/Module/Admin.php:145 msgid "Active addons" msgstr "" -#: ../../Zotlabs/Module/Admin.php:148 +#: ../../Zotlabs/Module/Admin.php:146 msgid "Version" msgstr "" -#: ../../Zotlabs/Module/Admin.php:149 +#: ../../Zotlabs/Module/Admin.php:147 msgid "Repository version (master)" msgstr "" -#: ../../Zotlabs/Module/Admin.php:150 +#: ../../Zotlabs/Module/Admin.php:148 msgid "Repository version (dev)" msgstr "" @@ -7922,7 +7969,7 @@ msgid "" "Password reset failed." msgstr "" -#: ../../Zotlabs/Module/Lostpass.php:91 ../../boot.php:1634 +#: ../../Zotlabs/Module/Lostpass.php:91 ../../boot.php:1638 msgid "Password Reset" msgstr "" @@ -7984,7 +8031,7 @@ msgid "OAuth authentication tokens for mobile and remote apps" msgstr "" #: ../../Zotlabs/Module/Oauth.php:114 ../../Zotlabs/Module/Oauth.php:140 -#: ../../addon/statusnet/statusnet.php:894 ../../addon/twitter/twitter.php:784 +#: ../../addon/statusnet/statusnet.php:596 ../../addon/twitter/twitter.php:614 msgid "Consumer Key" msgstr "" @@ -8001,14 +8048,39 @@ msgid "Connected OAuth Apps" msgstr "" #: ../../Zotlabs/Module/Notifications.php:60 -#: ../../Zotlabs/Lib/ThreadItem.php:422 +#: ../../Zotlabs/Lib/ThreadItem.php:450 msgid "Mark all seen" msgstr "" -#: ../../Zotlabs/Lib/Activity.php:1417 ../../Zotlabs/Lib/Activity.php:1614 -#: ../../widget/Netselect/Netselect.php:42 ../../addon/pubcrawl/as.php:1221 -#: ../../addon/pubcrawl/as.php:1376 ../../addon/pubcrawl/as.php:1555 -#: ../../include/network.php:1778 +#: ../../Zotlabs/Lib/Activity.php:1458 +#, php-format +msgid "Likes %1$s's %2$s" +msgstr "" + +#: ../../Zotlabs/Lib/Activity.php:1461 +#, php-format +msgid "Doesn't like %1$s's %2$s" +msgstr "" + +#: ../../Zotlabs/Lib/Activity.php:1464 +#, php-format +msgid "Will attend %1$s's %2$s" +msgstr "" + +#: ../../Zotlabs/Lib/Activity.php:1467 +#, php-format +msgid "Will not attend %1$s's %2$s" +msgstr "" + +#: ../../Zotlabs/Lib/Activity.php:1470 +#, php-format +msgid "May attend %1$s's %2$s" +msgstr "" + +#: ../../Zotlabs/Lib/Activity.php:1806 ../../Zotlabs/Lib/Activity.php:2003 +#: ../../widget/Netselect/Netselect.php:42 ../../addon/pubcrawl/as.php:1214 +#: ../../addon/pubcrawl/as.php:1369 ../../addon/pubcrawl/as.php:1549 +#: ../../include/network.php:1720 msgid "ActivityPub" msgstr "" @@ -8036,179 +8108,183 @@ msgstr "" msgid "5. Wizard - I probably know more than you do" msgstr "" -#: ../../Zotlabs/Lib/Libzot.php:663 ../../include/zot.php:800 +#: ../../Zotlabs/Lib/Libzot.php:652 ../../include/zot.php:802 msgid "Unable to verify channel signature" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:301 +#: ../../Zotlabs/Lib/Apps.php:322 msgid "Apps" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:304 +#: ../../Zotlabs/Lib/Apps.php:323 +msgid "Affinity Tool" +msgstr "" + +#: ../../Zotlabs/Lib/Apps.php:326 msgid "Site Admin" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:305 ../../addon/buglink/buglink.php:16 +#: ../../Zotlabs/Lib/Apps.php:327 ../../addon/buglink/buglink.php:16 msgid "Report Bug" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:306 ../../include/nav.php:460 +#: ../../Zotlabs/Lib/Apps.php:328 ../../include/nav.php:490 msgid "Bookmarks" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:307 ../../Zotlabs/Widget/Chatroom_list.php:16 -#: ../../include/nav.php:447 ../../include/nav.php:450 +#: ../../Zotlabs/Lib/Apps.php:329 ../../Zotlabs/Widget/Chatroom_list.php:16 +#: ../../include/nav.php:477 ../../include/nav.php:480 msgid "Chatrooms" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:309 +#: ../../Zotlabs/Lib/Apps.php:331 msgid "Remote Diagnostics" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:310 ../../include/features.php:373 +#: ../../Zotlabs/Lib/Apps.php:332 ../../include/features.php:365 msgid "Suggest Channels" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:311 ../../boot.php:1625 ../../include/nav.php:118 +#: ../../Zotlabs/Lib/Apps.php:333 ../../boot.php:1629 ../../include/nav.php:118 #: ../../include/nav.php:122 msgid "Login" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:313 +#: ../../Zotlabs/Lib/Apps.php:335 msgid "Stream" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:317 ../../include/nav.php:509 +#: ../../Zotlabs/Lib/Apps.php:339 ../../include/nav.php:539 msgid "Wiki" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:318 ../../include/features.php:96 +#: ../../Zotlabs/Lib/Apps.php:340 ../../include/features.php:96 msgid "Channel Home" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:321 ../../include/features.php:269 +#: ../../Zotlabs/Lib/Apps.php:343 ../../include/features.php:269 msgid "Events" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:322 ../../include/features.php:176 +#: ../../Zotlabs/Lib/Apps.php:344 ../../include/features.php:176 msgid "Directory" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:324 +#: ../../Zotlabs/Lib/Apps.php:346 msgid "Mail" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:327 +#: ../../Zotlabs/Lib/Apps.php:349 msgid "Chat" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:329 +#: ../../Zotlabs/Lib/Apps.php:351 msgid "Probe" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:330 +#: ../../Zotlabs/Lib/Apps.php:352 msgid "Suggest" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:331 +#: ../../Zotlabs/Lib/Apps.php:353 msgid "Random Channel" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:332 +#: ../../Zotlabs/Lib/Apps.php:354 msgid "Invite" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:333 ../../Zotlabs/Widget/Admin.php:26 +#: ../../Zotlabs/Lib/Apps.php:355 ../../Zotlabs/Widget/Admin.php:26 msgid "Features" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:334 ../../addon/openid/MysqlProvider.php:69 +#: ../../Zotlabs/Lib/Apps.php:356 ../../addon/openid/MysqlProvider.php:69 msgid "Language" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:335 +#: ../../Zotlabs/Lib/Apps.php:357 msgid "Post" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:336 ../../addon/openid/MysqlProvider.php:58 +#: ../../Zotlabs/Lib/Apps.php:358 ../../addon/openid/MysqlProvider.php:58 #: ../../addon/openid/MysqlProvider.php:59 #: ../../addon/openid/MysqlProvider.php:60 msgid "Profile Photo" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:338 ../../include/features.php:405 +#: ../../Zotlabs/Lib/Apps.php:360 ../../include/features.php:397 msgid "Profiles" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:340 +#: ../../Zotlabs/Lib/Apps.php:362 msgid "Notifications" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:341 +#: ../../Zotlabs/Lib/Apps.php:363 msgid "Order Apps" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:342 ../../include/features.php:82 +#: ../../Zotlabs/Lib/Apps.php:364 ../../include/features.php:82 msgid "CalDAV" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:343 +#: ../../Zotlabs/Lib/Apps.php:365 msgid "CardDAV" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:345 +#: ../../Zotlabs/Lib/Apps.php:367 msgid "Guest Access" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:346 ../../Zotlabs/Widget/Notes.php:21 +#: ../../Zotlabs/Lib/Apps.php:368 ../../Zotlabs/Widget/Notes.php:21 msgid "Notes" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:347 +#: ../../Zotlabs/Lib/Apps.php:369 msgid "OAuth Apps Manager" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:348 +#: ../../Zotlabs/Lib/Apps.php:370 msgid "OAuth2 Apps Manager" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:349 +#: ../../Zotlabs/Lib/Apps.php:371 msgid "PDL Editor" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:351 +#: ../../Zotlabs/Lib/Apps.php:373 msgid "Premium Channel" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:353 +#: ../../Zotlabs/Lib/Apps.php:375 msgid "My Chatrooms" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:354 +#: ../../Zotlabs/Lib/Apps.php:376 msgid "Channel Export" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:531 +#: ../../Zotlabs/Lib/Apps.php:553 msgid "Purchase" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:536 +#: ../../Zotlabs/Lib/Apps.php:558 msgid "Undelete" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:545 +#: ../../Zotlabs/Lib/Apps.php:567 msgid "Add to app-tray" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:546 +#: ../../Zotlabs/Lib/Apps.php:568 msgid "Remove from app-tray" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:547 +#: ../../Zotlabs/Lib/Apps.php:569 msgid "Pin to navbar" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:548 +#: ../../Zotlabs/Lib/Apps.php:570 msgid "Unpin from navbar" msgstr "" @@ -8305,8 +8381,8 @@ msgstr "" msgid "Compare" msgstr "" -#: ../../Zotlabs/Lib/NativeWikiPage.php:603 ../../include/bbcode.php:746 -#: ../../include/bbcode.php:916 +#: ../../Zotlabs/Lib/NativeWikiPage.php:603 ../../include/bbcode.php:735 +#: ../../include/bbcode.php:905 msgid "Different viewers will see this text differently" msgstr "" @@ -8441,7 +8517,7 @@ msgstr "" msgid "Room is full" msgstr "" -#: ../../Zotlabs/Lib/Libsync.php:733 ../../include/zot.php:2571 +#: ../../Zotlabs/Lib/Libsync.php:733 ../../include/zot.php:2591 #, php-format msgid "Unable to verify site signature for %s" msgstr "" @@ -8450,8 +8526,8 @@ msgstr "" msgid "$Projectname Notification" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:61 ../../addon/diaspora/util.php:308 -#: ../../addon/diaspora/util.php:321 ../../addon/diaspora/p.php:48 +#: ../../Zotlabs/Lib/Enotify.php:61 ../../addon/diaspora/util.php:313 +#: ../../addon/diaspora/util.php:326 ../../addon/diaspora/p.php:48 msgid "$projectname" msgstr "" @@ -8713,11 +8789,11 @@ msgstr "" msgid "edited a comment dated %s" msgstr "" -#: ../../Zotlabs/Lib/NativeWiki.php:152 +#: ../../Zotlabs/Lib/NativeWiki.php:143 msgid "Wiki updated successfully" msgstr "" -#: ../../Zotlabs/Lib/NativeWiki.php:206 +#: ../../Zotlabs/Lib/NativeWiki.php:197 msgid "Wiki files deleted successfully" msgstr "" @@ -8731,210 +8807,214 @@ msgstr "" msgid "Update %s failed. See error logs." msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:99 ../../include/conversation.php:700 +#: ../../Zotlabs/Lib/ThreadItem.php:102 ../../include/conversation.php:700 msgid "Private Message" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:154 ../../Zotlabs/Storage/Browser.php:280 +#: ../../Zotlabs/Lib/ThreadItem.php:129 +msgid "Privacy conflict. Discretion advised." +msgstr "" + +#: ../../Zotlabs/Lib/ThreadItem.php:171 ../../Zotlabs/Storage/Browser.php:280 msgid "Admin Delete" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:160 ../../include/conversation.php:690 +#: ../../Zotlabs/Lib/ThreadItem.php:177 ../../include/conversation.php:690 msgid "Select" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:185 +#: ../../Zotlabs/Lib/ThreadItem.php:202 msgid "I will attend" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:185 +#: ../../Zotlabs/Lib/ThreadItem.php:202 msgid "I will not attend" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:185 +#: ../../Zotlabs/Lib/ThreadItem.php:202 msgid "I might attend" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:195 +#: ../../Zotlabs/Lib/ThreadItem.php:212 msgid "I agree" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:195 +#: ../../Zotlabs/Lib/ThreadItem.php:212 msgid "I disagree" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:195 +#: ../../Zotlabs/Lib/ThreadItem.php:212 msgid "I abstain" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:249 ../../include/conversation.php:695 +#: ../../Zotlabs/Lib/ThreadItem.php:266 ../../include/conversation.php:695 msgid "Toggle Star Status" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:260 ../../include/conversation.php:707 +#: ../../Zotlabs/Lib/ThreadItem.php:277 ../../include/conversation.php:707 msgid "Message signature validated" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:261 ../../include/conversation.php:708 +#: ../../Zotlabs/Lib/ThreadItem.php:278 ../../include/conversation.php:708 msgid "Message signature incorrect" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:269 +#: ../../Zotlabs/Lib/ThreadItem.php:286 msgid "Add Tag" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:273 ../../include/conversation.php:891 +#: ../../Zotlabs/Lib/ThreadItem.php:290 ../../include/conversation.php:891 msgid "Conversation Tools" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:289 ../../include/taxonomy.php:575 +#: ../../Zotlabs/Lib/ThreadItem.php:306 ../../include/taxonomy.php:575 msgid "like" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:290 ../../include/taxonomy.php:576 +#: ../../Zotlabs/Lib/ThreadItem.php:307 ../../include/taxonomy.php:576 msgid "dislike" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:294 +#: ../../Zotlabs/Lib/ThreadItem.php:317 msgid "Share This" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:294 +#: ../../Zotlabs/Lib/ThreadItem.php:317 msgid "share" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:303 +#: ../../Zotlabs/Lib/ThreadItem.php:327 msgid "Delivery Report" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:321 +#: ../../Zotlabs/Lib/ThreadItem.php:347 #, php-format msgid "%d comment" msgid_plural "%d comments" msgstr[0] "" msgstr[1] "" -#: ../../Zotlabs/Lib/ThreadItem.php:355 ../../Zotlabs/Lib/ThreadItem.php:356 +#: ../../Zotlabs/Lib/ThreadItem.php:381 ../../Zotlabs/Lib/ThreadItem.php:382 #, php-format msgid "View %s's profile - %s" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:359 +#: ../../Zotlabs/Lib/ThreadItem.php:385 msgid "to" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:360 +#: ../../Zotlabs/Lib/ThreadItem.php:386 msgid "via" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:361 +#: ../../Zotlabs/Lib/ThreadItem.php:387 msgid "Wall-to-Wall" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:362 +#: ../../Zotlabs/Lib/ThreadItem.php:388 msgid "via Wall-To-Wall:" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:375 ../../include/conversation.php:766 +#: ../../Zotlabs/Lib/ThreadItem.php:402 ../../include/conversation.php:766 #, php-format msgid "from %s" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:378 ../../include/conversation.php:769 +#: ../../Zotlabs/Lib/ThreadItem.php:405 ../../include/conversation.php:769 #, php-format msgid "last edited: %s" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:379 ../../include/conversation.php:770 +#: ../../Zotlabs/Lib/ThreadItem.php:406 ../../include/conversation.php:770 #, php-format msgid "Expires: %s" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:387 +#: ../../Zotlabs/Lib/ThreadItem.php:414 msgid "Attend" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:388 +#: ../../Zotlabs/Lib/ThreadItem.php:415 msgid "Attendance Options" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:389 +#: ../../Zotlabs/Lib/ThreadItem.php:416 msgid "Vote" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:390 +#: ../../Zotlabs/Lib/ThreadItem.php:417 msgid "Voting Options" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:411 +#: ../../Zotlabs/Lib/ThreadItem.php:439 #: ../../addon/bookmarker/bookmarker.php:38 msgid "Save Bookmarks" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:412 +#: ../../Zotlabs/Lib/ThreadItem.php:440 msgid "Add to Calendar" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:440 ../../include/conversation.php:483 +#: ../../Zotlabs/Lib/ThreadItem.php:468 ../../include/conversation.php:483 msgid "This is an unsaved preview" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:473 ../../include/js_strings.php:7 +#: ../../Zotlabs/Lib/ThreadItem.php:501 ../../include/js_strings.php:7 #, php-format msgid "%s show all" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:768 ../../addon/hsse/hsse.php:200 -#: ../../include/conversation.php:1403 +#: ../../Zotlabs/Lib/ThreadItem.php:796 ../../addon/hsse/hsse.php:200 +#: ../../include/conversation.php:1406 msgid "Bold" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:769 ../../addon/hsse/hsse.php:201 -#: ../../include/conversation.php:1404 +#: ../../Zotlabs/Lib/ThreadItem.php:797 ../../addon/hsse/hsse.php:201 +#: ../../include/conversation.php:1407 msgid "Italic" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:770 ../../addon/hsse/hsse.php:202 -#: ../../include/conversation.php:1405 +#: ../../Zotlabs/Lib/ThreadItem.php:798 ../../addon/hsse/hsse.php:202 +#: ../../include/conversation.php:1408 msgid "Underline" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:771 ../../addon/hsse/hsse.php:203 -#: ../../include/conversation.php:1406 +#: ../../Zotlabs/Lib/ThreadItem.php:799 ../../addon/hsse/hsse.php:203 +#: ../../include/conversation.php:1409 msgid "Quote" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:772 ../../addon/hsse/hsse.php:204 -#: ../../include/conversation.php:1407 +#: ../../Zotlabs/Lib/ThreadItem.php:800 ../../addon/hsse/hsse.php:204 +#: ../../include/conversation.php:1410 msgid "Code" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:773 +#: ../../Zotlabs/Lib/ThreadItem.php:801 msgid "Image" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:774 ../../addon/hsse/hsse.php:205 -#: ../../include/conversation.php:1408 +#: ../../Zotlabs/Lib/ThreadItem.php:802 ../../addon/hsse/hsse.php:205 +#: ../../include/conversation.php:1411 msgid "Attach/Upload file" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:775 +#: ../../Zotlabs/Lib/ThreadItem.php:803 msgid "Insert Link" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:776 +#: ../../Zotlabs/Lib/ThreadItem.php:804 msgid "Video" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:786 +#: ../../Zotlabs/Lib/ThreadItem.php:814 msgid "Your full name (required)" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:787 +#: ../../Zotlabs/Lib/ThreadItem.php:815 msgid "Your email address (required)" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:788 +#: ../../Zotlabs/Lib/ThreadItem.php:816 msgid "Your website URL (optional)" msgstr "" @@ -8954,7 +9034,7 @@ msgstr "" msgid "parent" msgstr "" -#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2824 +#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2941 msgid "Collection" msgstr "" @@ -8966,8 +9046,8 @@ msgstr "" msgid "Addressbook" msgstr "" -#: ../../Zotlabs/Storage/Browser.php:140 ../../include/nav.php:433 -#: ../../include/nav.php:436 +#: ../../Zotlabs/Storage/Browser.php:140 ../../include/nav.php:463 +#: ../../include/nav.php:466 msgid "Calendar" msgstr "" @@ -9018,7 +9098,7 @@ msgid "Drop files here to immediately upload" msgstr "" #: ../../Zotlabs/Widget/Forums.php:100 -#: ../../Zotlabs/Widget/Activity_filter.php:102 +#: ../../Zotlabs/Widget/Activity_filter.php:73 #: ../../Zotlabs/Widget/Notifications.php:119 #: ../../Zotlabs/Widget/Notifications.php:120 msgid "Forums" @@ -9101,8 +9181,8 @@ msgid "Select an addressbook to import to" msgstr "" #: ../../Zotlabs/Widget/Appcategories.php:43 -#: ../../include/contact_widgets.php:97 ../../include/contact_widgets.php:141 -#: ../../include/contact_widgets.php:186 ../../include/taxonomy.php:409 +#: ../../include/contact_widgets.php:96 ../../include/contact_widgets.php:139 +#: ../../include/contact_widgets.php:184 ../../include/taxonomy.php:409 #: ../../include/taxonomy.php:491 ../../include/taxonomy.php:511 #: ../../include/taxonomy.php:532 msgid "Categories" @@ -9110,8 +9190,8 @@ msgstr "" #: ../../Zotlabs/Widget/Appcategories.php:46 ../../Zotlabs/Widget/Filer.php:31 #: ../../widget/Netselect/Netselect.php:26 ../../include/contact_widgets.php:56 -#: ../../include/contact_widgets.php:100 ../../include/contact_widgets.php:144 -#: ../../include/contact_widgets.php:189 +#: ../../include/contact_widgets.php:99 ../../include/contact_widgets.php:142 +#: ../../include/contact_widgets.php:187 msgid "Everything" msgstr "" @@ -9180,71 +9260,67 @@ msgctxt "widget" msgid "Activity" msgstr "" -#: ../../Zotlabs/Widget/Activity_filter.php:26 -msgid "Personal Posts" -msgstr "" - -#: ../../Zotlabs/Widget/Activity_filter.php:30 -msgid "Show posts that mention or involve me" +#: ../../Zotlabs/Widget/Activity_filter.php:36 +#, php-format +msgid "Show posts related to the %s privacy group" msgstr "" -#: ../../Zotlabs/Widget/Activity_filter.php:41 -msgid "Starred Posts" +#: ../../Zotlabs/Widget/Activity_filter.php:45 +msgid "Show my privacy groups" msgstr "" -#: ../../Zotlabs/Widget/Activity_filter.php:45 -msgid "Show posts that I have starred" +#: ../../Zotlabs/Widget/Activity_filter.php:66 +msgid "Show posts to this forum" msgstr "" -#: ../../Zotlabs/Widget/Activity_filter.php:65 -#, php-format -msgid "Show posts related to the %s privacy group" +#: ../../Zotlabs/Widget/Activity_filter.php:77 +msgid "Show forums" msgstr "" -#: ../../Zotlabs/Widget/Activity_filter.php:74 -msgid "Show my privacy groups" +#: ../../Zotlabs/Widget/Activity_filter.php:91 +msgid "Starred Posts" msgstr "" #: ../../Zotlabs/Widget/Activity_filter.php:95 -msgid "Show posts to this forum" +msgid "Show posts that I have starred" msgstr "" #: ../../Zotlabs/Widget/Activity_filter.php:106 -msgid "Show forums" +msgid "Personal Posts" msgstr "" -#: ../../Zotlabs/Widget/Activity_filter.php:130 +#: ../../Zotlabs/Widget/Activity_filter.php:110 +msgid "Show posts that mention or involve me" +msgstr "" + +#: ../../Zotlabs/Widget/Activity_filter.php:131 #, php-format msgid "Show posts that I have filed to %s" msgstr "" -#: ../../Zotlabs/Widget/Activity_filter.php:136 +#: ../../Zotlabs/Widget/Activity_filter.php:137 #: ../../Zotlabs/Widget/Filer.php:28 ../../include/contact_widgets.php:53 #: ../../include/features.php:325 msgid "Saved Folders" msgstr "" -#: ../../Zotlabs/Widget/Activity_filter.php:140 +#: ../../Zotlabs/Widget/Activity_filter.php:141 msgid "Show filed post categories" msgstr "" -#: ../../Zotlabs/Widget/Activity_filter.php:154 +#: ../../Zotlabs/Widget/Activity_filter.php:155 msgid "Panel search" msgstr "" -#: ../../Zotlabs/Widget/Activity_filter.php:164 -#: ../../Zotlabs/Widget/Notifications.php:27 -#: ../../Zotlabs/Widget/Notifications.php:46 -#: ../../Zotlabs/Widget/Notifications.php:122 -#: ../../Zotlabs/Widget/Notifications.php:153 +#: ../../Zotlabs/Widget/Activity_filter.php:165 msgid "Filter by name" msgstr "" -#: ../../Zotlabs/Widget/Activity_filter.php:179 +#: ../../Zotlabs/Widget/Activity_filter.php:180 msgid "Remove active filter" msgstr "" -#: ../../Zotlabs/Widget/Activity_filter.php:195 +#: ../../Zotlabs/Widget/Activity_filter.php:196 msgid "Stream Filters" msgstr "" @@ -9318,7 +9394,7 @@ msgstr "" msgid "Page name" msgstr "" -#: ../../Zotlabs/Widget/Affinity.php:45 +#: ../../Zotlabs/Widget/Affinity.php:54 msgid "Refresh" msgstr "" @@ -9467,15 +9543,11 @@ msgstr "" msgid "Channel settings" msgstr "" -#: ../../Zotlabs/Widget/Settings_menu.php:47 +#: ../../Zotlabs/Widget/Settings_menu.php:46 msgid "Display settings" msgstr "" #: ../../Zotlabs/Widget/Settings_menu.php:53 -msgid "Addon settings" -msgstr "" - -#: ../../Zotlabs/Widget/Settings_menu.php:60 msgid "Manage locations" msgstr "" @@ -9505,6 +9577,13 @@ msgstr "" msgid "Show new posts only" msgstr "" +#: ../../Zotlabs/Widget/Notifications.php:27 +#: ../../Zotlabs/Widget/Notifications.php:46 +#: ../../Zotlabs/Widget/Notifications.php:122 +#: ../../Zotlabs/Widget/Notifications.php:153 +msgid "Filter by name or address" +msgstr "" + #: ../../Zotlabs/Widget/Notifications.php:35 msgid "New Home Activity" msgstr "" @@ -9611,67 +9690,67 @@ msgstr "" msgid "Network/Protocol" msgstr "" -#: ../../widget/Netselect/Netselect.php:28 ../../include/network.php:1782 +#: ../../widget/Netselect/Netselect.php:28 ../../include/network.php:1724 msgid "Zot" msgstr "" -#: ../../widget/Netselect/Netselect.php:31 ../../include/network.php:1780 +#: ../../widget/Netselect/Netselect.php:31 ../../include/network.php:1722 msgid "Diaspora" msgstr "" -#: ../../widget/Netselect/Netselect.php:33 ../../include/network.php:1773 -#: ../../include/network.php:1774 +#: ../../widget/Netselect/Netselect.php:33 ../../include/network.php:1715 +#: ../../include/network.php:1716 msgid "Friendica" msgstr "" -#: ../../widget/Netselect/Netselect.php:38 ../../include/network.php:1775 +#: ../../widget/Netselect/Netselect.php:38 ../../include/network.php:1717 msgid "OStatus" msgstr "" -#: ../../boot.php:1604 +#: ../../boot.php:1608 msgid "Create an account to access services and applications" msgstr "" -#: ../../boot.php:1624 ../../include/nav.php:103 ../../include/nav.php:132 +#: ../../boot.php:1628 ../../include/nav.php:103 ../../include/nav.php:132 #: ../../include/nav.php:151 msgid "Logout" msgstr "" -#: ../../boot.php:1628 +#: ../../boot.php:1632 msgid "Login/Email" msgstr "" -#: ../../boot.php:1629 +#: ../../boot.php:1633 msgid "Password" msgstr "" -#: ../../boot.php:1630 +#: ../../boot.php:1634 msgid "Remember me" msgstr "" -#: ../../boot.php:1633 +#: ../../boot.php:1637 msgid "Forgot your password?" msgstr "" -#: ../../boot.php:2431 +#: ../../boot.php:2433 #, php-format msgid "[$Projectname] Website SSL error for %s" msgstr "" -#: ../../boot.php:2436 +#: ../../boot.php:2438 msgid "Website SSL certificate is not valid. Please correct." msgstr "" -#: ../../boot.php:2552 +#: ../../boot.php:2554 #, php-format msgid "[$Projectname] Cron tasks not running on %s" msgstr "" -#: ../../boot.php:2557 +#: ../../boot.php:2559 msgid "Cron/Scheduled tasks not running." msgstr "" -#: ../../boot.php:2558 ../../include/datetime.php:238 +#: ../../boot.php:2560 ../../include/datetime.php:238 msgid "never" msgstr "" @@ -9803,7 +9882,7 @@ msgstr "" msgid "Errors encountered deleting database table " msgstr "" -#: ../../addon/rendezvous/rendezvous.php:95 ../../addon/twitter/twitter.php:782 +#: ../../addon/rendezvous/rendezvous.php:95 ../../addon/twitter/twitter.php:612 msgid "Submit Settings" msgstr "" @@ -9928,15 +10007,23 @@ msgstr "" msgid "You have no rendezvous. Press the button above to create a rendezvous!" msgstr "" -#: ../../addon/skeleton/skeleton.php:59 +#: ../../addon/skeleton/Mod_Skeleton.php:32 +msgid "Skeleton App" +msgstr "" + +#: ../../addon/skeleton/Mod_Skeleton.php:33 +msgid "A skeleton for addons, you can copy/paste" +msgstr "" + +#: ../../addon/skeleton/Mod_Skeleton.php:40 msgid "Some setting" msgstr "" -#: ../../addon/skeleton/skeleton.php:61 +#: ../../addon/skeleton/Mod_Skeleton.php:40 msgid "A setting" msgstr "" -#: ../../addon/skeleton/skeleton.php:64 +#: ../../addon/skeleton/Mod_Skeleton.php:48 msgid "Skeleton Settings" msgstr "" @@ -9947,6 +10034,10 @@ msgid "" "locations." msgstr "" +#: ../../addon/gnusoc/Mod_Gnusoc.php:22 +msgid "GNU-Social Protocol App" +msgstr "" + #: ../../addon/gnusoc/Mod_Gnusoc.php:34 msgid "GNU-Social Protocol" msgstr "" @@ -9960,16 +10051,21 @@ msgstr "" msgid "%1$s is now following %2$s" msgstr "" -#: ../../addon/planets/planets.php:121 -msgid "Planets Settings updated." +#: ../../addon/planets/Mod_Planets.php:20 +#: ../../addon/planets/Mod_Planets.php:23 +msgid "Random Planet App" msgstr "" -#: ../../addon/planets/planets.php:149 -msgid "Enable Planets Plugin" +#: ../../addon/planets/Mod_Planets.php:23 +#: ../../addon/rainbowtag/Mod_Rainbowtag.php:26 +#: ../../addon/nsabait/Mod_Nsabait.php:24 ../../addon/hsse/Mod_Hsse.php:26 +#: ../../addon/authchoose/Mod_Authchoose.php:33 +msgid "Installed" msgstr "" -#: ../../addon/planets/planets.php:153 -msgid "Planets Settings" +#: ../../addon/planets/Mod_Planets.php:25 +msgid "" +"Set a random planet from the Star Wars Empire as your location when posting" msgstr "" #: ../../addon/openclipatar/openclipatar.php:50 @@ -10001,7 +10097,7 @@ msgstr "" msgid "Page to load after image selection." msgstr "" -#: ../../addon/openclipatar/openclipatar.php:58 ../../include/channel.php:1307 +#: ../../addon/openclipatar/openclipatar.php:58 ../../include/channel.php:1356 #: ../../include/nav.php:111 msgid "Edit Profile" msgstr "" @@ -10090,10 +10186,97 @@ msgid "" "view" msgstr "" +#: ../../addon/totp/Settings/Totp.php:90 +msgid "" +"You haven't set a TOTP secret yet.\n" +"Please click the button below to generate one and register this site\n" +"with your preferred authenticator app." +msgstr "" + +#: ../../addon/totp/Settings/Totp.php:93 +msgid "Your TOTP secret is" +msgstr "" + +#: ../../addon/totp/Settings/Totp.php:94 +msgid "" +"Be sure to save it somewhere in case you lose or replace your mobile " +"device.\n" +"Use your mobile device to scan the QR code below to register this site\n" +"with your preferred authenticator app." +msgstr "" + +#: ../../addon/totp/Settings/Totp.php:99 +msgid "Test" +msgstr "" + +#: ../../addon/totp/Settings/Totp.php:100 +msgid "Generate New Secret" +msgstr "" + +#: ../../addon/totp/Settings/Totp.php:101 +msgid "Go" +msgstr "" + +#: ../../addon/totp/Settings/Totp.php:102 +msgid "Enter your password" +msgstr "" + +#: ../../addon/totp/Settings/Totp.php:103 +msgid "enter TOTP code from your device" +msgstr "" + +#: ../../addon/totp/Settings/Totp.php:104 +msgid "Pass!" +msgstr "" + +#: ../../addon/totp/Settings/Totp.php:105 +msgid "Fail" +msgstr "" + +#: ../../addon/totp/Settings/Totp.php:106 +msgid "Incorrect password, try again." +msgstr "" + +#: ../../addon/totp/Settings/Totp.php:107 +msgid "Record your new TOTP secret and rescan the QR code above." +msgstr "" + +#: ../../addon/totp/Settings/Totp.php:115 +msgid "TOTP Settings" +msgstr "" + +#: ../../addon/totp/Mod_Totp.php:23 +msgid "TOTP Two-Step Verification" +msgstr "" + +#: ../../addon/totp/Mod_Totp.php:24 +msgid "Enter the 2-step verification generated by your authenticator app:" +msgstr "" + +#: ../../addon/totp/Mod_Totp.php:25 +msgid "Success!" +msgstr "" + +#: ../../addon/totp/Mod_Totp.php:26 +msgid "Invalid code, please try again." +msgstr "" + +#: ../../addon/totp/Mod_Totp.php:27 +msgid "Too many invalid codes..." +msgstr "" + +#: ../../addon/totp/Mod_Totp.php:28 +msgid "Verify" +msgstr "" + #: ../../addon/wppost/Mod_Wppost.php:28 msgid "Wordpress Settings saved." msgstr "" +#: ../../addon/wppost/Mod_Wppost.php:41 +msgid "Wordpress Post App" +msgstr "" + #: ../../addon/wppost/Mod_Wppost.php:42 msgid "Post to WordPress or anything else which uses the wordpress XMLRPC API" msgstr "" @@ -10151,6 +10334,10 @@ msgstr "" msgid "NSFW Settings saved." msgstr "" +#: ../../addon/nsfw/Mod_Nsfw.php:33 +msgid "NSFW App" +msgstr "" + #: ../../addon/nsfw/Mod_Nsfw.php:34 msgid "Collapse content that contains predefined words" msgstr "" @@ -10177,56 +10364,80 @@ msgstr "" msgid "NSFW" msgstr "" -#: ../../addon/ijpost/ijpost.php:42 -msgid "Post to Insanejournal" +#: ../../addon/queueworker/Mod_Queueworker.php:73 +msgid "Max queueworker threads" +msgstr "" + +#: ../../addon/queueworker/Mod_Queueworker.php:87 +msgid "Assume workers dead after ___ seconds" +msgstr "" + +#: ../../addon/queueworker/Mod_Queueworker.php:99 +msgid "Queueworker Settings" +msgstr "" + +#: ../../addon/ijpost/Mod_Ijpost.php:23 +msgid "Insane Journal Crosspost Connector Settings saved." +msgstr "" + +#: ../../addon/ijpost/Mod_Ijpost.php:35 +msgid "Insane Journal Crosspost Connector App" msgstr "" -#: ../../addon/ijpost/ijpost.php:73 -msgid "Enable InsaneJournal Post Plugin" +#: ../../addon/ijpost/Mod_Ijpost.php:36 +msgid "Relay public postings to Insane Journal" msgstr "" -#: ../../addon/ijpost/ijpost.php:77 +#: ../../addon/ijpost/Mod_Ijpost.php:53 msgid "InsaneJournal username" msgstr "" -#: ../../addon/ijpost/ijpost.php:81 +#: ../../addon/ijpost/Mod_Ijpost.php:57 msgid "InsaneJournal password" msgstr "" -#: ../../addon/ijpost/ijpost.php:85 +#: ../../addon/ijpost/Mod_Ijpost.php:61 msgid "Post to InsaneJournal by default" msgstr "" -#: ../../addon/ijpost/ijpost.php:89 -msgid "InsaneJournal Post Settings" +#: ../../addon/ijpost/Mod_Ijpost.php:69 +msgid "Insane Journal Crosspost Connector" msgstr "" -#: ../../addon/ijpost/ijpost.php:104 -msgid "Insane Journal Settings saved." +#: ../../addon/ijpost/ijpost.php:45 +msgid "Post to Insane Journal" msgstr "" -#: ../../addon/dwpost/dwpost.php:42 +#: ../../addon/dwpost/dwpost.php:48 msgid "Post to Dreamwidth" msgstr "" -#: ../../addon/dwpost/dwpost.php:73 -msgid "Enable Dreamwidth Post Plugin" +#: ../../addon/dwpost/Mod_Dwpost.php:24 +msgid "Dreamwidth Crosspost Connector Settings saved." +msgstr "" + +#: ../../addon/dwpost/Mod_Dwpost.php:36 +msgid "Dreamwidth Crosspost Connector App" +msgstr "" + +#: ../../addon/dwpost/Mod_Dwpost.php:37 +msgid "Relay public postings to Dreamwidth" msgstr "" -#: ../../addon/dwpost/dwpost.php:77 +#: ../../addon/dwpost/Mod_Dwpost.php:52 msgid "Dreamwidth username" msgstr "" -#: ../../addon/dwpost/dwpost.php:81 +#: ../../addon/dwpost/Mod_Dwpost.php:56 msgid "Dreamwidth password" msgstr "" -#: ../../addon/dwpost/dwpost.php:85 +#: ../../addon/dwpost/Mod_Dwpost.php:60 msgid "Post to Dreamwidth by default" msgstr "" -#: ../../addon/dwpost/dwpost.php:89 -msgid "Dreamwidth Post Settings" +#: ../../addon/dwpost/Mod_Dwpost.php:68 +msgid "Dreamwidth Crosspost Connector" msgstr "" #: ../../addon/notifyadmin/notifyadmin.php:34 @@ -10360,68 +10571,72 @@ msgstr "" msgid "0 or blank to import all available" msgstr "" -#: ../../addon/irc/irc.php:45 -msgid "Channels to auto connect" +#: ../../addon/irc/Mod_Irc.php:23 ../../addon/irc/irc.php:41 +msgid "Popular Channels" msgstr "" -#: ../../addon/irc/irc.php:45 ../../addon/irc/irc.php:49 -msgid "Comma separated list" +#: ../../addon/irc/irc.php:37 +msgid "Channels to auto connect" msgstr "" -#: ../../addon/irc/irc.php:49 ../../addon/irc/irc.php:96 -msgid "Popular Channels" +#: ../../addon/irc/irc.php:37 ../../addon/irc/irc.php:41 +msgid "Comma separated list" msgstr "" -#: ../../addon/irc/irc.php:53 +#: ../../addon/irc/irc.php:45 msgid "IRC Settings" msgstr "" -#: ../../addon/irc/irc.php:69 +#: ../../addon/irc/irc.php:54 msgid "IRC settings saved." msgstr "" -#: ../../addon/irc/irc.php:74 +#: ../../addon/irc/irc.php:58 msgid "IRC Chatroom" msgstr "" -#: ../../addon/gallery/gallery.php:47 ../../addon/gallery/Mod_Gallery.php:115 +#: ../../addon/gallery/gallery.php:38 ../../addon/gallery/Mod_Gallery.php:135 msgid "Gallery" msgstr "" -#: ../../addon/gallery/gallery.php:50 +#: ../../addon/gallery/gallery.php:41 msgid "Photo Gallery" msgstr "" -#: ../../addon/gallery/Mod_Gallery.php:57 +#: ../../addon/gallery/Mod_Gallery.php:58 +msgid "Gallery App" +msgstr "" + +#: ../../addon/gallery/Mod_Gallery.php:59 msgid "A simple gallery for your photo albums" msgstr "" -#: ../../addon/ljpost/ljpost.php:42 -msgid "Post to LiveJournal" +#: ../../addon/ljpost/Mod_Ljpost.php:36 +msgid "Livejournal Crosspost Connector App" msgstr "" -#: ../../addon/ljpost/ljpost.php:70 -msgid "Enable LiveJournal Post Plugin" +#: ../../addon/ljpost/Mod_Ljpost.php:37 +msgid "Relay public posts to Livejournal" msgstr "" -#: ../../addon/ljpost/ljpost.php:74 -msgid "LiveJournal username" +#: ../../addon/ljpost/Mod_Ljpost.php:54 +msgid "Livejournal username" msgstr "" -#: ../../addon/ljpost/ljpost.php:78 -msgid "LiveJournal password" +#: ../../addon/ljpost/Mod_Ljpost.php:58 +msgid "Livejournal password" msgstr "" -#: ../../addon/ljpost/ljpost.php:82 -msgid "Post to LiveJournal by default" +#: ../../addon/ljpost/Mod_Ljpost.php:62 +msgid "Post to Livejournal by default" msgstr "" -#: ../../addon/ljpost/ljpost.php:86 -msgid "LiveJournal Post Settings" +#: ../../addon/ljpost/Mod_Ljpost.php:70 +msgid "Livejournal Crosspost Connector" msgstr "" -#: ../../addon/ljpost/ljpost.php:101 -msgid "LiveJournal Settings saved." +#: ../../addon/ljpost/ljpost.php:45 +msgid "Post to Livejournal" msgstr "" #: ../../addon/openid/openid.php:49 @@ -10442,7 +10657,7 @@ msgstr "" msgid "Last Name" msgstr "" -#: ../../addon/openid/MysqlProvider.php:54 ../../addon/redred/redred.php:111 +#: ../../addon/openid/MysqlProvider.php:54 ../../addon/redred/Mod_Redred.php:75 msgid "Nickname" msgstr "" @@ -10503,12 +10718,12 @@ msgid "Login failed." msgstr "" #: ../../addon/openid/Mod_Id.php:85 ../../include/selectors.php:60 -#: ../../include/selectors.php:77 ../../include/channel.php:1487 +#: ../../include/selectors.php:77 ../../include/channel.php:1536 msgid "Male" msgstr "" #: ../../addon/openid/Mod_Id.php:87 ../../include/selectors.php:60 -#: ../../include/selectors.php:77 ../../include/channel.php:1485 +#: ../../include/selectors.php:77 ../../include/channel.php:1534 msgid "Female" msgstr "" @@ -10528,6 +10743,10 @@ msgstr "" msgid "<blush>" msgstr "" +#: ../../addon/startpage/Mod_Startpage.php:50 +msgid "Startpage App" +msgstr "" + #: ../../addon/startpage/Mod_Startpage.php:51 msgid "Set a preferred page to load on login from home page" msgstr "" @@ -10699,6 +10918,11 @@ msgstr "" msgid "declared undying love for" msgstr "" +#: ../../addon/diaspora/Receiver.php:1495 +#, php-format +msgid "%1$s dislikes %2$s's %3$s" +msgstr "" + #: ../../addon/diaspora/Mod_Diaspora.php:40 msgid "Diaspora Protocol Settings updated." msgstr "" @@ -10710,6 +10934,10 @@ msgid "" "locations." msgstr "" +#: ../../addon/diaspora/Mod_Diaspora.php:55 +msgid "Diaspora Protocol App" +msgstr "" + #: ../../addon/diaspora/Mod_Diaspora.php:74 msgid "Allow any Diaspora member to comment on your public posts" msgstr "" @@ -10734,10 +10962,36 @@ msgstr "" msgid "No username found in import file." msgstr "" -#: ../../addon/diaspora/import_diaspora.php:43 ../../include/import.php:72 +#: ../../addon/diaspora/import_diaspora.php:43 ../../include/import.php:73 msgid "Unable to create a unique channel address. Import failed." msgstr "" +#: ../../addon/photocache/Mod_Photocache.php:27 +msgid "Photo Cache settings saved." +msgstr "" + +#: ../../addon/photocache/Mod_Photocache.php:36 +msgid "" +"Photo Cache addon saves a copy of images from external sites locally to " +"increase your anonymity in the web." +msgstr "" + +#: ../../addon/photocache/Mod_Photocache.php:42 +msgid "Photo Cache App" +msgstr "" + +#: ../../addon/photocache/Mod_Photocache.php:53 +msgid "Minimal photo size for caching" +msgstr "" + +#: ../../addon/photocache/Mod_Photocache.php:55 +msgid "In pixels. From 1 up to 1024, 0 will be replaced with system default." +msgstr "" + +#: ../../addon/photocache/Mod_Photocache.php:64 +msgid "Photo Cache" +msgstr "" + #: ../../addon/testdrive/testdrive.php:104 #, php-format msgid "Your account on %s will expire in a few days." @@ -10751,6 +11005,11 @@ msgstr "" msgid "Add some colour to tag clouds" msgstr "" +#: ../../addon/rainbowtag/Mod_Rainbowtag.php:21 +#: ../../addon/rainbowtag/Mod_Rainbowtag.php:26 +msgid "Rainbow Tag App" +msgstr "" + #: ../../addon/rainbowtag/Mod_Rainbowtag.php:34 msgid "Rainbow Tag" msgstr "" @@ -10807,7 +11066,7 @@ msgid "" msgstr "" #: ../../addon/gravatar/gravatar.php:150 ../../addon/msgfooter/msgfooter.php:46 -#: ../../addon/xmpp/xmpp.php:91 +#: ../../addon/xmpp/xmpp.php:43 msgid "Save Settings" msgstr "" @@ -10851,45 +11110,25 @@ msgstr "" msgid "Until modified date yyyy-mm-dd" msgstr "" -#: ../../addon/visage/visage.php:93 -msgid "Recent Channel/Profile Viewers" -msgstr "" - -#: ../../addon/visage/visage.php:98 -msgid "This plugin/addon has not been configured." +#: ../../addon/visage/Mod_Visage.php:21 +msgid "Who viewed my channel/profile" msgstr "" -#: ../../addon/visage/visage.php:99 -#, php-format -msgid "Please visit the Visage settings on %s" -msgstr "" - -#: ../../addon/visage/visage.php:99 -msgid "your feature settings page" +#: ../../addon/visage/Mod_Visage.php:25 +msgid "Recent Channel/Profile Viewers" msgstr "" -#: ../../addon/visage/visage.php:112 +#: ../../addon/visage/Mod_Visage.php:36 msgid "No entries." msgstr "" -#: ../../addon/visage/visage.php:166 -msgid "Enable Visage Visitor Logging" -msgstr "" - -#: ../../addon/visage/visage.php:170 -msgid "Visage Settings" -msgstr "" - -#: ../../addon/nsabait/nsabait.php:125 -msgid "Nsabait Settings updated." -msgstr "" - -#: ../../addon/nsabait/nsabait.php:157 -msgid "Enable NSAbait Plugin" +#: ../../addon/nsabait/Mod_Nsabait.php:20 +#: ../../addon/nsabait/Mod_Nsabait.php:24 +msgid "NSA Bait App" msgstr "" -#: ../../addon/nsabait/nsabait.php:161 -msgid "NSAbait Settings" +#: ../../addon/nsabait/Mod_Nsabait.php:26 +msgid "Make yourself a political target" msgstr "" #: ../../addon/mailtest/mailtest.php:19 @@ -10924,40 +11163,40 @@ msgstr "" msgid "View Larger" msgstr "" -#: ../../addon/openstreetmap/openstreetmap.php:169 +#: ../../addon/openstreetmap/openstreetmap.php:170 msgid "Tile Server URL" msgstr "" -#: ../../addon/openstreetmap/openstreetmap.php:169 +#: ../../addon/openstreetmap/openstreetmap.php:170 msgid "" "A list of <a href=\"http://wiki.openstreetmap.org/wiki/TMS\" target=\"_blank" "\">public tile servers</a>" msgstr "" -#: ../../addon/openstreetmap/openstreetmap.php:170 +#: ../../addon/openstreetmap/openstreetmap.php:171 msgid "Nominatim (reverse geocoding) Server URL" msgstr "" -#: ../../addon/openstreetmap/openstreetmap.php:170 +#: ../../addon/openstreetmap/openstreetmap.php:171 msgid "" "A list of <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim\" target=" "\"_blank\">Nominatim servers</a>" msgstr "" -#: ../../addon/openstreetmap/openstreetmap.php:171 +#: ../../addon/openstreetmap/openstreetmap.php:172 msgid "Default zoom" msgstr "" -#: ../../addon/openstreetmap/openstreetmap.php:171 +#: ../../addon/openstreetmap/openstreetmap.php:172 msgid "" "The default zoom level. (1:world, 18:highest, also depends on tile server)" msgstr "" -#: ../../addon/openstreetmap/openstreetmap.php:172 +#: ../../addon/openstreetmap/openstreetmap.php:173 msgid "Include marker on map" msgstr "" -#: ../../addon/openstreetmap/openstreetmap.php:172 +#: ../../addon/openstreetmap/openstreetmap.php:173 msgid "Include a marker on the map." msgstr "" @@ -10965,120 +11204,128 @@ msgstr "" msgid "text to include in all outgoing posts from this site" msgstr "" -#: ../../addon/fuzzloc/fuzzloc.php:148 +#: ../../addon/fuzzloc/Mod_Fuzzloc.php:22 msgid "Fuzzloc Settings updated." msgstr "" -#: ../../addon/fuzzloc/fuzzloc.php:175 -msgid "" -"Fuzzloc allows you to blur your precise location if your channel uses " -"browser location mapping." +#: ../../addon/fuzzloc/Mod_Fuzzloc.php:34 +msgid "Fuzzy Location App" msgstr "" -#: ../../addon/fuzzloc/fuzzloc.php:178 -msgid "Enable Fuzzloc Plugin" +#: ../../addon/fuzzloc/Mod_Fuzzloc.php:35 +msgid "" +"Blur your precise location if your channel uses browser location mapping" msgstr "" -#: ../../addon/fuzzloc/fuzzloc.php:182 +#: ../../addon/fuzzloc/Mod_Fuzzloc.php:40 msgid "Minimum offset in meters" msgstr "" -#: ../../addon/fuzzloc/fuzzloc.php:186 +#: ../../addon/fuzzloc/Mod_Fuzzloc.php:44 msgid "Maximum offset in meters" msgstr "" -#: ../../addon/fuzzloc/fuzzloc.php:191 -msgid "Fuzzloc Settings" +#: ../../addon/fuzzloc/Mod_Fuzzloc.php:53 +msgid "Fuzzy Location" msgstr "" -#: ../../addon/rtof/rtof.php:45 +#: ../../addon/rtof/rtof.php:51 msgid "Post to Friendica" msgstr "" -#: ../../addon/rtof/rtof.php:62 -msgid "rtof Settings saved." +#: ../../addon/rtof/Mod_Rtof.php:24 +msgid "Friendica Crosspost Connector Settings saved." +msgstr "" + +#: ../../addon/rtof/Mod_Rtof.php:36 +msgid "Friendica Crosspost Connector App" msgstr "" -#: ../../addon/rtof/rtof.php:81 -msgid "Allow posting to Friendica" +#: ../../addon/rtof/Mod_Rtof.php:37 +msgid "Relay public postings to a connected Friendica account" msgstr "" -#: ../../addon/rtof/rtof.php:85 +#: ../../addon/rtof/Mod_Rtof.php:49 msgid "Send public postings to Friendica by default" msgstr "" -#: ../../addon/rtof/rtof.php:89 +#: ../../addon/rtof/Mod_Rtof.php:53 msgid "Friendica API Path" msgstr "" -#: ../../addon/rtof/rtof.php:89 ../../addon/redred/redred.php:103 +#: ../../addon/rtof/Mod_Rtof.php:53 ../../addon/redred/Mod_Redred.php:67 msgid "https://{sitename}/api" msgstr "" -#: ../../addon/rtof/rtof.php:93 +#: ../../addon/rtof/Mod_Rtof.php:57 msgid "Friendica login name" msgstr "" -#: ../../addon/rtof/rtof.php:97 +#: ../../addon/rtof/Mod_Rtof.php:61 msgid "Friendica password" msgstr "" -#: ../../addon/rtof/rtof.php:101 -msgid "Hubzilla to Friendica Post Settings" +#: ../../addon/rtof/Mod_Rtof.php:69 +msgid "Friendica Crosspost Connector" msgstr "" -#: ../../addon/jappixmini/jappixmini.php:305 ../../include/channel.php:1403 -#: ../../include/channel.php:1574 -msgid "Status:" +#: ../../addon/jappixmini/Mod_Jappixmini.php:96 +msgid "Jappixmini App" +msgstr "" + +#: ../../addon/jappixmini/Mod_Jappixmini.php:97 +msgid "Provides a Facebook-like chat using Jappix Mini" msgstr "" -#: ../../addon/jappixmini/jappixmini.php:309 -msgid "Activate addon" +#: ../../addon/jappixmini/Mod_Jappixmini.php:157 ../../include/channel.php:1452 +#: ../../include/channel.php:1623 +msgid "Status:" msgstr "" -#: ../../addon/jappixmini/jappixmini.php:313 +#: ../../addon/jappixmini/Mod_Jappixmini.php:161 msgid "Hide Jappixmini Chat-Widget from the webinterface" msgstr "" -#: ../../addon/jappixmini/jappixmini.php:318 +#: ../../addon/jappixmini/Mod_Jappixmini.php:166 msgid "Jabber username" msgstr "" -#: ../../addon/jappixmini/jappixmini.php:324 +#: ../../addon/jappixmini/Mod_Jappixmini.php:172 msgid "Jabber server" msgstr "" -#: ../../addon/jappixmini/jappixmini.php:330 +#: ../../addon/jappixmini/Mod_Jappixmini.php:178 msgid "Jabber BOSH host URL" msgstr "" -#: ../../addon/jappixmini/jappixmini.php:337 +#: ../../addon/jappixmini/Mod_Jappixmini.php:185 msgid "Jabber password" msgstr "" -#: ../../addon/jappixmini/jappixmini.php:343 +#: ../../addon/jappixmini/Mod_Jappixmini.php:191 msgid "Encrypt Jabber password with Hubzilla password" msgstr "" -#: ../../addon/jappixmini/jappixmini.php:347 ../../addon/redred/redred.php:115 +#: ../../addon/jappixmini/Mod_Jappixmini.php:195 +#: ../../addon/redred/Mod_Redred.php:79 msgid "Hubzilla password" msgstr "" -#: ../../addon/jappixmini/jappixmini.php:351 -#: ../../addon/jappixmini/jappixmini.php:355 +#: ../../addon/jappixmini/Mod_Jappixmini.php:199 +#: ../../addon/jappixmini/Mod_Jappixmini.php:203 msgid "Approve subscription requests from Hubzilla contacts automatically" msgstr "" -#: ../../addon/jappixmini/jappixmini.php:359 +#: ../../addon/jappixmini/Mod_Jappixmini.php:207 msgid "Purge internal list of jabber addresses of contacts" msgstr "" -#: ../../addon/jappixmini/jappixmini.php:364 +#: ../../addon/jappixmini/Mod_Jappixmini.php:212 msgid "Configuration Help" msgstr "" -#: ../../addon/jappixmini/jappixmini.php:371 -msgid "Jappix Mini Settings" +#: ../../addon/jappixmini/Mod_Jappixmini.php:258 +msgid "Jappixmini Settings" msgstr "" #: ../../addon/upgrade_info/upgrade_info.php:43 @@ -11111,81 +11358,85 @@ msgstr "" msgid "Do not show this again" msgstr "" -#: ../../addon/channelreputation/channelreputation.php:101 -#: ../../addon/channelreputation/channelreputation.php:102 +#: ../../addon/channelreputation/channelreputation.php:98 +#: ../../addon/channelreputation/channelreputation.php:99 #: ../../addon/cart/myshop.php:141 ../../addon/cart/myshop.php:177 #: ../../addon/cart/myshop.php:211 ../../addon/cart/myshop.php:259 #: ../../addon/cart/myshop.php:294 ../../addon/cart/myshop.php:317 msgid "Access Denied" msgstr "" -#: ../../addon/channelreputation/channelreputation.php:109 +#: ../../addon/channelreputation/channelreputation.php:106 msgid "Enable Community Moderation" msgstr "" -#: ../../addon/channelreputation/channelreputation.php:117 +#: ../../addon/channelreputation/channelreputation.php:114 msgid "Reputation automatically given to new members" msgstr "" -#: ../../addon/channelreputation/channelreputation.php:118 +#: ../../addon/channelreputation/channelreputation.php:115 msgid "Reputation will never fall below this value" msgstr "" -#: ../../addon/channelreputation/channelreputation.php:119 +#: ../../addon/channelreputation/channelreputation.php:116 msgid "Minimum reputation before posting is allowed" msgstr "" -#: ../../addon/channelreputation/channelreputation.php:120 +#: ../../addon/channelreputation/channelreputation.php:117 msgid "Minimum reputation before commenting is allowed" msgstr "" -#: ../../addon/channelreputation/channelreputation.php:121 +#: ../../addon/channelreputation/channelreputation.php:118 msgid "Minimum reputation before a member is able to moderate other posts" msgstr "" -#: ../../addon/channelreputation/channelreputation.php:122 +#: ../../addon/channelreputation/channelreputation.php:119 msgid "" "Max ratio of moderator's reputation that can be added to/deducted from " "reputation of person being moderated" msgstr "" -#: ../../addon/channelreputation/channelreputation.php:123 +#: ../../addon/channelreputation/channelreputation.php:120 msgid "Reputation \"cost\" to post" msgstr "" -#: ../../addon/channelreputation/channelreputation.php:124 +#: ../../addon/channelreputation/channelreputation.php:121 msgid "Reputation \"cost\" to comment" msgstr "" -#: ../../addon/channelreputation/channelreputation.php:125 +#: ../../addon/channelreputation/channelreputation.php:122 msgid "" "Reputation automatically recovers at this rate per hour until it reaches " "minimum_to_post" msgstr "" -#: ../../addon/channelreputation/channelreputation.php:126 +#: ../../addon/channelreputation/channelreputation.php:123 msgid "" "When minimum_to_moderate > reputation > minimum_to_post reputation recovers " "at this rate per hour" msgstr "" -#: ../../addon/channelreputation/channelreputation.php:138 +#: ../../addon/channelreputation/channelreputation.php:137 msgid "Community Moderation Settings" msgstr "" -#: ../../addon/channelreputation/channelreputation.php:359 +#: ../../addon/channelreputation/channelreputation.php:365 msgid "Can moderate reputation on my channel." msgstr "" -#: ../../addon/channelreputation/channelreputation.php:544 -#: ../../addon/channelreputation/channelreputation.php:547 +#: ../../addon/channelreputation/channelreputation.php:549 +#: ../../addon/channelreputation/channelreputation.php:552 msgid "Channel Reputation" msgstr "" -#: ../../addon/superblock/superblock.php:318 +#: ../../addon/superblock/superblock.php:337 msgid "Block Completely" msgstr "" +#: ../../addon/superblock/Mod_Superblock.php:20 +msgid "Superblock App" +msgstr "" + #: ../../addon/superblock/Mod_Superblock.php:21 msgid "Block channels" msgstr "" @@ -11202,60 +11453,71 @@ msgstr "" msgid "No channels currently blocked" msgstr "" -#: ../../addon/nofed/nofed.php:42 -msgid "Federate" +#: ../../addon/nofed/Mod_Nofed.php:21 +msgid "nofed Settings saved." msgstr "" -#: ../../addon/nofed/nofed.php:56 -msgid "nofed Settings saved." +#: ../../addon/nofed/Mod_Nofed.php:33 +msgid "No Federation App" msgstr "" -#: ../../addon/nofed/nofed.php:72 -msgid "Allow Federation Toggle" +#: ../../addon/nofed/Mod_Nofed.php:34 +msgid "" +"Prevent posting from being federated to anybody. It will exist only on your " +"channel page." msgstr "" -#: ../../addon/nofed/nofed.php:76 +#: ../../addon/nofed/Mod_Nofed.php:42 msgid "Federate posts by default" msgstr "" -#: ../../addon/nofed/nofed.php:80 -msgid "NoFed Settings" +#: ../../addon/nofed/Mod_Nofed.php:50 +msgid "No Federation" msgstr "" -#: ../../addon/redred/redred.php:45 -msgid "Post to Red" +#: ../../addon/nofed/nofed.php:47 +msgid "Federate" msgstr "" -#: ../../addon/redred/redred.php:60 +#: ../../addon/redred/Mod_Redred.php:24 msgid "Channel is required." msgstr "" -#: ../../addon/redred/redred.php:76 -msgid "redred Settings saved." +#: ../../addon/redred/Mod_Redred.php:38 +msgid "Hubzilla Crosspost Connector Settings saved." +msgstr "" + +#: ../../addon/redred/Mod_Redred.php:50 +#: ../../addon/statusnet/Mod_Statusnet.php:146 +msgid "Hubzilla Crosspost Connector App" msgstr "" -#: ../../addon/redred/redred.php:95 -msgid "Allow posting to another Hubzilla Channel" +#: ../../addon/redred/Mod_Redred.php:51 +msgid "Relay public postings to another Hubzilla channel" msgstr "" -#: ../../addon/redred/redred.php:99 +#: ../../addon/redred/Mod_Redred.php:63 msgid "Send public postings to Hubzilla channel by default" msgstr "" -#: ../../addon/redred/redred.php:103 +#: ../../addon/redred/Mod_Redred.php:67 msgid "Hubzilla API Path" msgstr "" -#: ../../addon/redred/redred.php:107 +#: ../../addon/redred/Mod_Redred.php:71 msgid "Hubzilla login name" msgstr "" -#: ../../addon/redred/redred.php:111 +#: ../../addon/redred/Mod_Redred.php:75 msgid "Hubzilla channel name" msgstr "" -#: ../../addon/redred/redred.php:119 -msgid "Hubzilla Crosspost Settings" +#: ../../addon/redred/Mod_Redred.php:87 +msgid "Hubzilla Crosspost Connector" +msgstr "" + +#: ../../addon/redred/redred.php:50 +msgid "Post to Hubzilla" msgstr "" #: ../../addon/logrot/logrot.php:36 @@ -11298,6 +11560,10 @@ msgstr "" msgid "WYSIWYG status editor" msgstr "" +#: ../../addon/hsse/Mod_Hsse.php:21 ../../addon/hsse/Mod_Hsse.php:26 +msgid "WYSIWYG Status App" +msgstr "" + #: ../../addon/hsse/Mod_Hsse.php:34 msgid "WYSIWYG Status" msgstr "" @@ -11334,35 +11600,35 @@ msgstr "" msgid "Comments disabled" msgstr "" -#: ../../addon/hsse/hsse.php:195 ../../include/conversation.php:1398 +#: ../../addon/hsse/hsse.php:195 ../../include/conversation.php:1401 msgid "Page link name" msgstr "" -#: ../../addon/hsse/hsse.php:198 ../../include/conversation.php:1401 +#: ../../addon/hsse/hsse.php:198 ../../include/conversation.php:1404 msgid "Post as" msgstr "" -#: ../../addon/hsse/hsse.php:212 ../../include/conversation.php:1415 +#: ../../addon/hsse/hsse.php:212 ../../include/conversation.php:1418 msgid "Toggle voting" msgstr "" -#: ../../addon/hsse/hsse.php:215 ../../include/conversation.php:1418 +#: ../../addon/hsse/hsse.php:215 ../../include/conversation.php:1421 msgid "Disable comments" msgstr "" -#: ../../addon/hsse/hsse.php:216 ../../include/conversation.php:1419 +#: ../../addon/hsse/hsse.php:216 ../../include/conversation.php:1422 msgid "Toggle comments" msgstr "" -#: ../../addon/hsse/hsse.php:224 ../../include/conversation.php:1427 +#: ../../addon/hsse/hsse.php:224 ../../include/conversation.php:1430 msgid "Categories (optional, comma-separated list)" msgstr "" -#: ../../addon/hsse/hsse.php:247 ../../include/conversation.php:1450 +#: ../../addon/hsse/hsse.php:247 ../../include/conversation.php:1453 msgid "Other networks and post services" msgstr "" -#: ../../addon/hsse/hsse.php:253 ../../include/conversation.php:1456 +#: ../../addon/hsse/hsse.php:253 ../../include/conversation.php:1459 msgid "Set publish date" msgstr "" @@ -11377,6 +11643,10 @@ msgid "" "locations." msgstr "" +#: ../../addon/pubcrawl/Mod_Pubcrawl.php:40 +msgid "Activitypub Protocol App" +msgstr "" + #: ../../addon/pubcrawl/Mod_Pubcrawl.php:48 msgid "Deliver to ActivityPub recipients in privacy groups" msgstr "" @@ -11407,72 +11677,68 @@ msgstr "" msgid "Project Creator and Tech Lead" msgstr "" -#: ../../addon/donate/donate.php:23 -msgid "Admin, developer, directorymin, support bloke" -msgstr "" - -#: ../../addon/donate/donate.php:50 +#: ../../addon/donate/donate.php:49 msgid "" "And the hundreds of other people and organisations who helped make the " "Hubzilla possible." msgstr "" -#: ../../addon/donate/donate.php:53 +#: ../../addon/donate/donate.php:52 msgid "" "The Redmatrix/Hubzilla projects are provided primarily by volunteers giving " "their time and expertise - and often paying out of pocket for services they " "share with others." msgstr "" -#: ../../addon/donate/donate.php:54 +#: ../../addon/donate/donate.php:53 msgid "" "There is no corporate funding and no ads, and we do not collect and sell " "your personal information. (We don't control your personal information - " "<strong>you do</strong>.)" msgstr "" -#: ../../addon/donate/donate.php:55 +#: ../../addon/donate/donate.php:54 msgid "" "Help support our ground-breaking work in decentralisation, web identity, and " "privacy." msgstr "" -#: ../../addon/donate/donate.php:57 +#: ../../addon/donate/donate.php:56 msgid "" "Your donations keep servers and services running and also helps us to " "provide innovative new features and continued development." msgstr "" -#: ../../addon/donate/donate.php:60 +#: ../../addon/donate/donate.php:59 msgid "Donate" msgstr "" -#: ../../addon/donate/donate.php:62 +#: ../../addon/donate/donate.php:61 msgid "" "Choose a project, developer, or public hub to support with a one-time " "donation" msgstr "" -#: ../../addon/donate/donate.php:63 +#: ../../addon/donate/donate.php:62 msgid "Donate Now" msgstr "" -#: ../../addon/donate/donate.php:64 +#: ../../addon/donate/donate.php:63 msgid "" "<strong><em>Or</em></strong> become a project sponsor (Hubzilla Project only)" msgstr "" -#: ../../addon/donate/donate.php:65 +#: ../../addon/donate/donate.php:64 msgid "" "Please indicate if you would like your first name or full name (or nothing) " "to appear in our sponsor listing" msgstr "" -#: ../../addon/donate/donate.php:66 +#: ../../addon/donate/donate.php:65 msgid "Sponsor" msgstr "" -#: ../../addon/donate/donate.php:69 +#: ../../addon/donate/donate.php:68 msgid "Special thanks to: " msgstr "" @@ -11522,128 +11788,137 @@ msgstr "" msgid "Quick Reference" msgstr "" -#: ../../addon/libertree/libertree.php:38 +#: ../../addon/libertree/libertree.php:43 msgid "Post to Libertree" msgstr "" -#: ../../addon/libertree/libertree.php:69 -msgid "Enable Libertree Post Plugin" +#: ../../addon/libertree/Mod_Libertree.php:25 +msgid "Libertree Crosspost Connector Settings saved." +msgstr "" + +#: ../../addon/libertree/Mod_Libertree.php:35 +msgid "Libertree Crosspost Connector App" +msgstr "" + +#: ../../addon/libertree/Mod_Libertree.php:36 +msgid "Relay public posts to Libertree" msgstr "" -#: ../../addon/libertree/libertree.php:73 +#: ../../addon/libertree/Mod_Libertree.php:51 msgid "Libertree API token" msgstr "" -#: ../../addon/libertree/libertree.php:77 +#: ../../addon/libertree/Mod_Libertree.php:55 msgid "Libertree site URL" msgstr "" -#: ../../addon/libertree/libertree.php:81 +#: ../../addon/libertree/Mod_Libertree.php:59 msgid "Post to Libertree by default" msgstr "" -#: ../../addon/libertree/libertree.php:85 -msgid "Libertree Post Settings" +#: ../../addon/libertree/Mod_Libertree.php:67 +msgid "Libertree Crosspost Connector" msgstr "" -#: ../../addon/libertree/libertree.php:99 -msgid "Libertree Settings saved." +#: ../../addon/flattrwidget/Mod_Flattrwidget.php:41 +msgid "Flattr widget settings updated." msgstr "" -#: ../../addon/flattrwidget/flattrwidget.php:45 -msgid "Flattr this!" +#: ../../addon/flattrwidget/Mod_Flattrwidget.php:53 +msgid "Flattr Widget App" msgstr "" -#: ../../addon/flattrwidget/flattrwidget.php:83 -msgid "Flattr widget settings updated." +#: ../../addon/flattrwidget/Mod_Flattrwidget.php:54 +msgid "Add a Flattr button to your channel page" msgstr "" -#: ../../addon/flattrwidget/flattrwidget.php:100 +#: ../../addon/flattrwidget/Mod_Flattrwidget.php:65 msgid "Flattr user" msgstr "" -#: ../../addon/flattrwidget/flattrwidget.php:104 +#: ../../addon/flattrwidget/Mod_Flattrwidget.php:69 msgid "URL of the Thing to flattr" msgstr "" -#: ../../addon/flattrwidget/flattrwidget.php:104 +#: ../../addon/flattrwidget/Mod_Flattrwidget.php:69 msgid "If empty channel URL is used" msgstr "" -#: ../../addon/flattrwidget/flattrwidget.php:108 +#: ../../addon/flattrwidget/Mod_Flattrwidget.php:73 msgid "Title of the Thing to flattr" msgstr "" -#: ../../addon/flattrwidget/flattrwidget.php:108 +#: ../../addon/flattrwidget/Mod_Flattrwidget.php:73 msgid "If empty \"channel name on The Hubzilla\" will be used" msgstr "" -#: ../../addon/flattrwidget/flattrwidget.php:112 +#: ../../addon/flattrwidget/Mod_Flattrwidget.php:77 msgid "Static or dynamic flattr button" msgstr "" -#: ../../addon/flattrwidget/flattrwidget.php:112 +#: ../../addon/flattrwidget/Mod_Flattrwidget.php:77 msgid "static" msgstr "" -#: ../../addon/flattrwidget/flattrwidget.php:112 +#: ../../addon/flattrwidget/Mod_Flattrwidget.php:77 msgid "dynamic" msgstr "" -#: ../../addon/flattrwidget/flattrwidget.php:116 +#: ../../addon/flattrwidget/Mod_Flattrwidget.php:81 msgid "Alignment of the widget" msgstr "" -#: ../../addon/flattrwidget/flattrwidget.php:116 +#: ../../addon/flattrwidget/Mod_Flattrwidget.php:81 msgid "left" msgstr "" -#: ../../addon/flattrwidget/flattrwidget.php:116 +#: ../../addon/flattrwidget/Mod_Flattrwidget.php:81 msgid "right" msgstr "" -#: ../../addon/flattrwidget/flattrwidget.php:120 -msgid "Enable Flattr widget" +#: ../../addon/flattrwidget/Mod_Flattrwidget.php:89 +msgid "Flattr Widget" msgstr "" -#: ../../addon/flattrwidget/flattrwidget.php:124 -msgid "Flattr Widget Settings" -msgstr "" - -#: ../../addon/statusnet/statusnet.php:143 -msgid "Post to GNU social" +#: ../../addon/flattrwidget/flattrwidget.php:50 +msgid "Flattr this!" msgstr "" -#: ../../addon/statusnet/statusnet.php:195 +#: ../../addon/statusnet/Mod_Statusnet.php:61 msgid "" "Please contact your site administrator.<br />The provided API URL is not " "valid." msgstr "" -#: ../../addon/statusnet/statusnet.php:232 +#: ../../addon/statusnet/Mod_Statusnet.php:98 msgid "We could not contact the GNU social API with the Path you entered." msgstr "" -#: ../../addon/statusnet/statusnet.php:266 +#: ../../addon/statusnet/Mod_Statusnet.php:130 msgid "GNU social settings updated." msgstr "" -#: ../../addon/statusnet/statusnet.php:310 +#: ../../addon/statusnet/Mod_Statusnet.php:147 +msgid "" +"Relay public postings to a connected GNU social account (formerly StatusNet)" +msgstr "" + +#: ../../addon/statusnet/Mod_Statusnet.php:181 msgid "Globally Available GNU social OAuthKeys" msgstr "" -#: ../../addon/statusnet/statusnet.php:312 +#: ../../addon/statusnet/Mod_Statusnet.php:183 msgid "" "There are preconfigured OAuth key pairs for some GNU social servers " "available. If you are using one of them, please use these credentials.<br /" ">If not feel free to connect to any other GNU social instance (see below)." msgstr "" -#: ../../addon/statusnet/statusnet.php:327 +#: ../../addon/statusnet/Mod_Statusnet.php:198 msgid "Provide your own OAuth Credentials" msgstr "" -#: ../../addon/statusnet/statusnet.php:329 +#: ../../addon/statusnet/Mod_Statusnet.php:200 msgid "" "No consumer key pair for GNU social found. Register your Hubzilla Account as " "an desktop client on your GNU social account, copy the consumer key pair " @@ -11652,27 +11927,27 @@ msgid "" "Hubzilla installation at your favourite GNU social installation." msgstr "" -#: ../../addon/statusnet/statusnet.php:333 +#: ../../addon/statusnet/Mod_Statusnet.php:204 msgid "OAuth Consumer Key" msgstr "" -#: ../../addon/statusnet/statusnet.php:337 +#: ../../addon/statusnet/Mod_Statusnet.php:208 msgid "OAuth Consumer Secret" msgstr "" -#: ../../addon/statusnet/statusnet.php:341 +#: ../../addon/statusnet/Mod_Statusnet.php:212 msgid "Base API Path" msgstr "" -#: ../../addon/statusnet/statusnet.php:341 +#: ../../addon/statusnet/Mod_Statusnet.php:212 msgid "Remember the trailing /" msgstr "" -#: ../../addon/statusnet/statusnet.php:345 +#: ../../addon/statusnet/Mod_Statusnet.php:216 msgid "GNU social application name" msgstr "" -#: ../../addon/statusnet/statusnet.php:368 +#: ../../addon/statusnet/Mod_Statusnet.php:239 msgid "" "To connect to your GNU social account click the button below to get a " "security code from GNU social which you have to copy into the input box " @@ -11680,31 +11955,32 @@ msgid "" "posted to GNU social." msgstr "" -#: ../../addon/statusnet/statusnet.php:370 +#: ../../addon/statusnet/Mod_Statusnet.php:241 msgid "Log in with GNU social" msgstr "" -#: ../../addon/statusnet/statusnet.php:373 +#: ../../addon/statusnet/Mod_Statusnet.php:244 msgid "Copy the security code from GNU social here" msgstr "" -#: ../../addon/statusnet/statusnet.php:383 +#: ../../addon/statusnet/Mod_Statusnet.php:254 msgid "Cancel Connection Process" msgstr "" -#: ../../addon/statusnet/statusnet.php:385 +#: ../../addon/statusnet/Mod_Statusnet.php:256 msgid "Current GNU social API is" msgstr "" -#: ../../addon/statusnet/statusnet.php:389 +#: ../../addon/statusnet/Mod_Statusnet.php:260 msgid "Cancel GNU social Connection" msgstr "" -#: ../../addon/statusnet/statusnet.php:401 ../../addon/twitter/twitter.php:236 +#: ../../addon/statusnet/Mod_Statusnet.php:272 +#: ../../addon/twitter/Mod_Twitter.php:147 msgid "Currently connected to: " msgstr "" -#: ../../addon/statusnet/statusnet.php:406 +#: ../../addon/statusnet/Mod_Statusnet.php:277 msgid "" "<strong>Note</strong>: Due your privacy settings (<em>Hide your profile " "details from unknown viewers?</em>) the link potentially included in public " @@ -11712,39 +11988,34 @@ msgid "" "informing the visitor that the access to your profile has been restricted." msgstr "" -#: ../../addon/statusnet/statusnet.php:411 -msgid "Allow posting to GNU social" -msgstr "" - -#: ../../addon/statusnet/statusnet.php:411 -msgid "" -"If enabled your public postings can be posted to the associated GNU-social " -"account" -msgstr "" - -#: ../../addon/statusnet/statusnet.php:415 +#: ../../addon/statusnet/Mod_Statusnet.php:282 msgid "Post to GNU social by default" msgstr "" -#: ../../addon/statusnet/statusnet.php:415 +#: ../../addon/statusnet/Mod_Statusnet.php:282 msgid "" "If enabled your public postings will be posted to the associated GNU-social " "account by default" msgstr "" -#: ../../addon/statusnet/statusnet.php:424 ../../addon/twitter/twitter.php:264 +#: ../../addon/statusnet/Mod_Statusnet.php:291 +#: ../../addon/twitter/Mod_Twitter.php:171 msgid "Clear OAuth configuration" msgstr "" -#: ../../addon/statusnet/statusnet.php:432 -msgid "GNU social Post Settings" +#: ../../addon/statusnet/Mod_Statusnet.php:303 +msgid "GNU-Social Crosspost Connector" msgstr "" -#: ../../addon/statusnet/statusnet.php:892 +#: ../../addon/statusnet/statusnet.php:145 +msgid "Post to GNU social" +msgstr "" + +#: ../../addon/statusnet/statusnet.php:594 msgid "API URL" msgstr "" -#: ../../addon/statusnet/statusnet.php:895 +#: ../../addon/statusnet/statusnet.php:597 msgid "Application name" msgstr "" @@ -11760,57 +12031,65 @@ msgstr "" msgid "Enter some text" msgstr "" -#: ../../addon/chess/chess.php:353 ../../addon/chess/chess.php:542 +#: ../../addon/chess/Mod_Chess.php:180 ../../addon/chess/Mod_Chess.php:377 msgid "Invalid game." msgstr "" -#: ../../addon/chess/chess.php:359 ../../addon/chess/chess.php:582 +#: ../../addon/chess/Mod_Chess.php:186 ../../addon/chess/Mod_Chess.php:417 msgid "You are not a player in this game." msgstr "" -#: ../../addon/chess/chess.php:415 +#: ../../addon/chess/Mod_Chess.php:242 msgid "You must be a local channel to create a game." msgstr "" -#: ../../addon/chess/chess.php:433 +#: ../../addon/chess/Mod_Chess.php:260 msgid "You must select one opponent that is not yourself." msgstr "" -#: ../../addon/chess/chess.php:444 +#: ../../addon/chess/Mod_Chess.php:271 msgid "Random color chosen." msgstr "" -#: ../../addon/chess/chess.php:452 +#: ../../addon/chess/Mod_Chess.php:279 msgid "Error creating new game." msgstr "" -#: ../../addon/chess/chess.php:486 ../../include/channel.php:1158 +#: ../../addon/chess/Mod_Chess.php:306 ../../include/channel.php:1207 msgid "Requested channel is not available." msgstr "" -#: ../../addon/chess/chess.php:500 +#: ../../addon/chess/Mod_Chess.php:311 ../../addon/chess/Mod_Chess.php:333 +msgid "Chess not installed." +msgstr "" + +#: ../../addon/chess/Mod_Chess.php:326 msgid "You must select a local channel /chess/channelname" msgstr "" -#: ../../addon/chess/chess.php:1066 +#: ../../addon/chess/chess.php:642 msgid "Enable notifications" msgstr "" -#: ../../addon/twitter/twitter.php:102 -msgid "Post to Twitter" +#: ../../addon/twitter/Mod_Twitter.php:65 +msgid "Twitter settings updated." msgstr "" -#: ../../addon/twitter/twitter.php:158 -msgid "Twitter settings updated." +#: ../../addon/twitter/Mod_Twitter.php:78 +msgid "Twitter Crosspost Connector App" msgstr "" -#: ../../addon/twitter/twitter.php:187 +#: ../../addon/twitter/Mod_Twitter.php:79 +msgid "Relay public posts to Twitter" +msgstr "" + +#: ../../addon/twitter/Mod_Twitter.php:103 msgid "" "No consumer key pair for Twitter found. Please contact your site " "administrator." msgstr "" -#: ../../addon/twitter/twitter.php:209 +#: ../../addon/twitter/Mod_Twitter.php:125 msgid "" "At this Hubzilla instance the Twitter plugin was enabled but you have not " "yet connected your account to your Twitter account. To do so click the " @@ -11819,15 +12098,15 @@ msgid "" "be posted to Twitter." msgstr "" -#: ../../addon/twitter/twitter.php:211 +#: ../../addon/twitter/Mod_Twitter.php:127 msgid "Log in with Twitter" msgstr "" -#: ../../addon/twitter/twitter.php:214 +#: ../../addon/twitter/Mod_Twitter.php:130 msgid "Copy the PIN from Twitter here" msgstr "" -#: ../../addon/twitter/twitter.php:241 +#: ../../addon/twitter/Mod_Twitter.php:152 msgid "" "<strong>Note:</strong> Due your privacy settings (<em>Hide your profile " "details from unknown viewers?</em>) the link potentially included in public " @@ -11835,47 +12114,45 @@ msgid "" "the visitor that the access to your profile has been restricted." msgstr "" -#: ../../addon/twitter/twitter.php:246 -msgid "Allow posting to Twitter" -msgstr "" - -#: ../../addon/twitter/twitter.php:246 -msgid "" -"If enabled your public postings can be posted to the associated Twitter " -"account" -msgstr "" - -#: ../../addon/twitter/twitter.php:250 +#: ../../addon/twitter/Mod_Twitter.php:157 msgid "Twitter post length" msgstr "" -#: ../../addon/twitter/twitter.php:250 +#: ../../addon/twitter/Mod_Twitter.php:157 msgid "Maximum tweet length" msgstr "" -#: ../../addon/twitter/twitter.php:255 +#: ../../addon/twitter/Mod_Twitter.php:162 msgid "Send public postings to Twitter by default" msgstr "" -#: ../../addon/twitter/twitter.php:255 +#: ../../addon/twitter/Mod_Twitter.php:162 msgid "" "If enabled your public postings will be posted to the associated Twitter " "account by default" msgstr "" -#: ../../addon/twitter/twitter.php:273 -msgid "Twitter Post Settings" +#: ../../addon/twitter/Mod_Twitter.php:181 +msgid "Twitter Crosspost Connector" +msgstr "" + +#: ../../addon/twitter/twitter.php:107 +msgid "Post to Twitter" +msgstr "" + +#: ../../addon/smileybutton/Mod_Smileybutton.php:35 +msgid "Smileybutton App" msgstr "" -#: ../../addon/smileybutton/smileybutton.php:211 -msgid "Deactivate the feature" +#: ../../addon/smileybutton/Mod_Smileybutton.php:36 +msgid "Adds a smileybutton to the jot editor" msgstr "" -#: ../../addon/smileybutton/smileybutton.php:215 +#: ../../addon/smileybutton/Mod_Smileybutton.php:44 msgid "Hide the button and show the smilies directly." msgstr "" -#: ../../addon/smileybutton/smileybutton.php:219 +#: ../../addon/smileybutton/Mod_Smileybutton.php:52 msgid "Smileybutton Settings" msgstr "" @@ -11891,7 +12168,7 @@ msgstr "" msgid "Base Merchant Currency" msgstr "" -#: ../../addon/cart/Settings/Cart.php:111 ../../addon/cart/cart.php:1262 +#: ../../addon/cart/Settings/Cart.php:111 ../../addon/cart/cart.php:1263 msgid "Cart Settings" msgstr "" @@ -11899,7 +12176,7 @@ msgstr "" msgid "Access Denied." msgstr "" -#: ../../addon/cart/myshop.php:111 ../../addon/cart/cart.php:1330 +#: ../../addon/cart/myshop.php:111 ../../addon/cart/cart.php:1334 msgid "Order Not Found" msgstr "" @@ -11912,53 +12189,53 @@ msgstr "" msgid "DB Cleanup Failure" msgstr "" -#: ../../addon/cart/cart.php:564 +#: ../../addon/cart/cart.php:565 msgid "[cart] Item Added" msgstr "" -#: ../../addon/cart/cart.php:952 +#: ../../addon/cart/cart.php:953 msgid "Order already checked out." msgstr "" -#: ../../addon/cart/cart.php:1255 +#: ../../addon/cart/cart.php:1256 msgid "Drop database tables when uninstalling." msgstr "" -#: ../../addon/cart/cart.php:1274 ../../addon/cart/cart.php:1277 +#: ../../addon/cart/cart.php:1275 ../../addon/cart/cart.php:1278 msgid "Shop" msgstr "" -#: ../../addon/cart/cart.php:1391 +#: ../../addon/cart/cart.php:1395 msgid "Cart utilities for orders and payments" msgstr "" -#: ../../addon/cart/cart.php:1429 +#: ../../addon/cart/cart.php:1433 msgid "You must be logged into the Grid to shop." msgstr "" -#: ../../addon/cart/cart.php:1462 +#: ../../addon/cart/cart.php:1466 #: ../../addon/cart/submodules/paypalbutton.php:392 #: ../../addon/cart/manual_payments.php:68 msgid "Order not found." msgstr "" -#: ../../addon/cart/cart.php:1470 +#: ../../addon/cart/cart.php:1474 msgid "Access denied." msgstr "" -#: ../../addon/cart/cart.php:1522 ../../addon/cart/cart.php:1665 +#: ../../addon/cart/cart.php:1526 ../../addon/cart/cart.php:1669 msgid "No Order Found" msgstr "" -#: ../../addon/cart/cart.php:1531 +#: ../../addon/cart/cart.php:1535 msgid "An unknown error has occurred Please start again." msgstr "" -#: ../../addon/cart/cart.php:1698 +#: ../../addon/cart/cart.php:1702 msgid "Invalid Payment Type. Please start again." msgstr "" -#: ../../addon/cart/cart.php:1705 +#: ../../addon/cart/cart.php:1709 msgid "Order not found" msgstr "" @@ -12332,6 +12609,10 @@ msgstr "" msgid "Send your identity to all websites" msgstr "" +#: ../../addon/sendzid/Mod_Sendzid.php:20 +msgid "Sendzid App" +msgstr "" + #: ../../addon/sendzid/Mod_Sendzid.php:32 msgid "Send ZID" msgstr "" @@ -12390,16 +12671,24 @@ msgstr "" msgid "I won!" msgstr "" -#: ../../addon/pageheader/pageheader.php:43 -msgid "Message to display on every page on this server" +#: ../../addon/pageheader/Mod_Pageheader.php:22 +msgid "pageheader Settings saved." msgstr "" -#: ../../addon/pageheader/pageheader.php:48 -msgid "Pageheader Settings" +#: ../../addon/pageheader/Mod_Pageheader.php:34 +msgid "Page Header App" msgstr "" -#: ../../addon/pageheader/pageheader.php:64 -msgid "pageheader Settings saved." +#: ../../addon/pageheader/Mod_Pageheader.php:35 +msgid "Inserts a page header" +msgstr "" + +#: ../../addon/pageheader/Mod_Pageheader.php:43 +msgid "Message to display on every page on this server" +msgstr "" + +#: ../../addon/pageheader/Mod_Pageheader.php:51 +msgid "Page Header" msgstr "" #: ../../addon/authchoose/Mod_Authchoose.php:22 @@ -12407,6 +12696,11 @@ msgid "" "Allow magic authentication only to websites of your immediate connections" msgstr "" +#: ../../addon/authchoose/Mod_Authchoose.php:28 +#: ../../addon/authchoose/Mod_Authchoose.php:33 +msgid "Authchoose App" +msgstr "" + #: ../../addon/authchoose/Mod_Authchoose.php:39 msgid "Authchoose" msgstr "" @@ -12499,35 +12793,39 @@ msgstr "" msgid "jealous" msgstr "" -#: ../../addon/xmpp/xmpp.php:31 +#: ../../addon/xmpp/Mod_Xmpp.php:23 msgid "XMPP settings updated." msgstr "" -#: ../../addon/xmpp/xmpp.php:53 -msgid "Enable Chat" +#: ../../addon/xmpp/Mod_Xmpp.php:35 +msgid "XMPP App" msgstr "" -#: ../../addon/xmpp/xmpp.php:58 +#: ../../addon/xmpp/Mod_Xmpp.php:36 +msgid "Embedded XMPP (Jabber) client" +msgstr "" + +#: ../../addon/xmpp/Mod_Xmpp.php:52 msgid "Individual credentials" msgstr "" -#: ../../addon/xmpp/xmpp.php:64 +#: ../../addon/xmpp/Mod_Xmpp.php:58 msgid "Jabber BOSH server" msgstr "" -#: ../../addon/xmpp/xmpp.php:69 +#: ../../addon/xmpp/Mod_Xmpp.php:67 msgid "XMPP Settings" msgstr "" -#: ../../addon/xmpp/xmpp.php:92 +#: ../../addon/xmpp/xmpp.php:44 msgid "Jabber BOSH host" msgstr "" -#: ../../addon/xmpp/xmpp.php:93 +#: ../../addon/xmpp/xmpp.php:45 msgid "Use central userbase" msgstr "" -#: ../../addon/xmpp/xmpp.php:93 +#: ../../addon/xmpp/xmpp.php:45 msgid "" "If enabled, members will automatically login to an ejabberd server that has " "to be installed on this machine with synchronized credentials via the " @@ -12538,64 +12836,68 @@ msgstr "" msgid "Who likes me?" msgstr "" -#: ../../addon/pumpio/pumpio.php:148 -msgid "You are now authenticated to pumpio." +#: ../../addon/pumpio/Mod_Pumpio.php:40 +msgid "Pump.io Settings saved." msgstr "" -#: ../../addon/pumpio/pumpio.php:149 -msgid "return to the featured settings page" +#: ../../addon/pumpio/Mod_Pumpio.php:53 +msgid "Pump.io Crosspost Connector App" msgstr "" -#: ../../addon/pumpio/pumpio.php:163 -msgid "Post to Pump.io" +#: ../../addon/pumpio/Mod_Pumpio.php:54 +msgid "Relay public posts to pump.io" msgstr "" -#: ../../addon/pumpio/pumpio.php:198 +#: ../../addon/pumpio/Mod_Pumpio.php:73 msgid "Pump.io servername" msgstr "" -#: ../../addon/pumpio/pumpio.php:198 +#: ../../addon/pumpio/Mod_Pumpio.php:73 msgid "Without \"http://\" or \"https://\"" msgstr "" -#: ../../addon/pumpio/pumpio.php:202 +#: ../../addon/pumpio/Mod_Pumpio.php:77 msgid "Pump.io username" msgstr "" -#: ../../addon/pumpio/pumpio.php:202 +#: ../../addon/pumpio/Mod_Pumpio.php:77 msgid "Without the servername" msgstr "" -#: ../../addon/pumpio/pumpio.php:213 +#: ../../addon/pumpio/Mod_Pumpio.php:88 msgid "You are not authenticated to pumpio" msgstr "" -#: ../../addon/pumpio/pumpio.php:215 +#: ../../addon/pumpio/Mod_Pumpio.php:90 msgid "(Re-)Authenticate your pump.io connection" msgstr "" -#: ../../addon/pumpio/pumpio.php:219 -msgid "Enable pump.io Post Plugin" -msgstr "" - -#: ../../addon/pumpio/pumpio.php:223 +#: ../../addon/pumpio/Mod_Pumpio.php:94 msgid "Post to pump.io by default" msgstr "" -#: ../../addon/pumpio/pumpio.php:227 +#: ../../addon/pumpio/Mod_Pumpio.php:98 msgid "Should posts be public" msgstr "" -#: ../../addon/pumpio/pumpio.php:231 +#: ../../addon/pumpio/Mod_Pumpio.php:102 msgid "Mirror all public posts" msgstr "" -#: ../../addon/pumpio/pumpio.php:237 -msgid "Pump.io Post Settings" +#: ../../addon/pumpio/Mod_Pumpio.php:112 +msgid "Pump.io Crosspost Connector" msgstr "" -#: ../../addon/pumpio/pumpio.php:266 -msgid "PumpIO Settings saved." +#: ../../addon/pumpio/pumpio.php:152 +msgid "You are now authenticated to pumpio." +msgstr "" + +#: ../../addon/pumpio/pumpio.php:153 +msgid "return to the featured settings page" +msgstr "" + +#: ../../addon/pumpio/pumpio.php:168 +msgid "Post to Pump.io" msgstr "" #: ../../addon/ldapauth/ldapauth.php:70 @@ -12714,11 +13016,11 @@ msgstr "" msgid "Hermaphrodite" msgstr "" -#: ../../include/selectors.php:60 ../../include/channel.php:1491 +#: ../../include/selectors.php:60 ../../include/channel.php:1540 msgid "Neuter" msgstr "" -#: ../../include/selectors.php:60 ../../include/channel.php:1493 +#: ../../include/selectors.php:60 ../../include/channel.php:1542 msgid "Non-specific" msgstr "" @@ -12918,8 +13220,8 @@ msgstr "" msgid "%1$s poked %2$s" msgstr "" -#: ../../include/conversation.php:251 ../../include/text.php:1146 -#: ../../include/text.php:1150 +#: ../../include/conversation.php:251 ../../include/text.php:1176 +#: ../../include/text.php:1180 msgid "poked" msgstr "" @@ -13017,42 +13319,42 @@ msgstr "" msgid "%s don't like this." msgstr "" -#: ../../include/conversation.php:1699 +#: ../../include/conversation.php:1708 msgctxt "noun" msgid "Attending" msgid_plural "Attending" msgstr[0] "" msgstr[1] "" -#: ../../include/conversation.php:1702 +#: ../../include/conversation.php:1711 msgctxt "noun" msgid "Not Attending" msgid_plural "Not Attending" msgstr[0] "" msgstr[1] "" -#: ../../include/conversation.php:1705 +#: ../../include/conversation.php:1714 msgctxt "noun" msgid "Undecided" msgid_plural "Undecided" msgstr[0] "" msgstr[1] "" -#: ../../include/conversation.php:1708 +#: ../../include/conversation.php:1717 msgctxt "noun" msgid "Agree" msgid_plural "Agrees" msgstr[0] "" msgstr[1] "" -#: ../../include/conversation.php:1711 +#: ../../include/conversation.php:1720 msgctxt "noun" msgid "Disagree" msgid_plural "Disagrees" msgstr[0] "" msgstr[1] "" -#: ../../include/conversation.php:1714 +#: ../../include/conversation.php:1723 msgctxt "noun" msgid "Abstain" msgid_plural "Abstains" @@ -13064,11 +13366,11 @@ msgstr[1] "" msgid "%1$s's bookmarks" msgstr "" -#: ../../include/import.php:25 +#: ../../include/import.php:26 msgid "Unable to import a removed channel." msgstr "" -#: ../../include/import.php:51 +#: ../../include/import.php:52 msgid "" "Cannot create a duplicate channel identifier on this system. Import failed." msgstr "" @@ -13077,369 +13379,369 @@ msgstr "" msgid "Cloned channel not found. Import failed." msgstr "" -#: ../../include/text.php:498 +#: ../../include/text.php:501 msgid "prev" msgstr "" -#: ../../include/text.php:500 +#: ../../include/text.php:503 msgid "first" msgstr "" -#: ../../include/text.php:529 +#: ../../include/text.php:532 msgid "last" msgstr "" -#: ../../include/text.php:532 +#: ../../include/text.php:535 msgid "next" msgstr "" -#: ../../include/text.php:543 +#: ../../include/text.php:553 msgid "older" msgstr "" -#: ../../include/text.php:545 +#: ../../include/text.php:555 msgid "newer" msgstr "" -#: ../../include/text.php:969 +#: ../../include/text.php:979 msgid "No connections" msgstr "" -#: ../../include/text.php:1001 +#: ../../include/text.php:1011 #, php-format msgid "View all %s connections" msgstr "" -#: ../../include/text.php:1057 +#: ../../include/text.php:1073 #, php-format msgid "Network: %s" msgstr "" -#: ../../include/text.php:1146 ../../include/text.php:1150 +#: ../../include/text.php:1176 ../../include/text.php:1180 msgid "poke" msgstr "" -#: ../../include/text.php:1151 +#: ../../include/text.php:1181 msgid "ping" msgstr "" -#: ../../include/text.php:1151 +#: ../../include/text.php:1181 msgid "pinged" msgstr "" -#: ../../include/text.php:1152 +#: ../../include/text.php:1182 msgid "prod" msgstr "" -#: ../../include/text.php:1152 +#: ../../include/text.php:1182 msgid "prodded" msgstr "" -#: ../../include/text.php:1153 +#: ../../include/text.php:1183 msgid "slap" msgstr "" -#: ../../include/text.php:1153 +#: ../../include/text.php:1183 msgid "slapped" msgstr "" -#: ../../include/text.php:1154 +#: ../../include/text.php:1184 msgid "finger" msgstr "" -#: ../../include/text.php:1154 +#: ../../include/text.php:1184 msgid "fingered" msgstr "" -#: ../../include/text.php:1155 +#: ../../include/text.php:1185 msgid "rebuff" msgstr "" -#: ../../include/text.php:1155 +#: ../../include/text.php:1185 msgid "rebuffed" msgstr "" -#: ../../include/text.php:1178 +#: ../../include/text.php:1208 msgid "happy" msgstr "" -#: ../../include/text.php:1179 +#: ../../include/text.php:1209 msgid "sad" msgstr "" -#: ../../include/text.php:1180 +#: ../../include/text.php:1210 msgid "mellow" msgstr "" -#: ../../include/text.php:1181 +#: ../../include/text.php:1211 msgid "tired" msgstr "" -#: ../../include/text.php:1182 +#: ../../include/text.php:1212 msgid "perky" msgstr "" -#: ../../include/text.php:1183 +#: ../../include/text.php:1213 msgid "angry" msgstr "" -#: ../../include/text.php:1184 +#: ../../include/text.php:1214 msgid "stupefied" msgstr "" -#: ../../include/text.php:1185 +#: ../../include/text.php:1215 msgid "puzzled" msgstr "" -#: ../../include/text.php:1186 +#: ../../include/text.php:1216 msgid "interested" msgstr "" -#: ../../include/text.php:1187 +#: ../../include/text.php:1217 msgid "bitter" msgstr "" -#: ../../include/text.php:1188 +#: ../../include/text.php:1218 msgid "cheerful" msgstr "" -#: ../../include/text.php:1189 +#: ../../include/text.php:1219 msgid "alive" msgstr "" -#: ../../include/text.php:1190 +#: ../../include/text.php:1220 msgid "annoyed" msgstr "" -#: ../../include/text.php:1191 +#: ../../include/text.php:1221 msgid "anxious" msgstr "" -#: ../../include/text.php:1192 +#: ../../include/text.php:1222 msgid "cranky" msgstr "" -#: ../../include/text.php:1193 +#: ../../include/text.php:1223 msgid "disturbed" msgstr "" -#: ../../include/text.php:1194 +#: ../../include/text.php:1224 msgid "frustrated" msgstr "" -#: ../../include/text.php:1195 +#: ../../include/text.php:1225 msgid "depressed" msgstr "" -#: ../../include/text.php:1196 +#: ../../include/text.php:1226 msgid "motivated" msgstr "" -#: ../../include/text.php:1197 +#: ../../include/text.php:1227 msgid "relaxed" msgstr "" -#: ../../include/text.php:1198 +#: ../../include/text.php:1228 msgid "surprised" msgstr "" -#: ../../include/text.php:1377 ../../include/js_strings.php:95 +#: ../../include/text.php:1416 ../../include/js_strings.php:95 msgid "Monday" msgstr "" -#: ../../include/text.php:1377 ../../include/js_strings.php:96 +#: ../../include/text.php:1416 ../../include/js_strings.php:96 msgid "Tuesday" msgstr "" -#: ../../include/text.php:1377 ../../include/js_strings.php:97 +#: ../../include/text.php:1416 ../../include/js_strings.php:97 msgid "Wednesday" msgstr "" -#: ../../include/text.php:1377 ../../include/js_strings.php:98 +#: ../../include/text.php:1416 ../../include/js_strings.php:98 msgid "Thursday" msgstr "" -#: ../../include/text.php:1377 ../../include/js_strings.php:99 +#: ../../include/text.php:1416 ../../include/js_strings.php:99 msgid "Friday" msgstr "" -#: ../../include/text.php:1377 ../../include/js_strings.php:100 +#: ../../include/text.php:1416 ../../include/js_strings.php:100 msgid "Saturday" msgstr "" -#: ../../include/text.php:1377 ../../include/js_strings.php:94 +#: ../../include/text.php:1416 ../../include/js_strings.php:94 msgid "Sunday" msgstr "" -#: ../../include/text.php:1381 ../../include/js_strings.php:70 +#: ../../include/text.php:1420 ../../include/js_strings.php:70 msgid "January" msgstr "" -#: ../../include/text.php:1381 ../../include/js_strings.php:71 +#: ../../include/text.php:1420 ../../include/js_strings.php:71 msgid "February" msgstr "" -#: ../../include/text.php:1381 ../../include/js_strings.php:72 +#: ../../include/text.php:1420 ../../include/js_strings.php:72 msgid "March" msgstr "" -#: ../../include/text.php:1381 ../../include/js_strings.php:73 +#: ../../include/text.php:1420 ../../include/js_strings.php:73 msgid "April" msgstr "" -#: ../../include/text.php:1381 +#: ../../include/text.php:1420 msgid "May" msgstr "" -#: ../../include/text.php:1381 ../../include/js_strings.php:75 +#: ../../include/text.php:1420 ../../include/js_strings.php:75 msgid "June" msgstr "" -#: ../../include/text.php:1381 ../../include/js_strings.php:76 +#: ../../include/text.php:1420 ../../include/js_strings.php:76 msgid "July" msgstr "" -#: ../../include/text.php:1381 ../../include/js_strings.php:77 +#: ../../include/text.php:1420 ../../include/js_strings.php:77 msgid "August" msgstr "" -#: ../../include/text.php:1381 ../../include/js_strings.php:78 +#: ../../include/text.php:1420 ../../include/js_strings.php:78 msgid "September" msgstr "" -#: ../../include/text.php:1381 ../../include/js_strings.php:79 +#: ../../include/text.php:1420 ../../include/js_strings.php:79 msgid "October" msgstr "" -#: ../../include/text.php:1381 ../../include/js_strings.php:80 +#: ../../include/text.php:1420 ../../include/js_strings.php:80 msgid "November" msgstr "" -#: ../../include/text.php:1381 ../../include/js_strings.php:81 +#: ../../include/text.php:1420 ../../include/js_strings.php:81 msgid "December" msgstr "" -#: ../../include/text.php:1455 +#: ../../include/text.php:1494 msgid "Unknown Attachment" msgstr "" -#: ../../include/text.php:1457 ../../include/feedutils.php:860 +#: ../../include/text.php:1496 ../../include/feedutils.php:858 msgid "unknown" msgstr "" -#: ../../include/text.php:1493 +#: ../../include/text.php:1532 msgid "remove category" msgstr "" -#: ../../include/text.php:1567 +#: ../../include/text.php:1606 msgid "remove from file" msgstr "" -#: ../../include/text.php:1709 ../../include/message.php:13 +#: ../../include/text.php:1765 ../../include/message.php:13 msgid "Download binary/encrypted content" msgstr "" -#: ../../include/text.php:1872 ../../include/language.php:423 +#: ../../include/text.php:1935 ../../include/language.php:423 msgid "default" msgstr "" -#: ../../include/text.php:1880 +#: ../../include/text.php:1943 msgid "Page layout" msgstr "" -#: ../../include/text.php:1880 +#: ../../include/text.php:1943 msgid "You can create your own with the layouts tool" msgstr "" -#: ../../include/text.php:1891 +#: ../../include/text.php:1954 msgid "HTML" msgstr "" -#: ../../include/text.php:1894 +#: ../../include/text.php:1957 msgid "Comanche Layout" msgstr "" -#: ../../include/text.php:1899 +#: ../../include/text.php:1962 msgid "PHP" msgstr "" -#: ../../include/text.php:1908 +#: ../../include/text.php:1971 msgid "Page content type" msgstr "" -#: ../../include/text.php:2041 +#: ../../include/text.php:2104 msgid "activity" msgstr "" -#: ../../include/text.php:2142 +#: ../../include/text.php:2205 msgid "a-z, 0-9, -, and _ only" msgstr "" -#: ../../include/text.php:2462 +#: ../../include/text.php:2531 msgid "Design Tools" msgstr "" -#: ../../include/text.php:2468 +#: ../../include/text.php:2537 msgid "Pages" msgstr "" -#: ../../include/text.php:2490 +#: ../../include/text.php:2559 msgid "Import website..." msgstr "" -#: ../../include/text.php:2491 +#: ../../include/text.php:2560 msgid "Select folder to import" msgstr "" -#: ../../include/text.php:2492 +#: ../../include/text.php:2561 msgid "Import from a zipped folder:" msgstr "" -#: ../../include/text.php:2493 +#: ../../include/text.php:2562 msgid "Import from cloud files:" msgstr "" -#: ../../include/text.php:2494 +#: ../../include/text.php:2563 msgid "/cloud/channel/path/to/folder" msgstr "" -#: ../../include/text.php:2495 +#: ../../include/text.php:2564 msgid "Enter path to website files" msgstr "" -#: ../../include/text.php:2496 +#: ../../include/text.php:2565 msgid "Select folder" msgstr "" -#: ../../include/text.php:2497 +#: ../../include/text.php:2566 msgid "Export website..." msgstr "" -#: ../../include/text.php:2498 +#: ../../include/text.php:2567 msgid "Export to a zip file" msgstr "" -#: ../../include/text.php:2499 +#: ../../include/text.php:2568 msgid "website.zip" msgstr "" -#: ../../include/text.php:2500 +#: ../../include/text.php:2569 msgid "Enter a name for the zip file." msgstr "" -#: ../../include/text.php:2501 +#: ../../include/text.php:2570 msgid "Export to cloud files" msgstr "" -#: ../../include/text.php:2502 +#: ../../include/text.php:2571 msgid "/path/to/export/folder" msgstr "" -#: ../../include/text.php:2503 +#: ../../include/text.php:2572 msgid "Enter a path to a cloud files destination." msgstr "" -#: ../../include/text.php:2504 +#: ../../include/text.php:2573 msgid "Specify folder" msgstr "" @@ -13478,16 +13780,16 @@ msgstr "" msgid "Advanced example: name=fred and country=iceland" msgstr "" -#: ../../include/contact_widgets.php:223 +#: ../../include/contact_widgets.php:218 msgid "Common Connections" msgstr "" -#: ../../include/contact_widgets.php:228 +#: ../../include/contact_widgets.php:222 #, php-format msgid "View all %d common connections" msgstr "" -#: ../../include/markdown.php:200 ../../include/bbcode.php:358 +#: ../../include/markdown.php:198 ../../include/bbcode.php:347 #, php-format msgid "%1$s wrote the following %2$s %3$s" msgstr "" @@ -13843,92 +14145,92 @@ msgstr "" msgid "Stored post could not be verified." msgstr "" -#: ../../include/activities.php:41 +#: ../../include/activities.php:42 msgid " and " msgstr "" -#: ../../include/activities.php:49 +#: ../../include/activities.php:50 msgid "public profile" msgstr "" -#: ../../include/activities.php:58 +#: ../../include/activities.php:59 #, php-format msgid "%1$s changed %2$s to “%3$s”" msgstr "" -#: ../../include/activities.php:59 +#: ../../include/activities.php:60 #, php-format msgid "Visit %1$s's %2$s" msgstr "" -#: ../../include/activities.php:62 +#: ../../include/activities.php:63 #, php-format msgid "%1$s has an updated %2$s, changing %3$s." msgstr "" -#: ../../include/attach.php:265 ../../include/attach.php:374 +#: ../../include/attach.php:267 ../../include/attach.php:376 msgid "Item was not found." msgstr "" -#: ../../include/attach.php:282 +#: ../../include/attach.php:284 msgid "Unknown error." msgstr "" -#: ../../include/attach.php:567 +#: ../../include/attach.php:569 msgid "No source file." msgstr "" -#: ../../include/attach.php:589 +#: ../../include/attach.php:591 msgid "Cannot locate file to replace" msgstr "" -#: ../../include/attach.php:608 +#: ../../include/attach.php:610 msgid "Cannot locate file to revise/update" msgstr "" -#: ../../include/attach.php:750 +#: ../../include/attach.php:752 #, php-format msgid "File exceeds size limit of %d" msgstr "" -#: ../../include/attach.php:771 +#: ../../include/attach.php:773 #, php-format msgid "You have reached your limit of %1$.0f Mbytes attachment storage." msgstr "" -#: ../../include/attach.php:953 +#: ../../include/attach.php:955 msgid "File upload failed. Possible system limit or action terminated." msgstr "" -#: ../../include/attach.php:982 +#: ../../include/attach.php:984 msgid "Stored file could not be verified. Upload failed." msgstr "" -#: ../../include/attach.php:1056 ../../include/attach.php:1072 +#: ../../include/attach.php:1058 ../../include/attach.php:1074 msgid "Path not available." msgstr "" -#: ../../include/attach.php:1121 ../../include/attach.php:1286 +#: ../../include/attach.php:1123 ../../include/attach.php:1288 msgid "Empty pathname" msgstr "" -#: ../../include/attach.php:1147 +#: ../../include/attach.php:1149 msgid "duplicate filename or path" msgstr "" -#: ../../include/attach.php:1172 +#: ../../include/attach.php:1174 msgid "Path not found." msgstr "" -#: ../../include/attach.php:1240 +#: ../../include/attach.php:1242 msgid "mkdir failed." msgstr "" -#: ../../include/attach.php:1244 +#: ../../include/attach.php:1246 msgid "database storage failed." msgstr "" -#: ../../include/attach.php:1292 +#: ../../include/attach.php:1294 msgid "Empty path" msgstr "" @@ -13938,301 +14240,297 @@ msgid "" "form has been opened for too long (>3 hours) before submitting it." msgstr "" -#: ../../include/items.php:911 ../../include/items.php:971 +#: ../../include/items.php:955 ../../include/items.php:1015 msgid "(Unknown)" msgstr "" -#: ../../include/items.php:1157 +#: ../../include/items.php:1203 msgid "Visible to anybody on the internet." msgstr "" -#: ../../include/items.php:1159 +#: ../../include/items.php:1205 msgid "Visible to you only." msgstr "" -#: ../../include/items.php:1161 +#: ../../include/items.php:1207 msgid "Visible to anybody in this network." msgstr "" -#: ../../include/items.php:1163 +#: ../../include/items.php:1209 msgid "Visible to anybody authenticated." msgstr "" -#: ../../include/items.php:1165 +#: ../../include/items.php:1211 #, php-format msgid "Visible to anybody on %s." msgstr "" -#: ../../include/items.php:1167 +#: ../../include/items.php:1213 msgid "Visible to all connections." msgstr "" -#: ../../include/items.php:1169 +#: ../../include/items.php:1215 msgid "Visible to approved connections." msgstr "" -#: ../../include/items.php:1171 +#: ../../include/items.php:1217 msgid "Visible to specific connections." msgstr "" -#: ../../include/items.php:4183 +#: ../../include/items.php:4291 msgid "Privacy group is empty." msgstr "" -#: ../../include/items.php:4190 +#: ../../include/items.php:4298 #, php-format msgid "Privacy group: %s" msgstr "" -#: ../../include/items.php:4202 +#: ../../include/items.php:4310 msgid "Connection not found." msgstr "" -#: ../../include/items.php:4551 +#: ../../include/items.php:4659 msgid "profile photo" msgstr "" -#: ../../include/items.php:4742 +#: ../../include/items.php:4851 #, php-format msgid "[Edited %s]" msgstr "" -#: ../../include/items.php:4742 +#: ../../include/items.php:4851 msgctxt "edit_activity" msgid "Post" msgstr "" -#: ../../include/items.php:4742 +#: ../../include/items.php:4851 msgctxt "edit_activity" msgid "Comment" msgstr "" -#: ../../include/channel.php:42 +#: ../../include/channel.php:43 msgid "Unable to obtain identity information from database" msgstr "" -#: ../../include/channel.php:75 +#: ../../include/channel.php:76 msgid "Empty name" msgstr "" -#: ../../include/channel.php:78 +#: ../../include/channel.php:79 msgid "Name too long" msgstr "" -#: ../../include/channel.php:195 +#: ../../include/channel.php:196 msgid "No account identifier" msgstr "" -#: ../../include/channel.php:207 +#: ../../include/channel.php:208 msgid "Nickname is required." msgstr "" -#: ../../include/channel.php:284 +#: ../../include/channel.php:287 msgid "Unable to retrieve created identity" msgstr "" -#: ../../include/channel.php:380 +#: ../../include/channel.php:429 msgid "Default Profile" msgstr "" -#: ../../include/channel.php:539 ../../include/channel.php:628 +#: ../../include/channel.php:588 ../../include/channel.php:677 msgid "Unable to retrieve modified identity" msgstr "" -#: ../../include/channel.php:1304 +#: ../../include/channel.php:1353 msgid "Create New Profile" msgstr "" -#: ../../include/channel.php:1325 +#: ../../include/channel.php:1374 msgid "Visible to everybody" msgstr "" -#: ../../include/channel.php:1402 ../../include/channel.php:1530 +#: ../../include/channel.php:1451 ../../include/channel.php:1579 msgid "Gender:" msgstr "" -#: ../../include/channel.php:1404 ../../include/channel.php:1598 +#: ../../include/channel.php:1453 ../../include/channel.php:1647 msgid "Homepage:" msgstr "" -#: ../../include/channel.php:1405 +#: ../../include/channel.php:1454 msgid "Online Now" msgstr "" -#: ../../include/channel.php:1458 +#: ../../include/channel.php:1507 msgid "Change your profile photo" msgstr "" -#: ../../include/channel.php:1489 +#: ../../include/channel.php:1538 msgid "Trans" msgstr "" -#: ../../include/channel.php:1535 +#: ../../include/channel.php:1584 msgid "Like this channel" msgstr "" -#: ../../include/channel.php:1559 +#: ../../include/channel.php:1608 msgid "j F, Y" msgstr "" -#: ../../include/channel.php:1560 +#: ../../include/channel.php:1609 msgid "j F" msgstr "" -#: ../../include/channel.php:1567 +#: ../../include/channel.php:1616 msgid "Birthday:" msgstr "" -#: ../../include/channel.php:1580 +#: ../../include/channel.php:1629 #, php-format msgid "for %1$d %2$s" msgstr "" -#: ../../include/channel.php:1592 +#: ../../include/channel.php:1641 msgid "Tags:" msgstr "" -#: ../../include/channel.php:1596 +#: ../../include/channel.php:1645 msgid "Sexual Preference:" msgstr "" -#: ../../include/channel.php:1602 +#: ../../include/channel.php:1651 msgid "Political Views:" msgstr "" -#: ../../include/channel.php:1604 +#: ../../include/channel.php:1653 msgid "Religion:" msgstr "" -#: ../../include/channel.php:1608 +#: ../../include/channel.php:1657 msgid "Hobbies/Interests:" msgstr "" -#: ../../include/channel.php:1610 +#: ../../include/channel.php:1659 msgid "Likes:" msgstr "" -#: ../../include/channel.php:1612 +#: ../../include/channel.php:1661 msgid "Dislikes:" msgstr "" -#: ../../include/channel.php:1614 +#: ../../include/channel.php:1663 msgid "Contact information and Social Networks:" msgstr "" -#: ../../include/channel.php:1616 +#: ../../include/channel.php:1665 msgid "My other channels:" msgstr "" -#: ../../include/channel.php:1618 +#: ../../include/channel.php:1667 msgid "Musical interests:" msgstr "" -#: ../../include/channel.php:1620 +#: ../../include/channel.php:1669 msgid "Books, literature:" msgstr "" -#: ../../include/channel.php:1622 +#: ../../include/channel.php:1671 msgid "Television:" msgstr "" -#: ../../include/channel.php:1624 +#: ../../include/channel.php:1673 msgid "Film/dance/culture/entertainment:" msgstr "" -#: ../../include/channel.php:1626 +#: ../../include/channel.php:1675 msgid "Love/Romance:" msgstr "" -#: ../../include/channel.php:1628 +#: ../../include/channel.php:1677 msgid "Work/employment:" msgstr "" -#: ../../include/channel.php:1630 +#: ../../include/channel.php:1679 msgid "School/education:" msgstr "" -#: ../../include/channel.php:1653 +#: ../../include/channel.php:1702 msgid "Like this thing" msgstr "" -#: ../../include/event.php:24 ../../include/event.php:71 +#: ../../include/event.php:28 ../../include/event.php:75 msgid "l F d, Y \\@ g:i A" msgstr "" -#: ../../include/event.php:32 ../../include/event.php:75 +#: ../../include/event.php:36 ../../include/event.php:79 msgid "Starts:" msgstr "" -#: ../../include/event.php:42 ../../include/event.php:79 +#: ../../include/event.php:46 ../../include/event.php:83 msgid "Finishes:" msgstr "" -#: ../../include/event.php:1011 +#: ../../include/event.php:1020 msgid "This event has been added to your calendar." msgstr "" -#: ../../include/event.php:1227 +#: ../../include/event.php:1239 msgid "Not specified" msgstr "" -#: ../../include/event.php:1228 +#: ../../include/event.php:1240 msgid "Needs Action" msgstr "" -#: ../../include/event.php:1229 +#: ../../include/event.php:1241 msgid "Completed" msgstr "" -#: ../../include/event.php:1230 +#: ../../include/event.php:1242 msgid "In Process" msgstr "" -#: ../../include/event.php:1231 +#: ../../include/event.php:1243 msgid "Cancelled" msgstr "" -#: ../../include/event.php:1310 ../../include/connections.php:698 +#: ../../include/event.php:1322 ../../include/connections.php:698 msgid "Home, Voice" msgstr "" -#: ../../include/event.php:1311 ../../include/connections.php:699 +#: ../../include/event.php:1323 ../../include/connections.php:699 msgid "Home, Fax" msgstr "" -#: ../../include/event.php:1313 ../../include/connections.php:701 +#: ../../include/event.php:1325 ../../include/connections.php:701 msgid "Work, Voice" msgstr "" -#: ../../include/event.php:1314 ../../include/connections.php:702 +#: ../../include/event.php:1326 ../../include/connections.php:702 msgid "Work, Fax" msgstr "" -#: ../../include/network.php:770 -msgid "view full size" -msgstr "" - -#: ../../include/network.php:1776 +#: ../../include/network.php:1718 msgid "GNU-Social" msgstr "" -#: ../../include/network.php:1777 +#: ../../include/network.php:1719 msgid "RSS/Atom" msgstr "" -#: ../../include/network.php:1781 +#: ../../include/network.php:1723 msgid "Facebook" msgstr "" -#: ../../include/network.php:1783 +#: ../../include/network.php:1725 msgid "LinkedIn" msgstr "" -#: ../../include/network.php:1784 +#: ../../include/network.php:1726 msgid "XMPP/IM" msgstr "" -#: ../../include/network.php:1785 +#: ../../include/network.php:1727 msgid "MySpace" msgstr "" @@ -14269,22 +14567,17 @@ msgid "" "permissions set who is allowed to view the post." msgstr "" -#: ../../include/dba/dba_driver.php:178 -#, php-format -msgid "Cannot locate DNS info for database server '%s'" -msgstr "" - -#: ../../include/bbcode.php:200 ../../include/bbcode.php:1201 -#: ../../include/bbcode.php:1204 ../../include/bbcode.php:1209 -#: ../../include/bbcode.php:1212 ../../include/bbcode.php:1215 -#: ../../include/bbcode.php:1218 ../../include/bbcode.php:1223 -#: ../../include/bbcode.php:1226 ../../include/bbcode.php:1231 -#: ../../include/bbcode.php:1234 ../../include/bbcode.php:1237 -#: ../../include/bbcode.php:1240 +#: ../../include/bbcode.php:200 ../../include/bbcode.php:1190 +#: ../../include/bbcode.php:1193 ../../include/bbcode.php:1198 +#: ../../include/bbcode.php:1201 ../../include/bbcode.php:1204 +#: ../../include/bbcode.php:1207 ../../include/bbcode.php:1212 +#: ../../include/bbcode.php:1215 ../../include/bbcode.php:1220 +#: ../../include/bbcode.php:1223 ../../include/bbcode.php:1226 +#: ../../include/bbcode.php:1229 msgid "Image/photo" msgstr "" -#: ../../include/bbcode.php:239 ../../include/bbcode.php:1251 +#: ../../include/bbcode.php:239 ../../include/bbcode.php:1240 msgid "Encrypted content" msgstr "" @@ -14300,51 +14593,51 @@ msgid "" "to install it on this site." msgstr "" -#: ../../include/bbcode.php:350 +#: ../../include/bbcode.php:339 msgid "card" msgstr "" -#: ../../include/bbcode.php:352 +#: ../../include/bbcode.php:341 msgid "article" msgstr "" -#: ../../include/bbcode.php:435 ../../include/bbcode.php:443 +#: ../../include/bbcode.php:424 ../../include/bbcode.php:432 msgid "Click to open/close" msgstr "" -#: ../../include/bbcode.php:443 +#: ../../include/bbcode.php:432 msgid "spoiler" msgstr "" -#: ../../include/bbcode.php:456 +#: ../../include/bbcode.php:445 msgid "View article" msgstr "" -#: ../../include/bbcode.php:456 +#: ../../include/bbcode.php:445 msgid "View summary" msgstr "" -#: ../../include/bbcode.php:1189 +#: ../../include/bbcode.php:1178 msgid "$1 wrote:" msgstr "" -#: ../../include/oembed.php:224 +#: ../../include/oembed.php:226 msgid "View PDF" msgstr "" -#: ../../include/oembed.php:347 +#: ../../include/oembed.php:356 msgid " by " msgstr "" -#: ../../include/oembed.php:348 +#: ../../include/oembed.php:357 msgid " on " msgstr "" -#: ../../include/oembed.php:377 +#: ../../include/oembed.php:386 msgid "Embedded content" msgstr "" -#: ../../include/oembed.php:386 +#: ../../include/oembed.php:395 msgid "Embedding disabled" msgstr "" @@ -14377,11 +14670,11 @@ msgstr "" msgid "Provide a personal tag cloud on your channel page" msgstr "" -#: ../../include/features.php:116 ../../include/features.php:381 +#: ../../include/features.php:116 ../../include/features.php:373 msgid "Use blog/list mode" msgstr "" -#: ../../include/features.php:117 ../../include/features.php:382 +#: ../../include/features.php:117 ../../include/features.php:374 msgid "Comments will be displayed separately" msgstr "" @@ -14592,47 +14885,39 @@ msgstr "" msgid "Ability to display only posts that you've interacted on" msgstr "" -#: ../../include/features.php:365 -msgid "Affinity Tool" -msgstr "" - #: ../../include/features.php:366 -msgid "Filter stream activity by depth of relationships" -msgstr "" - -#: ../../include/features.php:374 msgid "Show friend and connection suggestions" msgstr "" -#: ../../include/features.php:395 +#: ../../include/features.php:387 msgid "Photo Location" msgstr "" -#: ../../include/features.php:396 +#: ../../include/features.php:388 msgid "If location data is available on uploaded photos, link this to a map." msgstr "" -#: ../../include/features.php:409 +#: ../../include/features.php:401 msgid "Advanced Profiles" msgstr "" -#: ../../include/features.php:410 +#: ../../include/features.php:402 msgid "Additional profile sections and selections" msgstr "" -#: ../../include/features.php:417 +#: ../../include/features.php:409 msgid "Profile Import/Export" msgstr "" -#: ../../include/features.php:418 +#: ../../include/features.php:410 msgid "Save and load profile details across sites/channels" msgstr "" -#: ../../include/features.php:425 +#: ../../include/features.php:417 msgid "Multiple Profiles" msgstr "" -#: ../../include/features.php:426 +#: ../../include/features.php:418 msgid "Ability to create multiple profiles" msgstr "" @@ -14877,55 +15162,55 @@ msgstr "" msgid "Site Setup and Configuration" msgstr "" -#: ../../include/nav.php:299 +#: ../../include/nav.php:329 msgid "@name, !forum, #tag, ?doc, content" msgstr "" -#: ../../include/nav.php:300 +#: ../../include/nav.php:330 msgid "Please wait..." msgstr "" -#: ../../include/nav.php:306 +#: ../../include/nav.php:336 msgid "Add Apps" msgstr "" -#: ../../include/nav.php:307 +#: ../../include/nav.php:337 msgid "Arrange Apps" msgstr "" -#: ../../include/nav.php:308 +#: ../../include/nav.php:338 msgid "Toggle System Apps" msgstr "" -#: ../../include/nav.php:394 +#: ../../include/nav.php:424 msgid "Status Messages and Posts" msgstr "" -#: ../../include/nav.php:407 +#: ../../include/nav.php:437 msgid "Profile Details" msgstr "" -#: ../../include/nav.php:417 ../../include/photos.php:667 +#: ../../include/nav.php:447 ../../include/photos.php:669 msgid "Photo Albums" msgstr "" -#: ../../include/nav.php:425 +#: ../../include/nav.php:455 msgid "Files and Storage" msgstr "" -#: ../../include/nav.php:463 +#: ../../include/nav.php:493 msgid "Saved Bookmarks" msgstr "" -#: ../../include/nav.php:474 +#: ../../include/nav.php:504 msgid "View Cards" msgstr "" -#: ../../include/nav.php:485 +#: ../../include/nav.php:515 msgid "View Articles" msgstr "" -#: ../../include/nav.php:497 +#: ../../include/nav.php:527 msgid "View Webpages" msgstr "" @@ -14952,15 +15237,15 @@ msgctxt "photo_upload" msgid "%1$s posted %2$s to %3$s" msgstr "" -#: ../../include/photos.php:672 +#: ../../include/photos.php:674 msgid "Upload New Photos" msgstr "" -#: ../../include/zot.php:773 +#: ../../include/zot.php:775 msgid "Invalid data packet" msgstr "" -#: ../../include/zot.php:4235 +#: ../../include/zot.php:4288 msgid "invalid target signature" msgstr "" diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index ff64c904f..de9c63bdc 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -811,6 +811,7 @@ return array( 'Zotlabs\\Access\\PermissionRoles' => $baseDir . '/Zotlabs/Access/PermissionRoles.php', 'Zotlabs\\Access\\Permissions' => $baseDir . '/Zotlabs/Access/Permissions.php', 'Zotlabs\\Daemon\\Addon' => $baseDir . '/Zotlabs/Daemon/Addon.php', + 'Zotlabs\\Daemon\\Cache_embeds' => $baseDir . '/Zotlabs/Daemon/Cache_embeds.php', 'Zotlabs\\Daemon\\Checksites' => $baseDir . '/Zotlabs/Daemon/Checksites.php', 'Zotlabs\\Daemon\\Cli_suggest' => $baseDir . '/Zotlabs/Daemon/Cli_suggest.php', 'Zotlabs\\Daemon\\Cron' => $baseDir . '/Zotlabs/Daemon/Cron.php', @@ -876,6 +877,7 @@ return array( 'Zotlabs\\Lib\\System' => $baseDir . '/Zotlabs/Lib/System.php', 'Zotlabs\\Lib\\Techlevels' => $baseDir . '/Zotlabs/Lib/Techlevels.php', 'Zotlabs\\Lib\\ThreadItem' => $baseDir . '/Zotlabs/Lib/ThreadItem.php', + 'Zotlabs\\Lib\\ThreadListener' => $baseDir . '/Zotlabs/Lib/ThreadListener.php', 'Zotlabs\\Lib\\ThreadStream' => $baseDir . '/Zotlabs/Lib/ThreadStream.php', 'Zotlabs\\Lib\\Verify' => $baseDir . '/Zotlabs/Lib/Verify.php', 'Zotlabs\\Lib\\Webfinger' => $baseDir . '/Zotlabs/Lib/Webfinger.php', @@ -896,6 +898,7 @@ return array( 'Zotlabs\\Module\\Admin\\Security' => $baseDir . '/Zotlabs/Module/Admin/Security.php', 'Zotlabs\\Module\\Admin\\Site' => $baseDir . '/Zotlabs/Module/Admin/Site.php', 'Zotlabs\\Module\\Admin\\Themes' => $baseDir . '/Zotlabs/Module/Admin/Themes.php', + 'Zotlabs\\Module\\Affinity' => $baseDir . '/Zotlabs/Module/Affinity.php', 'Zotlabs\\Module\\Api' => $baseDir . '/Zotlabs/Module/Api.php', 'Zotlabs\\Module\\Appman' => $baseDir . '/Zotlabs/Module/Appman.php', 'Zotlabs\\Module\\Apporder' => $baseDir . '/Zotlabs/Module/Apporder.php', @@ -938,6 +941,7 @@ return array( 'Zotlabs\\Module\\Editwebpage' => $baseDir . '/Zotlabs/Module/Editwebpage.php', 'Zotlabs\\Module\\Email_resend' => $baseDir . '/Zotlabs/Module/Email_resend.php', 'Zotlabs\\Module\\Email_validation' => $baseDir . '/Zotlabs/Module/Email_validation.php', + 'Zotlabs\\Module\\Embed' => $baseDir . '/Zotlabs/Module/Embed.php', 'Zotlabs\\Module\\Embedphotos' => $baseDir . '/Zotlabs/Module/Embedphotos.php', 'Zotlabs\\Module\\Events' => $baseDir . '/Zotlabs/Module/Events.php', 'Zotlabs\\Module\\Fbrowser' => $baseDir . '/Zotlabs/Module/Fbrowser.php', @@ -1092,6 +1096,9 @@ return array( 'Zotlabs\\Module\\Zot_probe' => $baseDir . '/Zotlabs/Module/Zot_probe.php', 'Zotlabs\\Module\\Zotfeed' => $baseDir . '/Zotlabs/Module/Zotfeed.php', 'Zotlabs\\Module\\Zping' => $baseDir . '/Zotlabs/Module/Zping.php', + 'Zotlabs\\Photo\\PhotoDriver' => $baseDir . '/Zotlabs/Photo/PhotoDriver.php', + 'Zotlabs\\Photo\\PhotoGd' => $baseDir . '/Zotlabs/Photo/PhotoGd.php', + 'Zotlabs\\Photo\\PhotoImagick' => $baseDir . '/Zotlabs/Photo/PhotoImagick.php', 'Zotlabs\\Render\\Comanche' => $baseDir . '/Zotlabs/Render/Comanche.php', 'Zotlabs\\Render\\SimpleTemplate' => $baseDir . '/Zotlabs/Render/SimpleTemplate.php', 'Zotlabs\\Render\\SmartyInterface' => $baseDir . '/Zotlabs/Render/SmartyInterface.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 69c31dd65..d4daa13e6 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -979,6 +979,7 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d 'Zotlabs\\Access\\PermissionRoles' => __DIR__ . '/../..' . '/Zotlabs/Access/PermissionRoles.php', 'Zotlabs\\Access\\Permissions' => __DIR__ . '/../..' . '/Zotlabs/Access/Permissions.php', 'Zotlabs\\Daemon\\Addon' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Addon.php', + 'Zotlabs\\Daemon\\Cache_embeds' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Cache_embeds.php', 'Zotlabs\\Daemon\\Checksites' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Checksites.php', 'Zotlabs\\Daemon\\Cli_suggest' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Cli_suggest.php', 'Zotlabs\\Daemon\\Cron' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Cron.php', @@ -1044,6 +1045,7 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d 'Zotlabs\\Lib\\System' => __DIR__ . '/../..' . '/Zotlabs/Lib/System.php', 'Zotlabs\\Lib\\Techlevels' => __DIR__ . '/../..' . '/Zotlabs/Lib/Techlevels.php', 'Zotlabs\\Lib\\ThreadItem' => __DIR__ . '/../..' . '/Zotlabs/Lib/ThreadItem.php', + 'Zotlabs\\Lib\\ThreadListener' => __DIR__ . '/../..' . '/Zotlabs/Lib/ThreadListener.php', 'Zotlabs\\Lib\\ThreadStream' => __DIR__ . '/../..' . '/Zotlabs/Lib/ThreadStream.php', 'Zotlabs\\Lib\\Verify' => __DIR__ . '/../..' . '/Zotlabs/Lib/Verify.php', 'Zotlabs\\Lib\\Webfinger' => __DIR__ . '/../..' . '/Zotlabs/Lib/Webfinger.php', @@ -1064,6 +1066,7 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d 'Zotlabs\\Module\\Admin\\Security' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Security.php', 'Zotlabs\\Module\\Admin\\Site' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Site.php', 'Zotlabs\\Module\\Admin\\Themes' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Themes.php', + 'Zotlabs\\Module\\Affinity' => __DIR__ . '/../..' . '/Zotlabs/Module/Affinity.php', 'Zotlabs\\Module\\Api' => __DIR__ . '/../..' . '/Zotlabs/Module/Api.php', 'Zotlabs\\Module\\Appman' => __DIR__ . '/../..' . '/Zotlabs/Module/Appman.php', 'Zotlabs\\Module\\Apporder' => __DIR__ . '/../..' . '/Zotlabs/Module/Apporder.php', @@ -1106,6 +1109,7 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d 'Zotlabs\\Module\\Editwebpage' => __DIR__ . '/../..' . '/Zotlabs/Module/Editwebpage.php', 'Zotlabs\\Module\\Email_resend' => __DIR__ . '/../..' . '/Zotlabs/Module/Email_resend.php', 'Zotlabs\\Module\\Email_validation' => __DIR__ . '/../..' . '/Zotlabs/Module/Email_validation.php', + 'Zotlabs\\Module\\Embed' => __DIR__ . '/../..' . '/Zotlabs/Module/Embed.php', 'Zotlabs\\Module\\Embedphotos' => __DIR__ . '/../..' . '/Zotlabs/Module/Embedphotos.php', 'Zotlabs\\Module\\Events' => __DIR__ . '/../..' . '/Zotlabs/Module/Events.php', 'Zotlabs\\Module\\Fbrowser' => __DIR__ . '/../..' . '/Zotlabs/Module/Fbrowser.php', @@ -1260,6 +1264,9 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d 'Zotlabs\\Module\\Zot_probe' => __DIR__ . '/../..' . '/Zotlabs/Module/Zot_probe.php', 'Zotlabs\\Module\\Zotfeed' => __DIR__ . '/../..' . '/Zotlabs/Module/Zotfeed.php', 'Zotlabs\\Module\\Zping' => __DIR__ . '/../..' . '/Zotlabs/Module/Zping.php', + 'Zotlabs\\Photo\\PhotoDriver' => __DIR__ . '/../..' . '/Zotlabs/Photo/PhotoDriver.php', + 'Zotlabs\\Photo\\PhotoGd' => __DIR__ . '/../..' . '/Zotlabs/Photo/PhotoGd.php', + 'Zotlabs\\Photo\\PhotoImagick' => __DIR__ . '/../..' . '/Zotlabs/Photo/PhotoImagick.php', 'Zotlabs\\Render\\Comanche' => __DIR__ . '/../..' . '/Zotlabs/Render/Comanche.php', 'Zotlabs\\Render\\SimpleTemplate' => __DIR__ . '/../..' . '/Zotlabs/Render/SimpleTemplate.php', 'Zotlabs\\Render\\SmartyInterface' => __DIR__ . '/../..' . '/Zotlabs/Render/SmartyInterface.php', diff --git a/view/js/main.js b/view/js/main.js index ee11ab1c6..4e4431f33 100644 --- a/view/js/main.js +++ b/view/js/main.js @@ -400,12 +400,12 @@ function viewsrc(id) { function showHideComments(id) { if( $('#collapsed-comments-' + id).is(':visible')) { $('#collapsed-comments-' + id + ' .autotime').timeago('dispose'); - $('#collapsed-comments-' + id).slideUp(); + $('#collapsed-comments-' + id).hide(); $('#hide-comments-' + id).html(aStr.showmore); $('#hide-comments-total-' + id).show(); } else { $('#collapsed-comments-' + id + ' .autotime').timeago(); - $('#collapsed-comments-' + id).slideDown(); + $('#collapsed-comments-' + id).show(); $('#hide-comments-' + id).html(aStr.showfewer); $('#hide-comments-total-' + id).hide(); } @@ -734,6 +734,7 @@ function updateConvItems(mode,data) { title.replace(/\s+$/, ''); if (title) { savedTitle = title + " " + savedTitle; + document.title = title; } } } @@ -769,7 +770,7 @@ function updateConvItems(mode,data) { mediaPlaying = false; }); - var bimgs = ((preloadImages) ? false : $(".wall-item-body img").not(function() { return this.complete; })); + var bimgs = ((preloadImages) ? false : $(".wall-item-body img, .wall-photo-item img").not(function() { return this.complete; })); var bimgcount = bimgs.length; if (bimgcount) { @@ -845,10 +846,10 @@ function collapseHeight() { }); var collapsedContentHeight = Math.ceil($("#region_2").height()); - contentHeightDiff = origContentHeight - collapsedContentHeight; + contentHeightDiff = liking ? 0 : origContentHeight - collapsedContentHeight; console.log('collapseHeight() - contentHeightDiff: ' + contentHeightDiff + 'px'); - if(i){ + if(i && !liking){ var sval = position - cDiff + ($(".divgrow-showmore").outerHeight() * i); console.log('collapsed above viewport count: ' + i); $(window).scrollTop(sval); @@ -999,7 +1000,7 @@ function liveUpdate(notify_id) { $("#profile-jot-text-loading").hide(); // adjust scroll position if new content was added above viewport - if(update_mode === 'update') { + if(update_mode === 'update' && !justifiedGalleryActive) { $(window).scrollTop($(window).scrollTop() + $("#region_2").height() - orgHeight + contentHeightDiff); } diff --git a/view/ru/hmessages.po b/view/ru/hmessages.po index 76c24a404..68bfc2aa5 100644 --- a/view/ru/hmessages.po +++ b/view/ru/hmessages.po @@ -5,14 +5,14 @@ # # Translators: # Alex <info@pixelbits.de>, 2016-2017 -# Max Kostikov <max@kostikov.co>, 2018 +# Max Kostikov <max@kostikov.co>, 2018-2019 #, fuzzy msgid "" msgstr "" "Project-Id-Version: hubzilla\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-10-18 11:03+0200\n" -"PO-Revision-Date: 2018-12-04 12:19+0200\n" +"POT-Creation-Date: 2019-02-12 11:46+0200\n" +"PO-Revision-Date: 2019-02-12 11:52+0200\n" "Last-Translator: Max Kostikov <max@kostikov.co>\n" "Language-Team: Russian (http://www.transifex.com/Friendica/hubzilla/language/ru/)\n" "MIME-Version: 1.0\n" @@ -25,7 +25,7 @@ msgstr "" msgid "Source channel not found." msgstr "ΠΠ°Π½Π°Π»-ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½." -#: ../../view/theme/redbasic/php/config.php:15 ../../include/text.php:3096 +#: ../../view/theme/redbasic/php/config.php:15 ../../include/text.php:3210 #: ../../Zotlabs/Module/Admin/Site.php:187 msgid "Default" msgstr "ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ" @@ -42,7 +42,7 @@ msgstr "Π€ΠΎΠΊΡΡ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Hubzilla)" #: ../../Zotlabs/Module/Email_validation.php:40 #: ../../Zotlabs/Module/Poke.php:217 ../../Zotlabs/Module/Appman.php:155 #: ../../Zotlabs/Module/Profiles.php:723 ../../Zotlabs/Module/Photos.php:1097 -#: ../../Zotlabs/Module/Photos.php:1137 ../../Zotlabs/Module/Photos.php:1255 +#: ../../Zotlabs/Module/Photos.php:1138 ../../Zotlabs/Module/Photos.php:1257 #: ../../Zotlabs/Module/Oauth.php:111 ../../Zotlabs/Module/Events.php:495 #: ../../Zotlabs/Module/Rate.php:166 ../../Zotlabs/Module/Locs.php:121 #: ../../Zotlabs/Module/Sources.php:125 ../../Zotlabs/Module/Sources.php:162 @@ -61,7 +61,7 @@ msgstr "Π€ΠΎΠΊΡΡ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Hubzilla)" #: ../../Zotlabs/Module/Settings/Directory.php:41 #: ../../Zotlabs/Module/Settings/Photos.php:41 #: ../../Zotlabs/Module/Settings/Profiles.php:50 -#: ../../Zotlabs/Module/Settings/Featured.php:54 +#: ../../Zotlabs/Module/Settings/Featured.php:62 #: ../../Zotlabs/Module/Settings/Connections.php:41 #: ../../Zotlabs/Module/Settings/Channel.php:493 #: ../../Zotlabs/Module/Filestorage.php:183 ../../Zotlabs/Module/Cal.php:344 @@ -79,35 +79,33 @@ msgstr "Π€ΠΎΠΊΡΡ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Hubzilla)" #: ../../Zotlabs/Module/Admin/Account_edit.php:73 #: ../../Zotlabs/Module/Tokens.php:188 ../../Zotlabs/Module/Thing.php:326 #: ../../Zotlabs/Module/Thing.php:379 ../../Zotlabs/Module/Editpost.php:85 -#: ../../Zotlabs/Module/Connedit.php:893 ../../Zotlabs/Module/Group.php:140 -#: ../../Zotlabs/Module/Group.php:156 ../../Zotlabs/Module/Mood.php:158 +#: ../../Zotlabs/Module/Connedit.php:904 ../../Zotlabs/Module/Group.php:150 +#: ../../Zotlabs/Module/Group.php:166 ../../Zotlabs/Module/Mood.php:158 #: ../../Zotlabs/Module/Invite.php:168 ../../Zotlabs/Module/Connect.php:124 #: ../../Zotlabs/Module/Pdledit.php:107 ../../Zotlabs/Module/Wiki.php:215 #: ../../Zotlabs/Module/Import.php:574 #: ../../Zotlabs/Module/Import_items.php:129 #: ../../Zotlabs/Widget/Wiki_pages.php:42 #: ../../Zotlabs/Widget/Wiki_pages.php:99 -#: ../../Zotlabs/Widget/Eventstools.php:16 ../../Zotlabs/Lib/ThreadItem.php:773 -#: ../../extend/addon/hzaddons/dwpost/dwpost.php:89 +#: ../../Zotlabs/Widget/Eventstools.php:16 ../../Zotlabs/Lib/ThreadItem.php:791 +#: ../../extend/addon/hzaddons/dwpost/Mod_Dwpost.php:71 #: ../../extend/addon/hzaddons/fuzzloc/fuzzloc.php:191 #: ../../extend/addon/hzaddons/redphotos/redphotos.php:136 #: ../../extend/addon/hzaddons/rtof/Mod_Rtof.php:72 -#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:73 +#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:72 #: ../../extend/addon/hzaddons/redfiles/redfiles.php:124 -#: ../../extend/addon/hzaddons/twitter/twitter.php:221 -#: ../../extend/addon/hzaddons/twitter/twitter.php:268 +#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:184 #: ../../extend/addon/hzaddons/logrot/logrot.php:35 #: ../../extend/addon/hzaddons/likebanner/likebanner.php:57 #: ../../extend/addon/hzaddons/openstreetmap/openstreetmap.php:169 #: ../../extend/addon/hzaddons/photocache/Mod_Photocache.php:67 #: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:371 #: ../../extend/addon/hzaddons/piwik/piwik.php:95 -#: ../../extend/addon/hzaddons/pumpio/pumpio.php:237 -#: ../../extend/addon/hzaddons/nsabait/nsabait.php:161 +#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:115 #: ../../extend/addon/hzaddons/mailtest/mailtest.php:100 #: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:53 #: ../../extend/addon/hzaddons/hzfiles/hzfiles.php:84 -#: ../../extend/addon/hzaddons/ljpost/ljpost.php:89 +#: ../../extend/addon/hzaddons/ljpost/Mod_Ljpost.php:73 #: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:193 #: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:251 #: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:306 @@ -118,25 +116,23 @@ msgstr "Π€ΠΎΠΊΡΡ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Hubzilla)" #: ../../extend/addon/hzaddons/cart/submodules/subscriptions.php:410 #: ../../extend/addon/hzaddons/cart/submodules/hzservices.php:640 #: ../../extend/addon/hzaddons/cart/submodules/manualcat.php:248 -#: ../../extend/addon/hzaddons/cart/cart.php:1263 -#: ../../extend/addon/hzaddons/nofed/nofed.php:80 -#: ../../extend/addon/hzaddons/planets/planets.php:153 -#: ../../extend/addon/hzaddons/pageheader/pageheader.php:48 +#: ../../extend/addon/hzaddons/cart/cart.php:1264 +#: ../../extend/addon/hzaddons/nofed/Mod_Nofed.php:53 +#: ../../extend/addon/hzaddons/pageheader/Mod_Pageheader.php:54 #: ../../extend/addon/hzaddons/hubwall/hubwall.php:95 -#: ../../extend/addon/hzaddons/smileybutton/smileybutton.php:219 +#: ../../extend/addon/hzaddons/smileybutton/Mod_Smileybutton.php:55 #: ../../extend/addon/hzaddons/frphotos/frphotos.php:97 #: ../../extend/addon/hzaddons/flattrwidget/flattrwidget.php:124 #: ../../extend/addon/hzaddons/xmpp/xmpp.php:69 -#: ../../extend/addon/hzaddons/visage/visage.php:170 #: ../../extend/addon/hzaddons/irc/irc.php:53 #: ../../extend/addon/hzaddons/chords/Mod_Chords.php:60 -#: ../../extend/addon/hzaddons/libertree/libertree.php:85 +#: ../../extend/addon/hzaddons/libertree/Mod_Libertree.php:70 #: ../../extend/addon/hzaddons/redred/Mod_Redred.php:90 #: ../../extend/addon/hzaddons/pubcrawl/Mod_Pubcrawl.php:63 #: ../../extend/addon/hzaddons/diaspora/Mod_Diaspora.php:99 #: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:97 #: ../../extend/addon/hzaddons/nsfw/Mod_Nsfw.php:61 -#: ../../extend/addon/hzaddons/skeleton/skeleton.php:65 +#: ../../extend/addon/hzaddons/skeleton/Mod_Skeleton.php:51 msgid "Submit" msgstr "ΠΡΠΏΡΠ°Π²ΠΈΡΡ" @@ -151,7 +147,7 @@ msgstr "Π£Π·ΠΊΠ°Ρ ΠΏΠ°Π½Π΅Π»Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ" #: ../../view/theme/redbasic/php/config.php:99 #: ../../view/theme/redbasic/php/config.php:116 ../../include/dir_fns.php:143 #: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145 -#: ../../boot.php:1630 ../../Zotlabs/Storage/Browser.php:405 +#: ../../boot.php:1635 ../../Zotlabs/Storage/Browser.php:405 #: ../../Zotlabs/Module/Defperms.php:197 ../../Zotlabs/Module/Profiles.php:681 #: ../../Zotlabs/Module/Photos.php:712 ../../Zotlabs/Module/Api.php:99 #: ../../Zotlabs/Module/Events.php:472 ../../Zotlabs/Module/Events.php:473 @@ -164,32 +160,27 @@ msgstr "Π£Π·ΠΊΠ°Ρ ΠΏΠ°Π½Π΅Π»Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ" #: ../../Zotlabs/Module/Menu.php:221 ../../Zotlabs/Module/Mitem.php:176 #: ../../Zotlabs/Module/Mitem.php:177 ../../Zotlabs/Module/Mitem.php:256 #: ../../Zotlabs/Module/Mitem.php:257 ../../Zotlabs/Module/Admin/Site.php:255 -#: ../../Zotlabs/Module/Connedit.php:398 ../../Zotlabs/Module/Connedit.php:785 +#: ../../Zotlabs/Module/Connedit.php:406 ../../Zotlabs/Module/Connedit.php:796 #: ../../Zotlabs/Module/Wiki.php:227 ../../Zotlabs/Module/Wiki.php:228 #: ../../Zotlabs/Module/Import.php:563 ../../Zotlabs/Module/Import.php:567 #: ../../Zotlabs/Module/Import.php:568 ../../Zotlabs/Lib/Libzotdir.php:162 #: ../../Zotlabs/Lib/Libzotdir.php:163 ../../Zotlabs/Lib/Libzotdir.php:165 -#: ../../extend/addon/hzaddons/dwpost/dwpost.php:73 -#: ../../extend/addon/hzaddons/dwpost/dwpost.php:85 +#: ../../extend/addon/hzaddons/dwpost/Mod_Dwpost.php:60 #: ../../extend/addon/hzaddons/fuzzloc/fuzzloc.php:178 #: ../../extend/addon/hzaddons/rtof/Mod_Rtof.php:49 -#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:62 -#: ../../extend/addon/hzaddons/twitter/twitter.php:246 -#: ../../extend/addon/hzaddons/twitter/twitter.php:255 -#: ../../extend/addon/hzaddons/twitter/twitter.php:264 +#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:61 +#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:162 +#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:171 #: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:309 #: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:313 #: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:343 #: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:351 #: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:355 #: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:359 -#: ../../extend/addon/hzaddons/pumpio/pumpio.php:219 -#: ../../extend/addon/hzaddons/pumpio/pumpio.php:223 -#: ../../extend/addon/hzaddons/pumpio/pumpio.php:227 -#: ../../extend/addon/hzaddons/pumpio/pumpio.php:231 -#: ../../extend/addon/hzaddons/nsabait/nsabait.php:157 -#: ../../extend/addon/hzaddons/ljpost/ljpost.php:73 -#: ../../extend/addon/hzaddons/ljpost/ljpost.php:85 +#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:94 +#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:98 +#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:102 +#: ../../extend/addon/hzaddons/ljpost/Mod_Ljpost.php:62 #: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:260 #: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:282 #: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:291 @@ -206,17 +197,12 @@ msgstr "Π£Π·ΠΊΠ°Ρ ΠΏΠ°Π½Π΅Π»Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ" #: ../../extend/addon/hzaddons/cart/submodules/manualcat.php:63 #: ../../extend/addon/hzaddons/cart/submodules/manualcat.php:254 #: ../../extend/addon/hzaddons/cart/submodules/manualcat.php:258 -#: ../../extend/addon/hzaddons/cart/cart.php:1257 -#: ../../extend/addon/hzaddons/nofed/nofed.php:72 -#: ../../extend/addon/hzaddons/nofed/nofed.php:76 -#: ../../extend/addon/hzaddons/planets/planets.php:149 -#: ../../extend/addon/hzaddons/smileybutton/smileybutton.php:211 -#: ../../extend/addon/hzaddons/smileybutton/smileybutton.php:215 +#: ../../extend/addon/hzaddons/cart/cart.php:1258 +#: ../../extend/addon/hzaddons/nofed/Mod_Nofed.php:42 +#: ../../extend/addon/hzaddons/smileybutton/Mod_Smileybutton.php:44 #: ../../extend/addon/hzaddons/flattrwidget/flattrwidget.php:120 #: ../../extend/addon/hzaddons/xmpp/xmpp.php:53 -#: ../../extend/addon/hzaddons/visage/visage.php:166 -#: ../../extend/addon/hzaddons/libertree/libertree.php:69 -#: ../../extend/addon/hzaddons/libertree/libertree.php:81 +#: ../../extend/addon/hzaddons/libertree/Mod_Libertree.php:59 #: ../../extend/addon/hzaddons/redred/Mod_Redred.php:63 #: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:82 #: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:86 @@ -226,7 +212,7 @@ msgstr "ΠΠ΅Ρ" #: ../../view/theme/redbasic/php/config.php:99 #: ../../view/theme/redbasic/php/config.php:116 ../../include/dir_fns.php:143 #: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145 -#: ../../boot.php:1630 ../../Zotlabs/Storage/Browser.php:405 +#: ../../boot.php:1635 ../../Zotlabs/Storage/Browser.php:405 #: ../../Zotlabs/Module/Defperms.php:197 ../../Zotlabs/Module/Profiles.php:681 #: ../../Zotlabs/Module/Photos.php:712 ../../Zotlabs/Module/Api.php:98 #: ../../Zotlabs/Module/Events.php:472 ../../Zotlabs/Module/Events.php:473 @@ -239,32 +225,27 @@ msgstr "ΠΠ΅Ρ" #: ../../Zotlabs/Module/Menu.php:221 ../../Zotlabs/Module/Mitem.php:176 #: ../../Zotlabs/Module/Mitem.php:177 ../../Zotlabs/Module/Mitem.php:256 #: ../../Zotlabs/Module/Mitem.php:257 ../../Zotlabs/Module/Admin/Site.php:257 -#: ../../Zotlabs/Module/Connedit.php:398 ../../Zotlabs/Module/Wiki.php:227 +#: ../../Zotlabs/Module/Connedit.php:406 ../../Zotlabs/Module/Wiki.php:227 #: ../../Zotlabs/Module/Wiki.php:228 ../../Zotlabs/Module/Import.php:563 #: ../../Zotlabs/Module/Import.php:567 ../../Zotlabs/Module/Import.php:568 #: ../../Zotlabs/Lib/Libzotdir.php:162 ../../Zotlabs/Lib/Libzotdir.php:163 #: ../../Zotlabs/Lib/Libzotdir.php:165 -#: ../../extend/addon/hzaddons/dwpost/dwpost.php:73 -#: ../../extend/addon/hzaddons/dwpost/dwpost.php:85 +#: ../../extend/addon/hzaddons/dwpost/Mod_Dwpost.php:60 #: ../../extend/addon/hzaddons/fuzzloc/fuzzloc.php:178 #: ../../extend/addon/hzaddons/rtof/Mod_Rtof.php:49 -#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:62 -#: ../../extend/addon/hzaddons/twitter/twitter.php:246 -#: ../../extend/addon/hzaddons/twitter/twitter.php:255 -#: ../../extend/addon/hzaddons/twitter/twitter.php:264 +#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:61 +#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:162 +#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:171 #: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:309 #: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:313 #: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:343 #: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:351 #: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:355 #: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:359 -#: ../../extend/addon/hzaddons/pumpio/pumpio.php:219 -#: ../../extend/addon/hzaddons/pumpio/pumpio.php:223 -#: ../../extend/addon/hzaddons/pumpio/pumpio.php:227 -#: ../../extend/addon/hzaddons/pumpio/pumpio.php:231 -#: ../../extend/addon/hzaddons/nsabait/nsabait.php:157 -#: ../../extend/addon/hzaddons/ljpost/ljpost.php:73 -#: ../../extend/addon/hzaddons/ljpost/ljpost.php:85 +#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:94 +#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:98 +#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:102 +#: ../../extend/addon/hzaddons/ljpost/Mod_Ljpost.php:62 #: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:260 #: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:282 #: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:291 @@ -281,17 +262,12 @@ msgstr "ΠΠ΅Ρ" #: ../../extend/addon/hzaddons/cart/submodules/manualcat.php:63 #: ../../extend/addon/hzaddons/cart/submodules/manualcat.php:254 #: ../../extend/addon/hzaddons/cart/submodules/manualcat.php:258 -#: ../../extend/addon/hzaddons/cart/cart.php:1257 -#: ../../extend/addon/hzaddons/nofed/nofed.php:72 -#: ../../extend/addon/hzaddons/nofed/nofed.php:76 -#: ../../extend/addon/hzaddons/planets/planets.php:149 -#: ../../extend/addon/hzaddons/smileybutton/smileybutton.php:211 -#: ../../extend/addon/hzaddons/smileybutton/smileybutton.php:215 +#: ../../extend/addon/hzaddons/cart/cart.php:1258 +#: ../../extend/addon/hzaddons/nofed/Mod_Nofed.php:42 +#: ../../extend/addon/hzaddons/smileybutton/Mod_Smileybutton.php:44 #: ../../extend/addon/hzaddons/flattrwidget/flattrwidget.php:120 #: ../../extend/addon/hzaddons/xmpp/xmpp.php:53 -#: ../../extend/addon/hzaddons/visage/visage.php:166 -#: ../../extend/addon/hzaddons/libertree/libertree.php:69 -#: ../../extend/addon/hzaddons/libertree/libertree.php:81 +#: ../../extend/addon/hzaddons/libertree/Mod_Libertree.php:59 #: ../../extend/addon/hzaddons/redred/Mod_Redred.php:63 #: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:82 #: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:86 @@ -344,7 +320,7 @@ msgstr "ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ: 1rem, 100%, 16px" #: ../../view/theme/redbasic/php/config.php:110 msgid "Set font-color for posts and comments" -msgstr "Π¦Π²Π΅Ρ ΡΡΠΈΡΡΠ° Π΄Π»Ρ ΠΏΠΎΡΡΠΎΠ² ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π²" +msgstr "Π¦Π²Π΅Ρ ΡΡΠΈΡΡΠ° Π΄Π»Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π²" #: ../../view/theme/redbasic/php/config.php:111 msgid "Set radius of corners" @@ -461,9 +437,9 @@ msgstr "ΠΠ΅ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ" #: ../../include/selectors.php:60 ../../include/selectors.php:77 #: ../../include/selectors.php:115 ../../include/selectors.php:151 #: ../../include/connections.php:703 ../../include/connections.php:710 -#: ../../include/event.php:1318 ../../include/event.php:1325 +#: ../../include/event.php:1327 ../../include/event.php:1334 #: ../../Zotlabs/Module/Cdav.php:1227 ../../Zotlabs/Module/Profiles.php:795 -#: ../../Zotlabs/Module/Connedit.php:924 +#: ../../Zotlabs/Module/Connedit.php:935 #: ../../Zotlabs/Access/PermissionRoles.php:306 msgid "Other" msgstr "ΠΡΡΠ³ΠΎΠΉ" @@ -567,7 +543,7 @@ msgstr "ΠΡΠΎΡΠΎΠΌΠ°Π½" #: ../../Zotlabs/Module/Settings/Channel.php:75 #: ../../Zotlabs/Module/Settings/Channel.php:78 #: ../../Zotlabs/Module/Settings/Channel.php:89 -#: ../../Zotlabs/Module/Connedit.php:717 ../../Zotlabs/Widget/Affinity.php:24 +#: ../../Zotlabs/Module/Connedit.php:725 ../../Zotlabs/Widget/Affinity.php:29 msgid "Friends" msgstr "ΠΡΡΠ·ΡΡ" @@ -655,18 +631,18 @@ msgstr "ΠΡΡ ΡΠ°Π²Π½ΠΎ" msgid "Ask me" msgstr "Π‘ΠΏΡΠΎΡΠΈ ΠΌΠ΅Π½Ρ" -#: ../../include/photos.php:27 ../../include/items.php:3703 -#: ../../include/attach.php:150 ../../include/attach.php:197 -#: ../../include/attach.php:270 ../../include/attach.php:379 -#: ../../include/attach.php:393 ../../include/attach.php:400 -#: ../../include/attach.php:482 ../../include/attach.php:1042 -#: ../../include/attach.php:1116 ../../include/attach.php:1281 +#: ../../include/photos.php:27 ../../include/items.php:3779 +#: ../../include/attach.php:150 ../../include/attach.php:199 +#: ../../include/attach.php:272 ../../include/attach.php:381 +#: ../../include/attach.php:395 ../../include/attach.php:402 +#: ../../include/attach.php:484 ../../include/attach.php:1044 +#: ../../include/attach.php:1118 ../../include/attach.php:1283 #: ../../Zotlabs/Module/Mail.php:146 ../../Zotlabs/Module/Defperms.php:181 #: ../../Zotlabs/Module/Network.php:17 ../../Zotlabs/Module/Common.php:38 -#: ../../Zotlabs/Module/Item.php:231 ../../Zotlabs/Module/Item.php:250 -#: ../../Zotlabs/Module/Item.php:260 ../../Zotlabs/Module/Item.php:1136 +#: ../../Zotlabs/Module/Item.php:376 ../../Zotlabs/Module/Item.php:395 +#: ../../Zotlabs/Module/Item.php:405 ../../Zotlabs/Module/Item.php:1281 #: ../../Zotlabs/Module/Achievements.php:34 -#: ../../Zotlabs/Module/Display.php:448 ../../Zotlabs/Module/Poke.php:157 +#: ../../Zotlabs/Module/Display.php:447 ../../Zotlabs/Module/Poke.php:157 #: ../../Zotlabs/Module/Profile.php:85 ../../Zotlabs/Module/Profile.php:101 #: ../../Zotlabs/Module/Appman.php:87 ../../Zotlabs/Module/Profiles.php:198 #: ../../Zotlabs/Module/Profiles.php:635 ../../Zotlabs/Module/Photos.php:69 @@ -691,9 +667,9 @@ msgstr "Π‘ΠΏΡΠΎΡΠΈ ΠΌΠ΅Π½Ρ" #: ../../Zotlabs/Module/Filestorage.php:140 #: ../../Zotlabs/Module/Editblock.php:67 #: ../../Zotlabs/Module/Service_limits.php:11 -#: ../../Zotlabs/Module/Message.php:18 ../../Zotlabs/Module/Channel.php:163 -#: ../../Zotlabs/Module/Channel.php:330 ../../Zotlabs/Module/Channel.php:369 -#: ../../Zotlabs/Module/Like.php:185 ../../Zotlabs/Module/Bookmarks.php:70 +#: ../../Zotlabs/Module/Message.php:18 ../../Zotlabs/Module/Channel.php:168 +#: ../../Zotlabs/Module/Channel.php:335 ../../Zotlabs/Module/Channel.php:374 +#: ../../Zotlabs/Module/Like.php:187 ../../Zotlabs/Module/Bookmarks.php:70 #: ../../Zotlabs/Module/Viewsrc.php:19 ../../Zotlabs/Module/Menu.php:129 #: ../../Zotlabs/Module/Menu.php:140 ../../Zotlabs/Module/Setup.php:209 #: ../../Zotlabs/Module/Mitem.php:129 ../../Zotlabs/Module/Notifications.php:11 @@ -706,22 +682,22 @@ msgstr "Π‘ΠΏΡΠΎΡΠΈ ΠΌΠ΅Π½Ρ" #: ../../Zotlabs/Module/Moderate.php:13 ../../Zotlabs/Module/Webpages.php:133 #: ../../Zotlabs/Module/Profile_photo.php:302 #: ../../Zotlabs/Module/Profile_photo.php:315 -#: ../../Zotlabs/Module/Editpost.php:17 ../../Zotlabs/Module/Connedit.php:391 +#: ../../Zotlabs/Module/Editpost.php:17 ../../Zotlabs/Module/Connedit.php:399 #: ../../Zotlabs/Module/Group.php:14 ../../Zotlabs/Module/Group.php:30 #: ../../Zotlabs/Module/Connections.php:32 ../../Zotlabs/Module/Mood.php:126 #: ../../Zotlabs/Module/Card_edit.php:51 #: ../../Zotlabs/Module/Article_edit.php:51 ../../Zotlabs/Module/Blocks.php:73 #: ../../Zotlabs/Module/Blocks.php:80 ../../Zotlabs/Module/Invite.php:21 -#: ../../Zotlabs/Module/Invite.php:102 ../../Zotlabs/Module/Articles.php:80 +#: ../../Zotlabs/Module/Invite.php:102 ../../Zotlabs/Module/Articles.php:88 #: ../../Zotlabs/Module/Cloud.php:40 ../../Zotlabs/Module/Pdledit.php:34 #: ../../Zotlabs/Module/Wiki.php:59 ../../Zotlabs/Module/Wiki.php:285 #: ../../Zotlabs/Module/Wiki.php:428 ../../Zotlabs/Module/Manage.php:10 -#: ../../Zotlabs/Module/Suggest.php:32 ../../Zotlabs/Module/Cards.php:81 +#: ../../Zotlabs/Module/Suggest.php:32 ../../Zotlabs/Module/Cards.php:86 #: ../../Zotlabs/Module/Layouts.php:71 ../../Zotlabs/Module/Layouts.php:78 #: ../../Zotlabs/Module/Layouts.php:89 ../../Zotlabs/Web/WebServer.php:123 #: ../../Zotlabs/Lib/Chatroom.php:133 #: ../../extend/addon/hzaddons/flashcards/Mod_Flashcards.php:167 -#: ../../extend/addon/hzaddons/pumpio/pumpio.php:40 +#: ../../extend/addon/hzaddons/pumpio/pumpio.php:44 #: ../../extend/addon/hzaddons/openid/Mod_Id.php:53 #: ../../extend/addon/hzaddons/keepout/keepout.php:36 msgid "Permission denied." @@ -755,12 +731,12 @@ msgctxt "photo_upload" msgid "%1$s posted %2$s to %3$s" msgstr "%1$s ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» %2$s Π² %3$s" -#: ../../include/photos.php:669 ../../include/nav.php:417 +#: ../../include/photos.php:669 ../../include/nav.php:447 msgid "Photo Albums" msgstr "Π€ΠΎΡΠΎΠ°Π»ΡΠ±ΠΎΠΌΡ" -#: ../../include/photos.php:670 ../../Zotlabs/Module/Photos.php:1380 -#: ../../Zotlabs/Module/Photos.php:1393 ../../Zotlabs/Module/Photos.php:1394 +#: ../../include/photos.php:670 ../../Zotlabs/Module/Photos.php:1389 +#: ../../Zotlabs/Module/Photos.php:1402 ../../Zotlabs/Module/Photos.php:1403 msgid "Recent Photos" msgstr "ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ" @@ -851,24 +827,24 @@ msgstr "Π Π°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ: name=ivan and country=russia" msgid "Saved Folders" msgstr "Π‘ΠΎΡ
ΡΠ°Π½ΡΠ½Π½ΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ" -#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:100 -#: ../../include/contact_widgets.php:144 ../../include/contact_widgets.php:189 +#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:99 +#: ../../include/contact_widgets.php:142 ../../include/contact_widgets.php:187 #: ../../Zotlabs/Widget/Filer.php:31 ../../Zotlabs/Widget/Appcategories.php:46 msgid "Everything" msgstr "ΠΡΡ" -#: ../../include/contact_widgets.php:97 ../../include/contact_widgets.php:141 -#: ../../include/contact_widgets.php:186 ../../include/taxonomy.php:409 +#: ../../include/contact_widgets.php:96 ../../include/contact_widgets.php:139 +#: ../../include/contact_widgets.php:184 ../../include/taxonomy.php:409 #: ../../include/taxonomy.php:491 ../../include/taxonomy.php:511 #: ../../include/taxonomy.php:532 ../../Zotlabs/Widget/Appcategories.php:43 msgid "Categories" msgstr "ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ" -#: ../../include/contact_widgets.php:223 +#: ../../include/contact_widgets.php:218 msgid "Common Connections" msgstr "ΠΠ±ΡΠΈΠ΅ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ" -#: ../../include/contact_widgets.php:228 +#: ../../include/contact_widgets.php:222 #, php-format msgid "View all %d common connections" msgstr "ΠΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΡΠ΅ %d ΠΎΠ±ΡΠΈΡ
ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ²" @@ -880,7 +856,7 @@ msgstr "ΠΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΡΠ΅ %d ΠΎΠ±ΡΠΈΡ
ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ²" #: ../../Zotlabs/Module/Editblock.php:114 ../../Zotlabs/Module/Menu.php:175 #: ../../Zotlabs/Module/Admin/Profs.php:175 #: ../../Zotlabs/Module/Editwebpage.php:142 ../../Zotlabs/Module/Thing.php:266 -#: ../../Zotlabs/Module/Webpages.php:255 ../../Zotlabs/Module/Group.php:235 +#: ../../Zotlabs/Module/Webpages.php:255 ../../Zotlabs/Module/Group.php:252 #: ../../Zotlabs/Module/Connections.php:284 #: ../../Zotlabs/Module/Connections.php:322 #: ../../Zotlabs/Module/Connections.php:342 @@ -888,8 +864,8 @@ msgstr "ΠΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΡΠ΅ %d ΠΎΠ±ΡΠΈΡ
ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ²" #: ../../Zotlabs/Module/Article_edit.php:99 ../../Zotlabs/Module/Blocks.php:160 #: ../../Zotlabs/Module/Wiki.php:211 ../../Zotlabs/Module/Wiki.php:384 #: ../../Zotlabs/Module/Layouts.php:193 ../../Zotlabs/Widget/Cdav.php:126 -#: ../../Zotlabs/Widget/Cdav.php:162 ../../Zotlabs/Lib/Apps.php:534 -#: ../../Zotlabs/Lib/ThreadItem.php:133 +#: ../../Zotlabs/Widget/Cdav.php:162 ../../Zotlabs/Lib/Apps.php:555 +#: ../../Zotlabs/Lib/ThreadItem.php:144 msgid "Edit" msgstr "ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ" @@ -947,9 +923,9 @@ msgstr "ΠΠ°ΠΏΡΠΎΡΠ΅Π½Π½ΡΠΉ ΠΊΠ°Π½Π°Π» Π½Π΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½." #: ../../Zotlabs/Module/Editblock.php:31 ../../Zotlabs/Module/Menu.php:91 #: ../../Zotlabs/Module/Hcard.php:12 ../../Zotlabs/Module/Editwebpage.php:32 #: ../../Zotlabs/Module/Webpages.php:39 ../../Zotlabs/Module/Blocks.php:33 -#: ../../Zotlabs/Module/Articles.php:34 ../../Zotlabs/Module/Connect.php:17 -#: ../../Zotlabs/Module/Cards.php:37 ../../Zotlabs/Module/Layouts.php:31 -#: ../../extend/addon/hzaddons/gallery/Mod_Gallery.php:47 +#: ../../Zotlabs/Module/Articles.php:42 ../../Zotlabs/Module/Connect.php:17 +#: ../../Zotlabs/Module/Cards.php:42 ../../Zotlabs/Module/Layouts.php:31 +#: ../../extend/addon/hzaddons/gallery/Mod_Gallery.php:49 msgid "Requested profile is not available." msgstr "ΠΠ°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΏΡΠΎΡΠΈΠ»Ρ Π½Π΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½." @@ -991,8 +967,8 @@ msgstr "Π Π΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ" msgid "Connect" msgstr "ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ" -#: ../../include/channel.php:1447 ../../include/event.php:54 -#: ../../include/event.php:86 ../../Zotlabs/Module/Directory.php:328 +#: ../../include/channel.php:1447 ../../include/event.php:58 +#: ../../include/event.php:90 ../../Zotlabs/Module/Directory.php:328 msgid "Location:" msgstr "ΠΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:" @@ -1029,9 +1005,9 @@ msgstr "ΠΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ:" msgid "Like this channel" msgstr "Π½ΡΠ°Π²ΠΈΡΡΡ ΡΡΠΎΡ ΠΊΠ°Π½Π°Π»" -#: ../../include/channel.php:1595 ../../include/conversation.php:1693 -#: ../../include/taxonomy.php:661 ../../Zotlabs/Module/Photos.php:1175 -#: ../../Zotlabs/Lib/ThreadItem.php:221 +#: ../../include/channel.php:1595 ../../include/conversation.php:1702 +#: ../../include/taxonomy.php:661 ../../Zotlabs/Module/Photos.php:1177 +#: ../../Zotlabs/Lib/ThreadItem.php:232 msgctxt "noun" msgid "Like" msgid_plural "Likes" @@ -1133,7 +1109,7 @@ msgid "School/education:" msgstr "Π¨ΠΊΠΎΠ»Π° / ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅:" #: ../../include/channel.php:1700 ../../Zotlabs/Module/Profperm.php:113 -#: ../../Zotlabs/Lib/Apps.php:337 +#: ../../Zotlabs/Lib/Apps.php:358 msgid "Profile" msgstr "ΠΡΠΎΡΠΈΠ»Ρ" @@ -1150,25 +1126,25 @@ msgstr "ΠΠΊΡΠΏΠΎΡΡ" msgid "cover photo" msgstr "ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΡ ΠΎΠ±Π»ΠΎΠΆΠΊΠΈ" -#: ../../include/channel.php:2390 ../../boot.php:1626 -#: ../../Zotlabs/Module/Rmagic.php:75 +#: ../../include/channel.php:2405 ../../boot.php:1631 +#: ../../Zotlabs/Module/Rmagic.php:93 msgid "Remote Authentication" msgstr "Π£Π΄Π°Π»Π΅Π½Π½Π°Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ" -#: ../../include/channel.php:2391 ../../Zotlabs/Module/Rmagic.php:76 +#: ../../include/channel.php:2406 ../../Zotlabs/Module/Rmagic.php:94 msgid "Enter your channel address (e.g. channel@example.com)" msgstr "ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π°Π΄ΡΠ΅Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠ°Π½Π°Π»Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: channel@example.com)" -#: ../../include/channel.php:2392 ../../Zotlabs/Module/Rmagic.php:77 +#: ../../include/channel.php:2407 ../../Zotlabs/Module/Rmagic.php:95 msgid "Authenticate" msgstr "ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΠΎΠ΄Π»ΠΈΠ½Π½ΠΎΡΡΠΈ" -#: ../../include/channel.php:2547 ../../Zotlabs/Module/Admin/Accounts.php:91 +#: ../../include/channel.php:2562 ../../Zotlabs/Module/Admin/Accounts.php:91 #, php-format msgid "Account '%s' deleted" msgstr "ΠΠΊΠΊΠ°ΡΠ½Ρ '%s' ΡΠ΄Π°Π»Π΅Π½" -#: ../../include/message.php:13 ../../include/text.php:1718 +#: ../../include/message.php:13 ../../include/text.php:1765 msgid "Download binary/encrypted content" msgstr "ΠΠ°Π³ΡΡΠ·ΠΈΡΡ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ / Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅" @@ -1188,21 +1164,21 @@ msgstr "[Π±Π΅Π· ΡΠ΅ΠΌΡ]" msgid "Stored post could not be verified." msgstr "Π‘ΠΎΡ
ΡΠ°Π½ΡΠ½Π½Π°Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π°." -#: ../../include/markdown.php:200 ../../include/bbcode.php:358 +#: ../../include/markdown.php:198 ../../include/bbcode.php:347 #, php-format msgid "%1$s wrote the following %2$s %3$s" msgstr "%1$s Π±ΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π° %2$s %3$s" -#: ../../include/markdown.php:202 ../../include/bbcode.php:354 +#: ../../include/markdown.php:200 ../../include/bbcode.php:343 #: ../../Zotlabs/Module/Tagger.php:77 msgid "post" msgstr "ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ" -#: ../../include/items.php:384 ../../Zotlabs/Module/Dreport.php:10 -#: ../../Zotlabs/Module/Dreport.php:79 ../../Zotlabs/Module/Profperm.php:28 -#: ../../Zotlabs/Module/Like.php:296 ../../Zotlabs/Module/Subthread.php:86 -#: ../../Zotlabs/Module/Group.php:93 ../../Zotlabs/Module/Cloud.php:126 -#: ../../Zotlabs/Module/Import_items.php:120 +#: ../../include/items.php:416 ../../Zotlabs/Module/Dreport.php:10 +#: ../../Zotlabs/Module/Dreport.php:79 ../../Zotlabs/Module/Share.php:71 +#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Like.php:301 +#: ../../Zotlabs/Module/Subthread.php:86 ../../Zotlabs/Module/Group.php:98 +#: ../../Zotlabs/Module/Cloud.php:126 ../../Zotlabs/Module/Import_items.php:120 #: ../../Zotlabs/Web/WebServer.php:122 #: ../../extend/addon/hzaddons/redphotos/redphotos.php:119 #: ../../extend/addon/hzaddons/redfiles/redfiles.php:109 @@ -1211,112 +1187,112 @@ msgstr "ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ" msgid "Permission denied" msgstr "ΠΠΎΡΡΡΠΏ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½" -#: ../../include/items.php:921 ../../include/items.php:981 +#: ../../include/items.php:953 ../../include/items.php:1013 msgid "(Unknown)" msgstr "(ΠΠ΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ)" -#: ../../include/items.php:1169 +#: ../../include/items.php:1201 msgid "Visible to anybody on the internet." msgstr "ΠΠΈΠ΄Π΅Π½ Π²ΡΠ΅ΠΌ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅." -#: ../../include/items.php:1171 +#: ../../include/items.php:1203 msgid "Visible to you only." msgstr "ΠΠΈΠ΄Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π²Π°ΠΌ." -#: ../../include/items.php:1173 +#: ../../include/items.php:1205 msgid "Visible to anybody in this network." msgstr "ΠΠΈΠ΄Π½ΠΎ Π²ΡΠ΅ΠΌ Π² ΡΡΠΎΠΉ ΡΠ΅ΡΠΈ." -#: ../../include/items.php:1175 +#: ../../include/items.php:1207 msgid "Visible to anybody authenticated." msgstr "ΠΠΈΠ΄Π½ΠΎ Π²ΡΠ΅ΠΌ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ." -#: ../../include/items.php:1177 +#: ../../include/items.php:1209 #, php-format msgid "Visible to anybody on %s." msgstr "ΠΠΈΠ΄Π½ΠΎ Π²ΡΠ΅ΠΌ Π² %s." -#: ../../include/items.php:1179 +#: ../../include/items.php:1211 msgid "Visible to all connections." msgstr "ΠΠΈΠ΄Π½ΠΎ Π²ΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°ΠΌ." -#: ../../include/items.php:1181 +#: ../../include/items.php:1213 msgid "Visible to approved connections." msgstr "ΠΠΈΠ΄Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π½ΡΠΌ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°ΠΌ." -#: ../../include/items.php:1183 +#: ../../include/items.php:1215 msgid "Visible to specific connections." msgstr "ΠΠΈΠ΄Π½ΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°ΠΌ." -#: ../../include/items.php:3615 ../../Zotlabs/Module/Display.php:45 -#: ../../Zotlabs/Module/Display.php:452 ../../Zotlabs/Module/Admin.php:62 +#: ../../include/items.php:3691 ../../Zotlabs/Module/Display.php:45 +#: ../../Zotlabs/Module/Display.php:451 ../../Zotlabs/Module/Admin.php:62 #: ../../Zotlabs/Module/Filestorage.php:24 ../../Zotlabs/Module/Viewsrc.php:25 #: ../../Zotlabs/Module/Admin/Addons.php:259 #: ../../Zotlabs/Module/Admin/Themes.php:72 ../../Zotlabs/Module/Thing.php:94 msgid "Item not found." msgstr "ΠΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½." -#: ../../include/items.php:4195 ../../Zotlabs/Module/Group.php:61 -#: ../../Zotlabs/Module/Group.php:200 +#: ../../include/items.php:4273 ../../Zotlabs/Module/Group.php:61 +#: ../../Zotlabs/Module/Group.php:213 msgid "Privacy group not found." msgstr "ΠΡΡΠΏΠΏΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°." -#: ../../include/items.php:4211 +#: ../../include/items.php:4289 msgid "Privacy group is empty." msgstr "ΠΡΡΠΏΠΏΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΡΡΡΠ°" -#: ../../include/items.php:4218 +#: ../../include/items.php:4296 #, php-format msgid "Privacy group: %s" msgstr "ΠΡΡΠΏΠΏΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ: %s" -#: ../../include/items.php:4228 ../../Zotlabs/Module/Connedit.php:856 +#: ../../include/items.php:4306 ../../Zotlabs/Module/Connedit.php:867 #, php-format msgid "Connection: %s" msgstr "ΠΠΎΠ½ΡΠ°ΠΊΡ: %s" -#: ../../include/items.php:4230 +#: ../../include/items.php:4308 msgid "Connection not found." msgstr "ΠΠΎΠ½ΡΠ°ΠΊΡ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½." -#: ../../include/items.php:4572 ../../Zotlabs/Module/Cover_photo.php:269 +#: ../../include/items.php:4650 ../../Zotlabs/Module/Cover_photo.php:269 msgid "female" msgstr "ΠΆΠ΅Π½ΡΠΈΠ½Π°" -#: ../../include/items.php:4573 ../../Zotlabs/Module/Cover_photo.php:270 +#: ../../include/items.php:4651 ../../Zotlabs/Module/Cover_photo.php:270 #, php-format msgid "%1$s updated her %2$s" msgstr "%1$s ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»Π° Π΅Ρ %2$s" -#: ../../include/items.php:4574 ../../Zotlabs/Module/Cover_photo.php:271 +#: ../../include/items.php:4652 ../../Zotlabs/Module/Cover_photo.php:271 msgid "male" msgstr "ΠΌΡΠΆΡΠΈΠ½Π°" -#: ../../include/items.php:4575 ../../Zotlabs/Module/Cover_photo.php:272 +#: ../../include/items.php:4653 ../../Zotlabs/Module/Cover_photo.php:272 #, php-format msgid "%1$s updated his %2$s" msgstr "%1$s ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» Π΅Π³ΠΎ %2$s" -#: ../../include/items.php:4577 ../../Zotlabs/Module/Cover_photo.php:274 +#: ../../include/items.php:4655 ../../Zotlabs/Module/Cover_photo.php:274 #, php-format msgid "%1$s updated their %2$s" msgstr "%1$s ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ ΠΈΡ
%2$s" -#: ../../include/items.php:4579 +#: ../../include/items.php:4657 msgid "profile photo" msgstr "Π€ΠΎΡΠΎΠ³ΡΠ°ΡΠΈΡ ΠΏΡΠΎΡΠΈΠ»Ρ" -#: ../../include/items.php:4771 +#: ../../include/items.php:4849 #, php-format msgid "[Edited %s]" msgstr "[ΠΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΎ %s]" -#: ../../include/items.php:4771 +#: ../../include/items.php:4849 msgctxt "edit_activity" msgid "Post" msgstr "ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ" -#: ../../include/items.php:4771 +#: ../../include/items.php:4849 msgctxt "edit_activity" msgid "Comment" msgstr "ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ" @@ -1356,7 +1332,7 @@ msgstr "ΠΡΠΊΠ»." msgid "On" msgstr "ΠΠΊΠ»." -#: ../../include/features.php:82 ../../Zotlabs/Lib/Apps.php:342 +#: ../../include/features.php:82 ../../Zotlabs/Lib/Apps.php:363 msgid "CalDAV" msgstr "" @@ -1368,7 +1344,7 @@ msgstr "ΠΠ°ΡΠΈΠ½Π°ΡΡ ΠΊΠ°Π»Π΅Π½Π΄Π°ΡΠ½ΡΡ Π½Π΅Π΄Π΅Π»Ρ Ρ ΠΏΠΎΠ½Π΅Π΄Π΅Π»Ρ msgid "Default is Sunday" msgstr "ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ - Π²ΠΎΡΠΊΡΠ΅ΡΠ΅Π½ΡΠ΅" -#: ../../include/features.php:96 ../../Zotlabs/Lib/Apps.php:318 +#: ../../include/features.php:96 ../../Zotlabs/Lib/Apps.php:339 msgid "Channel Home" msgstr "ΠΠ»Π°Π²Π½Π°Ρ ΠΊΠ°Π½Π°Π»Π°" @@ -1396,8 +1372,8 @@ msgstr "ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΆΠΈΠΌ Π±Π»ΠΎΠ³Π° / ΡΠΏΠΈΡΠΊΠ°" msgid "Comments will be displayed separately" msgstr "ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π±ΡΠ΄ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ" -#: ../../include/features.php:125 ../../include/text.php:980 -#: ../../Zotlabs/Module/Connections.php:334 ../../Zotlabs/Lib/Apps.php:308 +#: ../../include/features.php:125 ../../include/text.php:991 +#: ../../Zotlabs/Module/Connections.php:334 ../../Zotlabs/Lib/Apps.php:329 msgid "Connections" msgstr "ΠΠΎΠ½ΡΠ°ΠΊΡΡ" @@ -1445,7 +1421,7 @@ msgstr "ΠΠΎΠΌΠ΅ΡΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ" msgid "Ability to mark special posts with a star indicator" msgstr "ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ-Π·Π²ΡΠ·Π΄ΠΎΡΠΊΠΎΠΉ" -#: ../../include/features.php:176 ../../Zotlabs/Lib/Apps.php:322 +#: ../../include/features.php:176 ../../Zotlabs/Lib/Apps.php:343 msgid "Directory" msgstr "ΠΠ°ΡΠ°Π»ΠΎΠ³" @@ -1540,7 +1516,7 @@ msgid "" "prevent accidental loss of compositions" msgstr "ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ ΡΠ΅ΡΠ½ΠΎΠ²ΠΈΠΊΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΠ° Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΈΡ
ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠΉ ΡΡΡΠ°ΡΡ" -#: ../../include/features.php:269 ../../Zotlabs/Lib/Apps.php:321 +#: ../../include/features.php:269 ../../Zotlabs/Lib/Apps.php:342 msgid "Events" msgstr "Π‘ΠΎΠ±ΡΡΠΈΡ" @@ -1632,7 +1608,7 @@ msgstr "ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΡ
ΠΎΠ΄ΡΡΠ²Π° / ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ" msgid "Filter stream activity by depth of relationships" msgstr "Π€ΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠΎΠΊΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΏΠΎ Π³Π»ΡΠ±ΠΈΠ½Π΅ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ" -#: ../../include/features.php:373 ../../Zotlabs/Lib/Apps.php:310 +#: ../../include/features.php:373 ../../Zotlabs/Lib/Apps.php:331 msgid "Suggest Channels" msgstr "ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ" @@ -1640,8 +1616,8 @@ msgstr "ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ" msgid "Show friend and connection suggestions" msgstr "ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Π΄ΡΡΠ·ΡΡ" -#: ../../include/features.php:391 ../../include/nav.php:414 -#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:320 +#: ../../include/features.php:391 ../../include/nav.php:444 +#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:341 msgid "Photos" msgstr "Π€ΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ" @@ -1653,7 +1629,7 @@ msgstr "ΠΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ" msgid "If location data is available on uploaded photos, link this to a map." msgstr "ΠΡΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π½Π° Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ
ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΉ, ΡΠ²ΡΠ·Π°ΡΡ ΠΈΡ
Ρ ΠΊΠ°ΡΡΠΎΠΉ." -#: ../../include/features.php:405 ../../Zotlabs/Lib/Apps.php:338 +#: ../../include/features.php:405 ../../Zotlabs/Lib/Apps.php:359 msgid "Profiles" msgstr "Π Π΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠΈΠ»Ρ" @@ -1697,465 +1673,466 @@ msgstr "ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ" msgid "next" msgstr "ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ" -#: ../../include/text.php:546 +#: ../../include/text.php:553 msgid "older" msgstr "ΡΡΠ°ΡΡΠ΅" -#: ../../include/text.php:548 +#: ../../include/text.php:555 msgid "newer" msgstr "Π½ΠΎΠ²Π΅Π΅" -#: ../../include/text.php:968 +#: ../../include/text.php:979 msgid "No connections" msgstr "ΠΠ΅Ρ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ²" -#: ../../include/text.php:1000 +#: ../../include/text.php:1011 #, php-format msgid "View all %s connections" msgstr "ΠΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΡΠ΅ %s ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ²" -#: ../../include/text.php:1056 +#: ../../include/text.php:1073 #, php-format msgid "Network: %s" msgstr "Π‘Π΅ΡΡ: %s" -#: ../../include/text.php:1067 ../../include/text.php:1079 +#: ../../include/text.php:1084 ../../include/text.php:1096 #: ../../include/acl_selectors.php:118 ../../include/nav.php:183 #: ../../Zotlabs/Module/Search.php:44 ../../Zotlabs/Module/Connections.php:338 #: ../../Zotlabs/Widget/Sitesearch.php:31 -#: ../../Zotlabs/Widget/Activity_filter.php:151 ../../Zotlabs/Lib/Apps.php:328 +#: ../../Zotlabs/Widget/Activity_filter.php:151 ../../Zotlabs/Lib/Apps.php:349 msgid "Search" msgstr "ΠΠΎΠΈΡΠΊ" -#: ../../include/text.php:1068 ../../include/text.php:1080 +#: ../../include/text.php:1085 ../../include/text.php:1097 #: ../../Zotlabs/Module/Admin/Profs.php:94 #: ../../Zotlabs/Module/Admin/Profs.php:114 ../../Zotlabs/Module/Rbmark.php:32 #: ../../Zotlabs/Module/Rbmark.php:104 ../../Zotlabs/Module/Filer.php:53 #: ../../Zotlabs/Widget/Notes.php:23 +#: ../../extend/addon/hzaddons/queueworker/Mod_Queueworker.php:102 msgid "Save" msgstr "ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΡΡ" -#: ../../include/text.php:1155 ../../include/text.php:1159 +#: ../../include/text.php:1176 ../../include/text.php:1180 msgid "poke" msgstr "Π’ΠΊΠ½ΡΡΡ" -#: ../../include/text.php:1155 ../../include/text.php:1159 +#: ../../include/text.php:1176 ../../include/text.php:1180 #: ../../include/conversation.php:251 msgid "poked" msgstr "ΡΠΊΠ½ΡΡ" -#: ../../include/text.php:1160 +#: ../../include/text.php:1181 msgid "ping" msgstr "ΠΠΈΠ½Π³Π°Π½ΡΡΡ" -#: ../../include/text.php:1160 +#: ../../include/text.php:1181 msgid "pinged" msgstr "ΠΡΠΏΠΈΠ½Π³ΠΎΠ²Π°Π½" -#: ../../include/text.php:1161 +#: ../../include/text.php:1182 msgid "prod" msgstr "ΠΠΎΠ΄ΡΠΎΠ»ΠΊΠ½ΡΡΡ" -#: ../../include/text.php:1161 +#: ../../include/text.php:1182 msgid "prodded" msgstr "ΠΠΎΠ΄ΡΠΎΠ»ΠΊΠ½ΡΡ" -#: ../../include/text.php:1162 +#: ../../include/text.php:1183 msgid "slap" msgstr "Π¨Π»ΡΠΏΠ½ΡΡΡ" -#: ../../include/text.php:1162 +#: ../../include/text.php:1183 msgid "slapped" msgstr "Π¨Π»ΡΠΏΠ½ΡΡ" -#: ../../include/text.php:1163 +#: ../../include/text.php:1184 msgid "finger" msgstr "Π£ΠΊΠ°Π·Π°ΡΡ" -#: ../../include/text.php:1163 +#: ../../include/text.php:1184 msgid "fingered" msgstr "Π£ΠΊΠ°Π·Π°Π½" -#: ../../include/text.php:1164 +#: ../../include/text.php:1185 msgid "rebuff" msgstr "ΠΠ°ΡΡ ΠΎΡΠΏΠΎΡ" -#: ../../include/text.php:1164 +#: ../../include/text.php:1185 msgid "rebuffed" msgstr "ΠΠ°Π½ ΠΎΡΠΏΠΎΡ" -#: ../../include/text.php:1187 +#: ../../include/text.php:1208 msgid "happy" msgstr "ΡΡΠ°ΡΡΠ»ΠΈΠ²ΡΠΉ" -#: ../../include/text.php:1188 +#: ../../include/text.php:1209 msgid "sad" msgstr "Π³ΡΡΡΡΠ½ΡΠΉ" -#: ../../include/text.php:1189 +#: ../../include/text.php:1210 msgid "mellow" msgstr "ΡΠΏΠΎΠΊΠΎΠΉΠ½ΡΠΉ" -#: ../../include/text.php:1190 +#: ../../include/text.php:1211 msgid "tired" msgstr "ΡΡΡΠ°Π»ΡΠΉ" -#: ../../include/text.php:1191 +#: ../../include/text.php:1212 msgid "perky" msgstr "Π²Π΅ΡΡΠ»ΡΠΉ" -#: ../../include/text.php:1192 +#: ../../include/text.php:1213 msgid "angry" msgstr "ΡΠ΅ΡΠ΄ΠΈΡΡΠΉ" -#: ../../include/text.php:1193 +#: ../../include/text.php:1214 msgid "stupefied" msgstr "ΠΎΡΡΠΏΠ΅Π²ΡΠΈΠΉ" -#: ../../include/text.php:1194 +#: ../../include/text.php:1215 msgid "puzzled" msgstr "Π½Π΅Π΄ΠΎΡΠΌΠ΅Π²Π°ΡΡΠΈΠΉ" -#: ../../include/text.php:1195 +#: ../../include/text.php:1216 msgid "interested" msgstr "Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Π½ΡΠΉ" -#: ../../include/text.php:1196 +#: ../../include/text.php:1217 msgid "bitter" msgstr "Π΅Π΄ΠΊΠΈΠΉ" -#: ../../include/text.php:1197 +#: ../../include/text.php:1218 msgid "cheerful" msgstr "Π±ΠΎΠ΄ΡΡΠΉ" -#: ../../include/text.php:1198 +#: ../../include/text.php:1219 msgid "alive" msgstr "ΡΠ½Π΅ΡΠ³ΠΈΡΠ½ΡΠΉ" -#: ../../include/text.php:1199 +#: ../../include/text.php:1220 msgid "annoyed" msgstr "ΡΠ°Π·Π΄ΡΠ°ΠΆΡΠ½Π½ΡΠΉ" -#: ../../include/text.php:1200 +#: ../../include/text.php:1221 msgid "anxious" msgstr "ΠΎΠ±Π΅ΡΠΏΠΎΠΊΠΎΠ΅Π½Π½ΡΠΉ" -#: ../../include/text.php:1201 +#: ../../include/text.php:1222 msgid "cranky" msgstr "ΠΊΠ°ΠΏΡΠΈΠ·Π½ΡΠΉ" -#: ../../include/text.php:1202 +#: ../../include/text.php:1223 msgid "disturbed" msgstr "Π²ΡΡΡΠ΅Π²ΠΎΠΆΠ΅Π½Π½ΡΠΉ" -#: ../../include/text.php:1203 +#: ../../include/text.php:1224 msgid "frustrated" msgstr "ΡΠ°Π·ΠΎΡΠ°ΡΠΎΠ²Π°Π½Π½ΡΠΉ" -#: ../../include/text.php:1204 +#: ../../include/text.php:1225 msgid "depressed" msgstr "ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½Π½ΡΠΉ" -#: ../../include/text.php:1205 +#: ../../include/text.php:1226 msgid "motivated" msgstr "ΠΌΠΎΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ" -#: ../../include/text.php:1206 +#: ../../include/text.php:1227 msgid "relaxed" msgstr "ΡΠ°ΡΡΠ»Π°Π±Π»Π΅Π½Π½ΡΠΉ" -#: ../../include/text.php:1207 +#: ../../include/text.php:1228 msgid "surprised" msgstr "ΡΠ΄ΠΈΠ²Π»Π΅Π½Π½ΡΠΉ" -#: ../../include/text.php:1386 ../../include/js_strings.php:95 +#: ../../include/text.php:1416 ../../include/js_strings.php:95 msgid "Monday" msgstr "ΠΠΎΠ½Π΅Π΄Π΅Π»ΡΠ½ΠΈΠΊ" -#: ../../include/text.php:1386 ../../include/js_strings.php:96 +#: ../../include/text.php:1416 ../../include/js_strings.php:96 msgid "Tuesday" msgstr "ΠΡΠΎΡΠ½ΠΈΠΊ" -#: ../../include/text.php:1386 ../../include/js_strings.php:97 +#: ../../include/text.php:1416 ../../include/js_strings.php:97 msgid "Wednesday" msgstr "Π‘ΡΠ΅Π΄Π°" -#: ../../include/text.php:1386 ../../include/js_strings.php:98 +#: ../../include/text.php:1416 ../../include/js_strings.php:98 msgid "Thursday" msgstr "Π§Π΅ΡΠ²Π΅ΡΠ³" -#: ../../include/text.php:1386 ../../include/js_strings.php:99 +#: ../../include/text.php:1416 ../../include/js_strings.php:99 msgid "Friday" msgstr "ΠΡΡΠ½ΠΈΡΠ°" -#: ../../include/text.php:1386 ../../include/js_strings.php:100 +#: ../../include/text.php:1416 ../../include/js_strings.php:100 msgid "Saturday" msgstr "Π‘ΡΠ±Π±ΠΎΡΠ°" -#: ../../include/text.php:1386 ../../include/js_strings.php:94 +#: ../../include/text.php:1416 ../../include/js_strings.php:94 msgid "Sunday" msgstr "ΠΠΎΡΠΊΡΠ΅ΡΠ΅Π½ΡΠ΅" -#: ../../include/text.php:1390 ../../include/js_strings.php:70 +#: ../../include/text.php:1420 ../../include/js_strings.php:70 msgid "January" msgstr "Π―Π½Π²Π°ΡΡ" -#: ../../include/text.php:1390 ../../include/js_strings.php:71 +#: ../../include/text.php:1420 ../../include/js_strings.php:71 msgid "February" msgstr "Π€Π΅Π²ΡΠ°Π»Ρ" -#: ../../include/text.php:1390 ../../include/js_strings.php:72 +#: ../../include/text.php:1420 ../../include/js_strings.php:72 msgid "March" msgstr "ΠΠ°ΡΡ" -#: ../../include/text.php:1390 ../../include/js_strings.php:73 +#: ../../include/text.php:1420 ../../include/js_strings.php:73 msgid "April" msgstr "ΠΠΏΡΠ΅Π»Ρ" -#: ../../include/text.php:1390 +#: ../../include/text.php:1420 msgid "May" msgstr "ΠΠ°ΠΉ" -#: ../../include/text.php:1390 ../../include/js_strings.php:75 +#: ../../include/text.php:1420 ../../include/js_strings.php:75 msgid "June" msgstr "ΠΡΠ½Ρ" -#: ../../include/text.php:1390 ../../include/js_strings.php:76 +#: ../../include/text.php:1420 ../../include/js_strings.php:76 msgid "July" msgstr "ΠΡΠ»Ρ" -#: ../../include/text.php:1390 ../../include/js_strings.php:77 +#: ../../include/text.php:1420 ../../include/js_strings.php:77 msgid "August" msgstr "ΠΠ²Π³ΡΡΡ" -#: ../../include/text.php:1390 ../../include/js_strings.php:78 +#: ../../include/text.php:1420 ../../include/js_strings.php:78 msgid "September" msgstr "Π‘Π΅Π½ΡΡΠ±ΡΡ" -#: ../../include/text.php:1390 ../../include/js_strings.php:79 +#: ../../include/text.php:1420 ../../include/js_strings.php:79 msgid "October" msgstr "ΠΠΊΡΡΠ±ΡΡ" -#: ../../include/text.php:1390 ../../include/js_strings.php:80 +#: ../../include/text.php:1420 ../../include/js_strings.php:80 msgid "November" msgstr "ΠΠΎΡΠ±ΡΡ" -#: ../../include/text.php:1390 ../../include/js_strings.php:81 +#: ../../include/text.php:1420 ../../include/js_strings.php:81 msgid "December" msgstr "ΠΠ΅ΠΊΠ°Π±ΡΡ" -#: ../../include/text.php:1464 +#: ../../include/text.php:1494 msgid "Unknown Attachment" msgstr "ΠΠ΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ΅ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅" -#: ../../include/text.php:1466 ../../Zotlabs/Storage/Browser.php:287 +#: ../../include/text.php:1496 ../../Zotlabs/Storage/Browser.php:287 #: ../../Zotlabs/Module/Sharedwithme.php:106 msgid "Size" msgstr "Π Π°Π·ΠΌΠ΅Ρ" -#: ../../include/text.php:1466 ../../include/feedutils.php:860 +#: ../../include/text.php:1496 ../../include/feedutils.php:858 msgid "unknown" msgstr "Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ" -#: ../../include/text.php:1502 +#: ../../include/text.php:1532 msgid "remove category" msgstr "ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ" -#: ../../include/text.php:1576 +#: ../../include/text.php:1606 msgid "remove from file" msgstr "ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π°" -#: ../../include/text.php:1859 ../../Zotlabs/Module/Events.php:663 +#: ../../include/text.php:1913 ../../Zotlabs/Module/Events.php:663 #: ../../Zotlabs/Module/Cal.php:314 msgid "Link to Source" msgstr "Π‘ΡΡΠ»ΠΊΠ° Π½Π° ΠΈΡΡΠΎΡΠ½ΠΈΠΊ" -#: ../../include/text.php:1881 ../../include/language.php:423 +#: ../../include/text.php:1935 ../../include/language.php:423 msgid "default" msgstr "ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ" -#: ../../include/text.php:1889 +#: ../../include/text.php:1943 msgid "Page layout" msgstr "Π¨Π°Π±Π»ΠΎΠ½ ΡΡΡΠ°Π½ΠΈΡΡ" -#: ../../include/text.php:1889 +#: ../../include/text.php:1943 msgid "You can create your own with the layouts tool" msgstr "ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ²" -#: ../../include/text.php:1899 ../../Zotlabs/Module/Wiki.php:217 +#: ../../include/text.php:1953 ../../Zotlabs/Module/Wiki.php:217 #: ../../Zotlabs/Module/Wiki.php:371 ../../Zotlabs/Widget/Wiki_pages.php:38 #: ../../Zotlabs/Widget/Wiki_pages.php:95 msgid "BBcode" msgstr "" -#: ../../include/text.php:1900 +#: ../../include/text.php:1954 msgid "HTML" msgstr "" -#: ../../include/text.php:1901 ../../Zotlabs/Module/Wiki.php:217 +#: ../../include/text.php:1955 ../../Zotlabs/Module/Wiki.php:217 #: ../../Zotlabs/Module/Wiki.php:371 ../../Zotlabs/Widget/Wiki_pages.php:38 #: ../../Zotlabs/Widget/Wiki_pages.php:95 #: ../../extend/addon/hzaddons/mdpost/mdpost.php:41 msgid "Markdown" msgstr "Π Π°Π·ΠΌΠ΅ΡΠΊΠ° Markdown" -#: ../../include/text.php:1902 ../../Zotlabs/Module/Wiki.php:217 +#: ../../include/text.php:1956 ../../Zotlabs/Module/Wiki.php:217 #: ../../Zotlabs/Widget/Wiki_pages.php:38 #: ../../Zotlabs/Widget/Wiki_pages.php:95 msgid "Text" msgstr "Π’Π΅ΠΊΡΡ" -#: ../../include/text.php:1903 +#: ../../include/text.php:1957 msgid "Comanche Layout" msgstr "Π¨Π°Π±Π»ΠΎΠ½ Comanche" -#: ../../include/text.php:1908 +#: ../../include/text.php:1962 msgid "PHP" msgstr "" -#: ../../include/text.php:1917 +#: ../../include/text.php:1971 msgid "Page content type" msgstr "Π’ΠΈΠΏ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΡΡΠ°Π½ΠΈΡΡ" -#: ../../include/text.php:2037 ../../include/conversation.php:116 -#: ../../Zotlabs/Module/Tagger.php:69 ../../Zotlabs/Module/Like.php:387 -#: ../../Zotlabs/Module/Subthread.php:112 ../../Zotlabs/Lib/Activity.php:1570 +#: ../../include/text.php:2091 ../../include/conversation.php:116 +#: ../../Zotlabs/Module/Tagger.php:69 ../../Zotlabs/Module/Like.php:392 +#: ../../Zotlabs/Module/Subthread.php:112 ../../Zotlabs/Lib/Activity.php:1959 #: ../../extend/addon/hzaddons/redphotos/redphotohelper.php:71 -#: ../../extend/addon/hzaddons/pubcrawl/as.php:1494 -#: ../../extend/addon/hzaddons/diaspora/Receiver.php:1541 +#: ../../extend/addon/hzaddons/pubcrawl/as.php:1504 +#: ../../extend/addon/hzaddons/diaspora/Receiver.php:1551 msgid "photo" msgstr "ΡΠΎΡΠΎ" -#: ../../include/text.php:2040 ../../include/conversation.php:119 -#: ../../include/event.php:1156 ../../Zotlabs/Module/Tagger.php:73 -#: ../../Zotlabs/Module/Events.php:260 ../../Zotlabs/Module/Like.php:389 +#: ../../include/text.php:2094 ../../include/conversation.php:119 +#: ../../include/event.php:1165 ../../Zotlabs/Module/Tagger.php:73 +#: ../../Zotlabs/Module/Events.php:260 ../../Zotlabs/Module/Like.php:394 msgid "event" msgstr "ΡΠΎΠ±ΡΡΠΈΠ΅" -#: ../../include/text.php:2043 ../../include/conversation.php:144 -#: ../../Zotlabs/Module/Like.php:387 ../../Zotlabs/Module/Subthread.php:112 -#: ../../Zotlabs/Lib/Activity.php:1570 -#: ../../extend/addon/hzaddons/pubcrawl/as.php:1494 -#: ../../extend/addon/hzaddons/diaspora/Receiver.php:1541 +#: ../../include/text.php:2097 ../../include/conversation.php:144 +#: ../../Zotlabs/Module/Like.php:392 ../../Zotlabs/Module/Subthread.php:112 +#: ../../Zotlabs/Lib/Activity.php:1959 +#: ../../extend/addon/hzaddons/pubcrawl/as.php:1504 +#: ../../extend/addon/hzaddons/diaspora/Receiver.php:1551 msgid "status" msgstr "ΡΡΠ°ΡΡΡ" -#: ../../include/text.php:2045 ../../include/conversation.php:146 +#: ../../include/text.php:2099 ../../include/conversation.php:146 #: ../../Zotlabs/Module/Tagger.php:79 msgid "comment" msgstr "ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ" -#: ../../include/text.php:2050 +#: ../../include/text.php:2104 msgid "activity" msgstr "Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ" -#: ../../include/text.php:2151 +#: ../../include/text.php:2205 msgid "a-z, 0-9, -, and _ only" msgstr "Π’ΠΎΠ»ΡΠΊΠΎ a-z, 0-9, -, ΠΈ _" -#: ../../include/text.php:2471 +#: ../../include/text.php:2531 msgid "Design Tools" msgstr "ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄ΠΈΠ·Π°ΠΉΠ½Π°" -#: ../../include/text.php:2474 ../../Zotlabs/Module/Blocks.php:154 +#: ../../include/text.php:2534 ../../Zotlabs/Module/Blocks.php:154 msgid "Blocks" msgstr "ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ" -#: ../../include/text.php:2475 ../../Zotlabs/Module/Menu.php:170 +#: ../../include/text.php:2535 ../../Zotlabs/Module/Menu.php:170 msgid "Menus" msgstr "ΠΠ΅Π½Ρ" -#: ../../include/text.php:2476 ../../Zotlabs/Module/Layouts.php:184 +#: ../../include/text.php:2536 ../../Zotlabs/Module/Layouts.php:184 msgid "Layouts" msgstr "Π¨Π°Π±Π»ΠΎΠ½Ρ" -#: ../../include/text.php:2477 +#: ../../include/text.php:2537 msgid "Pages" msgstr "Π‘ΡΡΠ°Π½ΠΈΡΡ" -#: ../../include/text.php:2498 ../../Zotlabs/Module/Cal.php:343 +#: ../../include/text.php:2558 ../../Zotlabs/Module/Cal.php:343 msgid "Import" msgstr "ΠΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ" -#: ../../include/text.php:2499 +#: ../../include/text.php:2559 msgid "Import website..." msgstr "ΠΠΌΠΏΠΎΡΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°..." -#: ../../include/text.php:2500 +#: ../../include/text.php:2560 msgid "Select folder to import" msgstr "ΠΡΠ±ΡΠ°ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ°" -#: ../../include/text.php:2501 +#: ../../include/text.php:2561 msgid "Import from a zipped folder:" msgstr "ΠΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π² zip-Π°ΡΡ
ΠΈΠ²Π΅:" -#: ../../include/text.php:2502 +#: ../../include/text.php:2562 msgid "Import from cloud files:" msgstr "ΠΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ· ΡΠ΅ΡΠ΅Π²ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ²:" -#: ../../include/text.php:2503 +#: ../../include/text.php:2563 msgid "/cloud/channel/path/to/folder" msgstr "" -#: ../../include/text.php:2504 +#: ../../include/text.php:2564 msgid "Enter path to website files" msgstr "ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°" -#: ../../include/text.php:2505 +#: ../../include/text.php:2565 msgid "Select folder" msgstr "ΠΡΠ±ΡΠ°ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³" -#: ../../include/text.php:2506 +#: ../../include/text.php:2566 msgid "Export website..." msgstr "ΠΠΊΡΠΏΠΎΡΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°..." -#: ../../include/text.php:2507 +#: ../../include/text.php:2567 msgid "Export to a zip file" msgstr "ΠΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² ZIP ΡΠ°ΠΉΠ»." -#: ../../include/text.php:2508 +#: ../../include/text.php:2568 msgid "website.zip" msgstr "" -#: ../../include/text.php:2509 +#: ../../include/text.php:2569 msgid "Enter a name for the zip file." msgstr "ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΈΠΌΡ Π΄Π»Ρ ZIP ΡΠ°ΠΉΠ»Π°." -#: ../../include/text.php:2510 +#: ../../include/text.php:2570 msgid "Export to cloud files" msgstr "ΠΡΠΊΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ:" -#: ../../include/text.php:2511 +#: ../../include/text.php:2571 msgid "/path/to/export/folder" msgstr "" -#: ../../include/text.php:2512 +#: ../../include/text.php:2572 msgid "Enter a path to a cloud files destination." msgstr "ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΏΡΡΡ ΠΊ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π²ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ²." -#: ../../include/text.php:2513 +#: ../../include/text.php:2573 msgid "Specify folder" msgstr "Π£ΠΊΠ°Π·Π°ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³" -#: ../../include/text.php:2833 ../../Zotlabs/Storage/Browser.php:131 +#: ../../include/text.php:2941 ../../Zotlabs/Storage/Browser.php:131 msgid "Collection" msgstr "ΠΠΎΠ»Π»Π΅ΠΊΡΠΈΡ" -#: ../../include/import.php:25 +#: ../../include/import.php:26 msgid "Unable to import a removed channel." msgstr "ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΉ ΠΊΠ°Π½Π°Π»." -#: ../../include/import.php:51 +#: ../../include/import.php:52 msgid "" "Cannot create a duplicate channel identifier on this system. Import failed." msgstr "ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΡΠ±Π»ΠΈΡΡΡΡΠΈΠΉΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠ°Π½Π°Π»Π°. ΠΠΌΠΏΠΎΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½." -#: ../../include/import.php:72 +#: ../../include/import.php:73 #: ../../extend/addon/hzaddons/diaspora/import_diaspora.php:43 msgid "Unable to create a unique channel address. Import failed." msgstr "ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ ΠΊΠ°Π½Π°Π»Π°. ΠΠΌΠΏΠΎΡΡ Π½Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½." -#: ../../include/import.php:116 +#: ../../include/import.php:117 msgid "Cloned channel not found. Import failed." msgstr "ΠΠ»ΠΎΠ½ ΠΊΠ°Π½Π°Π»Π° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½. ΠΠΌΠΏΠΎΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½." @@ -2175,9 +2152,9 @@ msgid "edit" msgstr "ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ" #: ../../include/group.php:320 ../../include/nav.php:95 -#: ../../Zotlabs/Module/Group.php:132 ../../Zotlabs/Module/Group.php:143 +#: ../../Zotlabs/Module/Group.php:141 ../../Zotlabs/Module/Group.php:153 #: ../../Zotlabs/Widget/Activity_filter.php:41 ../../Zotlabs/Lib/Group.php:324 -#: ../../Zotlabs/Lib/Apps.php:339 +#: ../../Zotlabs/Lib/Apps.php:360 msgid "Privacy Groups" msgstr "ΠΡΡΠΏΠΏΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ" @@ -2229,7 +2206,7 @@ msgstr "ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π°ΠΊΠΊΠ°ΡΠ½ #: ../../include/account.php:314 #, php-format msgid "Registration confirmation for %s" -msgstr "ΠΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ %s" +msgstr "ΠΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π½Π° %s" #: ../../include/account.php:385 #, php-format @@ -2270,16 +2247,16 @@ msgstr "ΠΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·-Π·Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π msgid "Invalid data packet" msgstr "ΠΠ΅Π²Π΅ΡΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ Π΄Π°Π½Π½ΡΡ
" -#: ../../include/zot.php:802 ../../Zotlabs/Lib/Libzot.php:667 +#: ../../include/zot.php:802 ../../Zotlabs/Lib/Libzot.php:652 msgid "Unable to verify channel signature" msgstr "ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡ ΠΊΠ°Π½Π°Π»Π°" -#: ../../include/zot.php:2575 ../../Zotlabs/Lib/Libsync.php:733 +#: ../../include/zot.php:2591 ../../Zotlabs/Lib/Libsync.php:733 #, php-format msgid "Unable to verify site signature for %s" msgstr "ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡ ΡΠ°ΠΉΡΠ° %s" -#: ../../include/zot.php:4272 +#: ../../include/zot.php:4288 msgid "invalid target signature" msgstr "Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠ°Ρ ΡΠ΅Π»Π΅Π²Π°Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΡ" @@ -2324,8 +2301,8 @@ msgid "Help:" msgstr "ΠΠΎΠΌΠΎΡΡ:" #: ../../include/help.php:117 ../../include/help.php:125 -#: ../../include/nav.php:168 ../../include/nav.php:289 -#: ../../Zotlabs/Module/Layouts.php:186 ../../Zotlabs/Lib/Apps.php:323 +#: ../../include/nav.php:168 ../../include/nav.php:319 +#: ../../Zotlabs/Module/Layouts.php:186 ../../Zotlabs/Lib/Apps.php:344 msgid "Help" msgstr "ΠΠΎΠΌΠΎΡΡ" @@ -2340,17 +2317,17 @@ msgstr "ΠΠ΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ" msgid "Page not found." msgstr "Π‘ΡΡΠ°Π½ΠΈΡΠ° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°." -#: ../../include/bbcode.php:200 ../../include/bbcode.php:1201 -#: ../../include/bbcode.php:1204 ../../include/bbcode.php:1209 -#: ../../include/bbcode.php:1212 ../../include/bbcode.php:1215 -#: ../../include/bbcode.php:1218 ../../include/bbcode.php:1223 -#: ../../include/bbcode.php:1226 ../../include/bbcode.php:1231 -#: ../../include/bbcode.php:1234 ../../include/bbcode.php:1237 -#: ../../include/bbcode.php:1240 +#: ../../include/bbcode.php:200 ../../include/bbcode.php:1190 +#: ../../include/bbcode.php:1193 ../../include/bbcode.php:1198 +#: ../../include/bbcode.php:1201 ../../include/bbcode.php:1204 +#: ../../include/bbcode.php:1207 ../../include/bbcode.php:1212 +#: ../../include/bbcode.php:1215 ../../include/bbcode.php:1220 +#: ../../include/bbcode.php:1223 ../../include/bbcode.php:1226 +#: ../../include/bbcode.php:1229 msgid "Image/photo" msgstr "ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ / ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΡ" -#: ../../include/bbcode.php:239 ../../include/bbcode.php:1251 +#: ../../include/bbcode.php:239 ../../include/bbcode.php:1240 msgid "Encrypted content" msgstr "ΠΠ°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅" @@ -2382,54 +2359,54 @@ msgstr "Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ" msgid "menu" msgstr "ΠΌΠ΅Π½Ρ" -#: ../../include/bbcode.php:350 +#: ../../include/bbcode.php:339 msgid "card" msgstr "ΠΊΠ°ΡΡΠΎΡΠΊΠ°" -#: ../../include/bbcode.php:352 +#: ../../include/bbcode.php:341 msgid "article" msgstr "ΡΡΠ°ΡΡΡ" -#: ../../include/bbcode.php:435 ../../include/bbcode.php:443 +#: ../../include/bbcode.php:424 ../../include/bbcode.php:432 msgid "Click to open/close" msgstr "ΠΠ°ΠΆΠΌΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΡ/Π·Π°ΠΊΡΡΡΡ" -#: ../../include/bbcode.php:443 +#: ../../include/bbcode.php:432 msgid "spoiler" msgstr "ΡΠΏΠΎΠΉΠ»Π΅Ρ" -#: ../../include/bbcode.php:456 +#: ../../include/bbcode.php:445 msgid "View article" msgstr "ΠΡΠΎΡΠΌΠΎΡΡ ΡΡΠ°ΡΡΠΈ" -#: ../../include/bbcode.php:456 +#: ../../include/bbcode.php:445 msgid "View summary" msgstr "ΠΡΠΎΡΠΌΠΎΡΡ ΡΠ΅Π·ΡΠΌΠ΅" -#: ../../include/bbcode.php:746 ../../include/bbcode.php:916 +#: ../../include/bbcode.php:735 ../../include/bbcode.php:905 #: ../../Zotlabs/Lib/NativeWikiPage.php:603 msgid "Different viewers will see this text differently" msgstr "Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ Π·ΡΠΈΡΠ΅Π»ΠΈ ΡΠ²ΠΈΠ΄ΡΡ ΡΡΠΎΡ ΡΠ΅ΠΊΡΡ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ" -#: ../../include/bbcode.php:1189 +#: ../../include/bbcode.php:1178 msgid "$1 wrote:" msgstr "$1 ΠΏΠΈΡΠ°Π»:" -#: ../../include/conversation.php:122 ../../Zotlabs/Module/Like.php:121 +#: ../../include/conversation.php:122 ../../Zotlabs/Module/Like.php:123 msgid "channel" msgstr "ΠΊΠ°Π½Π°Π»" -#: ../../include/conversation.php:160 ../../Zotlabs/Module/Like.php:441 -#: ../../Zotlabs/Lib/Activity.php:1605 -#: ../../extend/addon/hzaddons/pubcrawl/as.php:1529 -#: ../../extend/addon/hzaddons/diaspora/Receiver.php:1570 +#: ../../include/conversation.php:160 ../../Zotlabs/Module/Like.php:447 +#: ../../Zotlabs/Lib/Activity.php:1994 +#: ../../extend/addon/hzaddons/pubcrawl/as.php:1540 +#: ../../extend/addon/hzaddons/diaspora/Receiver.php:1491 #, php-format msgid "%1$s likes %2$s's %3$s" msgstr "%1$s Π½ΡΠ°Π²ΠΈΡΡΡ %3$s %2$s" -#: ../../include/conversation.php:163 ../../Zotlabs/Module/Like.php:443 -#: ../../Zotlabs/Lib/Activity.php:1607 -#: ../../extend/addon/hzaddons/pubcrawl/as.php:1531 +#: ../../include/conversation.php:163 ../../Zotlabs/Module/Like.php:449 +#: ../../Zotlabs/Lib/Activity.php:1996 +#: ../../extend/addon/hzaddons/pubcrawl/as.php:1542 #, php-format msgid "%1$s doesn't like %2$s's %3$s" msgstr "%1$s Π½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ %2$s %3$s" @@ -2460,75 +2437,75 @@ msgctxt "mood" msgid "%1$s is %2$s" msgstr "%1$s Π² %2$s" -#: ../../include/conversation.php:483 ../../Zotlabs/Lib/ThreadItem.php:446 +#: ../../include/conversation.php:483 ../../Zotlabs/Lib/ThreadItem.php:464 msgid "This is an unsaved preview" msgstr "ΠΡΠΎ Π½Π΅ΡΠΎΡ
ΡΠ°Π½ΡΠ½Π½ΡΠΉ ΠΏΡΠΎΡΠΌΠΎΡΡ" -#: ../../include/conversation.php:619 ../../Zotlabs/Module/Photos.php:1152 +#: ../../include/conversation.php:619 ../../Zotlabs/Module/Photos.php:1154 msgctxt "title" msgid "Likes" msgstr "ΠΡΠ°Π²ΠΈΡΡΡ" -#: ../../include/conversation.php:619 ../../Zotlabs/Module/Photos.php:1152 +#: ../../include/conversation.php:619 ../../Zotlabs/Module/Photos.php:1154 msgctxt "title" msgid "Dislikes" msgstr "ΠΠ΅ Π½ΡΠ°Π²ΠΈΡΡΡ" -#: ../../include/conversation.php:620 ../../Zotlabs/Module/Photos.php:1153 +#: ../../include/conversation.php:620 ../../Zotlabs/Module/Photos.php:1155 msgctxt "title" msgid "Agree" msgstr "Π‘ΠΎΠ³Π»Π°ΡΠ΅Π½" -#: ../../include/conversation.php:620 ../../Zotlabs/Module/Photos.php:1153 +#: ../../include/conversation.php:620 ../../Zotlabs/Module/Photos.php:1155 msgctxt "title" msgid "Disagree" msgstr "ΠΠ΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½" -#: ../../include/conversation.php:620 ../../Zotlabs/Module/Photos.php:1153 +#: ../../include/conversation.php:620 ../../Zotlabs/Module/Photos.php:1155 msgctxt "title" msgid "Abstain" msgstr "ΠΠΎΠ·Π΄Π΅ΡΠΆΠ°Π»ΡΡ" -#: ../../include/conversation.php:621 ../../Zotlabs/Module/Photos.php:1154 +#: ../../include/conversation.php:621 ../../Zotlabs/Module/Photos.php:1156 msgctxt "title" msgid "Attending" msgstr "ΠΠΎΡΠ΅ΡΠ°Ρ" -#: ../../include/conversation.php:621 ../../Zotlabs/Module/Photos.php:1154 +#: ../../include/conversation.php:621 ../../Zotlabs/Module/Photos.php:1156 msgctxt "title" msgid "Not attending" msgstr "ΠΠ΅ ΠΏΠΎΡΠ΅ΡΠ°Ρ" -#: ../../include/conversation.php:621 ../../Zotlabs/Module/Photos.php:1154 +#: ../../include/conversation.php:621 ../../Zotlabs/Module/Photos.php:1156 msgctxt "title" msgid "Might attend" msgstr "ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠ΅ΡΡ" -#: ../../include/conversation.php:690 ../../Zotlabs/Lib/ThreadItem.php:163 +#: ../../include/conversation.php:690 ../../Zotlabs/Lib/ThreadItem.php:174 msgid "Select" msgstr "ΠΡΠ±ΡΠ°ΡΡ" #: ../../include/conversation.php:691 ../../include/conversation.php:736 #: ../../Zotlabs/Storage/Browser.php:291 ../../Zotlabs/Module/Cdav.php:942 #: ../../Zotlabs/Module/Cdav.php:1232 ../../Zotlabs/Module/Profiles.php:800 -#: ../../Zotlabs/Module/Photos.php:1218 ../../Zotlabs/Module/Oauth.php:174 +#: ../../Zotlabs/Module/Photos.php:1220 ../../Zotlabs/Module/Oauth.php:174 #: ../../Zotlabs/Module/Oauth2.php:195 ../../Zotlabs/Module/Editlayout.php:138 #: ../../Zotlabs/Module/Editblock.php:139 #: ../../Zotlabs/Module/Admin/Channels.php:149 #: ../../Zotlabs/Module/Admin/Profs.php:176 #: ../../Zotlabs/Module/Admin/Accounts.php:175 #: ../../Zotlabs/Module/Editwebpage.php:167 ../../Zotlabs/Module/Thing.php:267 -#: ../../Zotlabs/Module/Webpages.php:257 ../../Zotlabs/Module/Connedit.php:660 -#: ../../Zotlabs/Module/Connedit.php:929 +#: ../../Zotlabs/Module/Webpages.php:257 ../../Zotlabs/Module/Connedit.php:668 +#: ../../Zotlabs/Module/Connedit.php:940 #: ../../Zotlabs/Module/Connections.php:292 #: ../../Zotlabs/Module/Card_edit.php:129 #: ../../Zotlabs/Module/Article_edit.php:129 -#: ../../Zotlabs/Module/Blocks.php:162 ../../Zotlabs/Lib/Apps.php:535 -#: ../../Zotlabs/Lib/ThreadItem.php:153 +#: ../../Zotlabs/Module/Blocks.php:162 ../../Zotlabs/Lib/Apps.php:556 +#: ../../Zotlabs/Lib/ThreadItem.php:164 msgid "Delete" msgstr "Π£Π΄Π°Π»ΠΈΡΡ" -#: ../../include/conversation.php:695 ../../Zotlabs/Lib/ThreadItem.php:252 +#: ../../include/conversation.php:695 ../../Zotlabs/Lib/ThreadItem.php:263 msgid "Toggle Star Status" msgstr "ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡ ΡΡΠ°ΡΡΡ ΠΏΠΎΠΌΠ΅ΡΠΊΠΈ" @@ -2536,11 +2513,11 @@ msgstr "ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡ ΡΡΠ°ΡΡΡ ΠΏΠΎΠΌΠ΅ΡΠΊΠΈ" msgid "Private Message" msgstr "ΠΠΈΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅" -#: ../../include/conversation.php:707 ../../Zotlabs/Lib/ThreadItem.php:263 +#: ../../include/conversation.php:707 ../../Zotlabs/Lib/ThreadItem.php:274 msgid "Message signature validated" msgstr "ΠΠΎΠ΄ΠΏΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π°" -#: ../../include/conversation.php:708 ../../Zotlabs/Lib/ThreadItem.php:264 +#: ../../include/conversation.php:708 ../../Zotlabs/Lib/ThreadItem.php:275 msgid "Message signature incorrect" msgstr "ΠΠΎΠ΄ΠΏΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π΅Π²Π΅ΡΠ½Π°Ρ" @@ -2563,17 +2540,17 @@ msgstr "ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ:" msgid "Filed under:" msgstr "Π₯ΡΠ°Π½ΠΈΡΡ ΠΏΠΎΠ΄:" -#: ../../include/conversation.php:766 ../../Zotlabs/Lib/ThreadItem.php:381 +#: ../../include/conversation.php:766 ../../Zotlabs/Lib/ThreadItem.php:398 #, php-format msgid "from %s" msgstr "ΠΎΡ %s" -#: ../../include/conversation.php:769 ../../Zotlabs/Lib/ThreadItem.php:384 +#: ../../include/conversation.php:769 ../../Zotlabs/Lib/ThreadItem.php:401 #, php-format msgid "last edited: %s" msgstr "ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅: %s" -#: ../../include/conversation.php:770 ../../Zotlabs/Lib/ThreadItem.php:385 +#: ../../include/conversation.php:770 ../../Zotlabs/Lib/ThreadItem.php:402 #, php-format msgid "Expires: %s" msgstr "Π‘ΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ: %s" @@ -2583,7 +2560,7 @@ msgid "View in context" msgstr "ΠΠΎΠΊΠ°Π·Π°ΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅" #: ../../include/conversation.php:787 ../../Zotlabs/Module/Photos.php:1118 -#: ../../Zotlabs/Lib/ThreadItem.php:447 +#: ../../Zotlabs/Lib/ThreadItem.php:465 msgid "Please wait" msgstr "ΠΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡΠ΅ ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°" @@ -2595,7 +2572,7 @@ msgstr "ΡΠ΄Π°Π»ΠΈΡΡ" msgid "Loading..." msgstr "ΠΠ°Π³ΡΡΠ·ΠΊΠ°..." -#: ../../include/conversation.php:891 ../../Zotlabs/Lib/ThreadItem.php:276 +#: ../../include/conversation.php:891 ../../Zotlabs/Lib/ThreadItem.php:287 msgid "Conversation Tools" msgstr "ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΎΠ±ΡΠ΅Π½ΠΈΡ" @@ -2616,12 +2593,12 @@ msgid "Unfollow Thread" msgstr "ΠΡΠ΅ΠΊΡΠ°ΡΠΈΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΠ΅ΠΌΡ" #: ../../include/conversation.php:1038 ../../include/nav.php:106 -#: ../../Zotlabs/Module/Connedit.php:600 ../../Zotlabs/Lib/Apps.php:319 +#: ../../Zotlabs/Module/Connedit.php:608 ../../Zotlabs/Lib/Apps.php:340 #: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:57 msgid "View Profile" msgstr "ΠΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΡΠΎΡΠΈΠ»Ρ" -#: ../../include/conversation.php:1048 ../../Zotlabs/Module/Connedit.php:621 +#: ../../include/conversation.php:1048 ../../Zotlabs/Module/Connedit.php:629 msgid "Recent Activity" msgstr "ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ" @@ -2639,19 +2616,19 @@ msgid "Ratings" msgstr "ΠΡΠ΅Π½ΠΊΠΈ" #: ../../include/conversation.php:1098 ../../Zotlabs/Module/Poke.php:199 -#: ../../Zotlabs/Lib/Apps.php:326 +#: ../../Zotlabs/Lib/Apps.php:347 msgid "Poke" msgstr "Π’ΠΊΠ½ΡΡΡ" #: ../../include/conversation.php:1166 ../../Zotlabs/Storage/Browser.php:164 #: ../../Zotlabs/Module/Cdav.php:811 ../../Zotlabs/Module/Cdav.php:812 #: ../../Zotlabs/Module/Cdav.php:819 ../../Zotlabs/Module/Photos.php:832 -#: ../../Zotlabs/Module/Photos.php:1288 -#: ../../Zotlabs/Module/Embedphotos.php:146 +#: ../../Zotlabs/Module/Photos.php:1296 +#: ../../Zotlabs/Module/Embedphotos.php:154 #: ../../Zotlabs/Widget/Portfolio.php:95 ../../Zotlabs/Widget/Album.php:84 -#: ../../Zotlabs/Lib/Apps.php:994 ../../Zotlabs/Lib/Apps.php:1078 -#: ../../Zotlabs/Lib/Activity.php:858 -#: ../../extend/addon/hzaddons/pubcrawl/as.php:949 +#: ../../Zotlabs/Lib/Apps.php:1112 ../../Zotlabs/Lib/Apps.php:1196 +#: ../../Zotlabs/Lib/Activity.php:1011 +#: ../../extend/addon/hzaddons/pubcrawl/as.php:959 msgid "Unknown" msgstr "ΠΠ΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ" @@ -2789,14 +2766,14 @@ msgstr "ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ" msgid "Comments disabled" msgstr "ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Ρ" -#: ../../include/conversation.php:1356 ../../Zotlabs/Module/Photos.php:1138 +#: ../../include/conversation.php:1359 ../../Zotlabs/Module/Photos.php:1139 #: ../../Zotlabs/Module/Events.php:480 ../../Zotlabs/Module/Webpages.php:262 -#: ../../Zotlabs/Lib/ThreadItem.php:783 +#: ../../Zotlabs/Lib/ThreadItem.php:801 #: ../../extend/addon/hzaddons/hsse/hsse.php:153 msgid "Preview" msgstr "ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΌΠΎΡΡ" -#: ../../include/conversation.php:1389 ../../Zotlabs/Module/Photos.php:1117 +#: ../../include/conversation.php:1392 ../../Zotlabs/Module/Photos.php:1117 #: ../../Zotlabs/Module/Webpages.php:256 ../../Zotlabs/Module/Blocks.php:161 #: ../../Zotlabs/Module/Wiki.php:301 ../../Zotlabs/Module/Layouts.php:194 #: ../../Zotlabs/Widget/Cdav.php:124 @@ -2804,52 +2781,52 @@ msgstr "ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΌΠΎΡΡ" msgid "Share" msgstr "ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ" -#: ../../include/conversation.php:1398 +#: ../../include/conversation.php:1401 #: ../../extend/addon/hzaddons/hsse/hsse.php:195 msgid "Page link name" msgstr "ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ " -#: ../../include/conversation.php:1401 +#: ../../include/conversation.php:1404 #: ../../extend/addon/hzaddons/hsse/hsse.php:198 msgid "Post as" msgstr "ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ" -#: ../../include/conversation.php:1403 ../../Zotlabs/Lib/ThreadItem.php:774 +#: ../../include/conversation.php:1406 ../../Zotlabs/Lib/ThreadItem.php:792 #: ../../extend/addon/hzaddons/hsse/hsse.php:200 msgid "Bold" msgstr "ΠΠΈΡΠ½ΡΠΉ" -#: ../../include/conversation.php:1404 ../../Zotlabs/Lib/ThreadItem.php:775 +#: ../../include/conversation.php:1407 ../../Zotlabs/Lib/ThreadItem.php:793 #: ../../extend/addon/hzaddons/hsse/hsse.php:201 msgid "Italic" msgstr "ΠΡΡΡΠΈΠ²" -#: ../../include/conversation.php:1405 ../../Zotlabs/Lib/ThreadItem.php:776 +#: ../../include/conversation.php:1408 ../../Zotlabs/Lib/ThreadItem.php:794 #: ../../extend/addon/hzaddons/hsse/hsse.php:202 msgid "Underline" msgstr "ΠΠΎΠ΄ΡΠ΅ΡΠΊΠ½ΡΡΡΠΉ" -#: ../../include/conversation.php:1406 ../../Zotlabs/Lib/ThreadItem.php:777 +#: ../../include/conversation.php:1409 ../../Zotlabs/Lib/ThreadItem.php:795 #: ../../extend/addon/hzaddons/hsse/hsse.php:203 msgid "Quote" msgstr "Π¦ΠΈΡΠ°ΡΠ°" -#: ../../include/conversation.php:1407 ../../Zotlabs/Lib/ThreadItem.php:778 +#: ../../include/conversation.php:1410 ../../Zotlabs/Lib/ThreadItem.php:796 #: ../../extend/addon/hzaddons/hsse/hsse.php:204 msgid "Code" msgstr "ΠΠΎΠ΄" -#: ../../include/conversation.php:1408 ../../Zotlabs/Lib/ThreadItem.php:780 +#: ../../include/conversation.php:1411 ../../Zotlabs/Lib/ThreadItem.php:798 #: ../../extend/addon/hzaddons/hsse/hsse.php:205 msgid "Attach/Upload file" msgstr "ΠΡΠΈΠΊΡΠ΅ΠΏΠΈΡΡ/Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΠ°ΠΉΠ»" -#: ../../include/conversation.php:1411 ../../Zotlabs/Module/Wiki.php:400 +#: ../../include/conversation.php:1414 ../../Zotlabs/Module/Wiki.php:400 #: ../../extend/addon/hzaddons/hsse/hsse.php:208 msgid "Embed an image from your albums" msgstr "ΠΡΡΡΠΎΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· Π²Π°ΡΠΈΡ
Π°Π»ΡΠ±ΠΎΠΌΠΎΠ²" -#: ../../include/conversation.php:1412 ../../include/conversation.php:1461 +#: ../../include/conversation.php:1415 ../../include/conversation.php:1464 #: ../../Zotlabs/Module/Cdav.php:944 ../../Zotlabs/Module/Cdav.php:1233 #: ../../Zotlabs/Module/Profiles.php:801 ../../Zotlabs/Module/Tagrm.php:15 #: ../../Zotlabs/Module/Tagrm.php:138 ../../Zotlabs/Module/Oauth.php:112 @@ -2861,7 +2838,7 @@ msgstr "ΠΡΡΡΠΎΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· Π²Π°ΡΠΈΡ
Π°Π»ΡΠ±ΠΎΠΌΠΎΠ² #: ../../Zotlabs/Module/Admin/Addons.php:423 #: ../../Zotlabs/Module/Editwebpage.php:169 #: ../../Zotlabs/Module/Profile_photo.php:465 -#: ../../Zotlabs/Module/Editpost.php:109 ../../Zotlabs/Module/Connedit.php:930 +#: ../../Zotlabs/Module/Editpost.php:109 ../../Zotlabs/Module/Connedit.php:941 #: ../../Zotlabs/Module/Card_edit.php:131 #: ../../Zotlabs/Module/Article_edit.php:131 ../../Zotlabs/Module/Wiki.php:368 #: ../../Zotlabs/Module/Wiki.php:401 ../../Zotlabs/Module/Filer.php:55 @@ -2870,7 +2847,7 @@ msgstr "ΠΡΡΡΠΎΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· Π²Π°ΡΠΈΡ
Π°Π»ΡΠ±ΠΎΠΌΠΎΠ² msgid "Cancel" msgstr "ΠΡΠΌΠ΅Π½ΠΈΡΡ" -#: ../../include/conversation.php:1413 ../../include/conversation.php:1460 +#: ../../include/conversation.php:1416 ../../include/conversation.php:1463 #: ../../Zotlabs/Module/Cover_photo.php:400 #: ../../Zotlabs/Module/Profile_photo.php:466 ../../Zotlabs/Module/Wiki.php:402 #: ../../extend/addon/hzaddons/hsse/hsse.php:210 @@ -2878,22 +2855,22 @@ msgstr "ΠΡΠΌΠ΅Π½ΠΈΡΡ" msgid "OK" msgstr "" -#: ../../include/conversation.php:1415 +#: ../../include/conversation.php:1418 #: ../../extend/addon/hzaddons/hsse/hsse.php:212 msgid "Toggle voting" msgstr "ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π³ΠΎΠ»ΠΎΡΠΎΠ²Π°Π½ΠΈΠ΅" -#: ../../include/conversation.php:1418 +#: ../../include/conversation.php:1421 #: ../../extend/addon/hzaddons/hsse/hsse.php:215 msgid "Disable comments" msgstr "ΠΡΠΊΠ»ΡΡΠΈΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ" -#: ../../include/conversation.php:1419 +#: ../../include/conversation.php:1422 #: ../../extend/addon/hzaddons/hsse/hsse.php:216 msgid "Toggle comments" msgstr "ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ" -#: ../../include/conversation.php:1424 ../../Zotlabs/Module/Photos.php:713 +#: ../../include/conversation.php:1427 ../../Zotlabs/Module/Photos.php:713 #: ../../Zotlabs/Module/Photos.php:1083 ../../Zotlabs/Module/Editblock.php:129 #: ../../Zotlabs/Module/Card_edit.php:117 #: ../../Zotlabs/Module/Article_edit.php:117 @@ -2901,41 +2878,41 @@ msgstr "ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ" msgid "Title (optional)" msgstr "ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ (Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ)" -#: ../../include/conversation.php:1427 +#: ../../include/conversation.php:1430 #: ../../extend/addon/hzaddons/hsse/hsse.php:224 msgid "Categories (optional, comma-separated list)" msgstr "ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ (Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ)" -#: ../../include/conversation.php:1428 ../../Zotlabs/Module/Events.php:481 +#: ../../include/conversation.php:1431 ../../Zotlabs/Module/Events.php:481 #: ../../extend/addon/hzaddons/hsse/hsse.php:225 msgid "Permission settings" msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΉ" -#: ../../include/conversation.php:1450 +#: ../../include/conversation.php:1453 #: ../../extend/addon/hzaddons/hsse/hsse.php:247 msgid "Other networks and post services" msgstr "ΠΡΡΠ³ΠΈΠ΅ ΡΠ΅ΡΠΈ ΠΈ ΡΠ»ΡΠΆΠ±Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ" -#: ../../include/conversation.php:1453 ../../Zotlabs/Module/Mail.php:292 +#: ../../include/conversation.php:1456 ../../Zotlabs/Module/Mail.php:292 #: ../../Zotlabs/Module/Mail.php:434 #: ../../extend/addon/hzaddons/hsse/hsse.php:250 msgid "Set expiration date" msgstr "Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ" -#: ../../include/conversation.php:1456 +#: ../../include/conversation.php:1459 #: ../../extend/addon/hzaddons/hsse/hsse.php:253 msgid "Set publish date" msgstr "Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΄Π°ΡΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ" -#: ../../include/conversation.php:1458 ../../Zotlabs/Module/Mail.php:294 +#: ../../include/conversation.php:1461 ../../Zotlabs/Module/Mail.php:294 #: ../../Zotlabs/Module/Mail.php:436 ../../Zotlabs/Module/Chat.php:221 -#: ../../Zotlabs/Lib/ThreadItem.php:787 +#: ../../Zotlabs/Lib/ThreadItem.php:805 #: ../../extend/addon/hzaddons/hsse/hsse.php:255 msgid "Encrypt text" msgstr "ΠΠ°ΡΠΈΡΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡ" -#: ../../include/conversation.php:1696 ../../Zotlabs/Module/Photos.php:1180 -#: ../../Zotlabs/Lib/ThreadItem.php:226 +#: ../../include/conversation.php:1705 ../../Zotlabs/Module/Photos.php:1182 +#: ../../Zotlabs/Lib/ThreadItem.php:237 msgctxt "noun" msgid "Dislike" msgid_plural "Dislikes" @@ -2943,7 +2920,7 @@ msgstr[0] "ΠΠ΅ Π½ΡΠ°Π²ΠΈΡΡΡ" msgstr[1] "ΠΠ΅ Π½ΡΠ°Π²ΠΈΡΡΡ" msgstr[2] "ΠΠ΅ Π½ΡΠ°Π²ΠΈΡΡΡ" -#: ../../include/conversation.php:1699 +#: ../../include/conversation.php:1708 msgctxt "noun" msgid "Attending" msgid_plural "Attending" @@ -2951,7 +2928,7 @@ msgstr[0] "ΠΠΎΡΠ΅ΡΠΈΡ" msgstr[1] "ΠΠΎΡΠ΅ΡΡΡ" msgstr[2] "ΠΠΎΡΠ΅ΡΡΡ" -#: ../../include/conversation.php:1702 +#: ../../include/conversation.php:1711 msgctxt "noun" msgid "Not Attending" msgid_plural "Not Attending" @@ -2959,13 +2936,13 @@ msgstr[0] "ΠΠ΅ ΠΏΠΎΡΠ΅ΡΠΈΡ" msgstr[1] "ΠΠ΅ ΠΏΠΎΡΠ΅ΡΡΡ" msgstr[2] "ΠΠ΅ ΠΏΠΎΡΠ΅ΡΡΡ" -#: ../../include/conversation.php:1705 +#: ../../include/conversation.php:1714 msgctxt "noun" msgid "Undecided" msgid_plural "Undecided" msgstr "ΠΠ΅ ΡΠ΅ΡΠΈΠ»" -#: ../../include/conversation.php:1708 +#: ../../include/conversation.php:1717 msgctxt "noun" msgid "Agree" msgid_plural "Agrees" @@ -2973,7 +2950,7 @@ msgstr[0] "Π‘ΠΎΠ³Π»Π°ΡΠ΅Π½" msgstr[1] "Π‘ΠΎΠ³Π»Π°ΡΠ½Ρ" msgstr[2] "Π‘ΠΎΠ³Π»Π°ΡΠ½Ρ" -#: ../../include/conversation.php:1711 +#: ../../include/conversation.php:1720 msgctxt "noun" msgid "Disagree" msgid_plural "Disagrees" @@ -2981,7 +2958,7 @@ msgstr[0] "ΠΠ΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½" msgstr[1] "ΠΠ΅ ΡΠΎΠ³Π»Π°ΡΠ½Ρ" msgstr[2] "ΠΠ΅ ΡΠΎΠ³Π»Π°ΡΠ½Ρ" -#: ../../include/conversation.php:1714 +#: ../../include/conversation.php:1723 msgctxt "noun" msgid "Abstain" msgid_plural "Abstains" @@ -3018,7 +2995,7 @@ msgstr "Ρ
ΠΎΡΠ΅ΡΡ" msgid "wants" msgstr "Ρ
ΠΎΡΠ΅ΡΡ" -#: ../../include/taxonomy.php:575 ../../Zotlabs/Lib/ThreadItem.php:292 +#: ../../include/taxonomy.php:575 ../../Zotlabs/Lib/ThreadItem.php:303 msgid "like" msgstr "Π½ΡΠ°Π²ΠΈΡΡΡ" @@ -3026,7 +3003,7 @@ msgstr "Π½ΡΠ°Π²ΠΈΡΡΡ" msgid "likes" msgstr "Π½ΡΠ°Π²ΠΈΡΡΡ" -#: ../../include/taxonomy.php:576 ../../Zotlabs/Lib/ThreadItem.php:293 +#: ../../include/taxonomy.php:576 ../../Zotlabs/Lib/ThreadItem.php:304 msgid "dislike" msgstr "Π½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ" @@ -3042,12 +3019,12 @@ msgstr "ΠΡΠ±ΠΎΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°" msgid "Delete this item?" msgstr "Π£Π΄Π°Π»ΠΈΡΡ ΡΡΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ?" -#: ../../include/js_strings.php:6 ../../Zotlabs/Module/Photos.php:1136 -#: ../../Zotlabs/Module/Photos.php:1254 ../../Zotlabs/Lib/ThreadItem.php:772 +#: ../../include/js_strings.php:6 ../../Zotlabs/Module/Photos.php:1137 +#: ../../Zotlabs/Module/Photos.php:1256 ../../Zotlabs/Lib/ThreadItem.php:790 msgid "Comment" msgstr "ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ" -#: ../../include/js_strings.php:7 ../../Zotlabs/Lib/ThreadItem.php:479 +#: ../../include/js_strings.php:7 ../../Zotlabs/Lib/ThreadItem.php:497 #, php-format msgid "%s show all" msgstr "%s ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π²ΡΡ" @@ -3104,7 +3081,7 @@ msgid "Rate This Channel (this is public)" msgstr "ΠΡΠ΅Π½ΠΊa ΡΡoΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° (ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎ)" #: ../../include/js_strings.php:20 ../../Zotlabs/Module/Rate.php:155 -#: ../../Zotlabs/Module/Connedit.php:876 +#: ../../Zotlabs/Module/Connedit.php:887 msgid "Rating" msgstr "ΠΡΠ΅Π½ΠΊΠ°" @@ -3380,39 +3357,35 @@ msgstr "Π’ΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΡΠΎΡΡΠΌΡ" msgid "This Website Only" msgstr "Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΡ Π²Π΅Π±-ΡΠ°ΠΉΡ" -#: ../../include/network.php:771 -msgid "view full size" -msgstr "ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π² ΠΏΠΎΠ»Π½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ" - -#: ../../include/network.php:1774 ../../include/network.php:1775 +#: ../../include/network.php:1715 ../../include/network.php:1716 msgid "Friendica" msgstr "" -#: ../../include/network.php:1776 +#: ../../include/network.php:1717 msgid "OStatus" msgstr "" -#: ../../include/network.php:1777 +#: ../../include/network.php:1718 msgid "GNU-Social" msgstr "" -#: ../../include/network.php:1778 +#: ../../include/network.php:1719 msgid "RSS/Atom" msgstr "" -#: ../../include/network.php:1779 ../../Zotlabs/Lib/Activity.php:1417 -#: ../../Zotlabs/Lib/Activity.php:1614 -#: ../../extend/addon/hzaddons/pubcrawl/as.php:1204 -#: ../../extend/addon/hzaddons/pubcrawl/as.php:1359 -#: ../../extend/addon/hzaddons/pubcrawl/as.php:1538 +#: ../../include/network.php:1720 ../../Zotlabs/Lib/Activity.php:1806 +#: ../../Zotlabs/Lib/Activity.php:2003 +#: ../../extend/addon/hzaddons/pubcrawl/as.php:1214 +#: ../../extend/addon/hzaddons/pubcrawl/as.php:1369 +#: ../../extend/addon/hzaddons/pubcrawl/as.php:1549 msgid "ActivityPub" msgstr "" -#: ../../include/network.php:1780 ../../Zotlabs/Module/Cdav.php:1219 +#: ../../include/network.php:1721 ../../Zotlabs/Module/Cdav.php:1219 #: ../../Zotlabs/Module/Profiles.php:787 #: ../../Zotlabs/Module/Admin/Accounts.php:171 #: ../../Zotlabs/Module/Admin/Accounts.php:183 -#: ../../Zotlabs/Module/Connedit.php:916 +#: ../../Zotlabs/Module/Connedit.php:927 #: ../../extend/addon/hzaddons/rtof/Mod_Rtof.php:57 #: ../../extend/addon/hzaddons/openid/MysqlProvider.php:56 #: ../../extend/addon/hzaddons/openid/MysqlProvider.php:57 @@ -3420,27 +3393,27 @@ msgstr "" msgid "Email" msgstr "ΠΠ»Π΅ΠΊΡΡΠΎΠ½Π½Π°Ρ ΠΏΠΎΡΡΠ°" -#: ../../include/network.php:1781 +#: ../../include/network.php:1722 msgid "Diaspora" msgstr "" -#: ../../include/network.php:1782 +#: ../../include/network.php:1723 msgid "Facebook" msgstr "" -#: ../../include/network.php:1783 +#: ../../include/network.php:1724 msgid "Zot" msgstr "" -#: ../../include/network.php:1784 +#: ../../include/network.php:1725 msgid "LinkedIn" msgstr "" -#: ../../include/network.php:1785 +#: ../../include/network.php:1726 msgid "XMPP/IM" msgstr "" -#: ../../include/network.php:1786 +#: ../../include/network.php:1727 msgid "MySpace" msgstr "" @@ -3468,7 +3441,7 @@ msgstr "YYYY-MM-DD ΠΈΠ»ΠΈ MM-DD" msgid "Required" msgstr "Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ" -#: ../../include/datetime.php:238 ../../boot.php:2558 +#: ../../include/datetime.php:238 ../../boot.php:2561 msgid "never" msgstr "Π½ΠΈΠΊΠΎΠ³Π΄Π°" @@ -3589,12 +3562,12 @@ msgstr "ΠΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ" #: ../../include/acl_selectors.php:123 ../../Zotlabs/Module/Photos.php:717 #: ../../Zotlabs/Module/Photos.php:1086 ../../Zotlabs/Module/Chat.php:243 #: ../../Zotlabs/Module/Filestorage.php:170 ../../Zotlabs/Module/Thing.php:319 -#: ../../Zotlabs/Module/Thing.php:372 ../../Zotlabs/Module/Connedit.php:682 +#: ../../Zotlabs/Module/Thing.php:372 ../../Zotlabs/Module/Connedit.php:690 msgid "Permissions" msgstr "Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ" -#: ../../include/acl_selectors.php:125 ../../Zotlabs/Module/Photos.php:1308 -#: ../../Zotlabs/Lib/ThreadItem.php:441 +#: ../../include/acl_selectors.php:125 ../../Zotlabs/Module/Photos.php:1316 +#: ../../Zotlabs/Lib/ThreadItem.php:459 msgid "Close" msgstr "ΠΠ°ΠΊΡΡΡΡ" @@ -3618,73 +3591,73 @@ msgstr "ΠΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ" msgid "Open the selected location in a different window or browser tab" msgstr "ΠΡΠΊΡΡΡΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΈΠ»ΠΈ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΠ°" -#: ../../include/connections.php:696 ../../include/event.php:1311 +#: ../../include/connections.php:696 ../../include/event.php:1320 #: ../../Zotlabs/Module/Cdav.php:1224 ../../Zotlabs/Module/Profiles.php:792 -#: ../../Zotlabs/Module/Connedit.php:921 +#: ../../Zotlabs/Module/Connedit.php:932 msgid "Mobile" msgstr "ΠΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΉ" -#: ../../include/connections.php:697 ../../include/event.php:1312 +#: ../../include/connections.php:697 ../../include/event.php:1321 #: ../../Zotlabs/Module/Cdav.php:1225 ../../Zotlabs/Module/Profiles.php:793 -#: ../../Zotlabs/Module/Connedit.php:922 +#: ../../Zotlabs/Module/Connedit.php:933 msgid "Home" msgstr "ΠΠΎΠΌΠ°ΡΠ½ΠΈΠΉ" -#: ../../include/connections.php:698 ../../include/event.php:1313 +#: ../../include/connections.php:698 ../../include/event.php:1322 msgid "Home, Voice" msgstr "ΠΠΎΠΌ, Π³ΠΎΠ»ΠΎΡ" -#: ../../include/connections.php:699 ../../include/event.php:1314 +#: ../../include/connections.php:699 ../../include/event.php:1323 msgid "Home, Fax" msgstr "ΠΠΎΠΌ, ΡΠ°ΠΊΡ" -#: ../../include/connections.php:700 ../../include/event.php:1315 +#: ../../include/connections.php:700 ../../include/event.php:1324 #: ../../Zotlabs/Module/Cdav.php:1226 ../../Zotlabs/Module/Profiles.php:794 -#: ../../Zotlabs/Module/Connedit.php:923 +#: ../../Zotlabs/Module/Connedit.php:934 msgid "Work" msgstr "Π Π°Π±ΠΎΡΠΈΠΉ" -#: ../../include/connections.php:701 ../../include/event.php:1316 +#: ../../include/connections.php:701 ../../include/event.php:1325 msgid "Work, Voice" msgstr "Π Π°Π±ΠΎΡΠ°, Π³ΠΎΠ»ΠΎΡ" -#: ../../include/connections.php:702 ../../include/event.php:1317 +#: ../../include/connections.php:702 ../../include/event.php:1326 msgid "Work, Fax" msgstr "Π Π°Π±ΠΎΡΠ°, ΡΠ°ΠΊΡ" -#: ../../include/event.php:24 ../../include/event.php:71 +#: ../../include/event.php:28 ../../include/event.php:75 msgid "l F d, Y \\@ g:i A" msgstr "" -#: ../../include/event.php:32 ../../include/event.php:75 +#: ../../include/event.php:36 ../../include/event.php:79 msgid "Starts:" msgstr "ΠΠ°ΡΠ°Π»ΠΎ:" -#: ../../include/event.php:42 ../../include/event.php:79 +#: ../../include/event.php:46 ../../include/event.php:83 msgid "Finishes:" msgstr "ΠΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅:" -#: ../../include/event.php:1011 +#: ../../include/event.php:1020 msgid "This event has been added to your calendar." msgstr "ΠΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ Π±ΡΠ»ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π² Π²Π°Ρ ΠΊΠ°Π»Π΅Π½Π΄Π°ΡΡ." -#: ../../include/event.php:1230 +#: ../../include/event.php:1239 msgid "Not specified" msgstr "ΠΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΎ" -#: ../../include/event.php:1231 +#: ../../include/event.php:1240 msgid "Needs Action" msgstr "Π’ΡΠ΅Π±ΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ" -#: ../../include/event.php:1232 +#: ../../include/event.php:1241 msgid "Completed" msgstr "ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΎ" -#: ../../include/event.php:1233 +#: ../../include/event.php:1242 msgid "In Process" msgstr "Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅" -#: ../../include/event.php:1234 +#: ../../include/event.php:1243 msgid "Cancelled" msgstr "ΠΡΠΌΠ΅Π½Π΅Π½ΠΎ" @@ -3718,7 +3691,7 @@ msgid "Click to authenticate to your home hub" msgstr "ΠΠ°ΠΆΠΌΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π±Ρ Π½Π° Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΌ ΡΠ·Π»Π΅" #: ../../include/nav.php:92 ../../Zotlabs/Module/Manage.php:170 -#: ../../Zotlabs/Lib/Apps.php:312 +#: ../../Zotlabs/Lib/Apps.php:333 msgid "Channel Manager" msgstr "ΠΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΊΠ°Π½Π°Π»ΠΎΠ²" @@ -3733,7 +3706,7 @@ msgstr "Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π°ΡΠΈΠΌ Π³ΡΡΠΏΠΏΠ°ΠΌΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠ #: ../../include/nav.php:97 ../../Zotlabs/Module/Admin/Addons.php:344 #: ../../Zotlabs/Module/Admin/Themes.php:125 #: ../../Zotlabs/Widget/Newmember.php:53 -#: ../../Zotlabs/Widget/Settings_menu.php:68 ../../Zotlabs/Lib/Apps.php:314 +#: ../../Zotlabs/Widget/Settings_menu.php:68 ../../Zotlabs/Lib/Apps.php:335 msgid "Settings" msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ" @@ -3742,7 +3715,7 @@ msgid "Account/Channel Settings" msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ° / ΠΊΠ°Π½Π°Π»Π°" #: ../../include/nav.php:103 ../../include/nav.php:132 -#: ../../include/nav.php:151 ../../boot.php:1624 +#: ../../include/nav.php:151 ../../boot.php:1629 msgid "Logout" msgstr "ΠΡΡ
ΠΎΠ΄" @@ -3762,8 +3735,8 @@ msgstr "Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ / ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΈΠ»Π΅ΠΉ" msgid "Edit your profile" msgstr "Π Π΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠΈΠ»Ρ" -#: ../../include/nav.php:118 ../../include/nav.php:122 ../../boot.php:1625 -#: ../../Zotlabs/Lib/Apps.php:311 +#: ../../include/nav.php:118 ../../include/nav.php:122 ../../boot.php:1630 +#: ../../Zotlabs/Lib/Apps.php:332 msgid "Login" msgstr "ΠΠΎΠΉΡΠΈ" @@ -3779,7 +3752,7 @@ msgstr "ΠΠΎΠΌΠΎΠΉ" msgid "Log me out of this site" msgstr "ΠΡΠΉΡΠΈ Ρ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ°" -#: ../../include/nav.php:156 ../../boot.php:1605 +#: ../../include/nav.php:156 ../../boot.php:1610 #: ../../Zotlabs/Module/Register.php:289 msgid "Register" msgstr "Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ" @@ -3804,110 +3777,110 @@ msgstr "ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅" msgid "Site Setup and Configuration" msgstr "Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ°ΠΉΡΠ°" -#: ../../include/nav.php:293 ../../Zotlabs/Module/Defperms.php:256 +#: ../../include/nav.php:323 ../../Zotlabs/Module/Defperms.php:256 #: ../../Zotlabs/Module/New_channel.php:157 #: ../../Zotlabs/Module/New_channel.php:164 -#: ../../Zotlabs/Module/Connedit.php:858 +#: ../../Zotlabs/Module/Connedit.php:869 #: ../../Zotlabs/Widget/Notifications.php:162 msgid "Loading" msgstr "ΠΠ°Π³ΡΡΠ·ΠΊΠ°" -#: ../../include/nav.php:299 +#: ../../include/nav.php:329 msgid "@name, !forum, #tag, ?doc, content" msgstr "@ΠΈΠΌΡ, !ΡΠΎΡΡΠΌ, #ΡΠ΅Π³, ?Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅" -#: ../../include/nav.php:300 +#: ../../include/nav.php:330 msgid "Please wait..." msgstr "ΠΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡΠ΅ ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ° ..." -#: ../../include/nav.php:306 +#: ../../include/nav.php:336 msgid "Add Apps" msgstr "ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ" -#: ../../include/nav.php:307 +#: ../../include/nav.php:337 msgid "Arrange Apps" msgstr "Π£ΠΏΠΎΡΡΠ΄ΠΎΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ" -#: ../../include/nav.php:308 +#: ../../include/nav.php:338 msgid "Toggle System Apps" msgstr "ΠΠΎΠΊΠ°Π·Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ" -#: ../../include/nav.php:391 ../../Zotlabs/Module/Admin/Channels.php:154 +#: ../../include/nav.php:421 ../../Zotlabs/Module/Admin/Channels.php:154 msgid "Channel" msgstr "ΠΠ°Π½Π°Π»" -#: ../../include/nav.php:394 +#: ../../include/nav.php:424 msgid "Status Messages and Posts" msgstr "Π‘ΡΠ°ΡΡΡΡ ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ" -#: ../../include/nav.php:404 ../../Zotlabs/Module/Help.php:80 +#: ../../include/nav.php:434 ../../Zotlabs/Module/Help.php:80 msgid "About" msgstr "Π ΡΠ΅Π±Π΅" -#: ../../include/nav.php:407 +#: ../../include/nav.php:437 msgid "Profile Details" msgstr "ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΎΡΠΈΠ»Π΅" -#: ../../include/nav.php:422 ../../Zotlabs/Storage/Browser.php:272 -#: ../../Zotlabs/Module/Fbrowser.php:85 ../../Zotlabs/Lib/Apps.php:315 +#: ../../include/nav.php:452 ../../Zotlabs/Storage/Browser.php:272 +#: ../../Zotlabs/Module/Fbrowser.php:85 ../../Zotlabs/Lib/Apps.php:336 msgid "Files" msgstr "Π€Π°ΠΉΠ»Ρ" -#: ../../include/nav.php:425 +#: ../../include/nav.php:455 msgid "Files and Storage" msgstr "Π€Π°ΠΉΠ»Ρ ΠΈ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅" -#: ../../include/nav.php:433 ../../include/nav.php:436 +#: ../../include/nav.php:463 ../../include/nav.php:466 #: ../../Zotlabs/Storage/Browser.php:140 msgid "Calendar" msgstr "ΠΠ°Π»Π΅Π½Π΄Π°ΡΡ" -#: ../../include/nav.php:447 ../../include/nav.php:450 -#: ../../Zotlabs/Widget/Chatroom_list.php:16 ../../Zotlabs/Lib/Apps.php:307 +#: ../../include/nav.php:477 ../../include/nav.php:480 +#: ../../Zotlabs/Widget/Chatroom_list.php:16 ../../Zotlabs/Lib/Apps.php:328 msgid "Chatrooms" msgstr "Π§Π°ΡΡ" -#: ../../include/nav.php:460 ../../Zotlabs/Lib/Apps.php:306 +#: ../../include/nav.php:490 ../../Zotlabs/Lib/Apps.php:327 msgid "Bookmarks" msgstr "ΠΠ°ΠΊΠ»Π°Π΄ΠΊΠΈ" -#: ../../include/nav.php:463 +#: ../../include/nav.php:493 msgid "Saved Bookmarks" msgstr "Π‘ΠΎΡ
ΡΠ°Π½ΡΠ½Π½ΡΠ΅ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ" -#: ../../include/nav.php:471 ../../Zotlabs/Module/Cards.php:203 -#: ../../Zotlabs/Lib/Apps.php:303 +#: ../../include/nav.php:501 ../../Zotlabs/Module/Cards.php:207 +#: ../../Zotlabs/Lib/Apps.php:324 msgid "Cards" msgstr "ΠΠ°ΡΡΠΎΡΠΊΠΈ" -#: ../../include/nav.php:474 +#: ../../include/nav.php:504 msgid "View Cards" msgstr "ΠΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠ°ΡΡΠΎΡΠΊΠΈ" -#: ../../include/nav.php:482 ../../Zotlabs/Module/Articles.php:214 -#: ../../Zotlabs/Lib/Apps.php:302 +#: ../../include/nav.php:512 ../../Zotlabs/Module/Articles.php:222 +#: ../../Zotlabs/Lib/Apps.php:323 msgid "Articles" msgstr "Π‘ΡΠ°ΡΡΠΈ" -#: ../../include/nav.php:485 +#: ../../include/nav.php:515 msgid "View Articles" msgstr "ΠΡΠΎΡΠΌΠΎΡΡ ΡΡΠ°ΡΠ΅ΠΉ" -#: ../../include/nav.php:494 ../../Zotlabs/Module/Webpages.php:252 -#: ../../Zotlabs/Lib/Apps.php:316 +#: ../../include/nav.php:524 ../../Zotlabs/Module/Webpages.php:252 +#: ../../Zotlabs/Lib/Apps.php:337 msgid "Webpages" msgstr "ΠΠ΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ" -#: ../../include/nav.php:497 +#: ../../include/nav.php:527 msgid "View Webpages" msgstr "ΠΡΠΎΡΠΌΠΎΡΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ" -#: ../../include/nav.php:506 ../../Zotlabs/Module/Wiki.php:206 +#: ../../include/nav.php:536 ../../Zotlabs/Module/Wiki.php:206 #: ../../Zotlabs/Widget/Wiki_list.php:15 msgid "Wikis" msgstr "" -#: ../../include/nav.php:509 ../../Zotlabs/Lib/Apps.php:317 +#: ../../include/nav.php:539 ../../Zotlabs/Lib/Apps.php:338 msgid "Wiki" msgstr "" @@ -3916,117 +3889,117 @@ msgstr "" msgid "%1$s's bookmarks" msgstr "ΠΠ°ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ %1$s" -#: ../../include/attach.php:265 ../../include/attach.php:374 +#: ../../include/attach.php:267 ../../include/attach.php:376 msgid "Item was not found." msgstr "ΠΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½." -#: ../../include/attach.php:282 +#: ../../include/attach.php:284 msgid "Unknown error." msgstr "ΠΠ΅ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°." -#: ../../include/attach.php:567 +#: ../../include/attach.php:569 msgid "No source file." msgstr "ΠΠ΅Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°." -#: ../../include/attach.php:589 +#: ../../include/attach.php:591 msgid "Cannot locate file to replace" msgstr "ΠΠ΅ ΡΠ΄Π°Π΅ΡΡΡ Π½Π°ΠΉΡΠΈ ΡΠ°ΠΉΠ» Π΄Π»Ρ Π·Π°ΠΌΠ΅Π½Ρ" -#: ../../include/attach.php:608 +#: ../../include/attach.php:610 msgid "Cannot locate file to revise/update" msgstr "ΠΠ΅ ΡΠ΄Π°Π΅ΡΡΡ Π½Π°ΠΉΡΠΈ ΡΠ°ΠΉΠ» Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΡΠΌΠΎΡΡΠ° / ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ" -#: ../../include/attach.php:750 +#: ../../include/attach.php:752 #, php-format msgid "File exceeds size limit of %d" msgstr "Π€Π°ΠΉΠ» ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ %d" -#: ../../include/attach.php:771 +#: ../../include/attach.php:773 #, php-format msgid "You have reached your limit of %1$.0f Mbytes attachment storage." msgstr "ΠΡ Π΄ΠΎΡΡΠΈΠ³Π»ΠΈ ΠΏΡΠ΅Π΄Π΅Π»Π° %1$.0f ΠΠ±Π°ΠΉΡ Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ." -#: ../../include/attach.php:953 +#: ../../include/attach.php:955 msgid "File upload failed. Possible system limit or action terminated." msgstr "ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΡΠ°ΠΉΠ»Π° Π½Π΅ ΡΠ΄Π°Π»Π°ΡΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π° ΠΈΠ»ΠΈ ΠΏΠΎΠΏΡΡΠΊΠ° ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π°." -#: ../../include/attach.php:982 +#: ../../include/attach.php:984 msgid "Stored file could not be verified. Upload failed." msgstr "Π€Π°ΠΉΠ» Π΄Π»Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½. ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π½Π΅ ΡΠ΄Π°Π»Π°ΡΡ." -#: ../../include/attach.php:1056 ../../include/attach.php:1072 +#: ../../include/attach.php:1058 ../../include/attach.php:1074 msgid "Path not available." msgstr "ΠΡΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½." -#: ../../include/attach.php:1121 ../../include/attach.php:1286 +#: ../../include/attach.php:1123 ../../include/attach.php:1288 msgid "Empty pathname" msgstr "ΠΡΡΡΠΎΠ΅ ΠΈΠΌΡ ΠΏΡΡΠΈ" -#: ../../include/attach.php:1147 +#: ../../include/attach.php:1149 msgid "duplicate filename or path" msgstr "Π΄ΡΠ±Π»ΠΈΡΡΡΡΠ΅Π΅ΡΡ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΏΡΡΠΈ" -#: ../../include/attach.php:1172 +#: ../../include/attach.php:1174 msgid "Path not found." msgstr "ΠΡΡΡ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½." -#: ../../include/attach.php:1240 +#: ../../include/attach.php:1242 msgid "mkdir failed." msgstr "mkdir Π½Π΅ ΡΠ΄Π°Π»ΡΡ" -#: ../../include/attach.php:1244 +#: ../../include/attach.php:1246 msgid "database storage failed." msgstr "ΠΎΡΠΈΠ±ΠΊΠ° ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
." -#: ../../include/attach.php:1292 +#: ../../include/attach.php:1294 msgid "Empty path" msgstr "ΠΡΡΡΠΎΠ΅ ΠΈΠΌΡ ΠΏΡΡΠΈ" -#: ../../include/photo/photo_driver.php:779 +#: ../../include/photo/photo_driver.php:782 #: ../../Zotlabs/Module/Profile_photo.php:120 #: ../../Zotlabs/Module/Profile_photo.php:248 msgid "Profile Photos" msgstr "Π€ΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΡΠΈΠ»Ρ" -#: ../../boot.php:1604 +#: ../../boot.php:1609 msgid "Create an account to access services and applications" msgstr "Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π°ΠΊΠΊΠ°ΡΠ½Ρ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ»ΡΠΆΠ±Π°ΠΌ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ" -#: ../../boot.php:1628 +#: ../../boot.php:1633 msgid "Login/Email" msgstr "ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ / email" -#: ../../boot.php:1629 +#: ../../boot.php:1634 msgid "Password" msgstr "ΠΠ°ΡΠΎΠ»Ρ" -#: ../../boot.php:1630 +#: ../../boot.php:1635 msgid "Remember me" msgstr "ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΌΠ΅Π½Ρ" -#: ../../boot.php:1633 +#: ../../boot.php:1638 msgid "Forgot your password?" msgstr "ΠΠ°Π±ΡΠ»ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΈΠ½?" -#: ../../boot.php:1634 ../../Zotlabs/Module/Lostpass.php:91 +#: ../../boot.php:1639 ../../Zotlabs/Module/Lostpass.php:91 msgid "Password Reset" msgstr "Π‘Π±ΡΠΎΡΠΈΡΡ ΠΏΠ°ΡΠΎΠ»Ρ" -#: ../../boot.php:2431 +#: ../../boot.php:2434 #, php-format msgid "[$Projectname] Website SSL error for %s" msgstr "[$Projectname] ΠΡΠΈΠ±ΠΊΠ° SSL/TLS Π²Π΅Π±-ΡΠ°ΠΉΡΠ° Π΄Π»Ρ %s" -#: ../../boot.php:2436 +#: ../../boot.php:2439 msgid "Website SSL certificate is not valid. Please correct." msgstr "SSL/TLS ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π²Π΅Π±-ΡΠ°ΠΉΡ Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π΅Π½. ΠΡΠΏΡΠ°Π²ΡΡΠ΅ ΡΡΠΎ." -#: ../../boot.php:2552 +#: ../../boot.php:2555 #, php-format msgid "[$Projectname] Cron tasks not running on %s" msgstr "[$Projectname] ΠΠ°Π΄Π°Π½ΠΈΡ Cron Π½Π΅ Π·Π°ΠΏΡΡΠ΅Π½Ρ Π½Π° %s" -#: ../../boot.php:2557 +#: ../../boot.php:2560 msgid "Cron/Scheduled tasks not running." msgstr "ΠΠ°Π΄Π°Π½ΠΈΡ Cron / ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π½Π΅ Π·Π°ΠΏΡΡΠ΅Π½Ρ." @@ -4061,9 +4034,9 @@ msgstr "ΠΠ±ΡΠΈΠ΅" #: ../../Zotlabs/Storage/Browser.php:276 ../../Zotlabs/Storage/Browser.php:390 #: ../../Zotlabs/Module/Cdav.php:1230 ../../Zotlabs/Module/Profiles.php:798 #: ../../Zotlabs/Module/New_channel.php:189 ../../Zotlabs/Module/Menu.php:181 -#: ../../Zotlabs/Module/Webpages.php:254 ../../Zotlabs/Module/Connedit.php:927 -#: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Articles.php:108 -#: ../../Zotlabs/Module/Cards.php:109 ../../Zotlabs/Module/Layouts.php:185 +#: ../../Zotlabs/Module/Webpages.php:254 ../../Zotlabs/Module/Connedit.php:938 +#: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Articles.php:116 +#: ../../Zotlabs/Module/Cards.php:113 ../../Zotlabs/Module/Layouts.php:185 #: ../../Zotlabs/Widget/Cdav.php:128 ../../Zotlabs/Widget/Cdav.php:165 msgid "Create" msgstr "Π‘ΠΎΠ·Π΄Π°ΡΡ" @@ -4072,7 +4045,7 @@ msgstr "Π‘ΠΎΠ·Π΄Π°ΡΡ" msgid "Add Files" msgstr "ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ" -#: ../../Zotlabs/Storage/Browser.php:280 ../../Zotlabs/Lib/ThreadItem.php:157 +#: ../../Zotlabs/Storage/Browser.php:280 ../../Zotlabs/Lib/ThreadItem.php:168 msgid "Admin Delete" msgstr "Π£Π΄Π°Π»Π΅Π½ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠΌ" @@ -4081,7 +4054,7 @@ msgstr "Π£Π΄Π°Π»Π΅Π½ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠΌ" #: ../../Zotlabs/Module/Sharedwithme.php:104 ../../Zotlabs/Module/Chat.php:259 #: ../../Zotlabs/Module/Oauth2.php:118 ../../Zotlabs/Module/Oauth2.php:146 #: ../../Zotlabs/Module/Admin/Channels.php:159 -#: ../../Zotlabs/Module/Connedit.php:912 ../../Zotlabs/Module/Group.php:144 +#: ../../Zotlabs/Module/Connedit.php:923 ../../Zotlabs/Module/Group.php:154 #: ../../Zotlabs/Module/Wiki.php:218 #: ../../Zotlabs/Widget/Wiki_page_history.php:22 #: ../../Zotlabs/Lib/NativeWikiPage.php:561 @@ -4122,7 +4095,7 @@ msgstr "ΠΠ°Π³ΡΡΠ·ΠΈΡΡ ΡΠ°ΠΉΠ»" #: ../../Zotlabs/Storage/Browser.php:392 ../../Zotlabs/Module/Photos.php:727 #: ../../Zotlabs/Module/Cover_photo.php:395 -#: ../../Zotlabs/Module/Embedphotos.php:158 +#: ../../Zotlabs/Module/Embedphotos.php:166 #: ../../Zotlabs/Module/Profile_photo.php:459 #: ../../Zotlabs/Widget/Portfolio.php:110 ../../Zotlabs/Widget/Cdav.php:133 #: ../../Zotlabs/Widget/Cdav.php:169 ../../Zotlabs/Widget/Album.php:97 @@ -4275,7 +4248,7 @@ msgstr "ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π°ΠΏΠΈΡΠΈ ΠΊΠΎΠ½ #: ../../Zotlabs/Module/Defperms.php:111 #: ../../Zotlabs/Module/Settings/Channel.php:266 -#: ../../extend/addon/hzaddons/twitter/twitter.php:775 +#: ../../extend/addon/hzaddons/twitter/twitter.php:605 #: ../../extend/addon/hzaddons/logrot/logrot.php:54 #: ../../extend/addon/hzaddons/openstreetmap/openstreetmap.php:185 #: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:82 @@ -4296,13 +4269,41 @@ msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ\"" #: ../../Zotlabs/Module/Chat.php:102 ../../Zotlabs/Module/Oauth2.php:106 #: ../../Zotlabs/Module/Uexport.php:61 ../../Zotlabs/Module/Bookmarks.php:78 #: ../../Zotlabs/Module/Probe.php:18 ../../Zotlabs/Module/Tokens.php:99 -#: ../../Zotlabs/Module/Notes.php:55 ../../Zotlabs/Module/Webpages.php:48 -#: ../../Zotlabs/Module/Group.php:101 ../../Zotlabs/Module/Mood.php:134 +#: ../../Zotlabs/Module/Notes.php:56 ../../Zotlabs/Module/Webpages.php:48 +#: ../../Zotlabs/Module/Group.php:106 ../../Zotlabs/Module/Mood.php:134 #: ../../Zotlabs/Module/Lang.php:17 ../../Zotlabs/Module/Randprof.php:29 -#: ../../Zotlabs/Module/Invite.php:110 ../../Zotlabs/Module/Articles.php:43 +#: ../../Zotlabs/Module/Invite.php:110 ../../Zotlabs/Module/Articles.php:51 #: ../../Zotlabs/Module/Connect.php:104 ../../Zotlabs/Module/Pdledit.php:42 #: ../../Zotlabs/Module/Wiki.php:52 ../../Zotlabs/Module/Suggest.php:40 -#: ../../Zotlabs/Module/Cards.php:46 +#: ../../Zotlabs/Module/Cards.php:51 +#: ../../extend/addon/hzaddons/dwpost/Mod_Dwpost.php:36 +#: ../../extend/addon/hzaddons/authchoose/Mod_Authchoose.php:28 +#: ../../extend/addon/hzaddons/gallery/Mod_Gallery.php:58 +#: ../../extend/addon/hzaddons/rtof/Mod_Rtof.php:36 +#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:35 +#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:78 +#: ../../extend/addon/hzaddons/superblock/Mod_Superblock.php:20 +#: ../../extend/addon/hzaddons/photocache/Mod_Photocache.php:42 +#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:53 +#: ../../extend/addon/hzaddons/nsabait/Mod_Nsabait.php:20 +#: ../../extend/addon/hzaddons/ljpost/Mod_Ljpost.php:36 +#: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:146 +#: ../../extend/addon/hzaddons/startpage/Mod_Startpage.php:50 +#: ../../extend/addon/hzaddons/nofed/Mod_Nofed.php:33 +#: ../../extend/addon/hzaddons/hsse/Mod_Hsse.php:21 +#: ../../extend/addon/hzaddons/planets/Mod_Planets.php:20 +#: ../../extend/addon/hzaddons/rainbowtag/Mod_Rainbowtag.php:21 +#: ../../extend/addon/hzaddons/gnusoc/Mod_Gnusoc.php:22 +#: ../../extend/addon/hzaddons/pageheader/Mod_Pageheader.php:34 +#: ../../extend/addon/hzaddons/smileybutton/Mod_Smileybutton.php:35 +#: ../../extend/addon/hzaddons/sendzid/Mod_Sendzid.php:20 +#: ../../extend/addon/hzaddons/libertree/Mod_Libertree.php:35 +#: ../../extend/addon/hzaddons/redred/Mod_Redred.php:50 +#: ../../extend/addon/hzaddons/pubcrawl/Mod_Pubcrawl.php:40 +#: ../../extend/addon/hzaddons/diaspora/Mod_Diaspora.php:55 +#: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:41 +#: ../../extend/addon/hzaddons/nsfw/Mod_Nsfw.php:33 +#: ../../extend/addon/hzaddons/skeleton/Mod_Skeleton.php:32 msgid "Not Installed" msgstr "Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ" @@ -4310,11 +4311,11 @@ msgstr "Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ" msgid "Set custom default permissions for new connections" msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ Π½ΠΎΠ²ΡΡ
ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ " -#: ../../Zotlabs/Module/Defperms.php:254 ../../Zotlabs/Module/Connedit.php:856 +#: ../../Zotlabs/Module/Defperms.php:254 ../../Zotlabs/Module/Connedit.php:867 msgid "Connection Default Permissions" msgstr "Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°" -#: ../../Zotlabs/Module/Defperms.php:255 ../../Zotlabs/Module/Connedit.php:857 +#: ../../Zotlabs/Module/Defperms.php:255 ../../Zotlabs/Module/Connedit.php:868 msgid "Apply these permissions automatically" msgstr "ΠΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ" @@ -4324,15 +4325,15 @@ msgid "" "If enabled, connection requests will be approved without your interaction" msgstr "ΠΡΠ»ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ, Π·Π°ΠΏΡΠΎΡΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ² Π±ΡΠ΄ΡΡ ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Ρ Π±Π΅Π· Π²Π°ΡΠ΅Π³ΠΎ ΡΡΠ°ΡΡΠΈΡ" -#: ../../Zotlabs/Module/Defperms.php:256 ../../Zotlabs/Module/Connedit.php:858 +#: ../../Zotlabs/Module/Defperms.php:256 ../../Zotlabs/Module/Connedit.php:869 msgid "Permission role" msgstr "Π ΠΎΠ»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ" -#: ../../Zotlabs/Module/Defperms.php:257 ../../Zotlabs/Module/Connedit.php:859 +#: ../../Zotlabs/Module/Defperms.php:257 ../../Zotlabs/Module/Connedit.php:870 msgid "Add permission role" msgstr "ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΎΠ»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ" -#: ../../Zotlabs/Module/Defperms.php:261 ../../Zotlabs/Module/Connedit.php:872 +#: ../../Zotlabs/Module/Defperms.php:261 ../../Zotlabs/Module/Connedit.php:883 msgid "" "The permissions indicated on this page will be applied to all new " "connections." @@ -4343,17 +4344,17 @@ msgid "Automatic approval settings" msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ" #: ../../Zotlabs/Module/Defperms.php:264 ../../Zotlabs/Module/Permcats.php:123 -#: ../../Zotlabs/Module/Tokens.php:183 ../../Zotlabs/Module/Connedit.php:892 +#: ../../Zotlabs/Module/Tokens.php:183 ../../Zotlabs/Module/Connedit.php:903 msgid "inherited" msgstr "Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ" #: ../../Zotlabs/Module/Defperms.php:266 ../../Zotlabs/Module/Permcats.php:121 -#: ../../Zotlabs/Module/Tokens.php:181 ../../Zotlabs/Module/Connedit.php:897 +#: ../../Zotlabs/Module/Tokens.php:181 ../../Zotlabs/Module/Connedit.php:908 msgid "My Settings" msgstr "ΠΠΎΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ" #: ../../Zotlabs/Module/Defperms.php:269 ../../Zotlabs/Module/Permcats.php:126 -#: ../../Zotlabs/Module/Tokens.php:186 ../../Zotlabs/Module/Connedit.php:899 +#: ../../Zotlabs/Module/Tokens.php:186 ../../Zotlabs/Module/Connedit.php:910 msgid "Individual Permissions" msgstr "ΠΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ" @@ -4385,7 +4386,7 @@ msgid "" "connections." msgstr "ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΡ ΡΠΎΡΠΌΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ» ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
Π³ΡΡΠΏΠΏ Π»ΡΠ΄Π΅ΠΉ ΠΈ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ²." -#: ../../Zotlabs/Module/Permcats.php:112 ../../Zotlabs/Lib/Apps.php:350 +#: ../../Zotlabs/Module/Permcats.php:112 ../../Zotlabs/Lib/Apps.php:371 msgid "Permission Categories" msgstr "ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΉ" @@ -4394,7 +4395,7 @@ msgid "Permission category name" msgstr "ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΉ" #: ../../Zotlabs/Module/Permcats.php:127 ../../Zotlabs/Module/Tokens.php:187 -#: ../../Zotlabs/Module/Connedit.php:900 +#: ../../Zotlabs/Module/Connedit.php:911 msgid "" "Some permissions may be inherited from your channel's <a href=\"settings" "\"><strong>privacy settings</strong></a>, which have higher priority than " @@ -4418,65 +4419,65 @@ msgstr "ΠΠ΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ." msgid "Invalid message" msgstr "ΠΠ΅Π²Π΅ΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅" -#: ../../Zotlabs/Module/Dreport.php:89 +#: ../../Zotlabs/Module/Dreport.php:90 msgid "no results" msgstr "ΠΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ." -#: ../../Zotlabs/Module/Dreport.php:103 +#: ../../Zotlabs/Module/Dreport.php:104 msgid "channel sync processed" msgstr "ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ°Π½Π°Π»Π° Π·Π°Π²Π΅ΡΡΠ΅Π½Π°" -#: ../../Zotlabs/Module/Dreport.php:107 +#: ../../Zotlabs/Module/Dreport.php:108 msgid "queued" msgstr "Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ" -#: ../../Zotlabs/Module/Dreport.php:111 +#: ../../Zotlabs/Module/Dreport.php:112 msgid "posted" msgstr "ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ" -#: ../../Zotlabs/Module/Dreport.php:115 +#: ../../Zotlabs/Module/Dreport.php:116 msgid "accepted for delivery" msgstr "ΠΏΡΠΈΠ½ΡΡΠΎ ΠΊ Π΄ΠΎΡΡΠ°Π²ΠΊΠ΅" -#: ../../Zotlabs/Module/Dreport.php:119 +#: ../../Zotlabs/Module/Dreport.php:120 msgid "updated" msgstr "ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ" -#: ../../Zotlabs/Module/Dreport.php:122 +#: ../../Zotlabs/Module/Dreport.php:123 msgid "update ignored" msgstr "ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ" -#: ../../Zotlabs/Module/Dreport.php:125 +#: ../../Zotlabs/Module/Dreport.php:126 msgid "permission denied" msgstr "Π΄ΠΎΡΡΡΠΏ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½" -#: ../../Zotlabs/Module/Dreport.php:129 +#: ../../Zotlabs/Module/Dreport.php:130 msgid "recipient not found" msgstr "ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½" -#: ../../Zotlabs/Module/Dreport.php:132 +#: ../../Zotlabs/Module/Dreport.php:133 msgid "mail recalled" msgstr "ΠΏΠΎΡΡΠ° ΠΎΡΠΎΠ·Π²Π°Π½Π°" -#: ../../Zotlabs/Module/Dreport.php:135 +#: ../../Zotlabs/Module/Dreport.php:136 msgid "duplicate mail received" msgstr "ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎ Π΄ΡΠ±Π»ΠΈΡΡΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅" -#: ../../Zotlabs/Module/Dreport.php:138 +#: ../../Zotlabs/Module/Dreport.php:139 msgid "mail delivered" msgstr "ΠΏΠΎΡΡΠ° Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½" -#: ../../Zotlabs/Module/Dreport.php:158 +#: ../../Zotlabs/Module/Dreport.php:159 #, php-format msgid "Delivery report for %1$s" msgstr "ΠΡΡΡΡ ΠΎ Π΄ΠΎΡΡΠ°Π²ΠΊΠ΅ Π΄Π»Ρ %1$s" -#: ../../Zotlabs/Module/Dreport.php:161 ../../Zotlabs/Widget/Wiki_pages.php:41 +#: ../../Zotlabs/Module/Dreport.php:162 ../../Zotlabs/Widget/Wiki_pages.php:41 #: ../../Zotlabs/Widget/Wiki_pages.php:98 msgid "Options" msgstr "ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ" -#: ../../Zotlabs/Module/Dreport.php:162 +#: ../../Zotlabs/Module/Dreport.php:163 msgid "Redeliver" msgstr "ΠΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ" @@ -4484,29 +4485,29 @@ msgstr "ΠΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ" msgid "No such group" msgstr "ΠΠ΅Ρ ΡΠ°ΠΊΠΎΠΉ Π³ΡΡΠΏΠΏΡ" -#: ../../Zotlabs/Module/Network.php:149 +#: ../../Zotlabs/Module/Network.php:156 msgid "No such channel" msgstr "ΠΠ΅Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π°" -#: ../../Zotlabs/Module/Network.php:164 ../../Zotlabs/Module/Channel.php:177 +#: ../../Zotlabs/Module/Network.php:171 ../../Zotlabs/Module/Channel.php:182 msgid "Search Results For:" msgstr "Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠΈΡΠΊΠ° Π΄Π»Ρ:" -#: ../../Zotlabs/Module/Network.php:194 ../../Zotlabs/Module/Display.php:80 -#: ../../Zotlabs/Module/Pubstream.php:94 ../../Zotlabs/Module/Channel.php:212 +#: ../../Zotlabs/Module/Network.php:201 ../../Zotlabs/Module/Display.php:80 +#: ../../Zotlabs/Module/Pubstream.php:94 ../../Zotlabs/Module/Channel.php:217 #: ../../Zotlabs/Module/Hq.php:134 msgid "Reset form" msgstr "ΠΡΠΈΡΡΠΈΡΡ ΡΠΎΡΠΌΡ" -#: ../../Zotlabs/Module/Network.php:233 +#: ../../Zotlabs/Module/Network.php:240 msgid "Privacy group is empty" msgstr "ΠΡΡΠΏΠΏΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΡΡΡΠ°" -#: ../../Zotlabs/Module/Network.php:243 +#: ../../Zotlabs/Module/Network.php:250 msgid "Privacy group: " msgstr "ΠΡΡΠΏΠΏΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ: " -#: ../../Zotlabs/Module/Network.php:316 +#: ../../Zotlabs/Module/Network.php:323 #: ../../extend/addon/hzaddons/redred/Mod_Redred.php:29 msgid "Invalid channel." msgstr "ΠΠ΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠ°Π½Π°Π»." @@ -4526,7 +4527,7 @@ msgid "" "A verification token was sent to your email address [%s]. Enter that token " "here to complete the account verification step. Please allow a few minutes " "for delivery, and check your spam folder if you do not see the message." -msgstr "ΠΡΠΎΠ²Π΅ΡΠΎΡΠ½ΡΠΉ ΡΠΎΠΊΠ΅Π½ Π±ΡΠ» Π²ΡΡΠ»Π½ Π½Π° Π²Π°Ρ Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ [%s]. ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΡΠΎΡ ΡΠΎΠΊΠ΅Π½ Π·Π΄Π΅ΡΡ Π΄Π»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΠ°ΠΏΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΡΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ½ΡΡ Π΄Π»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π²Π°ΡΡ ΠΏΠ°ΠΏΠΊΡ \"Π‘ΠΏΠ°ΠΌ\" Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΠΈΡΡΠΌΠ°." +msgstr "ΠΡΠΎΠ²Π΅ΡΠΎΡΠ½ΡΠΉ ΡΠΎΠΊΠ΅Π½ Π±ΡΠ» ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ Π½Π° Π²Π°Ρ Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ [%s]. ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΡΠΎΡ ΡΠΎΠΊΠ΅Π½ Π·Π΄Π΅ΡΡ Π΄Π»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΠ°ΠΏΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΡΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ½ΡΡ Π΄Π»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π²Π°ΡΡ ΠΏΠ°ΠΏΠΊΡ \"Π‘ΠΏΠ°ΠΌ\" Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΠΈΡΡΠΌΠ°." #: ../../Zotlabs/Module/Email_validation.php:38 msgid "Resend Email" @@ -4552,36 +4553,36 @@ msgstr "ΠΡΠΎΡΠΌΠΎΡΡ ΠΎΠ±ΡΠΈΠΉ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ²" msgid "network" msgstr "ΡΠ΅ΡΡ" -#: ../../Zotlabs/Module/Item.php:196 +#: ../../Zotlabs/Module/Item.php:341 msgid "Unable to locate original post." msgstr "ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ Π½Π°ΠΉΡΠΈ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ." -#: ../../Zotlabs/Module/Item.php:483 +#: ../../Zotlabs/Module/Item.php:628 msgid "Empty post discarded." msgstr "ΠΡΡΡΠ°Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½Π°." -#: ../../Zotlabs/Module/Item.php:892 +#: ../../Zotlabs/Module/Item.php:1037 msgid "Duplicate post suppressed." msgstr "ΠΠΎΠ΄Π°Π²Π»Π΅Π½Π° Π΄ΡΠ±Π»ΠΈΡΡΡΡΠ°ΡΡΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ." -#: ../../Zotlabs/Module/Item.php:1037 +#: ../../Zotlabs/Module/Item.php:1182 msgid "System error. Post not saved." msgstr "Π‘ΠΈΡΡΠ΅ΠΌΠ½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°. ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π½Π΅ ΡΠΎΡ
ΡΠ°Π½Π΅Π½Π°." -#: ../../Zotlabs/Module/Item.php:1073 +#: ../../Zotlabs/Module/Item.php:1218 msgid "Your comment is awaiting approval." msgstr "ΠΠ°Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ." -#: ../../Zotlabs/Module/Item.php:1190 +#: ../../Zotlabs/Module/Item.php:1335 msgid "Unable to obtain post information from database." msgstr "ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
" -#: ../../Zotlabs/Module/Item.php:1197 +#: ../../Zotlabs/Module/Item.php:1342 #, php-format msgid "You have reached your limit of %1$.0f top level posts." msgstr "ΠΡ Π΄ΠΎΡΡΠΈΠ³Π»ΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π² %1$.0f ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ." -#: ../../Zotlabs/Module/Item.php:1204 +#: ../../Zotlabs/Module/Item.php:1349 #, php-format msgid "You have reached your limit of %1$.0f webpages." msgstr "ΠΡ Π΄ΠΎΡΡΠΈΠ³Π»ΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π² %1$.0f ΡΡΡΠ°Π½ΠΈΡ." @@ -4597,16 +4598,16 @@ msgstr "ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ msgid "Public access denied." msgstr "ΠΡΠ±Π»ΠΈΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½." -#: ../../Zotlabs/Module/Display.php:374 ../../Zotlabs/Module/Channel.php:468 +#: ../../Zotlabs/Module/Display.php:374 ../../Zotlabs/Module/Channel.php:476 msgid "" "You must enable javascript for your browser to be able to view this content." msgstr "ΠΠ»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΡΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π² Π²Π°ΡΠ΅ΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π²ΠΊΠ»ΡΡΡΠ½ JavaScript" -#: ../../Zotlabs/Module/Display.php:393 +#: ../../Zotlabs/Module/Display.php:392 msgid "Article" msgstr "Π‘ΡΠ°ΡΡΡ" -#: ../../Zotlabs/Module/Display.php:445 +#: ../../Zotlabs/Module/Display.php:444 msgid "Item has been removed." msgstr "ΠΠ»Π΅ΠΌΠ΅Π½Ρ Π±ΡΠ» ΡΠ΄Π°Π»ΡΠ½." @@ -4614,35 +4615,35 @@ msgstr "ΠΠ»Π΅ΠΌΠ΅Π½Ρ Π±ΡΠ» ΡΠ΄Π°Π»ΡΠ½." msgid "sent you a private message" msgstr "ΠΎΡΠΏΡΠ°Π²ΠΈΠ» Π²Π°ΠΌ Π»ΠΈΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅" -#: ../../Zotlabs/Module/Ping.php:392 +#: ../../Zotlabs/Module/Ping.php:394 msgid "added your channel" msgstr "Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π²Π°Ρ ΠΊΠ°Π½Π°Π»" -#: ../../Zotlabs/Module/Ping.php:417 +#: ../../Zotlabs/Module/Ping.php:419 msgid "requires approval" msgstr "Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅" -#: ../../Zotlabs/Module/Ping.php:427 +#: ../../Zotlabs/Module/Ping.php:429 msgid "g A l F d" msgstr "g A l F d" -#: ../../Zotlabs/Module/Ping.php:445 +#: ../../Zotlabs/Module/Ping.php:447 msgid "[today]" msgstr "[ΡΠ΅Π³ΠΎΠ΄Π½Ρ]" -#: ../../Zotlabs/Module/Ping.php:455 +#: ../../Zotlabs/Module/Ping.php:457 msgid "posted an event" msgstr "ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ" -#: ../../Zotlabs/Module/Ping.php:489 +#: ../../Zotlabs/Module/Ping.php:491 msgid "shared a file with you" msgstr "Ρ Π²Π°ΠΌΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΠ»ΠΈΡΡ ΡΠ°ΠΉΠ»ΠΎΠΌ" -#: ../../Zotlabs/Module/Ping.php:671 +#: ../../Zotlabs/Module/Ping.php:673 msgid "Private forum" msgstr "Π§Π°ΡΡΠ½ΡΠΉ ΡΠΎΡΡΠΌ" -#: ../../Zotlabs/Module/Ping.php:671 +#: ../../Zotlabs/Module/Ping.php:673 msgid "Public forum" msgstr "ΠΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΡΠΎΡΡΠΌ" @@ -4909,49 +4910,49 @@ msgstr "Π£Π΄Π°Π»ΠΈΡΡ Π²ΡΡ" msgid "Sorry! Editing of recurrent events is not yet implemented." msgstr "ΠΡΠΎΡΡΠΈΡΠ΅, Π½ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΡ
ΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΏΠΎΠΊΠ° Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ." -#: ../../Zotlabs/Module/Cdav.php:1216 ../../Zotlabs/Module/Connedit.php:913 +#: ../../Zotlabs/Module/Cdav.php:1216 ../../Zotlabs/Module/Connedit.php:924 msgid "Organisation" msgstr "ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ" -#: ../../Zotlabs/Module/Cdav.php:1217 ../../Zotlabs/Module/Connedit.php:914 +#: ../../Zotlabs/Module/Cdav.php:1217 ../../Zotlabs/Module/Connedit.php:925 msgid "Title" msgstr "ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅" #: ../../Zotlabs/Module/Cdav.php:1218 ../../Zotlabs/Module/Profiles.php:786 -#: ../../Zotlabs/Module/Connedit.php:915 +#: ../../Zotlabs/Module/Connedit.php:926 msgid "Phone" msgstr "Π’Π΅Π»Π΅ΡΠΎΠ½" #: ../../Zotlabs/Module/Cdav.php:1220 ../../Zotlabs/Module/Profiles.php:788 -#: ../../Zotlabs/Module/Connedit.php:917 +#: ../../Zotlabs/Module/Connedit.php:928 msgid "Instant messenger" msgstr "ΠΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅Ρ" #: ../../Zotlabs/Module/Cdav.php:1221 ../../Zotlabs/Module/Profiles.php:789 -#: ../../Zotlabs/Module/Connedit.php:918 +#: ../../Zotlabs/Module/Connedit.php:929 msgid "Website" msgstr "ΠΠ΅Π±-ΡΠ°ΠΉΡ" #: ../../Zotlabs/Module/Cdav.php:1222 ../../Zotlabs/Module/Profiles.php:502 #: ../../Zotlabs/Module/Profiles.php:790 ../../Zotlabs/Module/Locs.php:118 #: ../../Zotlabs/Module/Admin/Channels.php:160 -#: ../../Zotlabs/Module/Connedit.php:919 +#: ../../Zotlabs/Module/Connedit.php:930 msgid "Address" msgstr "ΠΠ΄ΡΠ΅Ρ" #: ../../Zotlabs/Module/Cdav.php:1223 ../../Zotlabs/Module/Profiles.php:791 -#: ../../Zotlabs/Module/Connedit.php:920 +#: ../../Zotlabs/Module/Connedit.php:931 msgid "Note" msgstr "ΠΠ°ΠΌΠ΅ΡΠΊΠ°" #: ../../Zotlabs/Module/Cdav.php:1228 ../../Zotlabs/Module/Profiles.php:796 -#: ../../Zotlabs/Module/Connedit.php:925 +#: ../../Zotlabs/Module/Connedit.php:936 #: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:368 msgid "Add Contact" msgstr "ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡ" #: ../../Zotlabs/Module/Cdav.php:1229 ../../Zotlabs/Module/Profiles.php:797 -#: ../../Zotlabs/Module/Connedit.php:926 +#: ../../Zotlabs/Module/Connedit.php:937 msgid "Add Field" msgstr "ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠΎΠ»Π΅" @@ -4959,36 +4960,36 @@ msgstr "ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠΎΠ»Π΅" #: ../../Zotlabs/Module/Oauth.php:53 ../../Zotlabs/Module/Oauth.php:137 #: ../../Zotlabs/Module/Oauth2.php:58 ../../Zotlabs/Module/Oauth2.php:144 #: ../../Zotlabs/Module/Admin/Addons.php:453 -#: ../../Zotlabs/Module/Connedit.php:928 ../../Zotlabs/Lib/Apps.php:513 +#: ../../Zotlabs/Module/Connedit.php:939 ../../Zotlabs/Lib/Apps.php:534 msgid "Update" msgstr "ΠΠ±Π½ΠΎΠ²ΠΈΡΡ" -#: ../../Zotlabs/Module/Cdav.php:1234 ../../Zotlabs/Module/Connedit.php:931 +#: ../../Zotlabs/Module/Cdav.php:1234 ../../Zotlabs/Module/Connedit.php:942 msgid "P.O. Box" msgstr "Π°Π±ΠΎΠ½Π΅Π½ΡΡΠΊΠΈΠΉ ΡΡΠΈΠΊ" -#: ../../Zotlabs/Module/Cdav.php:1235 ../../Zotlabs/Module/Connedit.php:932 +#: ../../Zotlabs/Module/Cdav.php:1235 ../../Zotlabs/Module/Connedit.php:943 msgid "Additional" msgstr "ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ" -#: ../../Zotlabs/Module/Cdav.php:1236 ../../Zotlabs/Module/Connedit.php:933 +#: ../../Zotlabs/Module/Cdav.php:1236 ../../Zotlabs/Module/Connedit.php:944 msgid "Street" msgstr "Π£Π»ΠΈΡΠ°" -#: ../../Zotlabs/Module/Cdav.php:1237 ../../Zotlabs/Module/Connedit.php:934 +#: ../../Zotlabs/Module/Cdav.php:1237 ../../Zotlabs/Module/Connedit.php:945 msgid "Locality" msgstr "ΠΠ°ΡΠ΅Π»ΡΠ½Π½ΡΠΉ ΠΏΡΠ½ΠΊΡ" -#: ../../Zotlabs/Module/Cdav.php:1238 ../../Zotlabs/Module/Connedit.php:935 +#: ../../Zotlabs/Module/Cdav.php:1238 ../../Zotlabs/Module/Connedit.php:946 msgid "Region" msgstr "Π Π΅Π³ΠΈΠΎΠ½" -#: ../../Zotlabs/Module/Cdav.php:1239 ../../Zotlabs/Module/Connedit.php:936 +#: ../../Zotlabs/Module/Cdav.php:1239 ../../Zotlabs/Module/Connedit.php:947 msgid "ZIP Code" msgstr "ΠΠ½Π΄Π΅ΠΊΡ" #: ../../Zotlabs/Module/Cdav.php:1240 ../../Zotlabs/Module/Profiles.php:757 -#: ../../Zotlabs/Module/Connedit.php:937 +#: ../../Zotlabs/Module/Connedit.php:948 msgid "Country" msgstr "Π‘ΡΡΠ°Π½Π°" @@ -5020,6 +5021,15 @@ msgstr "vCard" msgid "You must be logged in to see this page." msgstr "ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°ΡΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ." +#: ../../Zotlabs/Module/Share.php:103 ../../Zotlabs/Lib/Activity.php:1473 +#, php-format +msgid "🔁 Repeated %1$s's %2$s" +msgstr "🔁 ΠΠΎΠ²ΡΠΎΡΠΈΠ» %1$s %2$s" + +#: ../../Zotlabs/Module/Share.php:119 +msgid "Post repeated" +msgstr "ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ" + #: ../../Zotlabs/Module/Notify.php:61 ../../Zotlabs/Module/Notifications.php:55 msgid "No more system notifications." msgstr "ΠΠ΅Ρ Π½ΠΎΠ²ΡΡ
ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠΉ ΡΠΈΡΡΠ΅ΠΌΡ." @@ -5542,18 +5552,18 @@ msgstr "ΠΠΎΠΊΠ°Π·Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΏΠ΅ΡΠ²ΡΠΌΠΈ" msgid "Show Oldest First" msgstr "ΠΠΎΠΊΠ°Π·Π°ΡΡ ΡΡΠ°ΡΡΠ΅ ΠΏΠ΅ΡΠ²ΡΠΌΠΈ" -#: ../../Zotlabs/Module/Photos.php:826 ../../Zotlabs/Module/Photos.php:1365 -#: ../../Zotlabs/Module/Embedphotos.php:140 +#: ../../Zotlabs/Module/Photos.php:826 ../../Zotlabs/Module/Photos.php:1374 +#: ../../Zotlabs/Module/Embedphotos.php:148 #: ../../Zotlabs/Widget/Portfolio.php:87 ../../Zotlabs/Widget/Album.php:78 msgid "View Photo" msgstr "ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΡ" -#: ../../Zotlabs/Module/Photos.php:857 ../../Zotlabs/Module/Embedphotos.php:156 +#: ../../Zotlabs/Module/Photos.php:857 ../../Zotlabs/Module/Embedphotos.php:164 #: ../../Zotlabs/Widget/Portfolio.php:108 ../../Zotlabs/Widget/Album.php:95 msgid "Edit Album" msgstr "Π Π΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π€ΠΎΡΠΎΠ°Π»ΡΠ±ΠΎΠΌ" -#: ../../Zotlabs/Module/Photos.php:859 ../../Zotlabs/Module/Photos.php:1396 +#: ../../Zotlabs/Module/Photos.php:859 ../../Zotlabs/Module/Photos.php:1405 msgid "Add Photos" msgstr "ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ" @@ -5623,42 +5633,42 @@ msgstr "ΠΡΠΈΠΌΠ΅Ρ: @bob, @Barbara_Jensen, @jim@example.com" msgid "Flag as adult in album view" msgstr "ΠΠΎΠΌΠ΅ΡΠΈΡΡ ΠΊΠ°ΠΊ Π°Π»ΡΠ±ΠΎΠΌ \"Π΄Π»Ρ Π²Π·ΡΠΎΡΠ»ΡΡ
\"" -#: ../../Zotlabs/Module/Photos.php:1115 ../../Zotlabs/Lib/ThreadItem.php:292 +#: ../../Zotlabs/Module/Photos.php:1115 ../../Zotlabs/Lib/ThreadItem.php:303 msgid "I like this (toggle)" msgstr "ΠΌΠ½Π΅ ΡΡΠΎ Π½ΡΠ°Π²ΠΈΡΡΡ (ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅)" -#: ../../Zotlabs/Module/Photos.php:1116 ../../Zotlabs/Lib/ThreadItem.php:293 +#: ../../Zotlabs/Module/Photos.php:1116 ../../Zotlabs/Lib/ThreadItem.php:304 msgid "I don't like this (toggle)" msgstr "ΠΌΠ½Π΅ ΡΡΠΎ Π½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ (ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅)" -#: ../../Zotlabs/Module/Photos.php:1134 ../../Zotlabs/Module/Photos.php:1252 -#: ../../Zotlabs/Lib/ThreadItem.php:770 +#: ../../Zotlabs/Module/Photos.php:1135 ../../Zotlabs/Module/Photos.php:1254 +#: ../../Zotlabs/Lib/ThreadItem.php:788 msgid "This is you" msgstr "ΠΡΠΎ Π²Ρ" -#: ../../Zotlabs/Module/Photos.php:1171 ../../Zotlabs/Module/Photos.php:1183 -#: ../../Zotlabs/Lib/ThreadItem.php:217 ../../Zotlabs/Lib/ThreadItem.php:229 +#: ../../Zotlabs/Module/Photos.php:1173 ../../Zotlabs/Module/Photos.php:1185 +#: ../../Zotlabs/Lib/ThreadItem.php:228 ../../Zotlabs/Lib/ThreadItem.php:240 msgid "View all" msgstr "ΠΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΡΠ΅" -#: ../../Zotlabs/Module/Photos.php:1280 +#: ../../Zotlabs/Module/Photos.php:1288 msgid "Photo Tools" msgstr "Π€ΠΎΡΠΎ-ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ" -#: ../../Zotlabs/Module/Photos.php:1289 +#: ../../Zotlabs/Module/Photos.php:1297 msgid "In This Photo:" msgstr "ΠΠ° ΡΡΠΎΠΉ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ:" -#: ../../Zotlabs/Module/Photos.php:1294 +#: ../../Zotlabs/Module/Photos.php:1302 msgid "Map" msgstr "ΠΠ°ΡΡΠ°" -#: ../../Zotlabs/Module/Photos.php:1302 ../../Zotlabs/Lib/ThreadItem.php:435 +#: ../../Zotlabs/Module/Photos.php:1310 ../../Zotlabs/Lib/ThreadItem.php:453 msgctxt "noun" msgid "Likes" msgstr "ΠΡΠ°Π²ΠΈΡΡΡ" -#: ../../Zotlabs/Module/Photos.php:1303 ../../Zotlabs/Lib/ThreadItem.php:436 +#: ../../Zotlabs/Module/Photos.php:1311 ../../Zotlabs/Lib/ThreadItem.php:454 msgctxt "noun" msgid "Dislikes" msgstr "ΠΠ΅ Π½ΡΠ°Π²ΠΈΡΡΡ" @@ -5815,7 +5825,7 @@ msgid "Name of application" msgstr "ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ" #: ../../Zotlabs/Module/Oauth.php:114 ../../Zotlabs/Module/Oauth.php:140 -#: ../../extend/addon/hzaddons/twitter/twitter.php:784 +#: ../../extend/addon/hzaddons/twitter/twitter.php:614 #: ../../extend/addon/hzaddons/statusnet/statusnet.php:596 msgid "Consumer Key" msgstr "ΠΠ»ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°" @@ -5827,7 +5837,7 @@ msgstr "Π‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ - ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ #: ../../Zotlabs/Module/Oauth.php:115 ../../Zotlabs/Module/Oauth.php:141 #: ../../Zotlabs/Module/Oauth2.php:119 ../../Zotlabs/Module/Oauth2.php:147 -#: ../../extend/addon/hzaddons/twitter/twitter.php:785 +#: ../../extend/addon/hzaddons/twitter/twitter.php:615 #: ../../extend/addon/hzaddons/statusnet/statusnet.php:595 msgid "Consumer Secret" msgstr "ΠΠΎΠ΄ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°" @@ -6025,7 +6035,7 @@ msgid "The unmoderated public stream of this hub" msgstr "ΠΠ΅ΠΌΠΎΠ΄Π΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Ρ ΡΡΠΎΠ³ΠΎ Ρ
Π°Π±Π°" #: ../../Zotlabs/Module/Pubstream.php:109 -#: ../../Zotlabs/Widget/Notifications.php:142 ../../Zotlabs/Lib/Apps.php:352 +#: ../../Zotlabs/Widget/Notifications.php:142 ../../Zotlabs/Lib/Apps.php:373 msgid "Public Stream" msgstr "ΠΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ" @@ -6319,21 +6329,21 @@ msgid "" "check your email for further instructions." msgstr "ΠΡΠΎΡ ΡΠ°ΠΉΡ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π°Π΄ΡΠ΅ΡΠ° ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ. ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΠΎΡΠΌΡ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π²Π°Ρ ΠΏΠΎΡΡΠΎΠ²ΡΠΉ ΡΡΠΈΠΊ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΡ
ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ." -#: ../../Zotlabs/Module/Apporder.php:44 +#: ../../Zotlabs/Module/Apporder.php:47 msgid "Change Order of Pinned Navbar Apps" msgstr "ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ" -#: ../../Zotlabs/Module/Apporder.php:44 +#: ../../Zotlabs/Module/Apporder.php:47 msgid "Change Order of App Tray Apps" msgstr "ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Π»ΠΎΡΠΊΠ΅" -#: ../../Zotlabs/Module/Apporder.php:45 +#: ../../Zotlabs/Module/Apporder.php:48 msgid "" "Use arrows to move the corresponding app left (top) or right (bottom) in the " "navbar" msgstr "ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΡΠ΅Π»ΠΊΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²Π»Π΅Π²ΠΎ (Π²Π²Π΅ΡΡ
) ΠΈΠ»ΠΈ Π²ΠΏΡΠ°Π²ΠΎ (Π²Π½ΠΈΠ·) Π² ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ" -#: ../../Zotlabs/Module/Apporder.php:45 +#: ../../Zotlabs/Module/Apporder.php:48 msgid "Use arrows to move the corresponding app up or down in the app tray" msgstr "ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΡΠ΅Π»ΠΊΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²Π²Π΅ΡΡ
ΠΈΠ»ΠΈ Π²Π½ΠΈΠ· Π² Π»ΠΎΡΠΊΠ΅" @@ -6341,7 +6351,7 @@ msgstr "ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΡΠ΅Π»ΠΊΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡ msgid "Documentation Search" msgstr "ΠΠΎΠΈΡΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ" -#: ../../Zotlabs/Module/Help.php:81 ../../Zotlabs/Module/Group.php:145 +#: ../../Zotlabs/Module/Help.php:81 ../../Zotlabs/Module/Group.php:155 msgid "Members" msgstr "Π£ΡΠ°ΡΡΠ½ΠΈΠΊΠΈ" @@ -6475,7 +6485,7 @@ msgstr "ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠΌΠΏΠΎΡΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΈΠ· Π΄ΡΡΠ³ msgid "*" msgstr "" -#: ../../Zotlabs/Module/Sources.php:107 ../../Zotlabs/Lib/Apps.php:344 +#: ../../Zotlabs/Module/Sources.php:107 ../../Zotlabs/Lib/Apps.php:365 msgid "Channel Sources" msgstr "ΠΡΡΠΎΡΠ½ΠΈΠΊΠΈ ΠΊΠ°Π½Π°Π»Π°" @@ -6870,39 +6880,47 @@ msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΉ" msgid "Profiles Settings" msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΎΡΠΈΠ»Π΅ΠΉ" -#: ../../Zotlabs/Module/Settings/Featured.php:23 +#: ../../Zotlabs/Module/Settings/Featured.php:27 msgid "Affinity Slider settings updated." msgstr "ΠΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ»Π°ΠΉΠ΄Π΅ΡΠ° cΡ
ΠΎΠ΄ΡΡΠ²Π°." -#: ../../Zotlabs/Module/Settings/Featured.php:38 +#: ../../Zotlabs/Module/Settings/Featured.php:42 msgid "No feature settings configured" msgstr "ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π½Π΅ Π½Π°ΡΡΡΠΎΠ΅Π½Ρ" -#: ../../Zotlabs/Module/Settings/Featured.php:45 +#: ../../Zotlabs/Module/Settings/Featured.php:49 msgid "Default maximum affinity level" msgstr "ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΡΡ
ΠΎΠ΄ΡΡΠ²Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ." -#: ../../Zotlabs/Module/Settings/Featured.php:45 +#: ../../Zotlabs/Module/Settings/Featured.php:49 msgid "0-99 default 99" msgstr "0-99 (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 99)" -#: ../../Zotlabs/Module/Settings/Featured.php:50 +#: ../../Zotlabs/Module/Settings/Featured.php:54 msgid "Default minimum affinity level" msgstr "ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΡΡ
ΠΎΠ΄ΡΡΠ²Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ." -#: ../../Zotlabs/Module/Settings/Featured.php:50 +#: ../../Zotlabs/Module/Settings/Featured.php:54 msgid "0-99 - default 0" msgstr "0-99 (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 0)" -#: ../../Zotlabs/Module/Settings/Featured.php:54 +#: ../../Zotlabs/Module/Settings/Featured.php:58 +msgid "Always reset on new page visit." +msgstr "ΠΡΠ΅Π³Π΄Π° ΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡ ΠΏΡΠΈ ΠΏΠΎΡΠ΅ΡΠ΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ." + +#: ../../Zotlabs/Module/Settings/Featured.php:58 +msgid "default: yes" +msgstr "ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: Π΄Π°" + +#: ../../Zotlabs/Module/Settings/Featured.php:62 msgid "Affinity Slider Settings" msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ»Π°ΠΉΠ΄Π΅ΡΠ° ΡΡ
ΠΎΠ΄ΡΡΠ²Π°" -#: ../../Zotlabs/Module/Settings/Featured.php:67 +#: ../../Zotlabs/Module/Settings/Featured.php:75 msgid "Addon Settings" msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ" -#: ../../Zotlabs/Module/Settings/Featured.php:68 +#: ../../Zotlabs/Module/Settings/Featured.php:76 msgid "Please save/submit changes to any panel before opening another." msgstr "ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ° ΡΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ / ΠΎΡΠΏΡΠ°Π²ΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΡΠΊΡΡΠ²Π°ΡΡ Π΄ΡΡΠ³ΡΡ." @@ -7395,7 +7413,7 @@ msgstr "Π Π΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π±Π»ΠΎΠΊ" msgid "No service class restrictions found." msgstr "ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΠΊΠ»Π°ΡΡΠ° ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ." -#: ../../Zotlabs/Module/Channel.php:160 +#: ../../Zotlabs/Module/Channel.php:165 msgid "Insufficient permissions. Request redirected to profile page." msgstr "ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠ°Π². ΠΠ°ΠΏΡΠΎΡ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΡΠΎΡΠΈΠ»Ρ." @@ -7473,75 +7491,75 @@ msgstr "ΠΠ΅Ρ Π½Π° ΠΌΠ΅ΡΡΠ΅" msgid "Online" msgstr "Π ΡΠ΅ΡΠΈ" -#: ../../Zotlabs/Module/Like.php:54 +#: ../../Zotlabs/Module/Like.php:56 msgid "Like/Dislike" msgstr "ΠΡΠ°Π²ΠΈΡΡΡ / Π½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ" -#: ../../Zotlabs/Module/Like.php:59 +#: ../../Zotlabs/Module/Like.php:61 msgid "This action is restricted to members." msgstr "ΠΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ°ΠΌ." -#: ../../Zotlabs/Module/Like.php:60 +#: ../../Zotlabs/Module/Like.php:62 msgid "" "Please <a href=\"rmagic\">login with your $Projectname ID</a> or <a href=" "\"register\">register as a new $Projectname member</a> to continue." msgstr "ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π΄Π»Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ <a href=\"rmagic\"> Π²ΠΎΠΉΠ΄ΠΈΡΠ΅ Ρ Π²Π°ΡΠΈΠΌ $Projectname ID</a> ΠΈΠ»ΠΈ <a href=\"register\">Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΠ΅ΡΡ ΠΊΠ°ΠΊ Π½ΠΎΠ²ΡΠΉ ΡΡΠ°ΡΡΠ½ΠΈΠΊ $Projectname</a>." -#: ../../Zotlabs/Module/Like.php:109 ../../Zotlabs/Module/Like.php:135 -#: ../../Zotlabs/Module/Like.php:173 +#: ../../Zotlabs/Module/Like.php:111 ../../Zotlabs/Module/Like.php:137 +#: ../../Zotlabs/Module/Like.php:175 msgid "Invalid request." msgstr "ΠΠ΅Π²Π΅ΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ." -#: ../../Zotlabs/Module/Like.php:150 +#: ../../Zotlabs/Module/Like.php:152 msgid "thing" msgstr "ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ" -#: ../../Zotlabs/Module/Like.php:196 +#: ../../Zotlabs/Module/Like.php:198 msgid "Channel unavailable." msgstr "ΠΠ°Π½Π°Π» Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½." -#: ../../Zotlabs/Module/Like.php:244 +#: ../../Zotlabs/Module/Like.php:246 msgid "Previous action reversed." msgstr "ΠΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΎΡΠΌΠ΅Π½Π΅Π½ΠΎ." -#: ../../Zotlabs/Module/Like.php:445 +#: ../../Zotlabs/Module/Like.php:451 #, php-format msgid "%1$s agrees with %2$s's %3$s" msgstr "%1$s ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ %2$s %3$s" -#: ../../Zotlabs/Module/Like.php:447 +#: ../../Zotlabs/Module/Like.php:453 #, php-format msgid "%1$s doesn't agree with %2$s's %3$s" msgstr "%1$s Π½Π΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ %2$s %3$s" -#: ../../Zotlabs/Module/Like.php:449 +#: ../../Zotlabs/Module/Like.php:455 #, php-format msgid "%1$s abstains from a decision on %2$s's %3$s" msgstr "%1$s Π²ΠΎΠ·Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΎΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎ %2$s%3$s" -#: ../../Zotlabs/Module/Like.php:451 -#: ../../extend/addon/hzaddons/diaspora/Receiver.php:2120 +#: ../../Zotlabs/Module/Like.php:457 +#: ../../extend/addon/hzaddons/diaspora/Receiver.php:2137 #, php-format msgid "%1$s is attending %2$s's %3$s" msgstr "%1$s ΠΏΠΎΡΠ΅ΡΠ°Π΅Ρ %2$s%3$s" -#: ../../Zotlabs/Module/Like.php:453 -#: ../../extend/addon/hzaddons/diaspora/Receiver.php:2122 +#: ../../Zotlabs/Module/Like.php:459 +#: ../../extend/addon/hzaddons/diaspora/Receiver.php:2139 #, php-format msgid "%1$s is not attending %2$s's %3$s" msgstr "%1$s Π½Π΅ ΠΏΠΎΡΠ΅ΡΠ°Π΅Ρ %2$s%3$s" -#: ../../Zotlabs/Module/Like.php:455 -#: ../../extend/addon/hzaddons/diaspora/Receiver.php:2124 +#: ../../Zotlabs/Module/Like.php:461 +#: ../../extend/addon/hzaddons/diaspora/Receiver.php:2141 #, php-format msgid "%1$s may attend %2$s's %3$s" msgstr "%1$s ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΠ΅ΡΠΈΡΡ %2$s%3$s" -#: ../../Zotlabs/Module/Like.php:566 +#: ../../Zotlabs/Module/Like.php:572 msgid "Action completed." msgstr "ΠΠ΅ΠΉΡΡΠ²ΠΈΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΎ." -#: ../../Zotlabs/Module/Like.php:567 +#: ../../Zotlabs/Module/Like.php:573 msgid "Thank you." msgstr "Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ." @@ -7800,7 +7818,7 @@ msgid "" msgstr "ΠΠ°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» \"install/schema_xxx.sql\" Π²ΡΡΡΠ½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
." #: ../../Zotlabs/Module/Setup.php:198 ../../Zotlabs/Module/Setup.php:262 -#: ../../Zotlabs/Module/Setup.php:756 +#: ../../Zotlabs/Module/Setup.php:761 msgid "Please see the file \"install/INSTALL.txt\"." msgstr "ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ \"install/INSTALL.txt\"." @@ -7944,229 +7962,235 @@ msgstr "ΠΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎ msgid "PHP register_argc_argv" msgstr "" -#: ../../Zotlabs/Module/Setup.php:446 +#: ../../Zotlabs/Module/Setup.php:448 +msgid "" +"This is not sufficient to upload larger images or files. You should be able " +"to upload at least 4 MB at once." +msgstr "ΠΡΠΎΠ³ΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π±ΠΎΠ»ΡΡΠΈΡ
ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ 4 ΠΠ± Π·Π° ΡΠ°Π·." + +#: ../../Zotlabs/Module/Setup.php:450 #, php-format msgid "" "Your max allowed total upload size is set to %s. Maximum size of one file to " "upload is set to %s. You are allowed to upload up to %d files at once." msgstr "ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·ΡΠ΅ΡΡΠ½Π½ΡΠΉ ΠΎΠ±ΡΠΈΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π·Π°Π³ΡΡΠ·ΠΎΠΊ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π² %s. ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π² %s. ΠΠ°ΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π΄ΠΎ %d ΡΠ°ΠΉΠ»ΠΎΠ² Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΡΠΌ." -#: ../../Zotlabs/Module/Setup.php:451 +#: ../../Zotlabs/Module/Setup.php:456 msgid "You can adjust these settings in the server php.ini file." msgstr "ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π² ΡΠ°ΠΉΠ»Π΅ php.ini Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅." -#: ../../Zotlabs/Module/Setup.php:453 +#: ../../Zotlabs/Module/Setup.php:458 msgid "PHP upload limits" msgstr "ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π² PHP" -#: ../../Zotlabs/Module/Setup.php:476 +#: ../../Zotlabs/Module/Setup.php:481 msgid "" "Error: the \"openssl_pkey_new\" function on this system is not able to " "generate encryption keys" msgstr "ΠΡΠΈΠ±ΠΊΠ°: ΡΡΠ½ΠΊΡΠΈΡ \"openssl_pkey_new\" Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ" -#: ../../Zotlabs/Module/Setup.php:477 +#: ../../Zotlabs/Module/Setup.php:482 msgid "" "If running under Windows, please see \"http://www.php.net/manual/en/openssl." "installation.php\"." msgstr "ΠΡΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ ΠΏΠΎΠ΄ Windows, ΡΠΌ. \"http://www.php.net/manual/en/openssl.installation.php\"." -#: ../../Zotlabs/Module/Setup.php:480 +#: ../../Zotlabs/Module/Setup.php:485 msgid "Generate encryption keys" msgstr "ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ" -#: ../../Zotlabs/Module/Setup.php:497 +#: ../../Zotlabs/Module/Setup.php:502 msgid "libCurl PHP module" msgstr "ΠΌΠΎΠ΄ΡΠ»Ρ PHP libcURL" -#: ../../Zotlabs/Module/Setup.php:498 +#: ../../Zotlabs/Module/Setup.php:503 msgid "GD graphics PHP module" msgstr "ΠΌΠΎΠ΄ΡΠ»Ρ Π³ΡΠ°ΡΠΈΠΊΠΈ PHP GD" -#: ../../Zotlabs/Module/Setup.php:499 +#: ../../Zotlabs/Module/Setup.php:504 msgid "OpenSSL PHP module" msgstr "ΠΌΠΎΠ΄ΡΠ»Ρ PHP OpenSSL" -#: ../../Zotlabs/Module/Setup.php:500 +#: ../../Zotlabs/Module/Setup.php:505 msgid "PDO database PHP module" msgstr "ΠΌΠΎΠ΄ΡΠ»Ρ Π±Π°Π· Π΄Π°Π½Π½ΡΡ
PHP PDO" -#: ../../Zotlabs/Module/Setup.php:501 +#: ../../Zotlabs/Module/Setup.php:506 msgid "mb_string PHP module" msgstr "ΠΌΠΎΠ΄ΡΠ»Ρ PHP mb_string" -#: ../../Zotlabs/Module/Setup.php:502 +#: ../../Zotlabs/Module/Setup.php:507 msgid "xml PHP module" msgstr "ΠΌΠΎΠ΄ΡΠ»Ρ PHP xml" -#: ../../Zotlabs/Module/Setup.php:503 +#: ../../Zotlabs/Module/Setup.php:508 msgid "zip PHP module" msgstr "ΠΌΠΎΠ΄ΡΠ»Ρ PHP zip" -#: ../../Zotlabs/Module/Setup.php:507 ../../Zotlabs/Module/Setup.php:509 +#: ../../Zotlabs/Module/Setup.php:512 ../../Zotlabs/Module/Setup.php:514 msgid "Apache mod_rewrite module" msgstr "ΠΌΠΎΠ΄ΡΠ»Ρ Apache mod_rewrite" -#: ../../Zotlabs/Module/Setup.php:507 +#: ../../Zotlabs/Module/Setup.php:512 msgid "" "Error: Apache webserver mod-rewrite module is required but not installed." msgstr "ΠΡΠΈΠ±ΠΊΠ°: ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ mod_rewrite Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ° Apache Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½." -#: ../../Zotlabs/Module/Setup.php:513 ../../Zotlabs/Module/Setup.php:516 +#: ../../Zotlabs/Module/Setup.php:518 ../../Zotlabs/Module/Setup.php:521 msgid "exec" msgstr "" -#: ../../Zotlabs/Module/Setup.php:513 +#: ../../Zotlabs/Module/Setup.php:518 msgid "" "Error: exec is required but is either not installed or has been disabled in " "php.ini" msgstr "ΠΡΠΈΠ±ΠΊΠ°: exec ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΈΠ»ΠΈ Π±ΡΠ» ΠΎΡΠΊΠ»ΡΡΡΠ½ Π² php.ini" -#: ../../Zotlabs/Module/Setup.php:519 ../../Zotlabs/Module/Setup.php:522 +#: ../../Zotlabs/Module/Setup.php:524 ../../Zotlabs/Module/Setup.php:527 msgid "shell_exec" msgstr "" -#: ../../Zotlabs/Module/Setup.php:519 +#: ../../Zotlabs/Module/Setup.php:524 msgid "" "Error: shell_exec is required but is either not installed or has been " "disabled in php.ini" msgstr "ΠΡΠΈΠ±ΠΊΠ°: shell_exec ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΈΠ»ΠΈ Π±ΡΠ» ΠΎΡΠΊΠ»ΡΡΡΠ½ Π² php.ini" -#: ../../Zotlabs/Module/Setup.php:527 +#: ../../Zotlabs/Module/Setup.php:532 msgid "Error: libCURL PHP module required but not installed." msgstr "ΠΡΠΈΠ±ΠΊΠ°: ΠΌΠΎΠ΄ΡΠ»Ρ PHP libΡURL ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½" -#: ../../Zotlabs/Module/Setup.php:531 +#: ../../Zotlabs/Module/Setup.php:536 msgid "" "Error: GD PHP module with JPEG support or ImageMagick graphics library " "required but not installed." msgstr "ΠΡΠΈΠ±ΠΊΠ°: ΠΌΠΎΠ΄ΡΠ»Ρ PHP GD Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ JPEG ΠΈΠ»ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ImageMagick ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°" -#: ../../Zotlabs/Module/Setup.php:535 +#: ../../Zotlabs/Module/Setup.php:540 msgid "Error: openssl PHP module required but not installed." msgstr "ΠΡΠΈΠ±ΠΊΠ°: ΠΌΠΎΠ΄ΡΠ»Ρ PHP OpenSSL ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½" -#: ../../Zotlabs/Module/Setup.php:541 +#: ../../Zotlabs/Module/Setup.php:546 msgid "" "Error: PDO database PHP module missing a driver for either mysql or pgsql." msgstr "ΠΡΠΈΠ±ΠΊΠ°: ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π΄ΡΠ°ΠΉΠ²Π΅Ρ MySQL ΠΈΠ»ΠΈ PgSQL Π² ΠΌΠΎΠ΄ΡΠ»Π΅ Π±Π°Π· Π΄Π°Π½Π½ΡΡ
PHP PDO" -#: ../../Zotlabs/Module/Setup.php:546 +#: ../../Zotlabs/Module/Setup.php:551 msgid "Error: PDO database PHP module required but not installed." msgstr "ΠΡΠΈΠ±ΠΊΠ°: ΠΌΠΎΠ΄ΡΠ»Ρ Π±Π°Π· Π΄Π°Π½Π½ΡΡ
PHP PDO ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½" -#: ../../Zotlabs/Module/Setup.php:550 +#: ../../Zotlabs/Module/Setup.php:555 msgid "Error: mb_string PHP module required but not installed." msgstr "ΠΡΠΈΠ±ΠΊΠ°: ΠΌΠΎΠ΄ΡΠ»Ρ PHP mb_string ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½" -#: ../../Zotlabs/Module/Setup.php:554 +#: ../../Zotlabs/Module/Setup.php:559 msgid "Error: xml PHP module required for DAV but not installed." msgstr "ΠΡΠΈΠ±ΠΊΠ°: ΠΌΠΎΠ΄ΡΠ»Ρ PHP xml ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄Π»Ρ DAV, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½" -#: ../../Zotlabs/Module/Setup.php:558 +#: ../../Zotlabs/Module/Setup.php:563 msgid "Error: zip PHP module required but not installed." msgstr "ΠΡΠΈΠ±ΠΊΠ°: ΠΌΠΎΠ΄ΡΠ»Ρ PHP zip ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½" -#: ../../Zotlabs/Module/Setup.php:577 ../../Zotlabs/Module/Setup.php:586 +#: ../../Zotlabs/Module/Setup.php:582 ../../Zotlabs/Module/Setup.php:591 msgid ".htconfig.php is writable" msgstr ".htconfig.php Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ" -#: ../../Zotlabs/Module/Setup.php:582 +#: ../../Zotlabs/Module/Setup.php:587 msgid "" "The web installer needs to be able to create a file called \".htconfig.php\" " "in the top folder of your web server and it is unable to do so." msgstr "ΠΠ½ΡΡΠ°Π»Π»ΡΡΠΎΡ ΡΡΠ΅Π±ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ \".htconfig.php\" Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π²Π°ΡΠ΅Π³ΠΎ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ° Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΎΠ³ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ." -#: ../../Zotlabs/Module/Setup.php:583 +#: ../../Zotlabs/Module/Setup.php:588 msgid "" "This is most often a permission setting, as the web server may not be able " "to write files in your folder - even if you can." msgstr "Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ°. ΠΠ΅Π±-ΡΠ΅ΡΠ²Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ Π² ΡΡΠΎΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ." -#: ../../Zotlabs/Module/Setup.php:584 +#: ../../Zotlabs/Module/Setup.php:589 msgid "Please see install/INSTALL.txt for additional information." msgstr "ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ install/INSTALL.txt Π΄Π»Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ." -#: ../../Zotlabs/Module/Setup.php:600 +#: ../../Zotlabs/Module/Setup.php:605 msgid "" "This software uses the Smarty3 template engine to render its web views. " "Smarty3 compiles templates to PHP to speed up rendering." msgstr "ΠΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°ΡΠΎΡ Smarty3 Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΈΡ
Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ. Smarty3 ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅Ρ ΡΠ°Π±Π»ΠΎΠ½Ρ Π΄Π»Ρ PHP Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°." -#: ../../Zotlabs/Module/Setup.php:601 +#: ../../Zotlabs/Module/Setup.php:606 #, php-format msgid "" "In order to store these compiled templates, the web server needs to have " "write access to the directory %s under the top level web folder." msgstr "ΠΠ»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΠΈΡ
ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ Π½Π° Π·Π°ΠΏΠΈΡΡ ΠΊ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ %s Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π²Π΅ΡΡ
Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ." -#: ../../Zotlabs/Module/Setup.php:602 ../../Zotlabs/Module/Setup.php:623 +#: ../../Zotlabs/Module/Setup.php:607 ../../Zotlabs/Module/Setup.php:628 msgid "" "Please ensure that the user that your web server runs as (e.g. www-data) has " "write access to this folder." msgstr "Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π²Π°Ρ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, www-data), ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ Π½Π° Π·Π°ΠΏΠΈΡΡ Π² ΡΡΠΎΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³." -#: ../../Zotlabs/Module/Setup.php:603 +#: ../../Zotlabs/Module/Setup.php:608 #, php-format msgid "" "Note: as a security measure, you should give the web server write access to " "%s only--not the template files (.tpl) that it contains." msgstr "ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠ΅ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π΄ΠΎΡΡΡΠΏ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΡ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ %s Π½ΠΎ Π½Π΅ ΠΊ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΌΠΈΡΡ Π² Π½ΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² (.tpl)." -#: ../../Zotlabs/Module/Setup.php:606 +#: ../../Zotlabs/Module/Setup.php:611 #, php-format msgid "%s is writable" msgstr "%s Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ" -#: ../../Zotlabs/Module/Setup.php:622 +#: ../../Zotlabs/Module/Setup.php:627 msgid "" "This software uses the store directory to save uploaded files. The web " "server needs to have write access to the store directory under the top level " "web folder" msgstr "ΠΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π»Ρ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠ»Ρ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄ΠΎΡΡΡΠΏ Π½Π° Π·Π°ΠΏΠΈΡΡ Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡ
Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ." -#: ../../Zotlabs/Module/Setup.php:626 +#: ../../Zotlabs/Module/Setup.php:631 msgid "store is writable" msgstr "Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ" -#: ../../Zotlabs/Module/Setup.php:658 +#: ../../Zotlabs/Module/Setup.php:663 msgid "" "SSL certificate cannot be validated. Fix certificate or disable https access " "to this site." msgstr "SSL certificate cannot be validated. ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ Π΅Π³ΠΎ ΠΈΠ»ΠΈ ΠΎΡΠΊΠ»ΡΡΠΈΡΠ΅ https Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠΎΠΌΡ ΡΠ°ΠΉΡΡ." -#: ../../Zotlabs/Module/Setup.php:659 +#: ../../Zotlabs/Module/Setup.php:664 msgid "" "If you have https access to your website or allow connections to TCP port " "443 (the https: port), you MUST use a browser-valid certificate. You MUST " "NOT use self-signed certificates!" msgstr "ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ https-Π΄ΠΎΡΡΡΠΏ ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΡΠ°ΠΉΡΡ ΠΈΠ»ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ TCP-ΠΏΠΎΡΡΡ 443 (ΠΏΠΎΡΡ https), Π²Ρ ΠΠΠΠΠΠ« ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π΄Π»Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ°. ΠΡ ΠΠ ΠΠΠΠΠΠ« ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΠΎΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ!" -#: ../../Zotlabs/Module/Setup.php:660 +#: ../../Zotlabs/Module/Setup.php:665 msgid "" "This restriction is incorporated because public posts from you may for " "example contain references to images on your own hub." msgstr "ΠΡΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ½ΡΡΡ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Π°ΡΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° Π²Π°ΡΠ΅ΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌ Ρ
Π°Π±Π΅." -#: ../../Zotlabs/Module/Setup.php:661 +#: ../../Zotlabs/Module/Setup.php:666 msgid "" "If your certificate is not recognized, members of other sites (who may " "themselves have valid certificates) will get a warning message on their own " "site complaining about security issues." msgstr "ΠΡΠ»ΠΈ Π²Π°Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π½Π΅ ΠΏΡΠΈΠ·Π½Π°Π½, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π΄ΡΡΠ³ΠΈΡ
ΡΠ°ΠΉΡΠΎΠ² (ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠ°ΠΌΠΈ ΠΈΠΌΠ΅ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ) ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ
Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ." -#: ../../Zotlabs/Module/Setup.php:662 +#: ../../Zotlabs/Module/Setup.php:667 msgid "" "This can cause usability issues elsewhere (not just on your own site) so we " "must insist on this requirement." msgstr "ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ
ΠΌΠ΅ΡΡ (Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π²Π°ΡΠ΅ΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΡΠ°ΠΉΡΠ΅), ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π½Π°ΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ Π½Π° ΡΡΠΎΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΈ." -#: ../../Zotlabs/Module/Setup.php:663 +#: ../../Zotlabs/Module/Setup.php:668 msgid "" "Providers are available that issue free certificates which are browser-valid." msgstr "ΠΠΎΡΡΡΠΏΠ½Ρ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ΄Π°ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄Π»Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ." -#: ../../Zotlabs/Module/Setup.php:665 +#: ../../Zotlabs/Module/Setup.php:670 msgid "" "If you are confident that the certificate is valid and signed by a trusted " "authority, check to see if you have failed to install an intermediate cert. " @@ -8174,37 +8198,37 @@ msgid "" "server communications." msgstr "ΠΡΠ»ΠΈ Π²Ρ ΡΠ²Π΅ΡΠ΅Π½Ρ, ΡΡΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π΅Π½ ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ Π΄ΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠΌ ΠΎΡΠ³Π°Π½ΠΎΠΌ, ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π»ΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ. ΠΠ±ΡΡΠ½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΡΡΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌΠΈ, Π½ΠΎ Π±ΡΠ²Π°ΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡ Π΄Π»Ρ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ." -#: ../../Zotlabs/Module/Setup.php:667 +#: ../../Zotlabs/Module/Setup.php:672 msgid "SSL certificate validation" msgstr "ΠΡΠΎΠ²Π΅ΡΠΊΠ° SSL ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°" -#: ../../Zotlabs/Module/Setup.php:673 +#: ../../Zotlabs/Module/Setup.php:678 msgid "" "Url rewrite in .htaccess is not working. Check your server configuration." "Test: " msgstr "ΠΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡ URL Π² .htaccess Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°." -#: ../../Zotlabs/Module/Setup.php:676 +#: ../../Zotlabs/Module/Setup.php:681 msgid "Url rewrite is working" msgstr "ΠΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡ URL ΡΠ°Π±ΠΎΡΠ°Π΅Ρ" -#: ../../Zotlabs/Module/Setup.php:690 +#: ../../Zotlabs/Module/Setup.php:695 msgid "" "The database configuration file \".htconfig.php\" could not be written. " "Please use the enclosed text to create a configuration file in your web " "server root." msgstr "Π€Π°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
\".htconfig.php\" Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΠΈΡΠ°Π½. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π°Π΅ΠΌΡΠΉ ΡΠ΅ΠΊΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ°." -#: ../../Zotlabs/Module/Setup.php:714 +#: ../../Zotlabs/Module/Setup.php:719 #: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:401 msgid "Errors encountered creating database tables." msgstr "ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ." -#: ../../Zotlabs/Module/Setup.php:754 +#: ../../Zotlabs/Module/Setup.php:759 msgid "<h1>What next?</h1>" msgstr "<h1>Π§ΡΠΎ Π΄Π°Π»ΡΡΠ΅? </h1>" -#: ../../Zotlabs/Module/Setup.php:755 +#: ../../Zotlabs/Module/Setup.php:760 msgid "" "IMPORTANT: You will need to [manually] setup a scheduled task for the poller." msgstr "ΠΠ°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ [Π²ΡΡΡΠ½ΡΡ] Π½Π°ΡΡΡΠΎΠΈΡΡ Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π·Π°Π΄Π°ΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ°ΡΠΈΠ²Π°ΡΠ΅Π»Ρ." @@ -8664,7 +8688,7 @@ msgstr "ΠΠ°Π³ΡΡΠ·ΠΈΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ" msgid "Install new repo" msgstr "Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ" -#: ../../Zotlabs/Module/Admin/Addons.php:422 ../../Zotlabs/Lib/Apps.php:513 +#: ../../Zotlabs/Module/Admin/Addons.php:422 ../../Zotlabs/Lib/Apps.php:534 msgid "Install" msgstr "Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ" @@ -8938,7 +8962,7 @@ msgstr "ΠΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ #: ../../Zotlabs/Module/Admin/Site.php:323 #: ../../Zotlabs/Module/Admin/Site.php:324 -#: ../../Zotlabs/Module/Connedit.php:881 ../../Zotlabs/Module/Connedit.php:882 +#: ../../Zotlabs/Module/Connedit.php:892 ../../Zotlabs/Module/Connedit.php:893 msgid "" "words one per line or #tags or /patterns/ or lang=xx, leave blank to import " "all posts" @@ -9283,12 +9307,12 @@ msgid "No registrations." msgstr "ΠΠ΅Ρ Π½ΠΎΠ²ΡΡ
ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΉ." #: ../../Zotlabs/Module/Admin/Accounts.php:176 -#: ../../Zotlabs/Module/Connedit.php:628 +#: ../../Zotlabs/Module/Connedit.php:636 msgid "Block" msgstr "ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ" #: ../../Zotlabs/Module/Admin/Accounts.php:177 -#: ../../Zotlabs/Module/Connedit.php:628 +#: ../../Zotlabs/Module/Connedit.php:636 msgid "Unblock" msgstr "Π Π°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ" @@ -9452,12 +9476,12 @@ msgstr "ΠΠ°ΡΠΎΠ»Ρ" msgid "Expires (yyyy-mm-dd)" msgstr "Π‘ΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ (yyyy-mm-dd)" -#: ../../Zotlabs/Module/Tokens.php:180 ../../Zotlabs/Module/Connedit.php:896 +#: ../../Zotlabs/Module/Tokens.php:180 ../../Zotlabs/Module/Connedit.php:907 msgid "Their Settings" msgstr "ΠΡ
Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ" #: ../../Zotlabs/Module/Notifications.php:60 -#: ../../Zotlabs/Lib/ThreadItem.php:428 +#: ../../Zotlabs/Lib/ThreadItem.php:446 msgid "Mark all seen" msgstr "ΠΡΠΌΠ΅ΡΠΈΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅Π½Π½ΠΎΠ΅" @@ -9558,11 +9582,11 @@ msgstr "ΠΠ±ΡΠ΅ΠΊΡΡ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Ρ ΠΊΠ°ΠΊ: %s" msgid "Search results for: %s" msgstr "Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠΈΡΠΊΠ° Π΄Π»Ρ: %s" -#: ../../Zotlabs/Module/Notes.php:55 +#: ../../Zotlabs/Module/Notes.php:56 msgid "Notes App" msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΠ°ΠΌΠ΅ΡΠΊΠΈ\"" -#: ../../Zotlabs/Module/Notes.php:56 +#: ../../Zotlabs/Module/Notes.php:57 msgid "A simple notes app with a widget (note: notes are not encrypted)" msgstr "ΠΡΠΎΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π·Π°ΠΌΠ΅ΡΠΎΠΊ Ρ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠΌ (ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π·Π°ΠΌΠ΅ΡΠΊΠΈ Π½Π΅ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Ρ)" @@ -9696,268 +9720,268 @@ msgstr "ΠΠΎΠ½ΡΠ°ΠΊΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½." msgid "Item is not editable" msgstr "ΠΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π΅Π»ΡΠ·Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ" -#: ../../Zotlabs/Module/Connedit.php:111 +#: ../../Zotlabs/Module/Connedit.php:112 msgid "Could not locate selected profile." msgstr "ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΠΏΡΠΎΡΠΈΠ»Ρ." -#: ../../Zotlabs/Module/Connedit.php:248 +#: ../../Zotlabs/Module/Connedit.php:256 msgid "Connection updated." msgstr "ΠΠΎΠ½ΡΠ°ΠΊΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ." -#: ../../Zotlabs/Module/Connedit.php:250 +#: ../../Zotlabs/Module/Connedit.php:258 msgid "Failed to update connection record." msgstr "ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π·Π°ΠΏΠΈΡΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°." -#: ../../Zotlabs/Module/Connedit.php:304 +#: ../../Zotlabs/Module/Connedit.php:312 msgid "is now connected to" msgstr "ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½ ΠΊ" -#: ../../Zotlabs/Module/Connedit.php:429 +#: ../../Zotlabs/Module/Connedit.php:437 msgid "Could not access address book record." msgstr "ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π°ΠΏΠΈΡΠΈ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ." -#: ../../Zotlabs/Module/Connedit.php:477 ../../Zotlabs/Module/Connedit.php:481 +#: ../../Zotlabs/Module/Connedit.php:485 ../../Zotlabs/Module/Connedit.php:489 msgid "Refresh failed - channel is currently unavailable." msgstr "ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ - Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΊΠ°Π½Π°Π» Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½." -#: ../../Zotlabs/Module/Connedit.php:496 ../../Zotlabs/Module/Connedit.php:505 -#: ../../Zotlabs/Module/Connedit.php:514 ../../Zotlabs/Module/Connedit.php:523 -#: ../../Zotlabs/Module/Connedit.php:536 +#: ../../Zotlabs/Module/Connedit.php:504 ../../Zotlabs/Module/Connedit.php:513 +#: ../../Zotlabs/Module/Connedit.php:522 ../../Zotlabs/Module/Connedit.php:531 +#: ../../Zotlabs/Module/Connedit.php:544 msgid "Unable to set address book parameters." msgstr "ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ." -#: ../../Zotlabs/Module/Connedit.php:560 +#: ../../Zotlabs/Module/Connedit.php:568 msgid "Connection has been removed." msgstr "ΠΠΎΠ½ΡΠ°ΠΊΡ Π±ΡΠ» ΡΠ΄Π°Π»ΡΠ½." -#: ../../Zotlabs/Module/Connedit.php:603 +#: ../../Zotlabs/Module/Connedit.php:611 #, php-format msgid "View %s's profile" msgstr "ΠΡΠΎΡΠΌΠΎΡΡ %s ΠΏΡΠΎΡΠΈΠ»Ρ" -#: ../../Zotlabs/Module/Connedit.php:607 +#: ../../Zotlabs/Module/Connedit.php:615 msgid "Refresh Permissions" msgstr "ΠΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ" -#: ../../Zotlabs/Module/Connedit.php:610 +#: ../../Zotlabs/Module/Connedit.php:618 msgid "Fetch updated permissions" msgstr "ΠΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ½Π½ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ" -#: ../../Zotlabs/Module/Connedit.php:614 +#: ../../Zotlabs/Module/Connedit.php:622 msgid "Refresh Photo" msgstr "ΠΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΡ" -#: ../../Zotlabs/Module/Connedit.php:617 +#: ../../Zotlabs/Module/Connedit.php:625 msgid "Fetch updated photo" msgstr "ΠΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ½Π½ΡΡ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΡ" -#: ../../Zotlabs/Module/Connedit.php:624 +#: ../../Zotlabs/Module/Connedit.php:632 msgid "View recent posts and comments" msgstr "ΠΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ" -#: ../../Zotlabs/Module/Connedit.php:631 +#: ../../Zotlabs/Module/Connedit.php:639 msgid "Block (or Unblock) all communications with this connection" msgstr "ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ (ΠΈΠ»ΠΈ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ) ΡΠ²ΡΠ·ΠΈ Ρ ΡΡΠΈΠΌ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠΌ" -#: ../../Zotlabs/Module/Connedit.php:632 +#: ../../Zotlabs/Module/Connedit.php:640 msgid "This connection is blocked!" msgstr "ΠΡΠΎΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½!" -#: ../../Zotlabs/Module/Connedit.php:636 +#: ../../Zotlabs/Module/Connedit.php:644 msgid "Unignore" msgstr "ΠΠ΅ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ" -#: ../../Zotlabs/Module/Connedit.php:636 +#: ../../Zotlabs/Module/Connedit.php:644 #: ../../Zotlabs/Module/Connections.php:308 msgid "Ignore" msgstr "ΠΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ" -#: ../../Zotlabs/Module/Connedit.php:639 +#: ../../Zotlabs/Module/Connedit.php:647 msgid "Ignore (or Unignore) all inbound communications from this connection" msgstr "ΠΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ (ΠΈΠ»ΠΈ Π½Π΅ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ) Π²ΡΠ΅ ΡΠ²ΡΠ·ΠΈ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°" -#: ../../Zotlabs/Module/Connedit.php:640 +#: ../../Zotlabs/Module/Connedit.php:648 msgid "This connection is ignored!" msgstr "ΠΡΠΎΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ!" -#: ../../Zotlabs/Module/Connedit.php:644 +#: ../../Zotlabs/Module/Connedit.php:652 msgid "Unarchive" msgstr "Π Π°Π·Π°ΡΡ
ΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ" -#: ../../Zotlabs/Module/Connedit.php:644 +#: ../../Zotlabs/Module/Connedit.php:652 msgid "Archive" msgstr "ΠΠ°Π°ΡΡ
ΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ" -#: ../../Zotlabs/Module/Connedit.php:647 +#: ../../Zotlabs/Module/Connedit.php:655 msgid "" "Archive (or Unarchive) this connection - mark channel dead but keep content" msgstr "ΠΠ°Π°ΡΡ
ΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ (ΠΈΠ»ΠΈ ΡΠ°Π·Π°ΡΡ
ΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ) ΡΡΠΎΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡ - ΠΏΠΎΠΌΠ΅ΡΠΈΡΡ ΠΊΠ°Π½Π°Π» ΠΎΡΠΊΠ»ΡΡΡΠ½Π½ΡΠΌ Π½ΠΎ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅" -#: ../../Zotlabs/Module/Connedit.php:648 +#: ../../Zotlabs/Module/Connedit.php:656 msgid "This connection is archived!" msgstr "ΠΡΠΎΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡ Π·Π°Π°ΡΡ
ΠΈΠ²ΠΈΡΠΎΠ²Π°Π½!" -#: ../../Zotlabs/Module/Connedit.php:652 +#: ../../Zotlabs/Module/Connedit.php:660 msgid "Unhide" msgstr "ΠΠΎΠΊΠ°Π·Π°ΡΡ" -#: ../../Zotlabs/Module/Connedit.php:652 +#: ../../Zotlabs/Module/Connedit.php:660 msgid "Hide" msgstr "Π‘ΠΊΡΡΡΡ" -#: ../../Zotlabs/Module/Connedit.php:655 +#: ../../Zotlabs/Module/Connedit.php:663 msgid "Hide or Unhide this connection from your other connections" msgstr "Π‘ΠΊΡΡΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΡΡΠΎΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡ ΠΎΡ / Π΄Π»Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ
" -#: ../../Zotlabs/Module/Connedit.php:656 +#: ../../Zotlabs/Module/Connedit.php:664 msgid "This connection is hidden!" msgstr "ΠΡΠΎΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡ ΡΠΊΡΡΡ!" -#: ../../Zotlabs/Module/Connedit.php:663 +#: ../../Zotlabs/Module/Connedit.php:671 msgid "Delete this connection" msgstr "Π£Π΄Π°Π»ΠΈΡΡ ΡΡΠΎΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡ" -#: ../../Zotlabs/Module/Connedit.php:671 +#: ../../Zotlabs/Module/Connedit.php:679 msgid "Fetch Vcard" msgstr "ΠΠΎΠ»ΡΡΠΈΡΡ vCard" -#: ../../Zotlabs/Module/Connedit.php:674 +#: ../../Zotlabs/Module/Connedit.php:682 msgid "Fetch electronic calling card for this connection" msgstr "ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΡΠ΅Π»Π΅ΡΠΎΠ½Π½ΡΡ ΠΊΠ°ΡΡΠΎΡΠΊΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°" -#: ../../Zotlabs/Module/Connedit.php:685 +#: ../../Zotlabs/Module/Connedit.php:693 msgid "Open Individual Permissions section by default" msgstr "ΠΡΠΊΡΡΠ²Π°ΡΡ ΡΠ°Π·Π΄Π΅Π» \"ΠΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ\" ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ" -#: ../../Zotlabs/Module/Connedit.php:708 +#: ../../Zotlabs/Module/Connedit.php:716 msgid "Affinity" msgstr "Π‘Ρ
ΠΎΠ΄ΡΡΠ²ΠΎ" -#: ../../Zotlabs/Module/Connedit.php:711 +#: ../../Zotlabs/Module/Connedit.php:719 msgid "Open Set Affinity section by default" msgstr "ΠΡΠΊΡΡΡΡ ΡΠ΅ΠΊΡΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΡ
ΠΎΠ΄ΡΡΠ²Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ" -#: ../../Zotlabs/Module/Connedit.php:715 ../../Zotlabs/Widget/Affinity.php:22 +#: ../../Zotlabs/Module/Connedit.php:723 ../../Zotlabs/Widget/Affinity.php:27 msgid "Me" msgstr "Π―" -#: ../../Zotlabs/Module/Connedit.php:716 ../../Zotlabs/Widget/Affinity.php:23 +#: ../../Zotlabs/Module/Connedit.php:724 ../../Zotlabs/Widget/Affinity.php:28 msgid "Family" msgstr "Π‘Π΅ΠΌΡΡ" -#: ../../Zotlabs/Module/Connedit.php:718 ../../Zotlabs/Widget/Affinity.php:25 +#: ../../Zotlabs/Module/Connedit.php:726 ../../Zotlabs/Widget/Affinity.php:30 msgid "Acquaintances" msgstr "ΠΠ½Π°ΠΊΠΎΠΌΡΠ΅" -#: ../../Zotlabs/Module/Connedit.php:719 +#: ../../Zotlabs/Module/Connedit.php:727 #: ../../Zotlabs/Module/Connections.php:97 #: ../../Zotlabs/Module/Connections.php:111 -#: ../../Zotlabs/Widget/Affinity.php:26 +#: ../../Zotlabs/Widget/Affinity.php:31 msgid "All" msgstr "ΠΡΠ΅" -#: ../../Zotlabs/Module/Connedit.php:745 +#: ../../Zotlabs/Module/Connedit.php:756 msgid "Filter" msgstr "Π€ΠΈΠ»ΡΡΡ" -#: ../../Zotlabs/Module/Connedit.php:748 +#: ../../Zotlabs/Module/Connedit.php:759 msgid "Open Custom Filter section by default" msgstr "ΠΡΠΊΡΡΠ²Π°ΡΡ ΡΠ΅ΠΊΡΠΈΡ \"ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΉ ΡΠΈΠ»ΡΡΡ\" ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ" -#: ../../Zotlabs/Module/Connedit.php:785 +#: ../../Zotlabs/Module/Connedit.php:796 msgid "Approve this connection" msgstr "Π£ΡΠ²Π΅ΡΠ΄ΠΈΡΡ ΡΡΠΎΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡ" -#: ../../Zotlabs/Module/Connedit.php:785 +#: ../../Zotlabs/Module/Connedit.php:796 msgid "Accept connection to allow communication" msgstr "ΠΡΠΈΠ½ΡΡΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡ ΡΡΠΎΠ±Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΡΠ²ΡΠ·Ρ" -#: ../../Zotlabs/Module/Connedit.php:790 +#: ../../Zotlabs/Module/Connedit.php:801 msgid "Set Affinity" msgstr "Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡ
ΠΎΠ΄ΡΡΠ²ΠΎ" -#: ../../Zotlabs/Module/Connedit.php:793 +#: ../../Zotlabs/Module/Connedit.php:804 msgid "Set Profile" msgstr "Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠΎΡΠΈΠ»Ρ" -#: ../../Zotlabs/Module/Connedit.php:796 +#: ../../Zotlabs/Module/Connedit.php:807 msgid "Set Affinity & Profile" msgstr "Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡ
ΠΎΠ΄ΡΡΠ²ΠΎ ΠΈ ΠΏΡΠΎΡΠΈΠ»Ρ" -#: ../../Zotlabs/Module/Connedit.php:844 +#: ../../Zotlabs/Module/Connedit.php:855 msgid "This connection is unreachable from this location." msgstr "ΠΡΠΎΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ" -#: ../../Zotlabs/Module/Connedit.php:845 +#: ../../Zotlabs/Module/Connedit.php:856 msgid "This connection may be unreachable from other channel locations." msgstr "ΠΡΠΎΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ
ΠΌΠ΅ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠ°Π½Π°Π»Π°" -#: ../../Zotlabs/Module/Connedit.php:847 +#: ../../Zotlabs/Module/Connedit.php:858 msgid "Location independence is not supported by their network." msgstr "ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠ΅ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΈΡ
ΡΠ΅ΡΡΡ." -#: ../../Zotlabs/Module/Connedit.php:853 +#: ../../Zotlabs/Module/Connedit.php:864 msgid "" "This connection is unreachable from this location. Location independence is " "not supported by their network." msgstr "ΠΡΠΎΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠ΅ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΈΡ
ΡΠ΅ΡΡΡ." -#: ../../Zotlabs/Module/Connedit.php:857 +#: ../../Zotlabs/Module/Connedit.php:868 msgid "Connection requests will be approved without your interaction" msgstr "ΠΠ°ΠΏΡΠΎΡΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ² Π±ΡΠ΄ΡΡ ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Ρ Π±Π΅Π· Π²Π°ΡΠ΅Π³ΠΎ ΡΡΠ°ΡΡΠΈΡ" -#: ../../Zotlabs/Module/Connedit.php:866 +#: ../../Zotlabs/Module/Connedit.php:877 msgid "This connection's primary address is" msgstr "ΠΠ»Π°Π²Π½ΡΠΉ Π°Π΄ΡΠ΅Ρ ΡΡΠΎ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°" -#: ../../Zotlabs/Module/Connedit.php:867 +#: ../../Zotlabs/Module/Connedit.php:878 msgid "Available locations:" msgstr "ΠΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:" -#: ../../Zotlabs/Module/Connedit.php:873 +#: ../../Zotlabs/Module/Connedit.php:884 msgid "Connection Tools" msgstr "ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ²" -#: ../../Zotlabs/Module/Connedit.php:875 +#: ../../Zotlabs/Module/Connedit.php:886 msgid "Slide to adjust your degree of friendship" msgstr "ΠΡΠΎΠΊΡΡΡΠΈΡΡ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π΄ΡΡΠΆΠ±Ρ" -#: ../../Zotlabs/Module/Connedit.php:877 +#: ../../Zotlabs/Module/Connedit.php:888 msgid "Slide to adjust your rating" msgstr "ΠΡΠΎΠΊΡΡΡΠΈΡΡ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΎΡΠ΅Π½ΠΊΠΈ" -#: ../../Zotlabs/Module/Connedit.php:878 ../../Zotlabs/Module/Connedit.php:883 +#: ../../Zotlabs/Module/Connedit.php:889 ../../Zotlabs/Module/Connedit.php:894 msgid "Optionally explain your rating" msgstr "ΠΠ±ΡΡΡΠ½ΠΈΡΠ΅ ΡΠ²ΠΎΡ ΠΎΡΠ΅Π½ΠΊΡ (Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ)" -#: ../../Zotlabs/Module/Connedit.php:880 +#: ../../Zotlabs/Module/Connedit.php:891 msgid "Custom Filter" msgstr "ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΉ ΡΠΈΠ»ΡΡΡ" -#: ../../Zotlabs/Module/Connedit.php:881 +#: ../../Zotlabs/Module/Connedit.php:892 msgid "Only import posts with this text" msgstr "ΠΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΡΡΠΈΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ" -#: ../../Zotlabs/Module/Connedit.php:882 +#: ../../Zotlabs/Module/Connedit.php:893 msgid "Do not import posts with this text" msgstr "ΠΠ΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Ρ ΡΡΠΈΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ" -#: ../../Zotlabs/Module/Connedit.php:884 +#: ../../Zotlabs/Module/Connedit.php:895 msgid "This information is public!" msgstr "ΠΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½Π°!" -#: ../../Zotlabs/Module/Connedit.php:889 +#: ../../Zotlabs/Module/Connedit.php:900 msgid "Connection Pending Approval" msgstr "ΠΠΆΠΈΠ΄Π°ΡΡΠΈΠ΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ²" -#: ../../Zotlabs/Module/Connedit.php:894 +#: ../../Zotlabs/Module/Connedit.php:905 #, php-format msgid "" "Please choose the profile you would like to display to %s when viewing your " "profile securely." msgstr "ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ
ΠΎΡΠΈΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π² %s ΠΏΡΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅." -#: ../../Zotlabs/Module/Connedit.php:901 +#: ../../Zotlabs/Module/Connedit.php:912 msgid "" "Some permissions may be inherited from your channel's <a href=\"settings" "\"><strong>privacy settings</strong></a>, which have higher priority than " @@ -9965,11 +9989,11 @@ msgid "" "any impact unless the inherited setting changes." msgstr "ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Ρ ΠΈΠ· <a href=\"settings\"><strong>Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΡΡΠΈ</strong></a> Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠ°Π½Π°Π»Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΡΠ΅ΠΌ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠ΅. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ Π½Π΅ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Ρ Π΄ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΡ
ΠΏΠΎ Π½Π°ΡΠ»Π΅Π΄ΡΡΠ²Ρ Π½Π°ΡΡΡΠΎΠ΅ΠΊ." -#: ../../Zotlabs/Module/Connedit.php:902 +#: ../../Zotlabs/Module/Connedit.php:913 msgid "Last update:" msgstr "ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅:" -#: ../../Zotlabs/Module/Connedit.php:910 +#: ../../Zotlabs/Module/Connedit.php:921 msgid "Details" msgstr "Π‘Π²Π΅Π΄Π΅Π½ΠΈΡ" @@ -9981,60 +10005,60 @@ msgstr "ΠΡΡΠΏΠΏΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°Π½Π°." msgid "Could not create privacy group." msgstr "ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠΎΠ·Π΄Π°ΡΡ Π³ΡΡΠΏΠΏΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ." -#: ../../Zotlabs/Module/Group.php:77 +#: ../../Zotlabs/Module/Group.php:80 msgid "Privacy group updated." msgstr "ΠΡΡΠΏΠΏΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π°." -#: ../../Zotlabs/Module/Group.php:101 +#: ../../Zotlabs/Module/Group.php:106 msgid "Privacy Groups App" msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΡΡΠΏΠΏΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ\"" -#: ../../Zotlabs/Module/Group.php:102 +#: ../../Zotlabs/Module/Group.php:107 msgid "Management of privacy groups" msgstr "Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³ΡΡΠΏΠΏΠ°ΠΌΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ." -#: ../../Zotlabs/Module/Group.php:133 +#: ../../Zotlabs/Module/Group.php:142 msgid "Add Group" msgstr "ΠΠΎΠ±Π°Π²ΠΈΡΡ Π³ΡΡΠΏΠΏΡ" -#: ../../Zotlabs/Module/Group.php:137 +#: ../../Zotlabs/Module/Group.php:146 msgid "Privacy group name" msgstr "ΠΠΌΡ Π³ΡΡΠΏΠΏΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ" -#: ../../Zotlabs/Module/Group.php:138 ../../Zotlabs/Module/Group.php:239 +#: ../../Zotlabs/Module/Group.php:147 ../../Zotlabs/Module/Group.php:256 msgid "Members are visible to other channels" msgstr "Π£ΡΠ°ΡΡΠ½ΠΈΠΊΠΈ ΠΊΠ°Π½Π°Π»Π° Π²ΠΈΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ
" -#: ../../Zotlabs/Module/Group.php:170 +#: ../../Zotlabs/Module/Group.php:182 msgid "Privacy group removed." msgstr "ΠΡΡΠΏΠΏΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠ΄Π°Π»Π΅Π½Π°." -#: ../../Zotlabs/Module/Group.php:172 +#: ../../Zotlabs/Module/Group.php:185 msgid "Unable to remove privacy group." msgstr "ΠΡ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠ΄Π°Π»ΠΈΡΡ Π³ΡΡΠΏΠΏΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ." -#: ../../Zotlabs/Module/Group.php:234 +#: ../../Zotlabs/Module/Group.php:251 #, php-format msgid "Privacy Group: %s" msgstr "ΠΡΡΠΏΠΏΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ: %s" -#: ../../Zotlabs/Module/Group.php:236 +#: ../../Zotlabs/Module/Group.php:253 msgid "Privacy group name: " msgstr "ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ Π³ΡΡΠΏΠΏΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ: " -#: ../../Zotlabs/Module/Group.php:241 +#: ../../Zotlabs/Module/Group.php:258 msgid "Delete Group" msgstr "Π£Π΄Π°Π»ΠΈΡΡ Π³ΡΡΠΏΠΏΡ" -#: ../../Zotlabs/Module/Group.php:251 +#: ../../Zotlabs/Module/Group.php:269 msgid "Group members" msgstr "Π§Π»Π΅Π½Ρ Π³ΡΡΠΏΠΏΡ" -#: ../../Zotlabs/Module/Group.php:253 +#: ../../Zotlabs/Module/Group.php:271 msgid "Not in this group" msgstr "ΠΠ΅ Π² ΡΡΠΎΠΉ Π³ΡΡΠΏΠΏΠ΅" -#: ../../Zotlabs/Module/Group.php:285 +#: ../../Zotlabs/Module/Group.php:303 msgid "Click a channel to toggle membership" msgstr "ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π½Π° ΠΊΠ°Π½Π°Π» Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠ»Π΅Π½ΡΡΠ²Π°" @@ -10173,7 +10197,7 @@ msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΠ°ΡΡΡΠΎΠ΅Π½ΠΈΠ΅\"" msgid "Set your current mood and tell your friends" msgstr "Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π½Π°ΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ Π΄ΡΡΠ·ΡΡΠΌ" -#: ../../Zotlabs/Module/Mood.php:154 ../../Zotlabs/Lib/Apps.php:325 +#: ../../Zotlabs/Module/Mood.php:154 ../../Zotlabs/Lib/Apps.php:346 msgid "Mood" msgstr "ΠΠ°ΡΡΡΠΎΠ΅Π½ΠΈΠ΅" @@ -10280,15 +10304,15 @@ msgstr "ΠΈΠ»ΠΈ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅" msgid "3. Click [Connect]" msgstr "ΠΠ°ΠΆΠ°ΡΡ [ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ]" -#: ../../Zotlabs/Module/Articles.php:43 +#: ../../Zotlabs/Module/Articles.php:51 msgid "Articles App" msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"Π‘ΡΠ°ΡΡΠΈ\"" -#: ../../Zotlabs/Module/Articles.php:44 +#: ../../Zotlabs/Module/Articles.php:52 msgid "Create interactive articles" msgstr "Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΡΠ°ΡΡΠΈ" -#: ../../Zotlabs/Module/Articles.php:107 +#: ../../Zotlabs/Module/Articles.php:115 msgid "Add Article" msgstr "ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ°ΡΡΡ" @@ -10399,7 +10423,7 @@ msgstr "Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΡΠ°Π±Π»ΠΎΠ½" #: ../../Zotlabs/Module/Wiki.php:35 #: ../../extend/addon/hzaddons/flashcards/Mod_Flashcards.php:34 -#: ../../extend/addon/hzaddons/cart/cart.php:1297 +#: ../../extend/addon/hzaddons/cart/cart.php:1298 msgid "Profile Unavailable." msgstr "ΠΡΠΎΡΠΈΠ»Ρ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½." @@ -10415,7 +10439,7 @@ msgstr "ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡΠ΅ Wiki Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠ°Π½Π°Π»Π°" #: ../../extend/addon/hzaddons/cart/submodules/paypalbutton.php:456 #: ../../extend/addon/hzaddons/cart/myshop.php:37 #: ../../extend/addon/hzaddons/cart/manual_payments.php:93 -#: ../../extend/addon/hzaddons/cart/cart.php:1443 +#: ../../extend/addon/hzaddons/cart/cart.php:1444 msgid "Invalid channel" msgstr "ΠΠ΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠ°Π½Π°Π»" @@ -10573,7 +10597,7 @@ msgstr "ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°" msgid "or select an existing folder (doubleclick)" msgstr "ΠΈΠ»ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ (Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΡΠ΅Π»ΡΠΎΠΊ)" -#: ../../Zotlabs/Module/Filer.php:54 ../../Zotlabs/Lib/ThreadItem.php:167 +#: ../../Zotlabs/Module/Filer.php:54 ../../Zotlabs/Lib/ThreadItem.php:178 msgid "Save to Folder" msgstr "Π‘ΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³" @@ -10793,15 +10817,15 @@ msgstr "ΠΠΎΠΌΠ°ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°" msgid "Developer homepage" msgstr "ΠΠΎΠΌΠ°ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°" -#: ../../Zotlabs/Module/Cards.php:46 +#: ../../Zotlabs/Module/Cards.php:51 msgid "Cards App" msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΠ°ΡΡΠΎΡΠΊΠΈ\"" -#: ../../Zotlabs/Module/Cards.php:47 +#: ../../Zotlabs/Module/Cards.php:52 msgid "Create personal planning cards" msgstr "Π‘ΠΎΠ·Π΄Π°ΡΡ Π»ΠΈΡΠ½ΡΠ΅ ΠΊΠ°ΡΡΠΎΡΠΊΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ" -#: ../../Zotlabs/Module/Cards.php:108 +#: ../../Zotlabs/Module/Cards.php:112 msgid "Add Card" msgstr "ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠ°ΡΡΠΎΡΠΊΡ" @@ -10841,7 +10865,7 @@ msgstr "ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π²Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ" msgid "Post successful." msgstr "Π£ΡΠΏΠ΅ΡΠ½ΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ." -#: ../../Zotlabs/Module/Rmagic.php:35 +#: ../../Zotlabs/Module/Rmagic.php:44 msgid "Authentication failed." msgstr "ΠΡΠΈΠ±ΠΊΠ° Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ." @@ -10927,7 +10951,7 @@ msgstr "ΠΡΠΎΡΠΌΠΎΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°. ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄ msgid "Forums" msgstr "Π€ΠΎΡΡΠΌΡ" -#: ../../Zotlabs/Widget/Notes.php:21 ../../Zotlabs/Lib/Apps.php:346 +#: ../../Zotlabs/Widget/Notes.php:21 ../../Zotlabs/Lib/Apps.php:367 msgid "Notes" msgstr "ΠΠ°ΠΌΠ΅ΡΠΊΠΈ" @@ -11329,7 +11353,7 @@ msgstr "Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ" msgid "Member registrations waiting for confirmation" msgstr "Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ², ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠ΅ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ" -#: ../../Zotlabs/Widget/Admin.php:26 ../../Zotlabs/Lib/Apps.php:333 +#: ../../Zotlabs/Widget/Admin.php:26 ../../Zotlabs/Lib/Apps.php:354 msgid "Features" msgstr "Π€ΡΠ½ΠΊΡΠΈΠΈ" @@ -11423,7 +11447,7 @@ msgstr "Π£ΡΠ°ΡΡΠ½ΠΈΠΊΠΈ ΡΠ°ΡΠ°" msgid "Click to show more" msgstr "ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅" -#: ../../Zotlabs/Widget/Affinity.php:45 +#: ../../Zotlabs/Widget/Affinity.php:50 msgid "Refresh" msgstr "ΠΠ±Π½ΠΎΠ²ΠΈΡΡ" @@ -11541,7 +11565,7 @@ msgstr "ΠΠΎΠΆΠ΅Ρ ΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π½Π° ΠΌΠΎΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΊΠ°Π½Π #: ../../Zotlabs/Access/Permissions.php:67 msgid "Can comment on or like my posts" -msgstr "ΠΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΠΎΡΠΌΠ΅ΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ²ΡΠΈΠ΅ΡΡ ΠΌΠΎΠΈ ΠΏΠΎΡΡΡ" +msgstr "ΠΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΠΎΡΠΌΠ΅ΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ²ΡΠΈΠ΅ΡΡ ΠΌΠΎΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ" #: ../../Zotlabs/Access/Permissions.php:68 msgid "Can send me private mail messages" @@ -11647,8 +11671,8 @@ msgstr "ΠΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅ $ProjectnameΒ " #: ../../Zotlabs/Lib/Enotify.php:61 #: ../../extend/addon/hzaddons/diaspora/p.php:48 -#: ../../extend/addon/hzaddons/diaspora/util.php:308 -#: ../../extend/addon/hzaddons/diaspora/util.php:321 +#: ../../extend/addon/hzaddons/diaspora/util.php:313 +#: ../../extend/addon/hzaddons/diaspora/util.php:326 msgid "$projectname" msgstr "" @@ -11988,172 +12012,184 @@ msgctxt "permcat" msgid "publisher" msgstr "ΠΈΠ·Π΄Π°ΡΠ΅Π»Ρ" -#: ../../Zotlabs/Lib/Apps.php:301 +#: ../../Zotlabs/Lib/Apps.php:322 msgid "Apps" msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ" -#: ../../Zotlabs/Lib/Apps.php:304 +#: ../../Zotlabs/Lib/Apps.php:325 msgid "Site Admin" msgstr "ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΡΠ°ΠΉΡΠ°" -#: ../../Zotlabs/Lib/Apps.php:305 +#: ../../Zotlabs/Lib/Apps.php:326 #: ../../extend/addon/hzaddons/buglink/buglink.php:16 msgid "Report Bug" msgstr "Π‘ΠΎΠΎΠ±ΡΠΈΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅" -#: ../../Zotlabs/Lib/Apps.php:309 +#: ../../Zotlabs/Lib/Apps.php:330 msgid "Remote Diagnostics" msgstr "Π£Π΄Π°Π»ΡΠ½Π½Π°Ρ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ°" -#: ../../Zotlabs/Lib/Apps.php:313 +#: ../../Zotlabs/Lib/Apps.php:334 msgid "Stream" msgstr "ΠΠΎΡΠΎΠΊ" -#: ../../Zotlabs/Lib/Apps.php:324 +#: ../../Zotlabs/Lib/Apps.php:345 msgid "Mail" msgstr "ΠΠ΅ΡΠ΅ΠΏΠΈΡΠΊΠ°" -#: ../../Zotlabs/Lib/Apps.php:327 +#: ../../Zotlabs/Lib/Apps.php:348 msgid "Chat" msgstr "Π§Π°Ρ" -#: ../../Zotlabs/Lib/Apps.php:329 +#: ../../Zotlabs/Lib/Apps.php:350 msgid "Probe" msgstr "ΠΡΠΎΠ±Π°" -#: ../../Zotlabs/Lib/Apps.php:330 +#: ../../Zotlabs/Lib/Apps.php:351 msgid "Suggest" msgstr "ΠΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ" -#: ../../Zotlabs/Lib/Apps.php:331 +#: ../../Zotlabs/Lib/Apps.php:352 msgid "Random Channel" msgstr "Π‘Π»ΡΡΠ°ΠΉΠ½ΡΠΉ ΠΊΠ°Π½Π°Π»" -#: ../../Zotlabs/Lib/Apps.php:332 +#: ../../Zotlabs/Lib/Apps.php:353 msgid "Invite" msgstr "ΠΡΠΈΠ³Π»Π°ΡΠΈΡΡ" -#: ../../Zotlabs/Lib/Apps.php:334 +#: ../../Zotlabs/Lib/Apps.php:355 #: ../../extend/addon/hzaddons/openid/MysqlProvider.php:69 msgid "Language" msgstr "Π―Π·ΡΠΊ" -#: ../../Zotlabs/Lib/Apps.php:335 +#: ../../Zotlabs/Lib/Apps.php:356 msgid "Post" msgstr "ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ" -#: ../../Zotlabs/Lib/Apps.php:336 +#: ../../Zotlabs/Lib/Apps.php:357 #: ../../extend/addon/hzaddons/openid/MysqlProvider.php:58 #: ../../extend/addon/hzaddons/openid/MysqlProvider.php:59 #: ../../extend/addon/hzaddons/openid/MysqlProvider.php:60 msgid "Profile Photo" msgstr "Π€ΠΎΡΠΎΠ³ΡΠ°ΡΠΈΡ ΠΏΡΠΎΡΠΈΠ»Ρ" -#: ../../Zotlabs/Lib/Apps.php:340 +#: ../../Zotlabs/Lib/Apps.php:361 msgid "Notifications" msgstr "ΠΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΡ" -#: ../../Zotlabs/Lib/Apps.php:341 +#: ../../Zotlabs/Lib/Apps.php:362 msgid "Order Apps" msgstr "ΠΠΎΡΡΠ΄ΠΎΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ" -#: ../../Zotlabs/Lib/Apps.php:343 +#: ../../Zotlabs/Lib/Apps.php:364 msgid "CardDAV" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:345 +#: ../../Zotlabs/Lib/Apps.php:366 msgid "Guest Access" msgstr "ΠΠΎΡΡΠ΅Π²ΠΎΠΉ Π΄ΠΎΡΡΡΠΏ" -#: ../../Zotlabs/Lib/Apps.php:347 +#: ../../Zotlabs/Lib/Apps.php:368 msgid "OAuth Apps Manager" msgstr "ΠΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ OAuth" -#: ../../Zotlabs/Lib/Apps.php:348 +#: ../../Zotlabs/Lib/Apps.php:369 msgid "OAuth2 Apps Manager" msgstr "ΠΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ OAuth2" -#: ../../Zotlabs/Lib/Apps.php:349 +#: ../../Zotlabs/Lib/Apps.php:370 msgid "PDL Editor" msgstr "Π Π΅Π΄Π°ΠΊΡΠΎΡ PDL" -#: ../../Zotlabs/Lib/Apps.php:351 +#: ../../Zotlabs/Lib/Apps.php:372 msgid "Premium Channel" msgstr "ΠΡΠ΅ΠΌΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ°Π½Π°Π»" -#: ../../Zotlabs/Lib/Apps.php:353 +#: ../../Zotlabs/Lib/Apps.php:374 msgid "My Chatrooms" msgstr "ΠΠΎΠΈ ΡΠ°ΡΡ" -#: ../../Zotlabs/Lib/Apps.php:354 +#: ../../Zotlabs/Lib/Apps.php:375 msgid "Channel Export" msgstr "ΠΠΊΡΠΏΠΎΡΡ ΠΊΠ°Π½Π°Π»Π°" -#: ../../Zotlabs/Lib/Apps.php:531 +#: ../../Zotlabs/Lib/Apps.php:552 msgid "Purchase" msgstr "ΠΡΠΏΠΈΡΡ" -#: ../../Zotlabs/Lib/Apps.php:536 +#: ../../Zotlabs/Lib/Apps.php:557 msgid "Undelete" msgstr "ΠΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ" -#: ../../Zotlabs/Lib/Apps.php:545 +#: ../../Zotlabs/Lib/Apps.php:566 msgid "Add to app-tray" msgstr "ΠΠΎΠ±Π°Π²ΠΈΡΡ Π² app-tray" -#: ../../Zotlabs/Lib/Apps.php:546 +#: ../../Zotlabs/Lib/Apps.php:567 msgid "Remove from app-tray" msgstr "Π£Π΄Π°Π»ΠΈΡΡ ΠΈΠ· app-tray" -#: ../../Zotlabs/Lib/Apps.php:547 +#: ../../Zotlabs/Lib/Apps.php:568 msgid "Pin to navbar" msgstr "ΠΠΎΠ±Π°Π²ΠΈΡΡ Π½Π° ΠΏΠ°Π½Π΅Π»Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ" -#: ../../Zotlabs/Lib/Apps.php:548 +#: ../../Zotlabs/Lib/Apps.php:569 msgid "Unpin from navbar" msgstr "Π£Π΄Π°Π»ΠΈΡΡ Ρ ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ" -#: ../../Zotlabs/Lib/ThreadItem.php:188 +#: ../../Zotlabs/Lib/ThreadItem.php:126 +msgid "Privacy conflict. Discretion advised." +msgstr "ΠΠΎΠ½ΡΠΈΠ»ΠΈΠΊΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΠΈ." + +#: ../../Zotlabs/Lib/ThreadItem.php:199 msgid "I will attend" -msgstr "Π― Π±ΡΠ΄Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ" +msgstr "Π― Π±ΡΠ΄Ρ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°ΡΡ" -#: ../../Zotlabs/Lib/ThreadItem.php:188 +#: ../../Zotlabs/Lib/ThreadItem.php:199 msgid "I will not attend" -msgstr "Π― Π½Π΅ Π±ΡΠ΄Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ" +msgstr "Π― Π½Π΅ Π±ΡΠ΄Ρ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°ΡΡ" -#: ../../Zotlabs/Lib/ThreadItem.php:188 +#: ../../Zotlabs/Lib/ThreadItem.php:199 msgid "I might attend" msgstr "Π― Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ" -#: ../../Zotlabs/Lib/ThreadItem.php:198 +#: ../../Zotlabs/Lib/ThreadItem.php:209 msgid "I agree" msgstr "Π― ΡΠΎΠ³Π»Π°ΡΠ΅Π½" -#: ../../Zotlabs/Lib/ThreadItem.php:198 +#: ../../Zotlabs/Lib/ThreadItem.php:209 msgid "I disagree" msgstr "Π― Π½Π΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½" -#: ../../Zotlabs/Lib/ThreadItem.php:198 +#: ../../Zotlabs/Lib/ThreadItem.php:209 msgid "I abstain" msgstr "Π― Π²ΠΎΠ·Π΄Π΅ΡΠΆΠ°Π»ΡΡ" -#: ../../Zotlabs/Lib/ThreadItem.php:272 +#: ../../Zotlabs/Lib/ThreadItem.php:283 msgid "Add Tag" msgstr "ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ΅Π³" -#: ../../Zotlabs/Lib/ThreadItem.php:297 +#: ../../Zotlabs/Lib/ThreadItem.php:311 +msgid "Repeat This" +msgstr "ΠΠΎΠ²ΡΠΎΡΠΈΡΡ ΡΡΠΎ" + +#: ../../Zotlabs/Lib/ThreadItem.php:311 +msgid "repeat" +msgstr "ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠ΅" + +#: ../../Zotlabs/Lib/ThreadItem.php:313 msgid "Share This" msgstr "ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΡΠΈΠΌ" -#: ../../Zotlabs/Lib/ThreadItem.php:297 +#: ../../Zotlabs/Lib/ThreadItem.php:313 msgid "share" msgstr "ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ" -#: ../../Zotlabs/Lib/ThreadItem.php:306 +#: ../../Zotlabs/Lib/ThreadItem.php:323 msgid "Delivery Report" msgstr "ΠΡΡΡΡ ΠΎ Π΄ΠΎΡΡΠ°Π²ΠΊΠ΅" -#: ../../Zotlabs/Lib/ThreadItem.php:326 +#: ../../Zotlabs/Lib/ThreadItem.php:343 #, php-format msgid "%d comment" msgid_plural "%d comments" @@ -12161,73 +12197,73 @@ msgstr[0] "%d ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ" msgstr[1] "%d ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ" msgstr[2] "%d ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π²" -#: ../../Zotlabs/Lib/ThreadItem.php:360 ../../Zotlabs/Lib/ThreadItem.php:361 +#: ../../Zotlabs/Lib/ThreadItem.php:377 ../../Zotlabs/Lib/ThreadItem.php:378 #, php-format msgid "View %s's profile - %s" msgstr "ΠΡΠΎΡΠΌΠΎΡΡ %s ΠΏΡΠΎΡΠΈΠ»Ρ - %s" -#: ../../Zotlabs/Lib/ThreadItem.php:364 +#: ../../Zotlabs/Lib/ThreadItem.php:381 msgid "to" msgstr "ΠΊ" -#: ../../Zotlabs/Lib/ThreadItem.php:365 +#: ../../Zotlabs/Lib/ThreadItem.php:382 msgid "via" msgstr "ΡΠ΅ΡΠ΅Π·" -#: ../../Zotlabs/Lib/ThreadItem.php:366 +#: ../../Zotlabs/Lib/ThreadItem.php:383 msgid "Wall-to-Wall" msgstr "Π‘ΡΠ΅Π½Π°-ΠΊ-Π‘ΡΠ΅Π½Π΅" -#: ../../Zotlabs/Lib/ThreadItem.php:367 +#: ../../Zotlabs/Lib/ThreadItem.php:384 msgid "via Wall-To-Wall:" msgstr "ΡΠ΅ΡΠ΅Π· Π‘ΡΠ΅Π½Π°-ΠΊ-Π‘ΡΠ΅Π½Π΅:" -#: ../../Zotlabs/Lib/ThreadItem.php:393 +#: ../../Zotlabs/Lib/ThreadItem.php:410 msgid "Attend" msgstr "ΠΠΎΡΠ΅ΡΠΈΡΡ" -#: ../../Zotlabs/Lib/ThreadItem.php:394 +#: ../../Zotlabs/Lib/ThreadItem.php:411 msgid "Attendance Options" msgstr "ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠΎΡΠ΅ΡΠ°Π΅ΠΌΠΎΡΡΠΈ" -#: ../../Zotlabs/Lib/ThreadItem.php:395 +#: ../../Zotlabs/Lib/ThreadItem.php:412 msgid "Vote" msgstr "ΠΠΎΠ»ΠΎΡΠΎΠ²Π°ΡΡ" -#: ../../Zotlabs/Lib/ThreadItem.php:396 +#: ../../Zotlabs/Lib/ThreadItem.php:413 msgid "Voting Options" msgstr "ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π³ΠΎΠ»ΠΎΡΠΎΠ²Π°Π½ΠΈΡ" -#: ../../Zotlabs/Lib/ThreadItem.php:417 +#: ../../Zotlabs/Lib/ThreadItem.php:435 #: ../../extend/addon/hzaddons/bookmarker/bookmarker.php:38 msgid "Save Bookmarks" msgstr "Π‘ΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ" -#: ../../Zotlabs/Lib/ThreadItem.php:418 +#: ../../Zotlabs/Lib/ThreadItem.php:436 msgid "Add to Calendar" msgstr "ΠΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΊΠ°Π»Π΅Π½Π΄Π°ΡΡ" -#: ../../Zotlabs/Lib/ThreadItem.php:779 +#: ../../Zotlabs/Lib/ThreadItem.php:797 msgid "Image" msgstr "ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅" -#: ../../Zotlabs/Lib/ThreadItem.php:781 +#: ../../Zotlabs/Lib/ThreadItem.php:799 msgid "Insert Link" msgstr "ΠΡΡΠ°Π²ΠΈΡΡ ΡΡΡΠ»ΠΊΡ" -#: ../../Zotlabs/Lib/ThreadItem.php:782 +#: ../../Zotlabs/Lib/ThreadItem.php:800 msgid "Video" msgstr "ΠΠΈΠ΄Π΅ΠΎ" -#: ../../Zotlabs/Lib/ThreadItem.php:792 +#: ../../Zotlabs/Lib/ThreadItem.php:810 msgid "Your full name (required)" msgstr "ΠΠ°ΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ (ΡΡΠ΅Π±ΡΠ΅ΡΡΡ)" -#: ../../Zotlabs/Lib/ThreadItem.php:793 +#: ../../Zotlabs/Lib/ThreadItem.php:811 msgid "Your email address (required)" msgstr "ΠΠ°Ρ Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ (ΡΡΠ΅Π±ΡΠ΅ΡΡΡ)" -#: ../../Zotlabs/Lib/ThreadItem.php:794 +#: ../../Zotlabs/Lib/ThreadItem.php:812 msgid "Your website URL (optional)" msgstr "URL Π²Π°ΡΠ΅Π³ΠΎ Π²Π΅Π±ΡΠ°ΠΉΡΠ° (Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ)" @@ -12304,6 +12340,31 @@ msgstr "ΠΡΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΡΠ΅Ρ
, ΠΊΡΠΎ msgid "This is your default setting for the audience of your webpages" msgstr "ΠΡΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ Π°ΡΠ΄ΠΈΡΠΎΡΠΈΠΈ Π²Π°ΡΠΈΡ
Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ" +#: ../../Zotlabs/Lib/Activity.php:1458 +#, php-format +msgid "Likes %1$s's %2$s" +msgstr "ΠΡΠ°Π²ΠΈΡΡΡ %1$s %2$s" + +#: ../../Zotlabs/Lib/Activity.php:1461 +#, php-format +msgid "Doesn't like %1$s's %2$s" +msgstr "ΠΠ΅ Π½ΡΠ°Π²ΠΈΡΡΡ %1$s %2$s" + +#: ../../Zotlabs/Lib/Activity.php:1464 +#, php-format +msgid "Will attend %1$s's %2$s" +msgstr "ΠΡΠΈΠΌΠ΅Ρ ΡΡΠ°ΡΡΠΈΠ΅ %1$s %2$s" + +#: ../../Zotlabs/Lib/Activity.php:1467 +#, php-format +msgid "Will not attend %1$s's %2$s" +msgstr "ΠΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ°ΡΡΠΈΠ΅ %1$s %2$s" + +#: ../../Zotlabs/Lib/Activity.php:1470 +#, php-format +msgid "May attend %1$s's %2$s" +msgstr "ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ°ΡΡΠΈΠ΅ %1$s %2$s" + #: ../../Zotlabs/Lib/Techlevels.php:10 msgid "0. Beginner/Basic" msgstr "ΠΠ°ΡΠΈΠ½Π°ΡΡΠΈΠΉ / ΠΠ°Π·ΠΎΠ²ΡΠΉ" @@ -12340,29 +12401,37 @@ msgstr "Wiki ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ΄Π°Π»Π΅Π½Π°" msgid "Use markdown for editing posts" msgstr "ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ·ΡΠΊ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ Markdown Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ" -#: ../../extend/addon/hzaddons/dwpost/dwpost.php:42 +#: ../../extend/addon/hzaddons/dwpost/dwpost.php:48 msgid "Post to Dreamwidth" msgstr "ΠΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Dreamwidth" -#: ../../extend/addon/hzaddons/dwpost/dwpost.php:73 -msgid "Enable Dreamwidth Post Plugin" -msgstr "ΠΠΊΠ»ΡΡΠΈΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Dreamwidth" +#: ../../extend/addon/hzaddons/dwpost/Mod_Dwpost.php:24 +msgid "Dreamwidth Crosspost Connector Settings saved." +msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Dreamwidth ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ." + +#: ../../extend/addon/hzaddons/dwpost/Mod_Dwpost.php:36 +msgid "Dreamwidth Crosspost Connector App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Dreamwidth\"" -#: ../../extend/addon/hzaddons/dwpost/dwpost.php:77 +#: ../../extend/addon/hzaddons/dwpost/Mod_Dwpost.php:37 +msgid "Relay public postings to Dreamwidth" +msgstr "ΠΠ΅ΡΠ΅ΡΡΠ»Π°Π΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² Dreamwidth" + +#: ../../extend/addon/hzaddons/dwpost/Mod_Dwpost.php:52 msgid "Dreamwidth username" msgstr "ΠΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Dreamwidth" -#: ../../extend/addon/hzaddons/dwpost/dwpost.php:81 +#: ../../extend/addon/hzaddons/dwpost/Mod_Dwpost.php:56 msgid "Dreamwidth password" msgstr "ΠΠ°ΡΠΎΠ»Ρ Dreamwidth" -#: ../../extend/addon/hzaddons/dwpost/dwpost.php:85 +#: ../../extend/addon/hzaddons/dwpost/Mod_Dwpost.php:60 msgid "Post to Dreamwidth by default" msgstr "ΠΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Dreamwidth ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ" -#: ../../extend/addon/hzaddons/dwpost/dwpost.php:89 -msgid "Dreamwidth Post Settings" -msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Π² Dreamwidth" +#: ../../extend/addon/hzaddons/dwpost/Mod_Dwpost.php:68 +msgid "Dreamwidth Crosspost Connector" +msgstr "ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Dreamwidth" #: ../../extend/addon/hzaddons/donate/donate.php:21 msgid "Project Servers and Resources" @@ -12468,6 +12537,19 @@ msgid "" "Allow magic authentication only to websites of your immediate connections" msgstr "Π Π°Π·ΡΠ΅ΡΠΈΡΡ Π²ΠΎΠ»ΡΠ΅Π±Π½ΡΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠ°ΠΉΡΠ°Ρ
Π²Π°ΡΠΈΡ
Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΡ
ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ" +#: ../../extend/addon/hzaddons/authchoose/Mod_Authchoose.php:28 +#: ../../extend/addon/hzaddons/authchoose/Mod_Authchoose.php:33 +msgid "Authchoose App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Authchoose" + +#: ../../extend/addon/hzaddons/authchoose/Mod_Authchoose.php:33 +#: ../../extend/addon/hzaddons/nsabait/Mod_Nsabait.php:24 +#: ../../extend/addon/hzaddons/hsse/Mod_Hsse.php:26 +#: ../../extend/addon/hzaddons/planets/Mod_Planets.php:23 +#: ../../extend/addon/hzaddons/rainbowtag/Mod_Rainbowtag.php:26 +msgid "Installed" +msgstr "Π£ΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ" + #: ../../extend/addon/hzaddons/authchoose/Mod_Authchoose.php:39 msgid "Authchoose" msgstr "" @@ -12515,16 +12597,20 @@ msgstr "ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ°" msgid "0 or blank to import all available" msgstr "0 ΠΈΠ»ΠΈ ΠΏΡΡΡΠΎ Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ° Π²ΡΠ΅Ρ
Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
" -#: ../../extend/addon/hzaddons/gallery/Mod_Gallery.php:57 +#: ../../extend/addon/hzaddons/gallery/Mod_Gallery.php:58 +msgid "Gallery App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΠ°Π»Π΅ΡΠ΅Ρ\"" + +#: ../../extend/addon/hzaddons/gallery/Mod_Gallery.php:59 msgid "A simple gallery for your photo albums" msgstr "ΠΡΠΎΡΡΠ°Ρ Π³Π°Π»Π»Π΅ΡΠ΅Ρ Π΄Π»Ρ Π²Π°ΡΠΈΡ
ΡΠΎΡΠΎΠ°Π»ΡΠ±ΠΎΠΌΠΎΠ²" -#: ../../extend/addon/hzaddons/gallery/Mod_Gallery.php:115 -#: ../../extend/addon/hzaddons/gallery/gallery.php:28 +#: ../../extend/addon/hzaddons/gallery/Mod_Gallery.php:135 +#: ../../extend/addon/hzaddons/gallery/gallery.php:38 msgid "Gallery" msgstr "ΠΠ°Π»Π΅ΡΠ΅Ρ" -#: ../../extend/addon/hzaddons/gallery/gallery.php:31 +#: ../../extend/addon/hzaddons/gallery/gallery.php:41 msgid "Photo Gallery" msgstr "Π€ΠΎΡΠΎΠ³Π°Π»Π΅ΡΠ΅Ρ" @@ -12532,9 +12618,13 @@ msgstr "Π€ΠΎΡΠΎΠ³Π°Π»Π΅ΡΠ΅Ρ" msgid "Friendica Crosspost Connector Settings saved." msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Friendica ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ." +#: ../../extend/addon/hzaddons/rtof/Mod_Rtof.php:36 +msgid "Friendica Crosspost Connector App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Friendica\"" + #: ../../extend/addon/hzaddons/rtof/Mod_Rtof.php:37 msgid "Relay public postings to a connected Friendica account" -msgstr "Π Π΅ΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½Π½ΡΡ ΡΡΡΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ Friendica" +msgstr "ΠΠ΅ΡΠ΅ΡΡΠ»Π°Π΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½Π½ΡΡ ΡΡΡΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ Friendica" #: ../../extend/addon/hzaddons/rtof/Mod_Rtof.php:49 msgid "Send public postings to Friendica by default" @@ -12577,27 +12667,31 @@ msgstr "ΠΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ, Π½ΠΎ ΠΎΡ msgid "Post to Insane Journal" msgstr "ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Insane Journal" -#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:24 +#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:23 msgid "Insane Journal Crosspost Connector Settings saved." msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Insane Journal ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ." -#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:37 +#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:35 +msgid "Insane Journal Crosspost Connector App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Insane Journal\"" + +#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:36 msgid "Relay public postings to Insane Journal" -msgstr "Π Π΅ΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² Insane Journal" +msgstr "ΠΠ΅ΡΠ΅ΡΡΠ»Π°Π΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² Insane Journal" -#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:54 +#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:53 msgid "InsaneJournal username" msgstr "ΠΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Insane Journal" -#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:58 +#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:57 msgid "InsaneJournal password" msgstr "ΠΠ°ΡΠΎΠ»Ρ Insane Journal" -#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:62 +#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:61 msgid "Post to InsaneJournal by default" msgstr "ΠΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Insane Journal ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ" -#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:70 +#: ../../extend/addon/hzaddons/ijpost/Mod_Ijpost.php:69 msgid "Insane Journal Crosspost Connector" msgstr "ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Insane Journal" @@ -12622,21 +12716,34 @@ msgstr "ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π²Π°ΡΠΈ ΡΠ°Π msgid "file" msgstr "ΡΠ°ΠΉΠ»" -#: ../../extend/addon/hzaddons/twitter/twitter.php:102 +#: ../../extend/addon/hzaddons/twitter/twitter.php:107 msgid "Post to Twitter" msgstr "ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Twitter" -#: ../../extend/addon/hzaddons/twitter/twitter.php:158 +#: ../../extend/addon/hzaddons/twitter/twitter.php:612 +#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:95 +msgid "Submit Settings" +msgstr "ΠΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ" + +#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:65 msgid "Twitter settings updated." msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Twitter ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ" -#: ../../extend/addon/hzaddons/twitter/twitter.php:187 +#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:78 +msgid "Twitter Crosspost Connector App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Twitter\"" + +#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:79 +msgid "Relay public posts to Twitter" +msgstr "ΠΠ΅ΡΠ΅ΡΡΠ»Π°Π΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² Twitter" + +#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:103 msgid "" "No consumer key pair for Twitter found. Please contact your site " "administrator." msgstr "ΠΠ΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π΄Π»Ρ Twitter. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΠ²ΡΠΆΠΈΡΠ΅ΡΡ Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠΌ ΡΠ°ΠΉΡΠ°." -#: ../../extend/addon/hzaddons/twitter/twitter.php:209 +#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:125 msgid "" "At this Hubzilla instance the Twitter plugin was enabled but you have not " "yet connected your account to your Twitter account. To do so click the " @@ -12645,20 +12752,20 @@ msgid "" "be posted to Twitter." msgstr "Π ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Hubzilla ΠΏΠ»Π°Π³ΠΈΠ½ Twitter Π±ΡΠ» Π²ΠΊΠ»ΡΡΡΠ½, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΠΊΠ° ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½ ΠΊ Π²Π°ΡΠ΅ΠΌΡ Π°ΠΊΠΊΠ°ΡΠ½ΡΡ Π² Twitter. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΆΠΌΠΈΡΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Π½ΠΈΠΆΠ΅ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ PIN-ΠΊΠΎΠ΄Π° ΠΎΡ Twitter ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΎΡΠΌΡ. Π’ΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈ <strong>ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅</strong> ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π±ΡΠ΄ΡΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ Π² Twitter." -#: ../../extend/addon/hzaddons/twitter/twitter.php:211 +#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:127 msgid "Log in with Twitter" msgstr "ΠΠΎΠΉΡΠΈ Π² Twitter" -#: ../../extend/addon/hzaddons/twitter/twitter.php:214 +#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:130 msgid "Copy the PIN from Twitter here" msgstr "Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ PIN-ΠΊΠΎΠ΄ ΠΈΠ· Twitter Π·Π΄Π΅ΡΡ" -#: ../../extend/addon/hzaddons/twitter/twitter.php:236 +#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:147 #: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:272 msgid "Currently connected to: " msgstr "Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½ ΠΊ:" -#: ../../extend/addon/hzaddons/twitter/twitter.php:241 +#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:152 msgid "" "<strong>Note:</strong> Due your privacy settings (<em>Hide your profile " "details from unknown viewers?</em>) the link potentially included in public " @@ -12666,47 +12773,32 @@ msgid "" "the visitor that the access to your profile has been restricted." msgstr "<strong>ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅</strong>: ΠΠ·-Π·Π° Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΠΈ (<em>ΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΎΡ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ
Π·ΡΠΈΡΠ΅Π»Π΅ΠΉ?</em>) cΡΡΠ»ΠΊΠ°, ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½Π½Π°Ρ Π² ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠ΅ Π² Twitter, ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Ρ ΠΊ ΠΏΡΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅, ΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΡΡΠ΅ΠΉ Π΅Π³ΠΎ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΎΡΠΈΠ»Ρ Π±ΡΠ» ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½." -#: ../../extend/addon/hzaddons/twitter/twitter.php:246 -msgid "Allow posting to Twitter" -msgstr "Π Π°Π·ΡΠ΅ΡΠΈΡΡ ΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Twitter" - -#: ../../extend/addon/hzaddons/twitter/twitter.php:246 -msgid "" -"If enabled your public postings can be posted to the associated Twitter " -"account" -msgstr "ΠΡΠ»ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ, Π²Π°ΡΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π±ΡΠ΄ΡΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ Π² ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ ΡΡΡΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Twitter" - -#: ../../extend/addon/hzaddons/twitter/twitter.php:250 +#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:157 msgid "Twitter post length" msgstr "ΠΠ»ΠΈΠ½Π° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Twitter" -#: ../../extend/addon/hzaddons/twitter/twitter.php:250 +#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:157 msgid "Maximum tweet length" msgstr "ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π΄Π»ΠΈΠ½Π° ΡΠ²ΠΈΡΠ°" -#: ../../extend/addon/hzaddons/twitter/twitter.php:255 +#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:162 msgid "Send public postings to Twitter by default" msgstr "ΠΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² Twitter ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ" -#: ../../extend/addon/hzaddons/twitter/twitter.php:255 +#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:162 msgid "" "If enabled your public postings will be posted to the associated Twitter " "account by default" msgstr "ΠΡΠ»ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ, Π²Π°ΡΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π±ΡΠ΄ΡΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ Π² ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ ΡΡΡΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Twitter ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ" -#: ../../extend/addon/hzaddons/twitter/twitter.php:264 +#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:171 #: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:291 msgid "Clear OAuth configuration" msgstr "ΠΡΠΈΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ OAuth" -#: ../../extend/addon/hzaddons/twitter/twitter.php:273 -msgid "Twitter Post Settings" -msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Π² Twitter" - -#: ../../extend/addon/hzaddons/twitter/twitter.php:782 -#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:95 -msgid "Submit Settings" -msgstr "ΠΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ" +#: ../../extend/addon/hzaddons/twitter/Mod_Twitter.php:181 +msgid "Twitter Crosspost Connector" +msgstr "ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Twitter" #: ../../extend/addon/hzaddons/tour/tour.php:76 msgid "Edit your profile and change settings." @@ -12783,7 +12875,7 @@ msgstr "ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΡΡΠ΄Π° ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠΌ, #: ../../extend/addon/hzaddons/tour/tour.php:95 msgid "You can write an optional title for your update (good for long posts)." -msgstr "ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ (ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΡ
ΠΏΠΎΡΡΠΎΠ²)." +msgstr "ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ (ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΡ
ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ)." #: ../../extend/addon/hzaddons/tour/tour.php:96 msgid "Entering some categories here makes it easier to find your post later." @@ -12870,6 +12962,10 @@ msgstr "ΠΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ Π² Hubzilla! ΠΠ΅Π»Π°Π΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈ msgid "Block Completely" msgstr "ΠΠ°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ" +#: ../../extend/addon/hzaddons/superblock/Mod_Superblock.php:20 +msgid "Superblock App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Superblock" + #: ../../extend/addon/hzaddons/superblock/Mod_Superblock.php:21 msgid "Block channels" msgstr "ΠΠ°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°Π½Π°Π»Ρ" @@ -13137,15 +13233,17 @@ msgid "" "increase your anonymity in the web." msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Photo Cache ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ ΠΊΠΎΠΏΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ Π²Π½Π΅ΡΠ½ΠΈΡ
ΡΠ°ΠΉΡΠΎΠ² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ Π²Π°ΡΠ΅ΠΉ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΡΡΠΈ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ." +#: ../../extend/addon/hzaddons/photocache/Mod_Photocache.php:42 +msgid "Photo Cache App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Photo Cache" + #: ../../extend/addon/hzaddons/photocache/Mod_Photocache.php:53 msgid "Minimal photo size for caching" msgstr "ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ" #: ../../extend/addon/hzaddons/photocache/Mod_Photocache.php:55 -msgid "" -"In pixels. 0 will be replaced with system default, from 1 up to 1024 (large " -"images will be scaled to this value)." -msgstr "Π ΠΏΠΈΡΠΊΠ΅Π»ΡΡ
. 0 Π±ΡΠ΄Π΅Ρ Π·Π°ΠΌΠ΅Π½ΡΠ½ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΎΡ 1 Π΄ΠΎ 1024 (Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½Ρ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ)." +msgid "In pixels. From 1 up to 1024, 0 will be replaced with system default." +msgstr "Π ΠΏΠΈΠΊΡΠ΅Π»ΡΡ
. ΠΡ 1 Π΄ΠΎ 1024, 0 Π±ΡΠ΄Π΅Ρ Π·Π°ΠΌΠ΅Π½ΡΠ½ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ." #: ../../extend/addon/hzaddons/photocache/Mod_Photocache.php:64 msgid "Photo Cache" @@ -13370,77 +13468,78 @@ msgstr "ΠΠΊΠ»ΡΡΠΈΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ JavaScript Π½Π° Ρ msgid "This feature requires Piwik >= 2.2.0" msgstr "ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΡΠ΅Π±ΡΠ΅Ρ Π²Π΅ΡΡΠΈΡ Piwik >= 2.2.0" -#: ../../extend/addon/hzaddons/pumpio/pumpio.php:148 -msgid "You are now authenticated to pumpio." -msgstr "ΠΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Ρ Π² Pump.io" +#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:40 +msgid "Pump.io Settings saved." +msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Pump.io ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ." -#: ../../extend/addon/hzaddons/pumpio/pumpio.php:149 -msgid "return to the featured settings page" -msgstr "ΠΠ΅ΡΠ½ΡΡΡΡ ΠΊ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠ΅ΠΊ" +#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:53 +msgid "Pump.io Crosspost Connector App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Pump.io\"" -#: ../../extend/addon/hzaddons/pumpio/pumpio.php:163 -msgid "Post to Pump.io" -msgstr "ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Pump.io" +#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:54 +msgid "Relay public posts to pump.io" +msgstr "ΠΠ΅ΡΠ΅ΡΡΠ»Π°Π΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² Pump.io" -#: ../../extend/addon/hzaddons/pumpio/pumpio.php:198 +#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:73 msgid "Pump.io servername" msgstr "ΠΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ° Pump.io" -#: ../../extend/addon/hzaddons/pumpio/pumpio.php:198 +#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:73 msgid "Without \"http://\" or \"https://\"" msgstr "ΠΠ΅Π· \"http://\" ΠΈΠ»ΠΈ \"https://\"" -#: ../../extend/addon/hzaddons/pumpio/pumpio.php:202 +#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:77 msgid "Pump.io username" msgstr "ΠΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Pump.io" -#: ../../extend/addon/hzaddons/pumpio/pumpio.php:202 +#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:77 msgid "Without the servername" msgstr "Π±Π΅Π· ΠΈΠΌΠ΅Π½ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°" -#: ../../extend/addon/hzaddons/pumpio/pumpio.php:213 +#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:88 msgid "You are not authenticated to pumpio" msgstr "ΠΡ Π½Π΅ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Ρ Π½Π° Pump.io" -#: ../../extend/addon/hzaddons/pumpio/pumpio.php:215 +#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:90 msgid "(Re-)Authenticate your pump.io connection" msgstr "ΠΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ (ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ) Π²Π°ΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ Pump.io" -#: ../../extend/addon/hzaddons/pumpio/pumpio.php:219 -msgid "Enable pump.io Post Plugin" -msgstr "ΠΠΊΠ»ΡΡΠΈΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Pump.io" - -#: ../../extend/addon/hzaddons/pumpio/pumpio.php:223 +#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:94 msgid "Post to pump.io by default" msgstr "ΠΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Pump.io ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ" -#: ../../extend/addon/hzaddons/pumpio/pumpio.php:227 +#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:98 msgid "Should posts be public" msgstr "ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ" -#: ../../extend/addon/hzaddons/pumpio/pumpio.php:231 +#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:102 msgid "Mirror all public posts" msgstr "ΠΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π²ΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ" -#: ../../extend/addon/hzaddons/pumpio/pumpio.php:237 -msgid "Pump.io Post Settings" -msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Π² Pump.io" +#: ../../extend/addon/hzaddons/pumpio/Mod_Pumpio.php:112 +msgid "Pump.io Crosspost Connector" +msgstr "ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Pump.io" + +#: ../../extend/addon/hzaddons/pumpio/pumpio.php:152 +msgid "You are now authenticated to pumpio." +msgstr "ΠΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Ρ Π² Pump.io" -#: ../../extend/addon/hzaddons/pumpio/pumpio.php:266 -msgid "PumpIO Settings saved." -msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Π² Pump.io ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ." +#: ../../extend/addon/hzaddons/pumpio/pumpio.php:153 +msgid "return to the featured settings page" +msgstr "ΠΠ΅ΡΠ½ΡΡΡΡ ΠΊ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠ΅ΠΊ" -#: ../../extend/addon/hzaddons/nsabait/nsabait.php:125 -msgid "Nsabait Settings updated." -msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Nsabait ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ" +#: ../../extend/addon/hzaddons/pumpio/pumpio.php:168 +msgid "Post to Pump.io" +msgstr "ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Pump.io" -#: ../../extend/addon/hzaddons/nsabait/nsabait.php:157 -msgid "Enable NSAbait Plugin" -msgstr "ΠΠΊΠ»ΡΡΠΈΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ NSAbait" +#: ../../extend/addon/hzaddons/nsabait/Mod_Nsabait.php:20 +#: ../../extend/addon/hzaddons/nsabait/Mod_Nsabait.php:24 +msgid "NSA Bait App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ NSA Bait" -#: ../../extend/addon/hzaddons/nsabait/nsabait.php:161 -msgid "NSAbait Settings" -msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Nsabait" +#: ../../extend/addon/hzaddons/nsabait/Mod_Nsabait.php:26 +msgid "Make yourself a political target" +msgstr "Π‘Π΄Π΅Π»Π°ΡΡ ΡΠ΅Π±Ρ ΠΏΠΎΠ»ΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΌΠΈΡΠ΅Π½ΡΡ" #: ../../extend/addon/hzaddons/mailtest/mailtest.php:19 msgid "Send test email" @@ -13607,29 +13706,33 @@ msgstr "ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Π΄Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ yyyy-mm-dd" msgid "Until modified date yyyy-mm-dd" msgstr "ΠΠ°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ Π΄Π°ΡΠΎΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ yyyy-mm-dd" -#: ../../extend/addon/hzaddons/ljpost/ljpost.php:42 +#: ../../extend/addon/hzaddons/ljpost/ljpost.php:45 msgid "Post to Livejournal" msgstr "ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Livejournal" -#: ../../extend/addon/hzaddons/ljpost/ljpost.php:73 -msgid "Enable Livejournal Post Plugin" -msgstr "ΠΠΊΠ»ΡΡΠΈΡΡ ΡΠ°ΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Π² Livejournal" +#: ../../extend/addon/hzaddons/ljpost/Mod_Ljpost.php:36 +msgid "Livejournal Crosspost Connector App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Livejournal\"" -#: ../../extend/addon/hzaddons/ljpost/ljpost.php:77 +#: ../../extend/addon/hzaddons/ljpost/Mod_Ljpost.php:37 +msgid "Relay public posts to Livejournal" +msgstr "ΠΠ΅ΡΠ΅ΡΡΠ»Π°Π΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² Livejournal" + +#: ../../extend/addon/hzaddons/ljpost/Mod_Ljpost.php:54 msgid "Livejournal username" msgstr "ΠΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Livejournal" -#: ../../extend/addon/hzaddons/ljpost/ljpost.php:81 +#: ../../extend/addon/hzaddons/ljpost/Mod_Ljpost.php:58 msgid "Livejournal password" msgstr "ΠΠ°ΡΠΎΠ»Ρ Livejournal" -#: ../../extend/addon/hzaddons/ljpost/ljpost.php:85 +#: ../../extend/addon/hzaddons/ljpost/Mod_Ljpost.php:62 msgid "Post to Livejournal by default" msgstr "ΠΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Livejournal ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ" -#: ../../extend/addon/hzaddons/ljpost/ljpost.php:89 -msgid "Livejournal Post Settings" -msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² Livejournal" +#: ../../extend/addon/hzaddons/ljpost/Mod_Ljpost.php:70 +msgid "Livejournal Crosspost Connector" +msgstr "ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Livejournal" #: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:61 msgid "" @@ -13645,10 +13748,15 @@ msgstr "ΠΠ°ΠΌ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡ Ρ GNU So msgid "GNU social settings updated." msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ GNU Social ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ." +#: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:146 +#: ../../extend/addon/hzaddons/redred/Mod_Redred.php:50 +msgid "Hubzilla Crosspost Connector App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Hubzilla\"" + #: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:147 msgid "" "Relay public postings to a connected GNU social account (formerly StatusNet)" -msgstr "Π Π΅ΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½Π½ΡΡ ΡΡΡΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ GNU social (Π±ΡΠ²ΡΠ°Ρ StatusNet)" +msgstr "ΠΠ΅ΡΠ΅ΡΡΠ»Π°Π΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½Π½ΡΡ ΡΡΡΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ GNU social (Π±ΡΠ²ΡΠ°Ρ StatusNet)" #: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:181 msgid "Globally Available GNU social OAuthKeys" @@ -13742,7 +13850,7 @@ msgstr "ΠΡΠ»ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ, Π²Π°ΡΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»Π #: ../../extend/addon/hzaddons/statusnet/Mod_Statusnet.php:303 msgid "GNU-Social Crosspost Connector" -msgstr "" +msgstr "ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ GNU Social" #: ../../extend/addon/hzaddons/statusnet/statusnet.php:145 msgid "Post to GNU social" @@ -13915,9 +14023,13 @@ msgstr "Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π±ΡΠ»ΠΎ:" msgid "OpenID protocol error. No ID returned." msgstr "ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° OpenID. ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΡΠ½." +#: ../../extend/addon/hzaddons/startpage/Mod_Startpage.php:50 +msgid "Startpage App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"Π‘ΡΠ°ΡΡΠΎΠ²Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ°\"" + #: ../../extend/addon/hzaddons/startpage/Mod_Startpage.php:51 msgid "Set a preferred page to load on login from home page" -msgstr "Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΈ Π²Ρ
ΠΎΠ΄Π΅ Ρ Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΡ" +msgstr "Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΈ Π²Ρ
ΠΎΠ΄Π΅ Ρ Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΡ" #: ../../extend/addon/hzaddons/startpage/Mod_Startpage.php:62 msgid "Page to load after login" @@ -14006,7 +14118,7 @@ msgid "Base Merchant Currency" msgstr "ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠΎΡΠ³ΠΎΠ²Π°Ρ Π²Π°Π»ΡΡΠ°" #: ../../extend/addon/hzaddons/cart/Settings/Cart.php:111 -#: ../../extend/addon/hzaddons/cart/cart.php:1262 +#: ../../extend/addon/hzaddons/cart/cart.php:1263 msgid "Cart Settings" msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠ°ΡΡΠΎΡΠ΅ΠΊ" @@ -14160,7 +14272,7 @@ msgstr "ΠΠ½ΠΎΠΏΠΊΠ° Paypal Π΄Π»Ρ ΠΏΠ»Π°ΡΠ΅ΠΆΠ΅ΠΉ Π½Π°ΡΡΡΠΎΠ΅Π½Π° Π½Π΅ΠΏΡΠ #: ../../extend/addon/hzaddons/cart/submodules/paypalbutton.php:392 #: ../../extend/addon/hzaddons/cart/manual_payments.php:68 -#: ../../extend/addon/hzaddons/cart/cart.php:1465 +#: ../../extend/addon/hzaddons/cart/cart.php:1466 msgid "Order not found." msgstr "ΠΠ°ΠΊΠ°Π· Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½." @@ -14173,7 +14285,7 @@ msgid "Access Denied." msgstr "ΠΠΎΡΡΡΠΏ Π·Π°ΠΏΡΠ΅ΡΡΠ½." #: ../../extend/addon/hzaddons/cart/myshop.php:111 -#: ../../extend/addon/hzaddons/cart/cart.php:1333 +#: ../../extend/addon/hzaddons/cart/cart.php:1334 msgid "Order Not Found" msgstr "ΠΠ°ΠΊΠ°Π· Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½" @@ -14200,71 +14312,77 @@ msgstr "ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΎ" msgid "DB Cleanup Failure" msgstr "Π‘Π±ΠΎΠΉ ΠΎΡΠΈΡΡΠΊΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
" -#: ../../extend/addon/hzaddons/cart/cart.php:564 +#: ../../extend/addon/hzaddons/cart/cart.php:565 msgid "[cart] Item Added" msgstr "[cart] ΠΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½" -#: ../../extend/addon/hzaddons/cart/cart.php:952 +#: ../../extend/addon/hzaddons/cart/cart.php:953 msgid "Order already checked out." msgstr "ΠΠ°ΠΊΠ°Π· ΡΠΆΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½." -#: ../../extend/addon/hzaddons/cart/cart.php:1255 +#: ../../extend/addon/hzaddons/cart/cart.php:1256 msgid "Drop database tables when uninstalling." msgstr "Π‘Π±ΡΠΎΡΠΈΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΠΏΡΠΈ Π΄Π΅ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ" -#: ../../extend/addon/hzaddons/cart/cart.php:1274 -#: ../../extend/addon/hzaddons/cart/cart.php:1277 +#: ../../extend/addon/hzaddons/cart/cart.php:1275 +#: ../../extend/addon/hzaddons/cart/cart.php:1278 msgid "Shop" msgstr "ΠΠ°Π³Π°Π·ΠΈΠ½" -#: ../../extend/addon/hzaddons/cart/cart.php:1394 +#: ../../extend/addon/hzaddons/cart/cart.php:1395 msgid "Cart utilities for orders and payments" msgstr "Π£ΡΠΈΠ»ΠΈΡΡ ΠΊΠ°ΡΡΠΎΡΠ΅ΠΊ Π΄Π»Ρ Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΈ ΠΏΠ»Π°ΡΠ΅ΠΆΠ΅ΠΉ" -#: ../../extend/addon/hzaddons/cart/cart.php:1432 +#: ../../extend/addon/hzaddons/cart/cart.php:1433 msgid "You must be logged into the Grid to shop." msgstr "ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π² ΡΠ΅ΡΠΈ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΌΠ°Π³Π°Π·ΠΈΠ½Ρ" -#: ../../extend/addon/hzaddons/cart/cart.php:1473 +#: ../../extend/addon/hzaddons/cart/cart.php:1474 msgid "Access denied." msgstr "ΠΠΎΡΡΡΠΏ Π·Π°ΠΏΡΠ΅ΡΡΠ½." -#: ../../extend/addon/hzaddons/cart/cart.php:1525 -#: ../../extend/addon/hzaddons/cart/cart.php:1668 +#: ../../extend/addon/hzaddons/cart/cart.php:1526 +#: ../../extend/addon/hzaddons/cart/cart.php:1669 msgid "No Order Found" msgstr "ΠΠ΅Ρ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΡ
Π·Π°ΠΊΠ°Π·ΠΎΠ²" -#: ../../extend/addon/hzaddons/cart/cart.php:1534 +#: ../../extend/addon/hzaddons/cart/cart.php:1535 msgid "An unknown error has occurred Please start again." msgstr "ΠΡΠΎΠΈΠ·ΠΎΡΠ»Π° Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π½Π°ΡΠ½ΠΈΡΠ΅ ΡΠ½ΠΎΠ²Π°." -#: ../../extend/addon/hzaddons/cart/cart.php:1701 +#: ../../extend/addon/hzaddons/cart/cart.php:1702 msgid "Invalid Payment Type. Please start again." msgstr "ΠΠ΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΈΠΏ ΠΏΠ»Π°ΡΠ΅ΠΆΠ°. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π½Π°ΡΠ½ΠΈΡΠ΅ ΡΠ½ΠΎΠ²Π°." -#: ../../extend/addon/hzaddons/cart/cart.php:1708 +#: ../../extend/addon/hzaddons/cart/cart.php:1709 msgid "Order not found" msgstr "ΠΠ°ΠΊΠ°Π· Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½" -#: ../../extend/addon/hzaddons/nofed/nofed.php:42 +#: ../../extend/addon/hzaddons/nofed/nofed.php:47 msgid "Federate" msgstr "" -#: ../../extend/addon/hzaddons/nofed/nofed.php:56 +#: ../../extend/addon/hzaddons/nofed/Mod_Nofed.php:21 msgid "nofed Settings saved." msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ nofed ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ." -#: ../../extend/addon/hzaddons/nofed/nofed.php:72 -msgid "Allow Federation Toggle" -msgstr "Π Π°Π·ΡΠ΅ΡΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π΄Π΅ΡΠ°ΡΠΈΠΈ" +#: ../../extend/addon/hzaddons/nofed/Mod_Nofed.php:33 +msgid "No Federation App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ No Federation" + +#: ../../extend/addon/hzaddons/nofed/Mod_Nofed.php:34 +msgid "" +"Prevent posting from being federated to anybody. It will exist only on your " +"channel page." +msgstr "ΠΠ°ΠΏΡΠ΅ΡΠ°Π΅Ρ ΡΠ΅Π΄Π΅ΡΠ°ΡΠΈΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ. ΠΠ½ΠΈ Π±ΡΠ΄ΡΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠ°Π½Π°Π»Π°." -#: ../../extend/addon/hzaddons/nofed/nofed.php:76 +#: ../../extend/addon/hzaddons/nofed/Mod_Nofed.php:42 msgid "Federate posts by default" msgstr "Π Π°Π·ΡΠ΅ΡΠΈΡΡ ΡΠ΅Π΄Π΅ΡΠ°ΡΠΈΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ" -#: ../../extend/addon/hzaddons/nofed/nofed.php:80 -msgid "NoFed Settings" -msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ NoFed" +#: ../../extend/addon/hzaddons/nofed/Mod_Nofed.php:50 +msgid "No Federation" +msgstr "" #: ../../extend/addon/hzaddons/upgrade_info/upgrade_info.php:43 msgid "Your channel has been upgraded to the latest $Projectname version." @@ -14361,26 +14479,34 @@ msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Gravatar ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ." msgid "WYSIWYG status editor" msgstr "WYSIWYG ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΡΡΠ°ΡΡΡΠ° " +#: ../../extend/addon/hzaddons/hsse/Mod_Hsse.php:21 +#: ../../extend/addon/hzaddons/hsse/Mod_Hsse.php:26 +msgid "WYSIWYG Status App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"WYSIWYG ΡΡΠ°ΡΡΡ\"" + #: ../../extend/addon/hzaddons/hsse/Mod_Hsse.php:34 msgid "WYSIWYG Status" msgstr "WYSIWYG ΡΡΠ°ΡΡΡ" -#: ../../extend/addon/hzaddons/planets/planets.php:121 -msgid "Planets Settings updated." -msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Planets ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ." +#: ../../extend/addon/hzaddons/planets/Mod_Planets.php:20 +#: ../../extend/addon/hzaddons/planets/Mod_Planets.php:23 +msgid "Random Planet App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"Π‘Π»ΡΡΠ°ΠΉΠ½Π°Ρ ΠΏΠ»Π°Π½Π΅ΡΠ°\"" -#: ../../extend/addon/hzaddons/planets/planets.php:149 -msgid "Enable Planets Plugin" -msgstr "ΠΠΊΠ»ΡΡΠΈΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ Planets" - -#: ../../extend/addon/hzaddons/planets/planets.php:153 -msgid "Planets Settings" -msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Planets" +#: ../../extend/addon/hzaddons/planets/Mod_Planets.php:25 +msgid "" +"Set a random planet from the Star Wars Empire as your location when posting" +msgstr "Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΠΏΠ»Π°Π½Π΅ΡΡ ΠΈΠ· ΠΠΌΠΏΠ΅ΡΠΈΠΈ ΠΠ²Π΅Π·Π΄Π½ΡΡ
ΠΠΎΠΉΠ½ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ" #: ../../extend/addon/hzaddons/rainbowtag/Mod_Rainbowtag.php:15 msgid "Add some colour to tag clouds" msgstr "ΠΠΎΠ±Π°Π²ΠΈΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ° Π΄Π»Ρ ΠΎΠ±Π»Π°ΠΊΠ° ΡΠ΅Π³ΠΎΠ²" +#: ../../extend/addon/hzaddons/rainbowtag/Mod_Rainbowtag.php:21 +#: ../../extend/addon/hzaddons/rainbowtag/Mod_Rainbowtag.php:26 +msgid "Rainbow Tag App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"Π Π°Π΄ΡΠ³Π° ΡΠ΅Π³ΠΎΠ²\"" + #: ../../extend/addon/hzaddons/rainbowtag/Mod_Rainbowtag.php:34 msgid "Rainbow Tag" msgstr "Π Π°Π΄ΡΠ³Π° ΡΠ΅Π³ΠΎΠ²" @@ -14388,7 +14514,7 @@ msgstr "Π Π°Π΄ΡΠ³Π° ΡΠ΅Π³ΠΎΠ²" #: ../../extend/addon/hzaddons/chess/chess.php:353 #: ../../extend/addon/hzaddons/chess/chess.php:542 msgid "Invalid game." -msgstr "ΠΠ΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΠ³ΡΠ°" +msgstr "ΠΠ΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΠ³ΡΠ°." #: ../../extend/addon/hzaddons/chess/chess.php:359 #: ../../extend/addon/hzaddons/chess/chess.php:582 @@ -14435,22 +14561,117 @@ msgid "" "locations." msgstr "ΠΡΠΎΡΠΎΠΊΠΎΠ» GNU-Social Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΡΠΈ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π² ΡΡΠΎΠΉ ΡΠ΅ΡΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΈΠ· Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΡ
ΠΌΠ΅ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠ°Π½Π°Π»Π°." +#: ../../extend/addon/hzaddons/gnusoc/Mod_Gnusoc.php:22 +msgid "GNU-Social Protocol App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΡΠΎΡΠΎΠΊΠΎΠ» GNU-Social\"" + #: ../../extend/addon/hzaddons/gnusoc/Mod_Gnusoc.php:34 msgid "GNU-Social Protocol" msgstr "ΠΡΠΎΡΠΎΠΊΠΎΠ» GNU-Social" -#: ../../extend/addon/hzaddons/pageheader/pageheader.php:43 -msgid "Message to display on every page on this server" -msgstr "ΠΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π½Π° ΡΡΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅." +#: ../../extend/addon/hzaddons/totp/Mod_Totp.php:23 +msgid "TOTP Two-Step Verification" +msgstr "ΠΠ²ΡΡ
ΡΡΠ°ΠΏΠ½Π°Ρ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ TOTP" + +#: ../../extend/addon/hzaddons/totp/Mod_Totp.php:24 +msgid "Enter the 2-step verification generated by your authenticator app:" +msgstr "ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π²Π°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ" + +#: ../../extend/addon/hzaddons/totp/Mod_Totp.php:25 +msgid "Success!" +msgstr "Π£ΡΠΏΠ΅Ρ
!" + +#: ../../extend/addon/hzaddons/totp/Mod_Totp.php:26 +msgid "Invalid code, please try again." +msgstr "ΠΠ΅Π²Π΅ΡΠ½ΡΠΉ ΠΊΠΎΠ΄. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π΅ΡΡ ΡΠ°Π·." + +#: ../../extend/addon/hzaddons/totp/Mod_Totp.php:27 +msgid "Too many invalid codes..." +msgstr "Π‘Π»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Π²Π΅ΡΠ½ΡΡ
ΠΊΠΎΠ΄ΠΎΠ²..." + +#: ../../extend/addon/hzaddons/totp/Mod_Totp.php:28 +msgid "Verify" +msgstr "ΠΡΠΎΠ²Π΅ΡΠΈΡΡ" + +#: ../../extend/addon/hzaddons/totp/Settings/Totp.php:90 +msgid "" +"You haven't set a TOTP secret yet.\n" +"Please click the button below to generate one and register this site\n" +"with your preferred authenticator app." +msgstr "ΠΡ Π΅ΡΠ΅ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ TOTP. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π½Π°ΠΆΠΌΠΈΡΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Π½ΠΈΠΆΠ΅, ΡΡΠΎΠ±Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΈ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΡΠ°ΠΉΡ Π² ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΠΌ Π²Π°ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΄Π»Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ." -#: ../../extend/addon/hzaddons/pageheader/pageheader.php:48 -msgid "Pageheader Settings" -msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ°ΠΏΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ" +#: ../../extend/addon/hzaddons/totp/Settings/Totp.php:93 +msgid "Your TOTP secret is" +msgstr "ΠΠ°Ρ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ TOTP" -#: ../../extend/addon/hzaddons/pageheader/pageheader.php:64 +#: ../../extend/addon/hzaddons/totp/Settings/Totp.php:94 +msgid "" +"Be sure to save it somewhere in case you lose or replace your mobile " +"device.\n" +"Use your mobile device to scan the QR code below to register this site\n" +"with your preferred authenticator app." +msgstr "ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ Π΅Π³ΠΎ Π³Π΄Π΅-Π½ΠΈΠ±ΡΠ΄Ρ Π½Π° ΡΠ»ΡΡΠ°ΠΉ ΠΏΠΎΡΠ΅ΡΠΈ ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΎΡΡΠΊΠ°Π½ΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ QR-ΠΊΠΎΠ΄, ΡΡΠΎΠ±Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΡΠ°ΠΉΡ Π² ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΠΌ Π²Π°ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΄Π»Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ." + +#: ../../extend/addon/hzaddons/totp/Settings/Totp.php:99 +msgid "Test" +msgstr "Π’Π΅ΡΡ" + +#: ../../extend/addon/hzaddons/totp/Settings/Totp.php:100 +msgid "Generate New Secret" +msgstr "Π‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠΎΠ΄" + +#: ../../extend/addon/hzaddons/totp/Settings/Totp.php:101 +msgid "Go" +msgstr "ΠΠΏΠ΅ΡΡΠ΄" + +#: ../../extend/addon/hzaddons/totp/Settings/Totp.php:102 +msgid "Enter your password" +msgstr "ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π²Π°Ρ ΠΏΠ°ΡΠΎΠ»Ρ" + +#: ../../extend/addon/hzaddons/totp/Settings/Totp.php:103 +msgid "enter TOTP code from your device" +msgstr "Π²Π²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠ΄ TOTP ΠΈΠ· Π²Π°ΡΠ΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°" + +#: ../../extend/addon/hzaddons/totp/Settings/Totp.php:104 +msgid "Pass!" +msgstr "ΠΡΠΈΠ½ΡΡΠΎ!" + +#: ../../extend/addon/hzaddons/totp/Settings/Totp.php:105 +msgid "Fail" +msgstr "ΠΡΠΊΠ°Π·Π°Π½ΠΎ" + +#: ../../extend/addon/hzaddons/totp/Settings/Totp.php:106 +msgid "Incorrect password, try again." +msgstr "ΠΠ΅Π²Π΅ΡΠ½ΡΠΉ ΠΏΠ°ΡΠΎΠ»Ρ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ½ΠΎΠ²Π°." + +#: ../../extend/addon/hzaddons/totp/Settings/Totp.php:107 +msgid "Record your new TOTP secret and rescan the QR code above." +msgstr "ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ Π²Π°Ρ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ TOTP ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΎΡΡΠΊΠ°Π½ΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ QR-ΠΊΠΎΠ΄." + +#: ../../extend/addon/hzaddons/totp/Settings/Totp.php:115 +msgid "TOTP Settings" +msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ TOTP" + +#: ../../extend/addon/hzaddons/pageheader/Mod_Pageheader.php:22 msgid "pageheader Settings saved." msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ°ΠΏΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ." +#: ../../extend/addon/hzaddons/pageheader/Mod_Pageheader.php:34 +msgid "Page Header App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΡΡΠ°Π½ΠΈΡΡ\"" + +#: ../../extend/addon/hzaddons/pageheader/Mod_Pageheader.php:35 +msgid "Inserts a page header" +msgstr "ΠΡΡΠ°Π²Π»ΡΠ΅Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΡΡΠ°Π½ΠΈΡΡ" + +#: ../../extend/addon/hzaddons/pageheader/Mod_Pageheader.php:43 +msgid "Message to display on every page on this server" +msgstr "ΠΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π½Π° ΡΡΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅." + +#: ../../extend/addon/hzaddons/pageheader/Mod_Pageheader.php:51 +msgid "Page Header" +msgstr "ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΡΡΠ°Π½ΠΈΡΡ" + #: ../../extend/addon/hzaddons/msgfooter/msgfooter.php:47 msgid "text to include in all outgoing posts from this site" msgstr "ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π²ΠΎ Π²ΡΠ΅ ΠΈΡΡ
ΠΎΠ΄ΡΡΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Ρ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ°" @@ -14476,17 +14697,21 @@ msgstr "ΠΠ΄ΡΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ" msgid "Test mode (only send to hub administrator)" msgstr "Π’Π΅ΡΡΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ (ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΎΠ»ΡΠΊΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ ΡΠ·Π»Π°)" -#: ../../extend/addon/hzaddons/smileybutton/smileybutton.php:211 -msgid "Deactivate the feature" -msgstr "ΠΠ΅Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ" +#: ../../extend/addon/hzaddons/smileybutton/Mod_Smileybutton.php:35 +msgid "Smileybutton App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΠ½ΠΎΠΏΠΊΠ° ΡΠΎ ΡΠΌΠ°ΠΉΠ»ΠΈΠΊΠ°ΠΌ\"" + +#: ../../extend/addon/hzaddons/smileybutton/Mod_Smileybutton.php:36 +msgid "Adds a smileybutton to the jot editor" +msgstr "ΠΠΎΠ±Π°Π²Π»ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΡΠΎ ΡΠΌΠ°ΠΉΠ»ΠΈΠΊΠ°ΠΌΠΈ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡ Jot" -#: ../../extend/addon/hzaddons/smileybutton/smileybutton.php:215 +#: ../../extend/addon/hzaddons/smileybutton/Mod_Smileybutton.php:44 msgid "Hide the button and show the smilies directly." msgstr "Π‘ΠΊΡΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΈ ΡΡΠ°Π·Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΌΠ°ΠΉΠ»ΠΈΠΊΠΈ." -#: ../../extend/addon/hzaddons/smileybutton/smileybutton.php:219 +#: ../../extend/addon/hzaddons/smileybutton/Mod_Smileybutton.php:52 msgid "Smileybutton Settings" -msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΡΠΌΠ°ΠΉΠ»ΠΈΠΊΠΎΠ²" +msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΡΠΎ ΡΠΌΠ°ΠΉΠ»ΠΈΠΊΠ°ΠΌΠΈ" #: ../../extend/addon/hzaddons/frphotos/frphotos.php:92 msgid "Friendica Photo Album Import" @@ -14687,6 +14912,10 @@ msgstr "Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ Π² %s. Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π½ msgid "Send your identity to all websites" msgstr "ΠΡΠΏΡΠ°Π²ΠΈΡΡ Π²Π°ΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π½Π° Π²ΡΠ΅ Π²Π΅Π±-ΡΠ°ΠΉΡΡ" +#: ../../extend/addon/hzaddons/sendzid/Mod_Sendzid.php:20 +msgid "Sendzid App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΡΠΏΡΠ°Π²ΠΈΡΡ ZID\"" + #: ../../extend/addon/hzaddons/sendzid/Mod_Sendzid.php:32 msgid "Send ZID" msgstr "ΠΡΠΏΡΠ°Π²ΠΈΡΡ ZID" @@ -14695,6 +14924,18 @@ msgstr "ΠΡΠΏΡΠ°Π²ΠΈΡΡ ZID" msgid "Who likes me?" msgstr "ΠΠΎΠΌΡ Ρ Π½ΡΠ°Π²Π»ΡΡΡ?" +#: ../../extend/addon/hzaddons/queueworker/Mod_Queueworker.php:73 +msgid "Max queueworker threads" +msgstr "ΠΠ°ΠΊΡ. ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ" + +#: ../../extend/addon/hzaddons/queueworker/Mod_Queueworker.php:87 +msgid "Assume workers dead after ___ seconds" +msgstr "Π‘ΡΠΈΡΠ°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π½Π΅Π°ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΠΊΡΠ½Π΄" + +#: ../../extend/addon/hzaddons/queueworker/Mod_Queueworker.php:99 +msgid "Queueworker Settings" +msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ" + #: ../../extend/addon/hzaddons/moremoods/moremoods.php:19 msgid "lonely" msgstr "ΠΎΠ΄ΠΈΠ½ΠΎΠΊΠΈΠΉ" @@ -14783,35 +15024,18 @@ msgstr "Π·Π°Π²ΠΈΠ΄ΡΠ΅Ρ" msgid "jealous" msgstr "ΡΠ΅Π²Π½ΡΠ΅Ρ" -#: ../../extend/addon/hzaddons/visage/visage.php:93 +#: ../../extend/addon/hzaddons/visage/Mod_Visage.php:21 +msgid "Who viewed my channel/profile" +msgstr "ΠΡΠΎ ΡΠΌΠΎΡΡΠ΅Π» ΠΌΠΎΠΉ ΠΊΠ°Π½Π°Π» / ΠΏΡΠΎΡΠΈΠ»Ρ" + +#: ../../extend/addon/hzaddons/visage/Mod_Visage.php:25 msgid "Recent Channel/Profile Viewers" msgstr "ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΌΠΎΡΡΡ ΠΊΠ°Π½Π°Π»Π° / ΠΏΡΠΎΡΠΈΠ»Ρ" -#: ../../extend/addon/hzaddons/visage/visage.php:98 -msgid "This plugin/addon has not been configured." -msgstr "ΠΡΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡΠ»ΠΎ Π½Π°ΡΡΡΠΎΠ΅Π½ΠΎ." - -#: ../../extend/addon/hzaddons/visage/visage.php:99 -#, php-format -msgid "Please visit the Visage settings on %s" -msgstr "ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Visage Π½Π° %s" - -#: ../../extend/addon/hzaddons/visage/visage.php:99 -msgid "your feature settings page" -msgstr "ΡΡΡΠ°Π½ΠΈΡΠ° Π²Π°ΡΠΈΡ
ΡΡΡΠ°Π½ΠΎΠ²ΠΎΡΠ½ΡΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²" - -#: ../../extend/addon/hzaddons/visage/visage.php:112 +#: ../../extend/addon/hzaddons/visage/Mod_Visage.php:36 msgid "No entries." msgstr "ΠΠ΅Ρ Π·Π°ΠΏΠΈΡΠ΅ΠΉ." -#: ../../extend/addon/hzaddons/visage/visage.php:166 -msgid "Enable Visage Visitor Logging" -msgstr "ΠΠΊΠ»ΡΡΠΈΡΡ ΠΆΡΡΠ½Π°Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Π΅ΠΉ Visage" - -#: ../../extend/addon/hzaddons/visage/visage.php:170 -msgid "Visage Settings" -msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Visage" - #: ../../extend/addon/hzaddons/irc/irc.php:45 msgid "Channels to auto connect" msgstr "ΠΠ°Π½Π°Π»Ρ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ" @@ -14884,33 +15108,37 @@ msgstr "ΠΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΡΡΡΠ½Ρ Π΄Π»Ρ Π»Π΅Π²ΡΠ΅ΠΉ" msgid "Quick Reference" msgstr "ΠΡΡΡΡΠ°Ρ ΡΡΡΠ»ΠΊΠ°" -#: ../../extend/addon/hzaddons/libertree/libertree.php:38 +#: ../../extend/addon/hzaddons/libertree/libertree.php:43 msgid "Post to Libertree" msgstr "ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Libertree" -#: ../../extend/addon/hzaddons/libertree/libertree.php:69 -msgid "Enable Libertree Post Plugin" -msgstr "ΠΠΊΠ»ΡΡΠΈΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Libertree" +#: ../../extend/addon/hzaddons/libertree/Mod_Libertree.php:25 +msgid "Libertree Crosspost Connector Settings saved." +msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Libertree ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ." + +#: ../../extend/addon/hzaddons/libertree/Mod_Libertree.php:35 +msgid "Libertree Crosspost Connector App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Libertree\"" -#: ../../extend/addon/hzaddons/libertree/libertree.php:73 +#: ../../extend/addon/hzaddons/libertree/Mod_Libertree.php:36 +msgid "Relay public posts to Libertree" +msgstr "ΠΠ΅ΡΠ΅ΡΡΠ»Π°Π΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² Libertree" + +#: ../../extend/addon/hzaddons/libertree/Mod_Libertree.php:51 msgid "Libertree API token" msgstr "Π’ΠΎΠΊΠ΅Π½ Libertree API" -#: ../../extend/addon/hzaddons/libertree/libertree.php:77 +#: ../../extend/addon/hzaddons/libertree/Mod_Libertree.php:55 msgid "Libertree site URL" msgstr "URL ΡΠ°ΠΉΡΠ° Libertree" -#: ../../extend/addon/hzaddons/libertree/libertree.php:81 +#: ../../extend/addon/hzaddons/libertree/Mod_Libertree.php:59 msgid "Post to Libertree by default" msgstr "ΠΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Libertree ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ" -#: ../../extend/addon/hzaddons/libertree/libertree.php:85 -msgid "Libertree Post Settings" -msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Π² Libertree" - -#: ../../extend/addon/hzaddons/libertree/libertree.php:99 -msgid "Libertree Settings saved." -msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Libertree ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ." +#: ../../extend/addon/hzaddons/libertree/Mod_Libertree.php:67 +msgid "Libertree Crosspost Connector" +msgstr "ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Libertree" #: ../../extend/addon/hzaddons/redred/Mod_Redred.php:24 msgid "Channel is required." @@ -14918,11 +15146,11 @@ msgstr "ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ ΠΊΠ°Π½Π°Π»." #: ../../extend/addon/hzaddons/redred/Mod_Redred.php:38 msgid "Hubzilla Crosspost Connector Settings saved." -msgstr "" +msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Hubzilla ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ." #: ../../extend/addon/hzaddons/redred/Mod_Redred.php:51 msgid "Relay public postings to another Hubzilla channel" -msgstr "Π Π΅ΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ°Π½Π°Π» Hubzilla" +msgstr "ΠΠ΅ΡΠ΅ΡΡΠ»Π°Π΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ°Π½Π°Π» Hubzilla" #: ../../extend/addon/hzaddons/redred/Mod_Redred.php:63 msgid "Send public postings to Hubzilla channel by default" @@ -14942,11 +15170,11 @@ msgstr "ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ°Π½Π°Π»Π° Hubzilla" #: ../../extend/addon/hzaddons/redred/Mod_Redred.php:87 msgid "Hubzilla Crosspost Connector" -msgstr "" +msgstr "ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Hubzilla" #: ../../extend/addon/hzaddons/redred/redred.php:50 msgid "Post to Hubzilla" -msgstr "" +msgstr "ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Hubzilla" #: ../../extend/addon/hzaddons/pubcrawl/Mod_Pubcrawl.php:25 msgid "ActivityPub Protocol Settings updated." @@ -14959,6 +15187,10 @@ msgid "" "locations." msgstr "ΠΡΠΎΡΠΎΠΊΠΎΠ» ActivityPub Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΡΠΈ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π² ΡΡΠΎΠΉ ΡΠ΅ΡΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΈΠ· Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΡ
ΠΌΠ΅ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠ°Π½Π°Π»Π°." +#: ../../extend/addon/hzaddons/pubcrawl/Mod_Pubcrawl.php:40 +msgid "Activitypub Protocol App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΡΠΎΡΠΎΠΊΠΎΠ» ActivityPub\"" + #: ../../extend/addon/hzaddons/pubcrawl/Mod_Pubcrawl.php:48 msgid "Deliver to ActivityPub recipients in privacy groups" msgstr "ΠΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»ΡΠΌ ActivityPub Π² Π³ΡΡΠΏΠΏΠ°Ρ
Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ" @@ -14996,6 +15228,10 @@ msgid "" "locations." msgstr "ΠΡΠΎΡΠΎΠΊΠΎΠ» Diaspora Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΡΠΈ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π² ΡΡΠΎΠΉ ΡΠ΅ΡΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΈΠ· Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΡ
ΠΌΠ΅ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠ°Π½Π°Π»Π°." +#: ../../extend/addon/hzaddons/diaspora/Mod_Diaspora.php:55 +msgid "Diaspora Protocol App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΡΠΎΡΠΎΠΊΠΎΠ» Diaspora\"" + #: ../../extend/addon/hzaddons/diaspora/Mod_Diaspora.php:74 msgid "Allow any Diaspora member to comment on your public posts" msgstr "Π Π°Π·ΡΠ΅ΡΠΈΡΡ Π»ΡΠ±ΠΎΠΌΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΡ Diaspora ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π°ΡΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ" @@ -15016,6 +15252,11 @@ msgstr "ΠΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ΅Π³ΠΈ (ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ, ΠΈΡΠΊΠ» msgid "Diaspora Protocol" msgstr "ΠΡΠΎΡΠΎΠΊΠΎΠ» Diaspora" +#: ../../extend/addon/hzaddons/diaspora/Receiver.php:1495 +#, php-format +msgid "%1$s dislikes %2$s's %3$s" +msgstr "%1$s Π½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ %2$s's %3$s" + #: ../../extend/addon/hzaddons/wppost/wppost.php:46 msgid "Post to WordPress" msgstr "ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² WordPress" @@ -15024,6 +15265,10 @@ msgstr "ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² WordPress" msgid "Wordpress Settings saved." msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ WordPress ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ." +#: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:41 +msgid "Wordpress Post App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π² Wordpress\"" + #: ../../extend/addon/hzaddons/wppost/Mod_Wppost.php:42 msgid "Post to WordPress or anything else which uses the wordpress XMLRPC API" msgstr "ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² WordPress ΠΈΠ»ΠΈ Π² ΡΡΠΌ-ΡΠΎ Π΅ΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ΅ΠΌ wordpress XMLRPC API" @@ -15077,6 +15322,10 @@ msgstr "%s - ΠΏΡΠΎΡΠΌΠΎΡΡ" msgid "NSFW Settings saved." msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ NSFW ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ." +#: ../../extend/addon/hzaddons/nsfw/Mod_Nsfw.php:33 +msgid "NSFW App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ NSFW" + #: ../../extend/addon/hzaddons/nsfw/Mod_Nsfw.php:34 msgid "Collapse content that contains predefined words" msgstr "Π‘Π²Π΅ΡΠ½ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠ»ΠΎΠ²Π°" @@ -15103,15 +15352,23 @@ msgstr "ΡΠ»ΠΎΠ²ΠΎ, /ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠ΅_Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅/, lang=xx, lang!=xx msgid "NSFW" msgstr "" -#: ../../extend/addon/hzaddons/skeleton/skeleton.php:59 +#: ../../extend/addon/hzaddons/skeleton/Mod_Skeleton.php:32 +msgid "Skeleton App" +msgstr "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"Π‘ΠΊΠ΅Π»Π΅Ρ\"" + +#: ../../extend/addon/hzaddons/skeleton/Mod_Skeleton.php:33 +msgid "A skeleton for addons, you can copy/paste" +msgstr "Π‘ΠΊΠ΅Π»Π΅Ρ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ copy/paste" + +#: ../../extend/addon/hzaddons/skeleton/Mod_Skeleton.php:40 msgid "Some setting" msgstr "ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ" -#: ../../extend/addon/hzaddons/skeleton/skeleton.php:61 +#: ../../extend/addon/hzaddons/skeleton/Mod_Skeleton.php:40 msgid "A setting" msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠ°" -#: ../../extend/addon/hzaddons/skeleton/skeleton.php:64 +#: ../../extend/addon/hzaddons/skeleton/Mod_Skeleton.php:48 msgid "Skeleton Settings" msgstr "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΊΠ΅Π»Π΅ΡΠ°" @@ -15129,7 +15386,3 @@ msgstr "" #: ../../extend/addon/hzaddons/opensearch/opensearch.php:43 msgid "Search $Projectname" msgstr "ΠΠΎΠΈΡΠΊ $Projectname" - -#: ../../store/[data]/smarty3/compiled/3fbe720b52221cc66640ba6ea030406a047aa52a_0.file.cover_photo.tpl.php:127 -msgid "Cover Photo" -msgstr "" diff --git a/view/ru/hstrings.php b/view/ru/hstrings.php index 30dd01269..c043e011b 100644 --- a/view/ru/hstrings.php +++ b/view/ru/hstrings.php @@ -25,7 +25,7 @@ App::$strings["Set the background color of items"] = "Π¦Π²Π΅Ρ ΡΠΎΠ½Π° ΡΠ»Π΅ΠΌ App::$strings["Set the background color of comments"] = "Π¦Π²Π΅Ρ ΡΠΎΠ½Π° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π²"; App::$strings["Set font-size for the entire application"] = "Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠΈΡΡΠ°"; App::$strings["Examples: 1rem, 100%, 16px"] = "ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ: 1rem, 100%, 16px"; -App::$strings["Set font-color for posts and comments"] = "Π¦Π²Π΅Ρ ΡΡΠΈΡΡΠ° Π΄Π»Ρ ΠΏΠΎΡΡΠΎΠ² ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π²"; +App::$strings["Set font-color for posts and comments"] = "Π¦Π²Π΅Ρ ΡΡΠΈΡΡΠ° Π΄Π»Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π²"; App::$strings["Set radius of corners"] = "Π Π°Π΄ΠΈΡΡ ΡΠΊΡΡΠ³Π»Π΅Π½ΠΈΠΉ"; App::$strings["Example: 4px"] = "ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ: 4px"; App::$strings["Set shadow depth of photos"] = "ΠΠ»ΡΠ±ΠΈΠ½Π° ΡΠ΅Π½Π΅ΠΉ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΉ"; @@ -444,7 +444,7 @@ App::$strings["An invitation is required."] = "Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ³Π»Π°Ρ App::$strings["Invitation could not be verified."] = "ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅."; App::$strings["Please enter the required information."] = "ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π²Π²Π΅Π΄ΠΈΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ."; App::$strings["Failed to store account information."] = "ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ°."; -App::$strings["Registration confirmation for %s"] = "ΠΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ %s"; +App::$strings["Registration confirmation for %s"] = "ΠΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π½Π° %s"; App::$strings["Registration request at %s"] = "ΠΠ°ΠΏΡΠΎΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π½Π° %s"; App::$strings["your registration password"] = "Π²Π°Ρ ΠΏΠ°ΡΠΎΠ»Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ"; App::$strings["Registration details for %s"] = "Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ %s"; @@ -729,7 +729,6 @@ App::$strings["Directory Options"] = "ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°"; App::$strings["Safe Mode"] = "ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ"; App::$strings["Public Forums Only"] = "Π’ΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΡΠΎΡΡΠΌΡ"; App::$strings["This Website Only"] = "Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΡ Π²Π΅Π±-ΡΠ°ΠΉΡ"; -App::$strings["view full size"] = "ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π² ΠΏΠΎΠ»Π½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ"; App::$strings["Friendica"] = ""; App::$strings["OStatus"] = ""; App::$strings["GNU-Social"] = ""; @@ -999,7 +998,7 @@ App::$strings["Privacy group: "] = "ΠΡΡΠΏΠΏΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ: "; App::$strings["Invalid channel."] = "ΠΠ΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠ°Π½Π°Π»."; App::$strings["Token verification failed."] = "ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΎΠΊΠ΅Π½Π°."; App::$strings["Email Verification Required"] = "Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π°Π΄ΡΠ΅ΡΠ° email"; -App::$strings["A verification token was sent to your email address [%s]. Enter that token here to complete the account verification step. Please allow a few minutes for delivery, and check your spam folder if you do not see the message."] = "ΠΡΠΎΠ²Π΅ΡΠΎΡΠ½ΡΠΉ ΡΠΎΠΊΠ΅Π½ Π±ΡΠ» Π²ΡΡΠ»Π½ Π½Π° Π²Π°Ρ Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ [%s]. ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΡΠΎΡ ΡΠΎΠΊΠ΅Π½ Π·Π΄Π΅ΡΡ Π΄Π»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΠ°ΠΏΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΡΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ½ΡΡ Π΄Π»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π²Π°ΡΡ ΠΏΠ°ΠΏΠΊΡ \"Π‘ΠΏΠ°ΠΌ\" Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΠΈΡΡΠΌΠ°."; +App::$strings["A verification token was sent to your email address [%s]. Enter that token here to complete the account verification step. Please allow a few minutes for delivery, and check your spam folder if you do not see the message."] = "ΠΡΠΎΠ²Π΅ΡΠΎΡΠ½ΡΠΉ ΡΠΎΠΊΠ΅Π½ Π±ΡΠ» ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ Π½Π° Π²Π°Ρ Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ [%s]. ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΡΠΎΡ ΡΠΎΠΊΠ΅Π½ Π·Π΄Π΅ΡΡ Π΄Π»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΠ°ΠΏΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΡΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ½ΡΡ Π΄Π»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π²Π°ΡΡ ΠΏΠ°ΠΏΠΊΡ \"Π‘ΠΏΠ°ΠΌ\" Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΠΈΡΡΠΌΠ°."; App::$strings["Resend Email"] = "ΠΡΡΠ»Π°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ"; App::$strings["Validation token"] = "ΠΡΠΎΠ²Π΅ΡΠΎΡΠ½ΡΠΉ ΡΠΎΠΊΠ΅Π½"; App::$strings["No channel."] = "ΠΠ°Π½Π°Π»Π° Π½Π΅Ρ."; @@ -1117,6 +1116,8 @@ App::$strings["Posts and comments"] = "ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°Ρ App::$strings["Only posts"] = "Π’ΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ"; App::$strings["vcard"] = "vCard"; App::$strings["You must be logged in to see this page."] = "ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°ΡΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ."; +App::$strings["🔁 Repeated %1\$s's %2\$s"] = "🔁 ΠΠΎΠ²ΡΠΎΡΠΈΠ» %1\$s %2\$s"; +App::$strings["Post repeated"] = "ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ"; App::$strings["No more system notifications."] = "ΠΠ΅Ρ Π½ΠΎΠ²ΡΡ
ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠΉ ΡΠΈΡΡΠ΅ΠΌΡ."; App::$strings["System Notifications"] = "Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΡ "; App::$strings["%s element installed"] = "%s ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½"; @@ -1549,6 +1550,8 @@ App::$strings["Default maximum affinity level"] = "ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΡ App::$strings["0-99 default 99"] = "0-99 (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 99)"; App::$strings["Default minimum affinity level"] = "ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΡΡ
ΠΎΠ΄ΡΡΠ²Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ."; App::$strings["0-99 - default 0"] = "0-99 (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 0)"; +App::$strings["Always reset on new page visit."] = "ΠΡΠ΅Π³Π΄Π° ΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡ ΠΏΡΠΈ ΠΏΠΎΡΠ΅ΡΠ΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ."; +App::$strings["default: yes"] = "ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: Π΄Π°"; App::$strings["Affinity Slider Settings"] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ»Π°ΠΉΠ΄Π΅ΡΠ° ΡΡ
ΠΎΠ΄ΡΡΠ²Π°"; App::$strings["Addon Settings"] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ"; App::$strings["Please save/submit changes to any panel before opening another."] = "ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ° ΡΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ / ΠΎΡΠΏΡΠ°Π²ΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΡΠΊΡΡΠ²Π°ΡΡ Π΄ΡΡΠ³ΡΡ."; @@ -1788,6 +1791,7 @@ App::$strings["Unable to check command line PHP, as shell_exec() is disabled. Th App::$strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "Π ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ PHP Π² Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π° ΠΎΠΏΡΠΈΡ \"register_argc_argv\"."; App::$strings["This is required for message delivery to work."] = "ΠΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ."; App::$strings["PHP register_argc_argv"] = ""; +App::$strings["This is not sufficient to upload larger images or files. You should be able to upload at least 4 MB at once."] = "ΠΡΠΎΠ³ΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π±ΠΎΠ»ΡΡΠΈΡ
ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ 4 ΠΠ± Π·Π° ΡΠ°Π·."; App::$strings["Your max allowed total upload size is set to %s. Maximum size of one file to upload is set to %s. You are allowed to upload up to %d files at once."] = "ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·ΡΠ΅ΡΡΠ½Π½ΡΠΉ ΠΎΠ±ΡΠΈΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π·Π°Π³ΡΡΠ·ΠΎΠΊ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π² %s. ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π² %s. ΠΠ°ΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π΄ΠΎ %d ΡΠ°ΠΉΠ»ΠΎΠ² Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΡΠΌ."; App::$strings["You can adjust these settings in the server php.ini file."] = "ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π² ΡΠ°ΠΉΠ»Π΅ php.ini Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅."; App::$strings["PHP upload limits"] = "ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π² PHP"; @@ -2630,7 +2634,7 @@ App::$strings["Can view my wiki pages"] = "ΠΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ App::$strings["Can create/edit my channel webpages"] = "ΠΠΎΠΆΠ΅Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠΈ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ"; App::$strings["Can write to my wiki pages"] = "ΠΠΎΠΆΠ΅Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠΈ Π²ΠΈΠΊΠΈ-ΡΡΡΠ°Π½ΠΈΡΡ"; App::$strings["Can post on my channel (wall) page"] = "ΠΠΎΠΆΠ΅Ρ ΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π½Π° ΠΌΠΎΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΊΠ°Π½Π°Π»Π°"; -App::$strings["Can comment on or like my posts"] = "ΠΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΠΎΡΠΌΠ΅ΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ²ΡΠΈΠ΅ΡΡ ΠΌΠΎΠΈ ΠΏΠΎΡΡΡ"; +App::$strings["Can comment on or like my posts"] = "ΠΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΠΎΡΠΌΠ΅ΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ²ΡΠΈΠ΅ΡΡ ΠΌΠΎΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ"; App::$strings["Can send me private mail messages"] = "ΠΠΎΠΆΠ΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΌΠ½Π΅ Π»ΠΈΡΠ½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠ». ΠΏΠΎΡΡΠ΅"; App::$strings["Can like/dislike profiles and profile things"] = "ΠΠΎΠΆΠ΅Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΠΎΡΠΌΠ΅ΡΠ°ΡΡ ΠΊΠ°ΠΊ Π½ΡΠ°Π²ΠΈΡΡΡ/Π½Π΅Π½ΡΠ°Π²ΠΈΡΡΡ ΠΌΠΎΠΉ ΠΏΡΠΎΡΠΈΠ»Ρ"; App::$strings["Can forward to all my channel connections via ! mentions in posts"] = "ΠΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ»Π°ΡΡ Π²ΡΠ΅ΠΌ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠ°ΠΌ ΠΌΠΎΠ΅Π³ΠΎ ΠΊΠ°Π½Π°Π»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ! Π² ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡΡ
"; @@ -2757,13 +2761,16 @@ App::$strings["Add to app-tray"] = "ΠΠΎΠ±Π°Π²ΠΈΡΡ Π² app-tray"; App::$strings["Remove from app-tray"] = "Π£Π΄Π°Π»ΠΈΡΡ ΠΈΠ· app-tray"; App::$strings["Pin to navbar"] = "ΠΠΎΠ±Π°Π²ΠΈΡΡ Π½Π° ΠΏΠ°Π½Π΅Π»Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ"; App::$strings["Unpin from navbar"] = "Π£Π΄Π°Π»ΠΈΡΡ Ρ ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ"; -App::$strings["I will attend"] = "Π― Π±ΡΠ΄Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ"; -App::$strings["I will not attend"] = "Π― Π½Π΅ Π±ΡΠ΄Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ"; +App::$strings["Privacy conflict. Discretion advised."] = "ΠΠΎΠ½ΡΠΈΠ»ΠΈΠΊΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΠΈ."; +App::$strings["I will attend"] = "Π― Π±ΡΠ΄Ρ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°ΡΡ"; +App::$strings["I will not attend"] = "Π― Π½Π΅ Π±ΡΠ΄Ρ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°ΡΡ"; App::$strings["I might attend"] = "Π― Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ"; App::$strings["I agree"] = "Π― ΡΠΎΠ³Π»Π°ΡΠ΅Π½"; App::$strings["I disagree"] = "Π― Π½Π΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½"; App::$strings["I abstain"] = "Π― Π²ΠΎΠ·Π΄Π΅ΡΠΆΠ°Π»ΡΡ"; App::$strings["Add Tag"] = "ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ΅Π³"; +App::$strings["Repeat This"] = "ΠΠΎΠ²ΡΠΎΡΠΈΡΡ ΡΡΠΎ"; +App::$strings["repeat"] = "ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠ΅"; App::$strings["Share This"] = "ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΡΠΈΠΌ"; App::$strings["share"] = "ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ"; App::$strings["Delivery Report"] = "ΠΡΡΡΡ ΠΎ Π΄ΠΎΡΡΠ°Π²ΠΊΠ΅"; @@ -2806,6 +2813,11 @@ App::$strings["This is your default setting for who can view your default channe App::$strings["This is your default setting for who can view your connections"] = "ΠΡΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΡΠ΅Ρ
, ΠΊΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π²Π°ΡΠΈ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ"; App::$strings["This is your default setting for who can view your file storage and photos"] = "ΠΡΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΡΠ΅Ρ
, ΠΊΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π²Π°ΡΠ΅ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΉ"; App::$strings["This is your default setting for the audience of your webpages"] = "ΠΡΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ Π°ΡΠ΄ΠΈΡΠΎΡΠΈΠΈ Π²Π°ΡΠΈΡ
Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ"; +App::$strings["Likes %1\$s's %2\$s"] = "ΠΡΠ°Π²ΠΈΡΡΡ %1\$s %2\$s"; +App::$strings["Doesn't like %1\$s's %2\$s"] = "ΠΠ΅ Π½ΡΠ°Π²ΠΈΡΡΡ %1\$s %2\$s"; +App::$strings["Will attend %1\$s's %2\$s"] = "ΠΡΠΈΠΌΠ΅Ρ ΡΡΠ°ΡΡΠΈΠ΅ %1\$s %2\$s"; +App::$strings["Will not attend %1\$s's %2\$s"] = "ΠΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ°ΡΡΠΈΠ΅ %1\$s %2\$s"; +App::$strings["May attend %1\$s's %2\$s"] = "ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ°ΡΡΠΈΠ΅ %1\$s %2\$s"; App::$strings["0. Beginner/Basic"] = "ΠΠ°ΡΠΈΠ½Π°ΡΡΠΈΠΉ / ΠΠ°Π·ΠΎΠ²ΡΠΉ"; App::$strings["1. Novice - not skilled but willing to learn"] = "1. ΠΠΎΠ²ΠΈΡΠΎΠΊ - Π½Π΅ ΠΎΠΏΡΡΠ½ΡΠΉ, Π½ΠΎ ΠΆΠ΅Π»Π°ΡΡΠΈΠΉ ΡΡΠΈΡΡΡΡ"; App::$strings["2. Intermediate - somewhat comfortable"] = "2. ΠΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ - Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠΉ"; @@ -2816,11 +2828,13 @@ App::$strings["Wiki updated successfully"] = "Wiki ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅ App::$strings["Wiki files deleted successfully"] = "Wiki ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ΄Π°Π»Π΅Π½Π°"; App::$strings["Use markdown for editing posts"] = "ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ·ΡΠΊ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ Markdown Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ"; App::$strings["Post to Dreamwidth"] = "ΠΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Dreamwidth"; -App::$strings["Enable Dreamwidth Post Plugin"] = "ΠΠΊΠ»ΡΡΠΈΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Dreamwidth"; +App::$strings["Dreamwidth Crosspost Connector Settings saved."] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Dreamwidth ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ."; +App::$strings["Dreamwidth Crosspost Connector App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Dreamwidth\""; +App::$strings["Relay public postings to Dreamwidth"] = "ΠΠ΅ΡΠ΅ΡΡΠ»Π°Π΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² Dreamwidth"; App::$strings["Dreamwidth username"] = "ΠΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Dreamwidth"; App::$strings["Dreamwidth password"] = "ΠΠ°ΡΠΎΠ»Ρ Dreamwidth"; App::$strings["Post to Dreamwidth by default"] = "ΠΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Dreamwidth ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ"; -App::$strings["Dreamwidth Post Settings"] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Π² Dreamwidth"; +App::$strings["Dreamwidth Crosspost Connector"] = "ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Dreamwidth"; App::$strings["Project Servers and Resources"] = "Π‘Π΅ΡΠ²Π΅ΡΡ ΠΈ ΡΠ΅ΡΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°"; App::$strings["Project Creator and Tech Lead"] = "Π‘ΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ"; App::$strings["And the hundreds of other people and organisations who helped make the Hubzilla possible."] = "Π ΡΠΎΡΠ½ΠΈ Π΄ΡΡΠ³ΠΈΡ
Π»ΡΠ΄Π΅ΠΉ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΉ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π»ΠΈ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Hubzilla."; @@ -2842,6 +2856,8 @@ App::$strings["Minimum offset in meters"] = "ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΌΠ΅ΡΠ΅Π½ App::$strings["Maximum offset in meters"] = "ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² ΠΌΠ΅ΡΡΠ°Ρ
"; App::$strings["Fuzzloc Settings"] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Fuzzloc"; App::$strings["Allow magic authentication only to websites of your immediate connections"] = "Π Π°Π·ΡΠ΅ΡΠΈΡΡ Π²ΠΎΠ»ΡΠ΅Π±Π½ΡΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠ°ΠΉΡΠ°Ρ
Π²Π°ΡΠΈΡ
Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΡ
ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ"; +App::$strings["Authchoose App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Authchoose"; +App::$strings["Installed"] = "Π£ΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ"; App::$strings["Authchoose"] = ""; App::$strings["Photos imported"] = "Π€ΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Ρ"; App::$strings["Redmatrix Photo Album Import"] = "ΠΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π°Π»ΡΠ±ΠΎΠΌ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΉ Redmatrix"; @@ -2853,11 +2869,13 @@ App::$strings["Import just this album"] = "ΠΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊ App::$strings["Leave blank to import all albums"] = "ΠΡΡΠ°Π²ΡΡΠ΅ ΠΏΡΡΡΡΠΌ Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ° Π²ΡΠ΅Ρ
Π°Π»ΡΠ±ΠΎΠΌΠΎΠ²"; App::$strings["Maximum count to import"] = "ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ°"; App::$strings["0 or blank to import all available"] = "0 ΠΈΠ»ΠΈ ΠΏΡΡΡΠΎ Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ° Π²ΡΠ΅Ρ
Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
"; +App::$strings["Gallery App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΠ°Π»Π΅ΡΠ΅Ρ\""; App::$strings["A simple gallery for your photo albums"] = "ΠΡΠΎΡΡΠ°Ρ Π³Π°Π»Π»Π΅ΡΠ΅Ρ Π΄Π»Ρ Π²Π°ΡΠΈΡ
ΡΠΎΡΠΎΠ°Π»ΡΠ±ΠΎΠΌΠΎΠ²"; App::$strings["Gallery"] = "ΠΠ°Π»Π΅ΡΠ΅Ρ"; App::$strings["Photo Gallery"] = "Π€ΠΎΡΠΎΠ³Π°Π»Π΅ΡΠ΅Ρ"; App::$strings["Friendica Crosspost Connector Settings saved."] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Friendica ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ."; -App::$strings["Relay public postings to a connected Friendica account"] = "Π Π΅ΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½Π½ΡΡ ΡΡΡΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ Friendica"; +App::$strings["Friendica Crosspost Connector App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Friendica\""; +App::$strings["Relay public postings to a connected Friendica account"] = "ΠΠ΅ΡΠ΅ΡΡΠ»Π°Π΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½Π½ΡΡ ΡΡΡΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ Friendica"; App::$strings["Send public postings to Friendica by default"] = "ΠΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π²ΠΎ Friendica ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ"; App::$strings["Friendica API Path"] = "ΠΡΡΡ ΠΊ Friendica API"; App::$strings["https://{sitename}/api"] = ""; @@ -2869,7 +2887,8 @@ App::$strings["An account has been created for you."] = "Π£ΡΡΡΠ½Π°Ρ Π·Π°ΠΏΠΈ App::$strings["Authentication successful but rejected: account creation is disabled."] = "ΠΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ, Π½ΠΎ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½Π°: ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΎ."; App::$strings["Post to Insane Journal"] = "ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Insane Journal"; App::$strings["Insane Journal Crosspost Connector Settings saved."] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Insane Journal ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ."; -App::$strings["Relay public postings to Insane Journal"] = "Π Π΅ΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² Insane Journal"; +App::$strings["Insane Journal Crosspost Connector App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Insane Journal\""; +App::$strings["Relay public postings to Insane Journal"] = "ΠΠ΅ΡΠ΅ΡΡΠ»Π°Π΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² Insane Journal"; App::$strings["InsaneJournal username"] = "ΠΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Insane Journal"; App::$strings["InsaneJournal password"] = "ΠΠ°ΡΠΎΠ»Ρ Insane Journal"; App::$strings["Post to InsaneJournal by default"] = "ΠΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Insane Journal ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ"; @@ -2880,22 +2899,22 @@ App::$strings["Redmatrix File Storage Import"] = "ΠΠΌΠΏΠΎΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠ³Π App::$strings["This will import all your Redmatrix cloud files to this channel."] = "ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π²Π°ΡΠΈ ΡΠ°ΠΉΠ»Ρ Π² Redmatrix Π² ΡΡΠΎΡ ΠΊΠ°Π½Π°Π»."; App::$strings["file"] = "ΡΠ°ΠΉΠ»"; App::$strings["Post to Twitter"] = "ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Twitter"; +App::$strings["Submit Settings"] = "ΠΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ"; App::$strings["Twitter settings updated."] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Twitter ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ"; +App::$strings["Twitter Crosspost Connector App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Twitter\""; +App::$strings["Relay public posts to Twitter"] = "ΠΠ΅ΡΠ΅ΡΡΠ»Π°Π΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² Twitter"; App::$strings["No consumer key pair for Twitter found. Please contact your site administrator."] = "ΠΠ΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π΄Π»Ρ Twitter. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΠ²ΡΠΆΠΈΡΠ΅ΡΡ Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠΌ ΡΠ°ΠΉΡΠ°."; App::$strings["At this Hubzilla instance the Twitter plugin was enabled but you have not yet connected your account to your Twitter account. To do so click the button below to get a PIN from Twitter which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to Twitter."] = "Π ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Hubzilla ΠΏΠ»Π°Π³ΠΈΠ½ Twitter Π±ΡΠ» Π²ΠΊΠ»ΡΡΡΠ½, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΠΊΠ° ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½ ΠΊ Π²Π°ΡΠ΅ΠΌΡ Π°ΠΊΠΊΠ°ΡΠ½ΡΡ Π² Twitter. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΆΠΌΠΈΡΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Π½ΠΈΠΆΠ΅ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ PIN-ΠΊΠΎΠ΄Π° ΠΎΡ Twitter ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΎΡΠΌΡ. Π’ΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈ <strong>ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅</strong> ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π±ΡΠ΄ΡΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ Π² Twitter."; App::$strings["Log in with Twitter"] = "ΠΠΎΠΉΡΠΈ Π² Twitter"; App::$strings["Copy the PIN from Twitter here"] = "Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ PIN-ΠΊΠΎΠ΄ ΠΈΠ· Twitter Π·Π΄Π΅ΡΡ"; App::$strings["Currently connected to: "] = "Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½ ΠΊ:"; App::$strings["<strong>Note:</strong> Due your privacy settings (<em>Hide your profile details from unknown viewers?</em>) the link potentially included in public postings relayed to Twitter will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = "<strong>ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅</strong>: ΠΠ·-Π·Π° Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΠΈ (<em>ΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΎΡ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ
Π·ΡΠΈΡΠ΅Π»Π΅ΠΉ?</em>) cΡΡΠ»ΠΊΠ°, ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½Π½Π°Ρ Π² ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠ΅ Π² Twitter, ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Ρ ΠΊ ΠΏΡΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅, ΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΡΡΠ΅ΠΉ Π΅Π³ΠΎ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΎΡΠΈΠ»Ρ Π±ΡΠ» ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½."; -App::$strings["Allow posting to Twitter"] = "Π Π°Π·ΡΠ΅ΡΠΈΡΡ ΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Twitter"; -App::$strings["If enabled your public postings can be posted to the associated Twitter account"] = "ΠΡΠ»ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ, Π²Π°ΡΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π±ΡΠ΄ΡΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ Π² ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ ΡΡΡΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Twitter"; App::$strings["Twitter post length"] = "ΠΠ»ΠΈΠ½Π° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Twitter"; App::$strings["Maximum tweet length"] = "ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π΄Π»ΠΈΠ½Π° ΡΠ²ΠΈΡΠ°"; App::$strings["Send public postings to Twitter by default"] = "ΠΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² Twitter ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ"; App::$strings["If enabled your public postings will be posted to the associated Twitter account by default"] = "ΠΡΠ»ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ, Π²Π°ΡΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π±ΡΠ΄ΡΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ Π² ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ ΡΡΡΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Twitter ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ"; App::$strings["Clear OAuth configuration"] = "ΠΡΠΈΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ OAuth"; -App::$strings["Twitter Post Settings"] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Π² Twitter"; -App::$strings["Submit Settings"] = "ΠΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ"; +App::$strings["Twitter Crosspost Connector"] = "ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Twitter"; App::$strings["Edit your profile and change settings."] = "ΠΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π°Ρ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ."; App::$strings["Click here to see activity from your connections."] = "ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΡΡΠ΄Π° Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π²Π°ΡΠΈ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ²."; App::$strings["Click here to see your channel home."] = "ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΡΡΠ΄Π° ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π³Π»Π°Π²Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠ°Π½Π°Π»Π°."; @@ -2913,7 +2932,7 @@ App::$strings["There are events this week. Click here too see which!"] = "ΠΠ° Ρ App::$strings["You have received a new introduction. Click here to see who!"] = "ΠΡ Π±ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ. ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΊΠΎΠΌΡ!"; App::$strings["There is a new system notification. Click here to see what has happened!"] = "ΠΡΠΎ Π½ΠΎΠ²ΠΎΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅. ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΠΎ ΡΠ»ΡΡΠΈΠ»ΠΎΡΡ!"; App::$strings["Click here to share text, images, videos and sound."] = "ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΡΡΠ΄Π° ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠΌ, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ, Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ»ΠΈ ΡΡΠ΅ΠΊΠΎΠΌ."; -App::$strings["You can write an optional title for your update (good for long posts)."] = "ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ (ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΡ
ΠΏΠΎΡΡΠΎΠ²)."; +App::$strings["You can write an optional title for your update (good for long posts)."] = "ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ (ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΡ
ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ)."; App::$strings["Entering some categories here makes it easier to find your post later."] = "ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π·Π΄Π΅ΡΡ ΡΡΠΎΠ±Ρ Π±ΡΠ»ΠΎ ΠΏΡΠΎΡΠ΅ Π½Π°ΠΉΡΠΈ Π²Π°ΡΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΠΏΠΎΠ·Π΄Π½Π΅Π΅."; App::$strings["Share photos, links, location, etc."] = "ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠ΅ΠΉ, ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ, ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Ρ.ΠΏ."; App::$strings["Only want to share content for a while? Make it expire at a certain date."] = "Π₯ΠΎΡΠΈΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ? Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΡΠΎΠΊ Π΅Π³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ."; @@ -2932,6 +2951,7 @@ App::$strings["If you see this icon you can be sure that the sender is who it sa App::$strings["Danger! It seems someone tried to forge a message! This message is not necessarily from who it says it is from!"] = "ΠΠΏΠ°ΡΠ½ΠΎΡΡΡ! ΠΠ°ΠΆΠ΅ΡΡΡ, ΠΊΡΠΎ-ΡΠΎ ΠΏΡΡΠ°Π»ΡΡ ΠΏΠΎΠ΄Π΄Π΅Π»Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅! ΠΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΎΡ ΠΊΠΎΠ³ΠΎ ΠΎΠ½ΠΎ Π·Π½Π°ΡΠΈΡΡΡ!"; App::$strings["Welcome to Hubzilla! Would you like to see a tour of the UI?</p> <p>You can pause it at any time and continue where you left off by reloading the page, or navigting to another page.</p><p>You can also advance by pressing the return key"] = "ΠΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ Π² Hubzilla! ΠΠ΅Π»Π°Π΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ±Π·ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°?</p> <p>ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΅Π³ΠΎ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π°ΠΈΡΡ ΠΈ Π² Π»ΡΠ±ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΠ² ΡΡΡΠ°Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Ρ Π½Π° Π΄ΡΡΠ³ΡΡ.</p><p>Π’Π°ΠΊΠΆΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ»Π°Π²ΠΈΡΡ \"ΠΠ°Π·Π°Π΄\""; App::$strings["Block Completely"] = "ΠΠ°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ"; +App::$strings["Superblock App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Superblock"; App::$strings["Block channels"] = "ΠΠ°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°Π½Π°Π»Ρ"; App::$strings["superblock settings updated"] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Superblock ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ."; App::$strings["Currently blocked"] = "Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½"; @@ -2997,8 +3017,9 @@ App::$strings["Include marker on map"] = "ΠΠΊΠ»ΡΡΠΈΡΠ΅ ΠΌΠ°ΡΠΊΠ΅Ρ Π½Π° ΠΊΠ App::$strings["Include a marker on the map."] = "ΠΠΊΠ»ΡΡΠΈΡΡ ΠΌΠ°ΡΠΊΠ΅Ρ Π½Π° ΠΊΠ°ΡΡΠ΅"; App::$strings["Photo Cache settings saved."] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Photo Cache ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ."; App::$strings["Photo Cache addon saves a copy of images from external sites locally to increase your anonymity in the web."] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Photo Cache ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ ΠΊΠΎΠΏΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ Π²Π½Π΅ΡΠ½ΠΈΡ
ΡΠ°ΠΉΡΠΎΠ² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ Π²Π°ΡΠ΅ΠΉ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΡΡΠΈ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ."; +App::$strings["Photo Cache App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Photo Cache"; App::$strings["Minimal photo size for caching"] = "ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ"; -App::$strings["In pixels. 0 will be replaced with system default, from 1 up to 1024 (large images will be scaled to this value)."] = "Π ΠΏΠΈΡΠΊΠ΅Π»ΡΡ
. 0 Π±ΡΠ΄Π΅Ρ Π·Π°ΠΌΠ΅Π½ΡΠ½ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΎΡ 1 Π΄ΠΎ 1024 (Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½Ρ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ)."; +App::$strings["In pixels. From 1 up to 1024, 0 will be replaced with system default."] = "Π ΠΏΠΈΠΊΡΠ΅Π»ΡΡ
. ΠΡ 1 Π΄ΠΎ 1024, 0 Π±ΡΠ΄Π΅Ρ Π·Π°ΠΌΠ΅Π½ΡΠ½ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ."; App::$strings["Photo Cache"] = ""; App::$strings["Activate addon"] = "ΠΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅"; App::$strings["Hide Jappixmini Chat-Widget from the webinterface"] = "Π‘ΠΊΡΡΡΡ Π²ΠΈΠ΄ΠΆΠ΅Ρ ΡΠ°ΡΠ° Jappixmini ΠΈΠ· Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°"; @@ -3047,24 +3068,24 @@ App::$strings["Show opt-out cookie link?"] = "ΠΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΡΡΠ»ΠΊΡ App::$strings["Asynchronous tracking"] = "ΠΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅"; App::$strings["Enable frontend JavaScript error tracking"] = "ΠΠΊΠ»ΡΡΠΈΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ JavaScript Π½Π° ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π΅."; App::$strings["This feature requires Piwik >= 2.2.0"] = "ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΡΠ΅Π±ΡΠ΅Ρ Π²Π΅ΡΡΠΈΡ Piwik >= 2.2.0"; -App::$strings["You are now authenticated to pumpio."] = "ΠΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Ρ Π² Pump.io"; -App::$strings["return to the featured settings page"] = "ΠΠ΅ΡΠ½ΡΡΡΡ ΠΊ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠ΅ΠΊ"; -App::$strings["Post to Pump.io"] = "ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Pump.io"; +App::$strings["Pump.io Settings saved."] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Pump.io ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ."; +App::$strings["Pump.io Crosspost Connector App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Pump.io\""; +App::$strings["Relay public posts to pump.io"] = "ΠΠ΅ΡΠ΅ΡΡΠ»Π°Π΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² Pump.io"; App::$strings["Pump.io servername"] = "ΠΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ° Pump.io"; App::$strings["Without \"http://\" or \"https://\""] = "ΠΠ΅Π· \"http://\" ΠΈΠ»ΠΈ \"https://\""; App::$strings["Pump.io username"] = "ΠΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Pump.io"; App::$strings["Without the servername"] = "Π±Π΅Π· ΠΈΠΌΠ΅Π½ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°"; App::$strings["You are not authenticated to pumpio"] = "ΠΡ Π½Π΅ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Ρ Π½Π° Pump.io"; App::$strings["(Re-)Authenticate your pump.io connection"] = "ΠΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ (ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ) Π²Π°ΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ Pump.io"; -App::$strings["Enable pump.io Post Plugin"] = "ΠΠΊΠ»ΡΡΠΈΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Pump.io"; App::$strings["Post to pump.io by default"] = "ΠΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Pump.io ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ"; App::$strings["Should posts be public"] = "ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ"; App::$strings["Mirror all public posts"] = "ΠΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π²ΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ"; -App::$strings["Pump.io Post Settings"] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Π² Pump.io"; -App::$strings["PumpIO Settings saved."] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Π² Pump.io ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ."; -App::$strings["Nsabait Settings updated."] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Nsabait ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ"; -App::$strings["Enable NSAbait Plugin"] = "ΠΠΊΠ»ΡΡΠΈΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ NSAbait"; -App::$strings["NSAbait Settings"] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Nsabait"; +App::$strings["Pump.io Crosspost Connector"] = "ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Pump.io"; +App::$strings["You are now authenticated to pumpio."] = "ΠΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Ρ Π² Pump.io"; +App::$strings["return to the featured settings page"] = "ΠΠ΅ΡΠ½ΡΡΡΡ ΠΊ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠ΅ΠΊ"; +App::$strings["Post to Pump.io"] = "ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Pump.io"; +App::$strings["NSA Bait App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ NSA Bait"; +App::$strings["Make yourself a political target"] = "Π‘Π΄Π΅Π»Π°ΡΡ ΡΠ΅Π±Ρ ΠΏΠΎΠ»ΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΌΠΈΡΠ΅Π½ΡΡ"; App::$strings["Send test email"] = "ΠΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ email"; App::$strings["No recipients found."] = "ΠΠΎΠ»ΡΡΠ°ΡΠ΅Π»Π΅ΠΉ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ."; App::$strings["Mail sent."] = "Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ"; @@ -3106,15 +3127,17 @@ App::$strings["Hubzilla Server base URL"] = "ΠΠ°Π·ΠΎΠ²ΡΠΉ URL ΡΠ΅ΡΠ²Π΅ΡΠ° H App::$strings["Since modified date yyyy-mm-dd"] = "ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Π΄Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ yyyy-mm-dd"; App::$strings["Until modified date yyyy-mm-dd"] = "ΠΠ°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ Π΄Π°ΡΠΎΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ yyyy-mm-dd"; App::$strings["Post to Livejournal"] = "ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Livejournal"; -App::$strings["Enable Livejournal Post Plugin"] = "ΠΠΊΠ»ΡΡΠΈΡΡ ΡΠ°ΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Π² Livejournal"; +App::$strings["Livejournal Crosspost Connector App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Livejournal\""; +App::$strings["Relay public posts to Livejournal"] = "ΠΠ΅ΡΠ΅ΡΡΠ»Π°Π΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² Livejournal"; App::$strings["Livejournal username"] = "ΠΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Livejournal"; App::$strings["Livejournal password"] = "ΠΠ°ΡΠΎΠ»Ρ Livejournal"; App::$strings["Post to Livejournal by default"] = "ΠΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Livejournal ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ"; -App::$strings["Livejournal Post Settings"] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² Livejournal"; +App::$strings["Livejournal Crosspost Connector"] = "ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Livejournal"; App::$strings["Please contact your site administrator.<br />The provided API URL is not valid."] = "ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ° ΡΠ²ΡΠΆΠΈΡΠ΅ΡΡ Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠΌ ΡΠ°ΠΉΡΠ°. <br />ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ URL API Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π΅Π½."; App::$strings["We could not contact the GNU social API with the Path you entered."] = "ΠΠ°ΠΌ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡ Ρ GNU Social API ΠΏΠΎ Π²Π²Π΅Π΄ΡΠ½Π½ΠΎΠΌΡ Π²Π°ΠΌΠΈ ΠΏΡΡΠΈ"; App::$strings["GNU social settings updated."] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ GNU Social ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ."; -App::$strings["Relay public postings to a connected GNU social account (formerly StatusNet)"] = "Π Π΅ΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½Π½ΡΡ ΡΡΡΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ GNU social (Π±ΡΠ²ΡΠ°Ρ StatusNet)"; +App::$strings["Hubzilla Crosspost Connector App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Hubzilla\""; +App::$strings["Relay public postings to a connected GNU social account (formerly StatusNet)"] = "ΠΠ΅ΡΠ΅ΡΡΠ»Π°Π΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½Π½ΡΡ ΡΡΡΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ GNU social (Π±ΡΠ²ΡΠ°Ρ StatusNet)"; App::$strings["Globally Available GNU social OAuthKeys"] = "ΠΠ»ΠΎΠ±Π°Π»ΡΠ½ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΊΠ»ΡΡΠΈ OAuthKeys GNU Social"; App::$strings["There are preconfigured OAuth key pairs for some GNU social servers available. If you are using one of them, please use these credentials.<br />If not feel free to connect to any other GNU social instance (see below)."] = "Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ OAuth Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² GNU social. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ
, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠΈ ΡΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. <br />ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡ-Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΎΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΡ GNU social (ΡΠΌ. Π½ΠΈΠΆΠ΅)."; App::$strings["Provide your own OAuth Credentials"] = "ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡΠ΅ Π²Π°ΡΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ OAuth"; @@ -3133,7 +3156,7 @@ App::$strings["Cancel GNU social Connection"] = "ΠΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡ App::$strings["<strong>Note</strong>: Due your privacy settings (<em>Hide your profile details from unknown viewers?</em>) the link potentially included in public postings relayed to GNU social will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = "<strong>ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅</strong>: ΠΠ·-Π·Π° Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΠΈ (<em>ΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΎΡ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ
Π·ΡΠΈΡΠ΅Π»Π΅ΠΉ?</em>) cΡΡΠ»ΠΊΠ°, ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½Π½Π°Ρ Π² ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠ΅ Π² GNU social, ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Ρ ΠΊ ΠΏΡΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅, ΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΡΡΠ΅ΠΉ Π΅Π³ΠΎ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΎΡΠΈΠ»Ρ Π±ΡΠ» ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½."; App::$strings["Post to GNU social by default"] = "ΠΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² GNU social ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ"; App::$strings["If enabled your public postings will be posted to the associated GNU-social account by default"] = "ΠΡΠ»ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ, Π²Π°ΡΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π±ΡΠ΄ΡΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ Π² ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ ΡΡΡΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ GNU social ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ"; -App::$strings["GNU-Social Crosspost Connector"] = ""; +App::$strings["GNU-Social Crosspost Connector"] = "ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ GNU Social"; App::$strings["Post to GNU social"] = "ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² GNU Social"; App::$strings["API URL"] = ""; App::$strings["Application name"] = "ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ"; @@ -3172,7 +3195,8 @@ App::$strings["Birthdate"] = "ΠΠ°ΡΠ° ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ"; App::$strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "ΠΡ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π²Ρ
ΠΎΠ΄Π° Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΌ Π²Π°ΠΌΠΈ OpenID. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ Π΅Π³ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ."; App::$strings["The error message was:"] = "Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π±ΡΠ»ΠΎ:"; App::$strings["OpenID protocol error. No ID returned."] = "ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° OpenID. ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΡΠ½."; -App::$strings["Set a preferred page to load on login from home page"] = "Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΈ Π²Ρ
ΠΎΠ΄Π΅ Ρ Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΡ"; +App::$strings["Startpage App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"Π‘ΡΠ°ΡΡΠΎΠ²Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ°\""; +App::$strings["Set a preferred page to load on login from home page"] = "Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΈ Π²Ρ
ΠΎΠ΄Π΅ Ρ Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΡ"; App::$strings["Page to load after login"] = "Π‘ΡΡΠ°Π½ΠΈΡΠ° Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΠΎΡΠ»Π΅ Π²Ρ
ΠΎΠ΄Π°"; App::$strings["Examples: "apps", "network?f=&gid=37" (privacy collection), "channel" or "notifications/system" (leave blank for default network page (grid)."] = "ΠΡΠΈΠΌΠ΅ΡΡ: "apps", "network?f=&gid=37" (privacy collection), "channel" or "notifications/system" (ΠΎΡΡΠ°Π²ΡΡΠ΅ ΠΏΡΡΡΡΠΌ Π΄Π»Ρ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ΅ΡΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ)."; App::$strings["Startpage"] = "Π‘ΡΠ°ΡΡΠΎΠ²Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ°"; @@ -3250,9 +3274,10 @@ App::$strings["Invalid Payment Type. Please start again."] = "ΠΠ΅Π΄Π΅ΠΉΡΡΠ²Π App::$strings["Order not found"] = "ΠΠ°ΠΊΠ°Π· Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½"; App::$strings["Federate"] = ""; App::$strings["nofed Settings saved."] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ nofed ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ."; -App::$strings["Allow Federation Toggle"] = "Π Π°Π·ΡΠ΅ΡΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π΄Π΅ΡΠ°ΡΠΈΠΈ"; +App::$strings["No Federation App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ No Federation"; +App::$strings["Prevent posting from being federated to anybody. It will exist only on your channel page."] = "ΠΠ°ΠΏΡΠ΅ΡΠ°Π΅Ρ ΡΠ΅Π΄Π΅ΡΠ°ΡΠΈΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ. ΠΠ½ΠΈ Π±ΡΠ΄ΡΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠ°Π½Π°Π»Π°."; App::$strings["Federate posts by default"] = "Π Π°Π·ΡΠ΅ΡΠΈΡΡ ΡΠ΅Π΄Π΅ΡΠ°ΡΠΈΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ"; -App::$strings["NoFed Settings"] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ NoFed"; +App::$strings["No Federation"] = ""; App::$strings["Your channel has been upgraded to the latest \$Projectname version."] = "ΠΠ°Ρ ΠΊΠ°Π½Π°Π» Π±ΡΠ» ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ½ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ \$Projectname."; App::$strings["To improve usability, we have converted some features into installable stand-alone apps."] = "Π§ΡΠΎΠ±Ρ ΡΠ»ΡΡΡΠΈΡΡ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΡ
Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ."; App::$strings["Please visit the \$Projectname"] = "ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅ \$Projectname"; @@ -3275,13 +3300,14 @@ App::$strings["Rating of images"] = "ΠΡΠ΅Π½ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ"; App::$strings["Select the appropriate avatar rating for your site. See README"] = "ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΡΡ ΠΎΡΠ΅Π½ΠΊΡ Π°Π²Π°ΡΠ°ΡΠ° Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ° (ΡΠΌ. README)."; App::$strings["Gravatar settings updated."] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Gravatar ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ."; App::$strings["WYSIWYG status editor"] = "WYSIWYG ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΡΡΠ°ΡΡΡΠ° "; +App::$strings["WYSIWYG Status App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"WYSIWYG ΡΡΠ°ΡΡΡ\""; App::$strings["WYSIWYG Status"] = "WYSIWYG ΡΡΠ°ΡΡΡ"; -App::$strings["Planets Settings updated."] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Planets ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ."; -App::$strings["Enable Planets Plugin"] = "ΠΠΊΠ»ΡΡΠΈΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ Planets"; -App::$strings["Planets Settings"] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Planets"; +App::$strings["Random Planet App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"Π‘Π»ΡΡΠ°ΠΉΠ½Π°Ρ ΠΏΠ»Π°Π½Π΅ΡΠ°\""; +App::$strings["Set a random planet from the Star Wars Empire as your location when posting"] = "Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΠΏΠ»Π°Π½Π΅ΡΡ ΠΈΠ· ΠΠΌΠΏΠ΅ΡΠΈΠΈ ΠΠ²Π΅Π·Π΄Π½ΡΡ
ΠΠΎΠΉΠ½ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ"; App::$strings["Add some colour to tag clouds"] = "ΠΠΎΠ±Π°Π²ΠΈΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ° Π΄Π»Ρ ΠΎΠ±Π»Π°ΠΊΠ° ΡΠ΅Π³ΠΎΠ²"; +App::$strings["Rainbow Tag App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"Π Π°Π΄ΡΠ³Π° ΡΠ΅Π³ΠΎΠ²\""; App::$strings["Rainbow Tag"] = "Π Π°Π΄ΡΠ³Π° ΡΠ΅Π³ΠΎΠ²"; -App::$strings["Invalid game."] = "ΠΠ΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΠ³ΡΠ°"; +App::$strings["Invalid game."] = "ΠΠ΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΠ³ΡΠ°."; App::$strings["You are not a player in this game."] = "ΠΡ Π½Π΅ ΠΈΠ³ΡΠ°Π΅ΡΠ΅ Π² ΡΡΡ ΠΈΠ³ΡΡ."; App::$strings["You must be a local channel to create a game."] = "ΠΠ°Ρ ΠΊΠ°Π½Π°Π» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ³ΡΡ."; App::$strings["You must select one opponent that is not yourself."] = "ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊΠ° ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π°ΠΌΠΈ."; @@ -3292,19 +3318,42 @@ App::$strings["Enable notifications"] = "ΠΠΊΠ»ΡΡΠΈΡΡ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΡ"; App::$strings["Follow"] = "ΠΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ"; App::$strings["%1\$s is now following %2\$s"] = "%1\$s ΡΠ΅ΠΉΡΠ°Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ %2\$s"; App::$strings["The GNU-Social protocol does not support location independence. Connections you make within that network may be unreachable from alternate channel locations."] = "ΠΡΠΎΡΠΎΠΊΠΎΠ» GNU-Social Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΡΠΈ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π² ΡΡΠΎΠΉ ΡΠ΅ΡΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΈΠ· Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΡ
ΠΌΠ΅ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠ°Π½Π°Π»Π°."; +App::$strings["GNU-Social Protocol App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΡΠΎΡΠΎΠΊΠΎΠ» GNU-Social\""; App::$strings["GNU-Social Protocol"] = "ΠΡΠΎΡΠΎΠΊΠΎΠ» GNU-Social"; -App::$strings["Message to display on every page on this server"] = "ΠΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π½Π° ΡΡΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅."; -App::$strings["Pageheader Settings"] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ°ΠΏΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ"; +App::$strings["TOTP Two-Step Verification"] = "ΠΠ²ΡΡ
ΡΡΠ°ΠΏΠ½Π°Ρ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ TOTP"; +App::$strings["Enter the 2-step verification generated by your authenticator app:"] = "ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π²Π°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ"; +App::$strings["Success!"] = "Π£ΡΠΏΠ΅Ρ
!"; +App::$strings["Invalid code, please try again."] = "ΠΠ΅Π²Π΅ΡΠ½ΡΠΉ ΠΊΠΎΠ΄. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π΅ΡΡ ΡΠ°Π·."; +App::$strings["Too many invalid codes..."] = "Π‘Π»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Π²Π΅ΡΠ½ΡΡ
ΠΊΠΎΠ΄ΠΎΠ²..."; +App::$strings["Verify"] = "ΠΡΠΎΠ²Π΅ΡΠΈΡΡ"; +App::$strings["You haven't set a TOTP secret yet.\nPlease click the button below to generate one and register this site\nwith your preferred authenticator app."] = "ΠΡ Π΅ΡΠ΅ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ TOTP. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π½Π°ΠΆΠΌΠΈΡΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Π½ΠΈΠΆΠ΅, ΡΡΠΎΠ±Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΈ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΡΠ°ΠΉΡ Π² ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΠΌ Π²Π°ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΄Π»Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ."; +App::$strings["Your TOTP secret is"] = "ΠΠ°Ρ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ TOTP"; +App::$strings["Be sure to save it somewhere in case you lose or replace your mobile device.\nUse your mobile device to scan the QR code below to register this site\nwith your preferred authenticator app."] = "ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ Π΅Π³ΠΎ Π³Π΄Π΅-Π½ΠΈΠ±ΡΠ΄Ρ Π½Π° ΡΠ»ΡΡΠ°ΠΉ ΠΏΠΎΡΠ΅ΡΠΈ ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΎΡΡΠΊΠ°Π½ΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ QR-ΠΊΠΎΠ΄, ΡΡΠΎΠ±Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΡΠ°ΠΉΡ Π² ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΠΌ Π²Π°ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΄Π»Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ."; +App::$strings["Test"] = "Π’Π΅ΡΡ"; +App::$strings["Generate New Secret"] = "Π‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠΎΠ΄"; +App::$strings["Go"] = "ΠΠΏΠ΅ΡΡΠ΄"; +App::$strings["Enter your password"] = "ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π²Π°Ρ ΠΏΠ°ΡΠΎΠ»Ρ"; +App::$strings["enter TOTP code from your device"] = "Π²Π²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠ΄ TOTP ΠΈΠ· Π²Π°ΡΠ΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°"; +App::$strings["Pass!"] = "ΠΡΠΈΠ½ΡΡΠΎ!"; +App::$strings["Fail"] = "ΠΡΠΊΠ°Π·Π°Π½ΠΎ"; +App::$strings["Incorrect password, try again."] = "ΠΠ΅Π²Π΅ΡΠ½ΡΠΉ ΠΏΠ°ΡΠΎΠ»Ρ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ½ΠΎΠ²Π°."; +App::$strings["Record your new TOTP secret and rescan the QR code above."] = "ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ Π²Π°Ρ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ TOTP ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΎΡΡΠΊΠ°Π½ΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ QR-ΠΊΠΎΠ΄."; +App::$strings["TOTP Settings"] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ TOTP"; App::$strings["pageheader Settings saved."] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ°ΠΏΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ."; +App::$strings["Page Header App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΡΡΠ°Π½ΠΈΡΡ\""; +App::$strings["Inserts a page header"] = "ΠΡΡΠ°Π²Π»ΡΠ΅Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΡΡΠ°Π½ΠΈΡΡ"; +App::$strings["Message to display on every page on this server"] = "ΠΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π½Π° ΡΡΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅."; +App::$strings["Page Header"] = "ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΡΡΠ°Π½ΠΈΡΡ"; App::$strings["text to include in all outgoing posts from this site"] = "ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π²ΠΎ Π²ΡΠ΅ ΠΈΡΡ
ΠΎΠ΄ΡΡΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Ρ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ°"; App::$strings["Send email to all members"] = "ΠΡΠΏΡΠ°Π²ΠΈΡΡ email Π²ΡΠ΅ΠΌ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ°ΠΌ"; App::$strings["%1\$d of %2\$d messages sent."] = "%1\$d ΠΈΠ· %2\$d ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ."; App::$strings["Send email to all hub members."] = "ΠΡΠΏΡΠ°Π²ΠΈΡΡ email Π²ΡΠ΅ΠΌ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ°ΠΌ ΡΠ·Π»Π°."; App::$strings["Sender Email address"] = "ΠΠ΄ΡΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ"; App::$strings["Test mode (only send to hub administrator)"] = "Π’Π΅ΡΡΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ (ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΎΠ»ΡΠΊΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ ΡΠ·Π»Π°)"; -App::$strings["Deactivate the feature"] = "ΠΠ΅Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ"; +App::$strings["Smileybutton App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΠ½ΠΎΠΏΠΊΠ° ΡΠΎ ΡΠΌΠ°ΠΉΠ»ΠΈΠΊΠ°ΠΌ\""; +App::$strings["Adds a smileybutton to the jot editor"] = "ΠΠΎΠ±Π°Π²Π»ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΡΠΎ ΡΠΌΠ°ΠΉΠ»ΠΈΠΊΠ°ΠΌΠΈ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡ Jot"; App::$strings["Hide the button and show the smilies directly."] = "Π‘ΠΊΡΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΈ ΡΡΠ°Π·Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΌΠ°ΠΉΠ»ΠΈΠΊΠΈ."; -App::$strings["Smileybutton Settings"] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΡΠΌΠ°ΠΉΠ»ΠΈΠΊΠΎΠ²"; +App::$strings["Smileybutton Settings"] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΡΠΎ ΡΠΌΠ°ΠΉΠ»ΠΈΠΊΠ°ΠΌΠΈ"; App::$strings["Friendica Photo Album Import"] = "ΠΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π°Π»ΡΠ±ΠΎΠΌ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΉ Friendica"; App::$strings["This will import all your Friendica photo albums to this Red channel."] = "ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π²Π°ΡΠΈ Π°Π»ΡΠ±ΠΎΠΌΡ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΉ Friendica Π² ΡΡΠΎΡ ΠΊΠ°Π½Π°Π»."; App::$strings["Friendica Server base URL"] = "ΠΠ°Π·ΠΎΠ²ΡΠΉ URL ΡΠ΅ΡΠ²Π΅ΡΠ° Friendica"; @@ -3352,8 +3401,12 @@ App::$strings["If enabled, members will automatically login to an ejabberd serve App::$strings["New registration"] = "ΠΠΎΠ²Π°Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ"; App::$strings["Message sent to %s. New account registration: %s"] = "Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ Π² %s. Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ°: %s"; App::$strings["Send your identity to all websites"] = "ΠΡΠΏΡΠ°Π²ΠΈΡΡ Π²Π°ΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π½Π° Π²ΡΠ΅ Π²Π΅Π±-ΡΠ°ΠΉΡΡ"; +App::$strings["Sendzid App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΡΠΏΡΠ°Π²ΠΈΡΡ ZID\""; App::$strings["Send ZID"] = "ΠΡΠΏΡΠ°Π²ΠΈΡΡ ZID"; App::$strings["Who likes me?"] = "ΠΠΎΠΌΡ Ρ Π½ΡΠ°Π²Π»ΡΡΡ?"; +App::$strings["Max queueworker threads"] = "ΠΠ°ΠΊΡ. ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ"; +App::$strings["Assume workers dead after ___ seconds"] = "Π‘ΡΠΈΡΠ°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π½Π΅Π°ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΠΊΡΠ½Π΄"; +App::$strings["Queueworker Settings"] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ"; App::$strings["lonely"] = "ΠΎΠ΄ΠΈΠ½ΠΎΠΊΠΈΠΉ"; App::$strings["drunk"] = "ΠΏΡΡΠ½ΡΠΉ"; App::$strings["horny"] = "Π²ΠΎΠ·Π±ΡΠΆΠ΄ΡΠ½Π½ΡΠΉ"; @@ -3376,13 +3429,9 @@ App::$strings["victorious"] = "ΠΏΠΎΠ±Π΅Π΄ΠΈΠ²ΡΠΈΠΉ"; App::$strings["defeated"] = "ΠΏΡΠΎΠΈΠ³ΡΠ°Π²ΡΠΈΠΉ"; App::$strings["envious"] = "Π·Π°Π²ΠΈΠ΄ΡΠ΅Ρ"; App::$strings["jealous"] = "ΡΠ΅Π²Π½ΡΠ΅Ρ"; +App::$strings["Who viewed my channel/profile"] = "ΠΡΠΎ ΡΠΌΠΎΡΡΠ΅Π» ΠΌΠΎΠΉ ΠΊΠ°Π½Π°Π» / ΠΏΡΠΎΡΠΈΠ»Ρ"; App::$strings["Recent Channel/Profile Viewers"] = "ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΌΠΎΡΡΡ ΠΊΠ°Π½Π°Π»Π° / ΠΏΡΠΎΡΠΈΠ»Ρ"; -App::$strings["This plugin/addon has not been configured."] = "ΠΡΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡΠ»ΠΎ Π½Π°ΡΡΡΠΎΠ΅Π½ΠΎ."; -App::$strings["Please visit the Visage settings on %s"] = "ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Visage Π½Π° %s"; -App::$strings["your feature settings page"] = "ΡΡΡΠ°Π½ΠΈΡΠ° Π²Π°ΡΠΈΡ
ΡΡΡΠ°Π½ΠΎΠ²ΠΎΡΠ½ΡΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²"; App::$strings["No entries."] = "ΠΠ΅Ρ Π·Π°ΠΏΠΈΡΠ΅ΠΉ."; -App::$strings["Enable Visage Visitor Logging"] = "ΠΠΊΠ»ΡΡΠΈΡΡ ΠΆΡΡΠ½Π°Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Π΅ΠΉ Visage"; -App::$strings["Visage Settings"] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Visage"; App::$strings["Channels to auto connect"] = "ΠΠ°Π½Π°Π»Ρ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ"; App::$strings["Comma separated list"] = "Π‘ΠΏΠΈΡΠΎΠΊ, ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π½ΡΠΉ Π·Π°ΠΏΡΡΡΠΌΠΈ"; App::$strings["Popular Channels"] = "ΠΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ"; @@ -3399,23 +3448,25 @@ App::$strings["Chord name: example: Em7"] = "ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΠΊΠΊΠΎΡ App::$strings["Show for left handed stringing"] = "ΠΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΡΡΡΠ½Ρ Π΄Π»Ρ Π»Π΅Π²ΡΠ΅ΠΉ"; App::$strings["Quick Reference"] = "ΠΡΡΡΡΠ°Ρ ΡΡΡΠ»ΠΊΠ°"; App::$strings["Post to Libertree"] = "ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Libertree"; -App::$strings["Enable Libertree Post Plugin"] = "ΠΠΊΠ»ΡΡΠΈΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Libertree"; +App::$strings["Libertree Crosspost Connector Settings saved."] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Libertree ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ."; +App::$strings["Libertree Crosspost Connector App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Libertree\""; +App::$strings["Relay public posts to Libertree"] = "ΠΠ΅ΡΠ΅ΡΡΠ»Π°Π΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² Libertree"; App::$strings["Libertree API token"] = "Π’ΠΎΠΊΠ΅Π½ Libertree API"; App::$strings["Libertree site URL"] = "URL ΡΠ°ΠΉΡΠ° Libertree"; App::$strings["Post to Libertree by default"] = "ΠΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Libertree ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ"; -App::$strings["Libertree Post Settings"] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Π² Libertree"; -App::$strings["Libertree Settings saved."] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Libertree ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ."; +App::$strings["Libertree Crosspost Connector"] = "ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Libertree"; App::$strings["Channel is required."] = "ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ ΠΊΠ°Π½Π°Π»."; -App::$strings["Hubzilla Crosspost Connector Settings saved."] = ""; -App::$strings["Relay public postings to another Hubzilla channel"] = "Π Π΅ΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ°Π½Π°Π» Hubzilla"; +App::$strings["Hubzilla Crosspost Connector Settings saved."] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Hubzilla ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ."; +App::$strings["Relay public postings to another Hubzilla channel"] = "ΠΠ΅ΡΠ΅ΡΡΠ»Π°Π΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ°Π½Π°Π» Hubzilla"; App::$strings["Send public postings to Hubzilla channel by default"] = "ΠΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² ΠΊΠ°Π½Π°Π» Hubzilla ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ"; App::$strings["Hubzilla API Path"] = "ΠΡΡΡ ΠΊ Hubzilla API"; App::$strings["Hubzilla login name"] = "ΠΠΌΡ Π²Ρ
ΠΎΠ΄Π° Hubzilla"; App::$strings["Hubzilla channel name"] = "ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ°Π½Π°Π»Π° Hubzilla"; -App::$strings["Hubzilla Crosspost Connector"] = ""; -App::$strings["Post to Hubzilla"] = ""; +App::$strings["Hubzilla Crosspost Connector"] = "ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Hubzilla"; +App::$strings["Post to Hubzilla"] = "ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² Hubzilla"; App::$strings["ActivityPub Protocol Settings updated."] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ActivityPub ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ."; App::$strings["The activitypub protocol does not support location independence. Connections you make within that network may be unreachable from alternate channel locations."] = "ΠΡΠΎΡΠΎΠΊΠΎΠ» ActivityPub Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΡΠΈ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π² ΡΡΠΎΠΉ ΡΠ΅ΡΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΈΠ· Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΡ
ΠΌΠ΅ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠ°Π½Π°Π»Π°."; +App::$strings["Activitypub Protocol App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΡΠΎΡΠΎΠΊΠΎΠ» ActivityPub\""; App::$strings["Deliver to ActivityPub recipients in privacy groups"] = "ΠΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»ΡΠΌ ActivityPub Π² Π³ΡΡΠΏΠΏΠ°Ρ
Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ"; App::$strings["May result in a large number of mentions and expose all the members of your privacy group"] = "ΠΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π±ΠΎΠ»ΡΡΠΎΠΌΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΉ ΠΈ ΡΠ°ΡΠΊΡΡΡΠΈΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² Π³ΡΡΠΏΠΏΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ"; App::$strings["Send multi-media HTML articles"] = "ΠΡΠΏΡΠ°Π²ΠΈΡΡ HTML ΡΡΠ°ΡΡΠΈ Ρ ΠΌΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠ°"; @@ -3424,13 +3475,16 @@ App::$strings["Activitypub Protocol"] = "ΠΡΠΎΡΠΎΠΊΠΎΠ» ActivityPub"; App::$strings["No username found in import file."] = "ΠΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π² ΡΠ°ΠΉΠ»Π΅ Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ°."; App::$strings["Diaspora Protocol Settings updated."] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Diaspora ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ."; App::$strings["The diaspora protocol does not support location independence. Connections you make within that network may be unreachable from alternate channel locations."] = "ΠΡΠΎΡΠΎΠΊΠΎΠ» Diaspora Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΡΠΈ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π² ΡΡΠΎΠΉ ΡΠ΅ΡΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΈΠ· Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΡ
ΠΌΠ΅ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠ°Π½Π°Π»Π°."; +App::$strings["Diaspora Protocol App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΡΠΎΡΠΎΠΊΠΎΠ» Diaspora\""; App::$strings["Allow any Diaspora member to comment on your public posts"] = "Π Π°Π·ΡΠ΅ΡΠΈΡΡ Π»ΡΠ±ΠΎΠΌΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΡ Diaspora ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π°ΡΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ"; App::$strings["Prevent your hashtags from being redirected to other sites"] = "ΠΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΎΠ² Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°ΠΉΡΡ"; App::$strings["Sign and forward posts and comments with no existing Diaspora signature"] = "ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Ρ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ Diaspora"; App::$strings["Followed hashtags (comma separated, do not include the #)"] = "ΠΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ΅Π³ΠΈ (ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ, ΠΈΡΠΊΠ»ΡΡΠ°Ρ #)"; App::$strings["Diaspora Protocol"] = "ΠΡΠΎΡΠΎΠΊΠΎΠ» Diaspora"; +App::$strings["%1\$s dislikes %2\$s's %3\$s"] = "%1\$s Π½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ %2\$s's %3\$s"; App::$strings["Post to WordPress"] = "ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² WordPress"; App::$strings["Wordpress Settings saved."] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ WordPress ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ."; +App::$strings["Wordpress Post App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π² Wordpress\""; App::$strings["Post to WordPress or anything else which uses the wordpress XMLRPC API"] = "ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² WordPress ΠΈΠ»ΠΈ Π² ΡΡΠΌ-ΡΠΎ Π΅ΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ΅ΠΌ wordpress XMLRPC API"; App::$strings["WordPress username"] = "ΠΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ WordPress"; App::$strings["WordPress password"] = "ΠΠ°ΡΠΎΠ»Ρ WordPress"; @@ -3444,15 +3498,17 @@ App::$strings["Wordpress Post"] = "ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π² WordPress"; App::$strings["Possible adult content"] = "ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π΄Π»Ρ Π²Π·ΡΠΎΡΠ»ΡΡ
"; App::$strings["%s - view"] = "%s - ΠΏΡΠΎΡΠΌΠΎΡΡ"; App::$strings["NSFW Settings saved."] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ NSFW ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ."; +App::$strings["NSFW App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ NSFW"; App::$strings["Collapse content that contains predefined words"] = "Π‘Π²Π΅ΡΠ½ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠ»ΠΎΠ²Π°"; App::$strings["This app looks in posts for the words/text you specify below, and collapses any content containing those keywords so it is not displayed at inappropriate times, such as sexual innuendo that may be improper in a work setting. It is polite and recommended to tag any content containing nudity with #NSFW. This filter can also match any other word/text you specify, and can thereby be used as a general purpose content filter."] = "ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π»Ρ ΡΠ»ΠΎΠ² / ΡΠ΅ΠΊΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΠ΅ Π½ΠΈΠΆΠ΅, ΠΈ ΡΠ²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅Ρ Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΡΠΈ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² Π½Π΅ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΠΈΠ½ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌΠΈ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΡΠ°Π±ΠΎΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΎΡΠΌΠ΅ΡΠ°ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π½Π°Π³ΠΎΡΡ, ΡΠ΅Π³ΠΎΠΌ #NSFW. ΠΡΠΎΡ ΡΠΈΠ»ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π»ΡΠ±ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π²Π°ΠΌΠΈ ΡΠ»ΠΎΠ²ΠΎ / ΡΠ΅ΠΊΡΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΈΠ»ΡΡΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ."; App::$strings["Comma separated list of keywords to hide"] = "Π‘ΠΏΠΈΡΠΎΠΊ ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΡΠ»ΠΎΠ² Π΄Π»Ρ ΡΠΊΡΡΡΠΈΡ, ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ"; App::$strings["Word, /regular-expression/, lang=xx, lang!=xx"] = "ΡΠ»ΠΎΠ²ΠΎ, /ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠ΅_Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅/, lang=xx, lang!=xx"; App::$strings["NSFW"] = ""; +App::$strings["Skeleton App"] = "ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"Π‘ΠΊΠ΅Π»Π΅Ρ\""; +App::$strings["A skeleton for addons, you can copy/paste"] = "Π‘ΠΊΠ΅Π»Π΅Ρ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ copy/paste"; App::$strings["Some setting"] = "ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ"; App::$strings["A setting"] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠ°"; App::$strings["Skeleton Settings"] = "ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΊΠ΅Π»Π΅ΡΠ°"; App::$strings["__ctx:opensearch__ Search %1\$s (%2\$s)"] = "ΠΡΠΊΠ°ΡΡ %1\$s (%2\$s)"; App::$strings["__ctx:opensearch__ \$Projectname"] = ""; App::$strings["Search \$Projectname"] = "ΠΠΎΠΈΡΠΊ \$Projectname"; -App::$strings["Cover Photo"] = ""; diff --git a/view/tpl/conv_item.tpl b/view/tpl/conv_item.tpl index 69e09b272..428529de2 100755 --- a/view/tpl/conv_item.tpl +++ b/view/tpl/conv_item.tpl @@ -146,6 +146,9 @@ {{if $item.share}} <a class="dropdown-item" href="#" onclick="jotShare({{$item.id}},{{$item.item_type}}); return false"><i class="generic-icons-nav fa fa-fw fa-retweet" title="{{$item.share.0}}"></i>{{$item.share.0}}</a> {{/if}} + {{if $item.embed}} + <a class="dropdown-item" href="#" onclick="jotEmbed({{$item.id}},{{$item.item_type}}); return false"><i class="generic-icons-nav fa fa-fw fa-share" title="{{$item.embed.0}}"></i>{{$item.embed.0}}</a> + {{/if}} {{if $item.plink}} <a class="dropdown-item" href="{{$item.plink.href}}" title="{{$item.plink.title}}" class="u-url"><i class="generic-icons-nav fa fa-fw fa-external-link"></i>{{$item.plink.title}}</a> {{/if}} diff --git a/view/tpl/conv_list.tpl b/view/tpl/conv_list.tpl index 28e120d17..63e74b159 100755 --- a/view/tpl/conv_list.tpl +++ b/view/tpl/conv_list.tpl @@ -139,6 +139,9 @@ {{if $item.share}} <a class="dropdown-item" href="#" onclick="jotShare({{$item.id}},{{$item.item_type}}); return false"><i class="generic-icons-nav fa fa-fw fa-retweet" title="{{$item.share.0}}"></i>{{$item.share.0}}</a> {{/if}} + {{if $item.embed}} + <a class="dropdown-item" href="#" onclick="jotEmbed({{$item.id}},{{$item.item_type}}); return false"><i class="generic-icons-nav fa fa-fw fa-share" title="{{$item.embed.0}}"></i>{{$item.embed.0}}</a> + {{/if}} {{if $item.plink}} <a class="dropdown-item" href="{{$item.plink.href}}" title="{{$item.plink.title}}" class="u-url"><i class="generic-icons-nav fa fa-fw fa-external-link"></i>{{$item.plink.title}}</a> {{/if}} diff --git a/view/tpl/group_edit.tpl b/view/tpl/group_edit.tpl index 88f037abe..60038701e 100755 --- a/view/tpl/group_edit.tpl +++ b/view/tpl/group_edit.tpl @@ -13,6 +13,7 @@ <input type='hidden' name='form_security_token' value='{{$form_security_token_edit}}'> {{include file="field_input.tpl" field=$gname}} {{include file="field_checkbox.tpl" field=$public}} + {{$pgrp_extras}} <a href="group/drop/{{$gid}}?t={{$form_security_token_drop}}" onclick="return confirmDelete();" class="btn btn-sm btn-danger"> {{$delete}} </a> diff --git a/view/tpl/jot-header.tpl b/view/tpl/jot-header.tpl index b286b6071..9a44f1a54 100755 --- a/view/tpl/jot-header.tpl +++ b/view/tpl/jot-header.tpl @@ -198,16 +198,24 @@ var activeCommentText = ''; }) } - function jotShare(id,post_type) { + $('#like-rotator-' + id).show(); + $.get('{{$baseurl}}/share/' + id, function(data) { + $('#like-rotator-' + id).hide(); + updateInit(); + }); + } + + function jotEmbed(id,post_type) { if(post_type == 6) { window.location.href = 'rpost?f=&post_id='+id; } else { + if ($('#jot-popup').length != 0) $('#jot-popup').show(); $('#like-rotator-' + id).show(); - $.get('{{$baseurl}}/share/' + id, function(data) { + $.get('{{$baseurl}}/embed/' + id, function(data) { if (!editor) $("#profile-jot-text").val(""); initEditor(function(){ addeditortext(data); diff --git a/view/tpl/jot.tpl b/view/tpl/jot.tpl index 4eae33d13..12509fc59 100755 --- a/view/tpl/jot.tpl +++ b/view/tpl/jot.tpl @@ -137,8 +137,11 @@ <i id="profile-nocomment" class="fa fa-comments jot-icons"></i> </button> {{/if}} + {{if $custommoretoolsbuttons}} + {{$custommoretoolsbuttons}} + {{/if}} </div> - {{if $writefiles || $weblink || $setloc || $clearloc || $feature_expire || $feature_encrypt || $feature_voting}} + {{if $writefiles || $weblink || $setloc || $clearloc || $feature_expire || $feature_encrypt || $feature_voting || $custommoretoolsdropdown}} <div class="btn-group d-lg-none"> <button type="button" id="more-tools" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-toggle="dropdown" aria-expanded="false"> <i id="more-tools-icon" class="fa fa-cog jot-icons"></i> @@ -176,6 +179,8 @@ {{if $feature_nocomment}} <a class="dropdown-item" href="#" onclick="toggleNoComment(); return false;"><i id="profile-nocomment-sub" class="fa fa-comments"></i> {{$nocommenttitlesub}}</a> {{/if}} + <hr /> + {{$custommoretoolsdropdown}} </div> </div> {{/if}} @@ -186,6 +191,11 @@ </div> </div> <div id="profile-jot-submit-right" class="btn-group float-right"> + {{foreach $customsubmitright as $csr}} + <button class="btn btn-outline-secondary btn-sm" {{$csr.buttonparams}} title="{{$csr.preview}}"> + {{$csr.buttoncontent}} + </button> + {{/foreach}} {{if $preview}} <button class="btn btn-outline-secondary btn-sm" onclick="preview_post();return false;" title="{{$preview}}"> <i class="fa fa-eye jot-icons" ></i> diff --git a/view/tpl/remote_friends_common.tpl b/view/tpl/remote_friends_common.tpl index efc0ab49a..6ef3a7dde 100755 --- a/view/tpl/remote_friends_common.tpl +++ b/view/tpl/remote_friends_common.tpl @@ -7,10 +7,9 @@ <div class="contact-block-content"> {{foreach $items as $item}} <div class="contact-block-div"> - <a class="contact-block-link mpfriend" href="{{$base}}/chanview?f=&url={{$item.xchan_url}}"><img class="contact-block-img mpfriend" src="{{$item.xchan_photo_s}}"alt="{{$item.xchan_name}}" title="{{$item.xchan_name}} [{{$item.xchan_addr}}]" /></a> + <a class="contact-block-link mpfriend" href="{{$base}}/chanview?f=&url={{$item.xchan_url}}"><img class="contact-block-img mpfriend" src="{{$item.xchan_photo_s}}" alt="{{$item.xchan_name}}" title="{{$item.xchan_name}} [{{$item.xchan_addr}}]" /></a> </div> {{/foreach}} </div> {{/if}} </div> - |