aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzotlabs <mike@macgirvin.com>2018-12-03 19:19:31 -0800
committerzotlabs <mike@macgirvin.com>2018-12-03 19:19:31 -0800
commitffc3dba6825933d8e3ddc1a9a1ee93785acb2fca (patch)
tree6b42761029370c325064d2790b4c3d8debb7dd38
parent1acc5ceb5f17b3bd36eeba9245c4bb3923793c34 (diff)
parent5e14da67e1329947a14cc4f009cebcfe4a5ece2f (diff)
downloadvolse-hubzilla-ffc3dba6825933d8e3ddc1a9a1ee93785acb2fca.tar.gz
volse-hubzilla-ffc3dba6825933d8e3ddc1a9a1ee93785acb2fca.tar.bz2
volse-hubzilla-ffc3dba6825933d8e3ddc1a9a1ee93785acb2fca.zip
Merge branch 'dev' of https://framagit.org/hubzilla/core into xdev_merge
-rw-r--r--.homeinstall/README.md28
-rw-r--r--.homeinstall/hubzilla-config.txt.template2
-rwxr-xr-x.homeinstall/hubzilla-setup.sh34
-rw-r--r--CHANGELOG27
-rw-r--r--Zotlabs/Daemon/Cron.php23
-rw-r--r--Zotlabs/Lib/Enotify.php2
-rw-r--r--Zotlabs/Module/Pconfig.php5
-rw-r--r--Zotlabs/Module/Photo.php88
-rw-r--r--Zotlabs/Module/Photos.php29
-rw-r--r--Zotlabs/Update/_1228.php5
-rw-r--r--Zotlabs/Update/_1229.php32
-rw-r--r--Zotlabs/Widget/Notifications.php8
-rwxr-xr-xboot.php3
-rw-r--r--composer.json3
-rw-r--r--composer.lock171
-rw-r--r--doc/es-es/about/about.bb35
-rwxr-xr-xinclude/items.php2
-rwxr-xr-xinclude/oembed.php6
-rw-r--r--include/photo/photo_driver.php35
-rw-r--r--include/photo/photo_imagick.php10
-rw-r--r--include/text.php22
-rw-r--r--install/schema_mysql.sql8
-rw-r--r--install/schema_postgres.sql6
-rw-r--r--library/imagesloaded/imagesloaded.pkgd.min.js7
-rw-r--r--vendor/blueimp/jquery-file-upload/README.md2
-rw-r--r--vendor/blueimp/jquery-file-upload/SECURITY.md2
-rw-r--r--vendor/blueimp/jquery-file-upload/angularjs.html8
-rw-r--r--vendor/blueimp/jquery-file-upload/basic-plus.html8
-rw-r--r--vendor/blueimp/jquery-file-upload/basic.html6
-rw-r--r--[-rwxr-xr-x]vendor/blueimp/jquery-file-upload/bower-version-update.js0
-rw-r--r--vendor/blueimp/jquery-file-upload/bower.json2
-rw-r--r--vendor/blueimp/jquery-file-upload/cors/postmessage.html2
-rw-r--r--vendor/blueimp/jquery-file-upload/index.html6
-rw-r--r--vendor/blueimp/jquery-file-upload/jquery-ui.html6
-rw-r--r--vendor/blueimp/jquery-file-upload/package.json2
-rw-r--r--[-rwxr-xr-x]vendor/blueimp/jquery-file-upload/server/php/UploadHandler.php34
-rw-r--r--vendor/blueimp/jquery-file-upload/server/php/index.php2
-rw-r--r--vendor/blueimp/jquery-file-upload/test/index.html6
-rw-r--r--vendor/composer/ClassLoader.php2
-rw-r--r--vendor/composer/LICENSE69
-rw-r--r--vendor/composer/autoload_classmap.php9
-rw-r--r--vendor/composer/autoload_static.php8
-rw-r--r--vendor/composer/installed.json69
-rw-r--r--vendor/desandro/imagesloaded/.gitignore5
-rw-r--r--vendor/desandro/imagesloaded/.jshintrc12
-rw-r--r--vendor/desandro/imagesloaded/README.md362
-rw-r--r--vendor/desandro/imagesloaded/bower.json37
-rw-r--r--vendor/desandro/imagesloaded/composer.json15
-rw-r--r--vendor/desandro/imagesloaded/contributing.md20
-rw-r--r--vendor/desandro/imagesloaded/gulpfile.js128
-rw-r--r--vendor/desandro/imagesloaded/imagesloaded.js377
-rw-r--r--vendor/desandro/imagesloaded/imagesloaded.pkgd.js (renamed from library/imagesloaded/imagesloaded.pkgd.js)72
-rw-r--r--vendor/desandro/imagesloaded/imagesloaded.pkgd.min.js7
-rw-r--r--vendor/desandro/imagesloaded/package.json48
-rw-r--r--vendor/desandro/imagesloaded/sandbox/background/css/background.css29
-rw-r--r--vendor/desandro/imagesloaded/sandbox/background/index.html51
-rw-r--r--vendor/desandro/imagesloaded/sandbox/progress/index.html89
-rw-r--r--vendor/desandro/imagesloaded/sandbox/progress/progress.js111
-rw-r--r--vendor/desandro/imagesloaded/test/css/tests.css41
-rw-r--r--vendor/desandro/imagesloaded/test/img/blue-shell.jpgbin0 -> 24555 bytes
-rw-r--r--vendor/desandro/imagesloaded/test/img/bowser-jr.jpgbin0 -> 36987 bytes
-rw-r--r--vendor/desandro/imagesloaded/test/img/thunder-cloud.jpgbin0 -> 24588 bytes
-rw-r--r--vendor/desandro/imagesloaded/test/index.html104
-rw-r--r--vendor/desandro/imagesloaded/test/unit/append.js30
-rw-r--r--vendor/desandro/imagesloaded/test/unit/background.js70
-rw-r--r--vendor/desandro/imagesloaded/test/unit/basics.js28
-rw-r--r--vendor/desandro/imagesloaded/test/unit/data-uri.js10
-rw-r--r--vendor/desandro/imagesloaded/test/unit/jquery-fail.js29
-rw-r--r--vendor/desandro/imagesloaded/test/unit/jquery-success.js28
-rw-r--r--vendor/desandro/imagesloaded/test/unit/local-files.js31
-rw-r--r--vendor/desandro/imagesloaded/test/unit/no-images.js11
-rw-r--r--vendor/desandro/imagesloaded/test/unit/non-element.js24
-rw-r--r--vendor/desandro/imagesloaded/test/unit/selector-string.js12
-rw-r--r--vendor/desandro/imagesloaded/test/unit/single-element.js11
-rw-r--r--vendor/psr/log/README.md7
-rw-r--r--view/css/default.css37
-rw-r--r--view/css/mod_connedit.css1
-rw-r--r--view/es-es/hmessages.po26
-rw-r--r--view/es-es/hstrings.php24
-rw-r--r--view/js/main.js3
-rw-r--r--view/php/default.php14
-rw-r--r--view/php/theme_init.php2
-rw-r--r--view/ru/hmessages.po1361
-rw-r--r--view/ru/hstrings.php44
-rw-r--r--view/theme/redbasic/js/redbasic.js6
-rw-r--r--view/tpl/notifications_widget.tpl4
86 files changed, 3064 insertions, 1091 deletions
diff --git a/.homeinstall/README.md b/.homeinstall/README.md
index aeecb9184..d63931a84 100644
--- a/.homeinstall/README.md
+++ b/.homeinstall/README.md
@@ -5,8 +5,8 @@ Run hubzilla-setup.sh for an unattended installation of hubzilla.
The script is known to work without adjustments with
+ Hardware
- - Mini-PC with Debian-9.2-amd64, or
- - Rapberry 3 with Raspbian, Debian-9.3
+ - Mini-PC with Debian-9.5-amd64, or
+ - Rapberry 3 with Raspbian, Debian-9.5
+ DynDNS
- selfHOST.de
- freedns.afraid.org
@@ -38,7 +38,7 @@ Software
- apt-get install git
- mkdir -p /var/www
- cd /var/www
- - git clone https://github.com/redmatrix/hubzilla.git html
+ - git clone https://framagit.org/hubzilla/core.git html
- cd html/.homeinstall
- cp hubzilla-config.txt.template hubzilla-config.txt
- nano hubzilla-config.txt
@@ -100,7 +100,7 @@ Create bootable USB drive with Debian on it.You could use
Example for command dd...
su -
- dd if=2017-11-29-raspbian-stretch.img of=/dev/mmcblk0
+ dd if=2018-10-09-raspbian-stretch.img of=/dev/mmcblk0
Do not forget to unmount the SD card before and check if unmounted like in this example...
@@ -164,7 +164,7 @@ Make the directory for apache and change diretory to it
Clone hubzilla from git ("git pull" will update it later)
- git clone https://framagit.org/hubzilla/core html
+ git clone https://framagit.org/hubzilla/core.git html
Change to the install script
@@ -217,14 +217,20 @@ After the daily script was executed at 05:30 (am)
- optionally view the daily log under yourdomain.org/admin/logs/
- set the logfile to var/www/html/hubzilla-daily.log
-## Note for the Rasperry
-The script was tested with an Raspberry 3 under Raspian (Debian 9.3, 2017-11-29-raspbian-stretch.img).
+## Install Hubzilla in a Virtual Machine for Test Purposes
+
+Modify the file "hubzilla-config.txt".
+
+ nano hubzilla-config.txt
-It is recommended to deinstall these programms to avoid endless updates. Use...
+There use
+
+ le_domain=localhost
+
+## Note for the Rasperry
- sudo apt-get purge wolfram-engine sonic-pi
- sudo apt-get autoremove
+The script was tested with an Raspberry 3 under Raspian (Debian 9.5, 2018-10-09-raspbian-stretch.img).
It is recommended to run the Raspi without graphical frontend (X-Server). Use...
@@ -234,7 +240,7 @@ to boot the Rapsi to the client console.
DO NOT FORGET TO CHANGE THE DEFAULT PASSWORD FOR USER PI!
-On a Raspian Stretch (Debian 9) the validation of the mail address fails for the very first user.
+If the validation of the mail address fails for the very first registered user...
This used to happen on some *bsd distros but there was some work to fix that a year ago (2017).
So if your system isn't registered in DNS or DNS isn't active do
diff --git a/.homeinstall/hubzilla-config.txt.template b/.homeinstall/hubzilla-config.txt.template
index 2776ccd27..e42da0e4e 100644
--- a/.homeinstall/hubzilla-config.txt.template
+++ b/.homeinstall/hubzilla-config.txt.template
@@ -18,6 +18,8 @@ db_pass=
# Example: my.cooldomain.org
# Example: cooldomain.org
#
+# Example: localhost (test installation without certificates for httpS)
+#
# Email is optional
#
#
diff --git a/.homeinstall/hubzilla-setup.sh b/.homeinstall/hubzilla-setup.sh
index ff101086c..1f3ad5db5 100755
--- a/.homeinstall/hubzilla-setup.sh
+++ b/.homeinstall/hubzilla-setup.sh
@@ -816,15 +816,35 @@ install_run_selfhost
ping_domain
configure_cron_freedns
configure_cron_selfhost
-install_letsencrypt
-configure_apache_for_https
-check_https
+
+if [ "$le_domain" != "localhost" ]
+then
+ install_letsencrypt
+ configure_apache_for_https
+ check_https
+else
+ print_info "is localhost - skipped installation of letsencrypt and configuration of apache for https"
+fi
+
install_hubzilla
-rewrite_to_https
-install_rsnapshot
+
+if [ "$le_domain" != "localhost" ]
+then
+ rewrite_to_https
+ install_rsnapshot
+else
+ print_info "is localhost - skipped rewrite to https and installation of rsnapshot"
+fi
+
configure_cron_daily
-install_cryptosetup
-write_uninstall_script
+
+if [ "$le_domain" != "localhost" ]
+then
+ install_cryptosetup
+ write_uninstall_script
+else
+ print_info "is localhost - skipped installation of cryptosetup"
+fi
#set +x # stop debugging from here
diff --git a/CHANGELOG b/CHANGELOG
index 59e8bdfc9..444c7b2e4 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,30 @@
+Hubzilla 3.8.6 (2018-12-03)
+ - Prevent incompatible export files (osada/zap) from being imported
+ - Catch exception if readImageBlob() receives bogus data
+ - Streamline PDF previews
+ - Allow notification filtering by name or address
+ - Fix too restrictive attached photo permissions
+ - Update ES translation
+ - Use flex for the default template
+ - Do not store serialized pconfig value received via to Module/Pconfig.php
+ - Update jquery-file-upload lib and move to composer
+ - Update imagesloaded lib and move to composer
+ - Fix activitypub tag notifications
+ - Fix call to undefined function in PConfig
+ - Fix typo which prevented propagation of comments to zot6 (dev)
+ - Activitypub: add support for pterotype (wordpress plugin)
+ - Openstreetmap: check validity of lat+lon before rendering a map
+
+
+Hubzilla 3.8.5 (2018-11-19)
+ - Fix pconfig for new installs
+ - Fix delayed publication of posts in combination with channel clones
+ - Fix issue where photo filesize was not updated in the DB when a photo was edited
+ - Fix issue where the original photo size was not set correct in the DB
+ - Fix delivery issue in zot_fetch()
+ - Fix typo in channel reputation addon
+
+
Hubzilla 3.8.4 (2018-11-14)
- Fix xss issue (thanks to Eduardo)
- Implement hook in enotify to be used by superblock
diff --git a/Zotlabs/Daemon/Cron.php b/Zotlabs/Daemon/Cron.php
index 25e49b817..8b6b42c8a 100644
--- a/Zotlabs/Daemon/Cron.php
+++ b/Zotlabs/Daemon/Cron.php
@@ -94,6 +94,29 @@ class Cron {
@time_sleep_until(microtime(true) + (float) $interval);
}
}
+
+ // Clean expired photos from cache
+
+ $age = get_config('system','active_expire_days', '30');
+ $r = q("SELECT DISTINCT xchan, content FROM photo WHERE photo_usage = %d AND expires < %s - INTERVAL %s",
+ intval(PHOTO_CACHE),
+ db_utcnow(),
+ db_quoteinterval($age . ' DAY')
+ );
+ if($r) {
+ foreach($r as $rr) {
+ $file = dbunescbin($rr['content']);
+ if(is_file($file)) {
+ @unlink($file);
+ logger('info: deleted cached photo file ' . $file, LOGGER_DEBUG);
+ }
+ }
+ }
+ q("DELETE FROM photo WHERE photo_usage = %d AND expires < %s - INTERVAL %s",
+ intval(PHOTO_CACHE),
+ db_utcnow(),
+ db_quoteinterval($age . ' DAY')
+ );
// publish any applicable items that were set to be published in the future
// (time travel posts). Restrict to items that have come of age in the last
diff --git a/Zotlabs/Lib/Enotify.php b/Zotlabs/Lib/Enotify.php
index 523ccf93a..5e5798cac 100644
--- a/Zotlabs/Lib/Enotify.php
+++ b/Zotlabs/Lib/Enotify.php
@@ -828,7 +828,7 @@ class Enotify {
$x = array(
'notify_link' => $item['llink'],
'name' => $item['author']['xchan_name'],
- 'addr' => $item['author']['xchan_addr'],
+ 'addr' => (($item['author']['xchan_addr']) ? $item['author']['xchan_addr'] : $item['author']['xchan_url']),
'url' => $item['author']['xchan_url'],
'photo' => $item['author']['xchan_photo_s'],
'when' => relative_date(($edit)? $item['edited'] : $item['created']),
diff --git a/Zotlabs/Module/Pconfig.php b/Zotlabs/Module/Pconfig.php
index 44fe5d9a9..f31d5fdf6 100644
--- a/Zotlabs/Module/Pconfig.php
+++ b/Zotlabs/Module/Pconfig.php
@@ -22,6 +22,11 @@ class Pconfig extends \Zotlabs\Web\Controller {
$k = trim(escape_tags($_POST['k']));
$v = trim($_POST['v']);
$aj = intval($_POST['aj']);
+
+ // Do not store "serialized" data received in the $_POST
+ if (preg_match('|^a:[0-9]+:{.*}$|s',$v) || preg_match('O:8:"stdClass":[0-9]+:{.*}$|s',$v)) {
+ return;
+ }
if(in_array(argv(2),$this->disallowed_pconfig())) {
notice( t('This setting requires special processing and editing has been blocked.') . EOL);
diff --git a/Zotlabs/Module/Photo.php b/Zotlabs/Module/Photo.php
index 30e8340e2..d85db7307 100644
--- a/Zotlabs/Module/Photo.php
+++ b/Zotlabs/Module/Photo.php
@@ -1,19 +1,20 @@
<?php
+
+
namespace Zotlabs\Module;
require_once('include/security.php');
require_once('include/attach.php');
require_once('include/photo/photo_driver.php');
-
class Photo extends \Zotlabs\Web\Controller {
function init() {
- $prvcachecontrol = false;
$streaming = null;
$channel = null;
$person = 0;
+ $renew = false;
switch(argc()) {
case 4:
@@ -29,7 +30,15 @@ class Photo extends \Zotlabs\Web\Controller {
killme();
// NOTREACHED
}
-
+
+ $cache_mode = array(
+ 'on' => get_config('system','photo_cache_enable', 0),
+ 'age' => 86400,
+ 'exp' => true,
+ 'leak' => false
+ );
+ call_hooks('cache_mode_hook', $cache_mode);
+
$observer_xchan = get_observer_hash();
$ismodified = $_SERVER['HTTP_IF_MODIFIED_SINCE'];
@@ -106,13 +115,14 @@ class Photo extends \Zotlabs\Web\Controller {
License link: http://creativecommons.org/licenses/by/3.0/
*/
+ // @FIXME It seems this part doesn't work because we are not setting such cookie
$cookie_value = false;
if (isset($_COOKIE['devicePixelRatio'])) {
$cookie_value = intval($_COOKIE['devicePixelRatio']);
}
else {
// Force revalidation of cache on next request
- $cache_directive = 'no-cache';
+ // $prvcachecontrol = 'no-cache';
$status = 'no cookie';
}
@@ -129,27 +139,43 @@ class Photo extends \Zotlabs\Web\Controller {
$resolution = 1;
}
- $r = q("SELECT uid, photo_usage FROM photo WHERE resource_id = '%s' AND imgscale = %d LIMIT 1",
+ $r = q("SELECT uid, photo_usage, expires, display_path FROM photo WHERE resource_id = '%s' AND imgscale = %d LIMIT 1",
dbesc($photo),
intval($resolution)
);
if($r) {
-
$allowed = (-1);
- if(intval($r[0]['photo_usage'])) {
+ $u = intval($r[0]['photo_usage']);
+ if($u) {
$allowed = 1;
- if(intval($r[0]['photo_usage']) === PHOTO_COVER)
+ if($u === PHOTO_COVER)
if($resolution < PHOTO_RES_COVER_1200)
$allowed = (-1);
- if(intval($r[0]['photo_usage']) === PHOTO_PROFILE)
+ if($u === PHOTO_PROFILE)
if(! in_array($resolution,[4,5,6]))
$allowed = (-1);
+ if($u === PHOTO_CACHE) {
+ // Cached image leak protection
+ if(! (local_channel() || $cache_mode['leak'])) {
+ header("Location: " . $r[0]['display_path']);
+ killme();
+ }
+ // Revalidate cache
+ if($cache_mode['on'] && strtotime($r[0]['expires']) - 60 < time()) {
+ $cache = array(
+ 'url' => $r[0]['display_path'],
+ 'uid' => $r[0]['uid']
+ );
+ call_hooks('cache_url_hook', $cache);
+ if(! $cache['status'])
+ http_status_exit(404,'not found');
+ }
+ }
}
- if($allowed === (-1)) {
+ if($allowed === (-1))
$allowed = attach_can_view($r[0]['uid'],$observer_xchan,$photo);
- }
$channel = channelx_by_n($r[0]['uid']);
@@ -160,16 +186,19 @@ class Photo extends \Zotlabs\Web\Controller {
);
$exists = (($e) ? true : false);
-
+
if($exists && $allowed) {
+ $expires = strtotime($e[0]['expires'] . 'Z');
$data = dbunescbin($e[0]['content']);
$filesize = $e[0]['filesize'];
$mimetype = $e[0]['mimetype'];
$modified = strtotime($e[0]['edited'] . 'Z');
- if(intval($e[0]['os_storage']))
+
+ if(intval($e[0]['os_storage'])) {
$streaming = $data;
+ }
if($e[0]['allow_cid'] != '' || $e[0]['allow_gid'] != '' || $e[0]['deny_gid'] != '' || $e[0]['deny_gid'] != '')
- $prvcachecontrol = true;
+ $prvcachecontrol = 'no-store, no-cache, must-revalidate';
}
else {
if(! $allowed) {
@@ -180,9 +209,9 @@ class Photo extends \Zotlabs\Web\Controller {
}
}
- } else {
+ }
+ else
http_status_exit(404,'not found');
- }
}
header_remove('Pragma');
@@ -225,24 +254,14 @@ class Photo extends \Zotlabs\Web\Controller {
$mimetype = $ph->getType();
}
}
-
- // @FIXME Seems never invoked
- // Writing in cachefile
- if (isset($cachefile) && $cachefile != '') {
- file_put_contents($cachefile, $data);
- $modified = filemtime($cachefile);
- }
-
- header("Content-type: " . $mimetype);
-
- if($prvcachecontrol) {
+ if(isset($prvcachecontrol)) {
// it is a private photo that they have no permission to view.
// tell the browser not to cache it, in case they authenticate
// and subsequently have permission to see it
- header("Cache-Control: no-store, no-cache, must-revalidate");
+ header("Cache-Control: " . $prvcachecontrol);
}
else {
@@ -255,18 +274,23 @@ class Photo extends \Zotlabs\Web\Controller {
// This has performance considerations but we highly recommend you
// leave it alone.
- $cache = get_config('system','photo_cache_time', 86400); // 1 day by default
+ $maxage = $cache_mode['age'];
- header("Expires: " . gmdate("D, d M Y H:i:s", time() + $cache) . " GMT");
- header("Cache-Control: max-age=" . $cache);
+ if($cache_mode['exp'] || (! isset($expires)) || (isset($expires) && $expires - 60 < time()))
+ $expires = time() + $maxage;
+ else
+ $maxage = $expires - time();
+
+ header("Expires: " . gmdate("D, d M Y H:i:s", $expires) . " GMT");
+ header("Cache-Control: max-age=" . $maxage);
}
+ header("Content-type: " . $mimetype);
header("Last-Modified: " . gmdate("D, d M Y H:i:s", $modified) . " GMT");
header("Content-Length: " . (isset($filesize) ? $filesize : strlen($data)));
// If it's a file resource, stream it.
-
if($streaming && $channel) {
if(strpos($streaming,'store') !== false)
$istream = fopen($streaming,'rb');
diff --git a/Zotlabs/Module/Photos.php b/Zotlabs/Module/Photos.php
index 03fd8a53d..21f6293ef 100644
--- a/Zotlabs/Module/Photos.php
+++ b/Zotlabs/Module/Photos.php
@@ -264,7 +264,7 @@ class Photos extends \Zotlabs\Web\Controller {
}
$x = q("update photo set edited = '%s', content = '%s', filesize = %d, height = %d, width = %d where resource_id = '%s' and uid = %d and imgscale = 0",
- dbesc(datetime_convert()),
+ dbesc(datetime_convert()),
dbescbin($data),
intval($fsize),
intval($height),
@@ -278,10 +278,13 @@ class Photos extends \Zotlabs\Web\Controller {
$width = $ph->getWidth();
$height = $ph->getHeight();
+ $data = $ph->imageString();
+ $fsize = strlen($data);
- $x = q("update photo set edited = '%s', content = '%s', height = %d, width = %d where resource_id = '%s' and uid = %d and imgscale = 1",
- dbesc(datetime_convert()),
- dbescbin($ph->imageString()),
+ $x = q("update photo set edited = '%s', content = '%s', filesize = %d, height = %d, width = %d where resource_id = '%s' and uid = %d and imgscale = 1",
+ dbesc(datetime_convert()),
+ dbescbin($data),
+ intval($fsize),
intval($height),
intval($width),
dbesc($resource_id),
@@ -294,10 +297,13 @@ class Photos extends \Zotlabs\Web\Controller {
$width = $ph->getWidth();
$height = $ph->getHeight();
+ $data = $ph->imageString();
+ $fsize = strlen($data);
- $x = q("update photo set edited = '%s', content = '%s', height = %d, width = %d where resource_id = '%s' and uid = %d and imgscale = 2",
- dbesc(datetime_convert()),
- dbescbin($ph->imageString()),
+ $x = q("update photo set edited = '%s', content = '%s', filesize = %d, height = %d, width = %d where resource_id = '%s' and uid = %d and imgscale = 2",
+ dbesc(datetime_convert()),
+ dbescbin($data),
+ intval($fsize),
intval($height),
intval($width),
dbesc($resource_id),
@@ -310,10 +316,13 @@ class Photos extends \Zotlabs\Web\Controller {
$width = $ph->getWidth();
$height = $ph->getHeight();
+ $data = $ph->imageString();
+ $fsize = strlen($data);
- $x = q("update photo set edited = '%s', content = '%s', height = %d, width = %d where resource_id = '%s' and uid = %d and imgscale = 3",
- dbesc(datetime_convert()),
- dbescbin($ph->imageString()),
+ $x = q("update photo set edited = '%s', content = '%s', filesize = %d, height = %d, width = %d where resource_id = '%s' and uid = %d and imgscale = 3",
+ dbesc(datetime_convert()),
+ dbescbin($data),
+ intval($fsize),
intval($height),
intval($width),
dbesc($resource_id),
diff --git a/Zotlabs/Update/_1228.php b/Zotlabs/Update/_1228.php
index b9ba1d86f..9e6bf8047 100644
--- a/Zotlabs/Update/_1228.php
+++ b/Zotlabs/Update/_1228.php
@@ -11,8 +11,8 @@ class _1228 {
if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) {
$r1 = q("ALTER TABLE item ADD uuid text NOT NULL DEFAULT '' ");
- $r2 = q("create index \"uuid_idx\" on channel (\"uuid\")");
- $r3 = q("ALTER TABLE item add summary TEXT NOT NULL");
+ $r2 = q("create index \"uuid_idx\" on item (\"uuid\")");
+ $r3 = q("ALTER TABLE item add summary TEXT NOT NULL DEFAULT ''");
$r = ($r1 && $r2 && $r3);
}
@@ -25,7 +25,6 @@ class _1228 {
if($r) {
q("COMMIT");
- self::upgrade();
return UPDATE_SUCCESS;
}
diff --git a/Zotlabs/Update/_1229.php b/Zotlabs/Update/_1229.php
new file mode 100644
index 000000000..8e8711644
--- /dev/null
+++ b/Zotlabs/Update/_1229.php
@@ -0,0 +1,32 @@
+<?php
+
+namespace Zotlabs\Update;
+
+class _1229 {
+
+ function run() {
+
+ q("START TRANSACTION");
+
+ if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) {
+ $r1 = q("ALTER TABLE photo ADD expires timestamp NOT NULL DEFAULT '0001-01-01 00:00:00' ");
+ $r2 = q("create index \"photo_expires_idx\" on photo (\"expires\")");
+
+ $r = ($r1 && $r2);
+ }
+ else {
+ $r = q("ALTER TABLE `photo` ADD `expires` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' ,
+ ADD INDEX `expires` (`expires`)");
+ }
+
+ if($r) {
+ q("COMMIT");
+ return UPDATE_SUCCESS;
+ }
+
+ q("ROLLBACK");
+ return UPDATE_FAILED;
+
+ }
+
+}
diff --git a/Zotlabs/Widget/Notifications.php b/Zotlabs/Widget/Notifications.php
index 0f9f609e4..37d9139ec 100644
--- a/Zotlabs/Widget/Notifications.php
+++ b/Zotlabs/Widget/Notifications.php
@@ -24,7 +24,7 @@ class Notifications {
],
'filter' => [
'posts_label' => t('Show new posts only'),
- 'name_label' => t('Filter by name')
+ 'name_label' => t('Filter by name or address')
]
];
@@ -43,7 +43,7 @@ class Notifications {
],
'filter' => [
'posts_label' => t('Show new posts only'),
- 'name_label' => t('Filter by name')
+ 'name_label' => t('Filter by name or address')
]
];
@@ -119,7 +119,7 @@ class Notifications {
'label' => t('Forums'),
'title' => t('Forums'),
'filter' => [
- 'name_label' => t('Filter by name')
+ 'name_label' => t('Filter by name or address')
]
];
}
@@ -150,7 +150,7 @@ class Notifications {
],
'filter' => [
'posts_label' => t('Show new posts only'),
- 'name_label' => t('Filter by name')
+ 'name_label' => t('Filter by name or address')
]
];
}
diff --git a/boot.php b/boot.php
index c74309be0..e49134a55 100755
--- a/boot.php
+++ b/boot.php
@@ -53,7 +53,7 @@ define ( 'PLATFORM_NAME', 'hubzilla' );
define ( 'STD_VERSION', '3.9.5' );
define ( 'ZOT_REVISION', '6.0a' );
-define ( 'DB_UPDATE_VERSION', 1228 );
+define ( 'DB_UPDATE_VERSION', 1229 );
define ( 'PROJECT_BASE', __DIR__ );
@@ -217,6 +217,7 @@ define ( 'PHOTO_PROFILE', 0x0001 );
define ( 'PHOTO_XCHAN', 0x0002 );
define ( 'PHOTO_THING', 0x0004 );
define ( 'PHOTO_COVER', 0x0010 );
+define ( 'PHOTO_CACHE', 0x0020 );
define ( 'PHOTO_ADULT', 0x0008 );
define ( 'PHOTO_FLAG_OS', 0x4000 );
diff --git a/composer.json b/composer.json
index f117cc3b1..e6cefa241 100644
--- a/composer.json
+++ b/composer.json
@@ -40,7 +40,8 @@
"smarty/smarty": "~3.1",
"ramsey/uuid": "^3.8",
"twbs/bootstrap": "4.1.3",
- "blueimp/jquery-file-upload": "^9.25"
+ "blueimp/jquery-file-upload": "^9.25",
+ "desandro/imagesloaded": "^4.1"
},
"require-dev" : {
"phpunit/phpunit" : "@stable",
diff --git a/composer.lock b/composer.lock
index d7e8d11f6..bd95e8c78 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,20 +4,20 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "63d0e52cc07f8113059ec30d3637b850",
+ "content-hash": "fe5e71d7076eeddf1c174be4a5c052dd",
"packages": [
{
"name": "blueimp/jquery-file-upload",
- "version": "v9.25.1",
+ "version": "v9.28.0",
"source": {
"type": "git",
"url": "https://github.com/vkhramtsov/jQuery-File-Upload.git",
- "reference": "28891f9b2bc339bcc1ca8d548e5401e8563bf04b"
+ "reference": "ff5accfe2e5c4a522777faa980a90cf86a636d1d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/vkhramtsov/jQuery-File-Upload/zipball/28891f9b2bc339bcc1ca8d548e5401e8563bf04b",
- "reference": "28891f9b2bc339bcc1ca8d548e5401e8563bf04b",
+ "url": "https://api.github.com/repos/vkhramtsov/jQuery-File-Upload/zipball/ff5accfe2e5c4a522777faa980a90cf86a636d1d",
+ "reference": "ff5accfe2e5c4a522777faa980a90cf86a636d1d",
"shasum": ""
},
"type": "library",
@@ -59,7 +59,7 @@
"upload",
"widget"
],
- "time": "2018-10-26T07:21:48+00:00"
+ "time": "2018-11-13T05:41:39+00:00"
},
{
"name": "bshaffer/oauth2-server-php",
@@ -164,6 +164,45 @@
"time": "2017-12-29T00:13:05+00:00"
},
{
+ "name": "desandro/imagesloaded",
+ "version": "v4.1.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/desandro/imagesloaded.git",
+ "reference": "67c4e57453120935180c45c6820e7d3fbd2ea1f9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/desandro/imagesloaded/zipball/67c4e57453120935180c45c6820e7d3fbd2ea1f9",
+ "reference": "67c4e57453120935180c45c6820e7d3fbd2ea1f9",
+ "shasum": ""
+ },
+ "type": "component",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "David DeSandro",
+ "homepage": "http://desandro.com/",
+ "role": "developer"
+ }
+ ],
+ "description": "JavaScript is all like _You images done yet or what?_",
+ "homepage": "http://imagesloaded.desandro.com",
+ "keywords": [
+ "dom",
+ "images",
+ "javascript",
+ "jquery-plugin",
+ "library",
+ "loaded",
+ "ui"
+ ],
+ "time": "2018-01-02T16:53:35+00:00"
+ },
+ {
"name": "ezyang/htmlpurifier",
"version": "v4.10.0",
"source": {
@@ -446,16 +485,16 @@
},
{
"name": "psr/log",
- "version": "1.0.2",
+ "version": "1.1.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
- "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
+ "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
- "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
+ "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
"shasum": ""
},
"require": {
@@ -489,7 +528,7 @@
"psr",
"psr-3"
],
- "time": "2016-10-10T12:19:37+00:00"
+ "time": "2018-11-20T15:27:04+00:00"
},
{
"name": "ramsey/uuid",
@@ -1110,7 +1149,7 @@
},
{
"name": "symfony/polyfill-ctype",
- "version": "v1.9.0",
+ "version": "v1.10.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
@@ -2536,16 +2575,16 @@
},
{
"name": "phpunit/php-code-coverage",
- "version": "6.1.3",
+ "version": "6.1.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "4d3ae9b21a7d7e440bd0cf65565533117976859f"
+ "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/4d3ae9b21a7d7e440bd0cf65565533117976859f",
- "reference": "4d3ae9b21a7d7e440bd0cf65565533117976859f",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/807e6013b00af69b6c5d9ceb4282d0393dbb9d8d",
+ "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d",
"shasum": ""
},
"require": {
@@ -2595,7 +2634,7 @@
"testing",
"xunit"
],
- "time": "2018-10-23T05:59:32+00:00"
+ "time": "2018-10-31T16:06:48+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -2788,16 +2827,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "7.4.3",
+ "version": "7.4.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "c151651fb6ed264038d486ea262e243af72e5e64"
+ "reference": "b1be2c8530c4c29c3519a052c9fb6cee55053bbd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c151651fb6ed264038d486ea262e243af72e5e64",
- "reference": "c151651fb6ed264038d486ea262e243af72e5e64",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b1be2c8530c4c29c3519a052c9fb6cee55053bbd",
+ "reference": "b1be2c8530c4c29c3519a052c9fb6cee55053bbd",
"shasum": ""
},
"require": {
@@ -2868,7 +2907,7 @@
"testing",
"xunit"
],
- "time": "2018-10-23T05:57:41+00:00"
+ "time": "2018-11-14T16:52:02+00:00"
},
{
"name": "psr/container",
@@ -3534,7 +3573,7 @@
},
{
"name": "symfony/browser-kit",
- "version": "v4.1.6",
+ "version": "v4.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/browser-kit.git",
@@ -3591,16 +3630,16 @@
},
{
"name": "symfony/class-loader",
- "version": "v3.4.17",
+ "version": "v3.4.18",
"source": {
"type": "git",
"url": "https://github.com/symfony/class-loader.git",
- "reference": "f31333bdff54c7595f834d510a6d2325573ddb36"
+ "reference": "5605edec7b8f034ead2497ff4aab17bb70d558c1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/class-loader/zipball/f31333bdff54c7595f834d510a6d2325573ddb36",
- "reference": "f31333bdff54c7595f834d510a6d2325573ddb36",
+ "url": "https://api.github.com/repos/symfony/class-loader/zipball/5605edec7b8f034ead2497ff4aab17bb70d558c1",
+ "reference": "5605edec7b8f034ead2497ff4aab17bb70d558c1",
"shasum": ""
},
"require": {
@@ -3643,20 +3682,20 @@
],
"description": "Symfony ClassLoader Component",
"homepage": "https://symfony.com",
- "time": "2018-10-02T12:28:39+00:00"
+ "time": "2018-10-31T09:06:03+00:00"
},
{
"name": "symfony/config",
- "version": "v4.1.6",
+ "version": "v4.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/config.git",
- "reference": "b3d4d7b567d7a49e6dfafb6d4760abc921177c96"
+ "reference": "991fec8bbe77367fc8b48ecbaa8a4bd6e905a238"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/config/zipball/b3d4d7b567d7a49e6dfafb6d4760abc921177c96",
- "reference": "b3d4d7b567d7a49e6dfafb6d4760abc921177c96",
+ "url": "https://api.github.com/repos/symfony/config/zipball/991fec8bbe77367fc8b48ecbaa8a4bd6e905a238",
+ "reference": "991fec8bbe77367fc8b48ecbaa8a4bd6e905a238",
"shasum": ""
},
"require": {
@@ -3706,20 +3745,20 @@
],
"description": "Symfony Config Component",
"homepage": "https://symfony.com",
- "time": "2018-09-08T13:24:10+00:00"
+ "time": "2018-10-31T09:09:42+00:00"
},
{
"name": "symfony/console",
- "version": "v4.1.6",
+ "version": "v4.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "dc7122fe5f6113cfaba3b3de575d31112c9aa60b"
+ "reference": "432122af37d8cd52fba1b294b11976e0d20df595"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/dc7122fe5f6113cfaba3b3de575d31112c9aa60b",
- "reference": "dc7122fe5f6113cfaba3b3de575d31112c9aa60b",
+ "url": "https://api.github.com/repos/symfony/console/zipball/432122af37d8cd52fba1b294b11976e0d20df595",
+ "reference": "432122af37d8cd52fba1b294b11976e0d20df595",
"shasum": ""
},
"require": {
@@ -3774,11 +3813,11 @@
],
"description": "Symfony Console Component",
"homepage": "https://symfony.com",
- "time": "2018-10-03T08:15:46+00:00"
+ "time": "2018-10-31T09:30:44+00:00"
},
{
"name": "symfony/css-selector",
- "version": "v3.4.17",
+ "version": "v3.4.18",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
@@ -3831,16 +3870,16 @@
},
{
"name": "symfony/dependency-injection",
- "version": "v4.1.6",
+ "version": "v4.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/dependency-injection.git",
- "reference": "f6b9d893ad28aefd8942dc0469c8397e2216fe30"
+ "reference": "e72ee2c23d952e4c368ee98610fa22b79b89b483"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/f6b9d893ad28aefd8942dc0469c8397e2216fe30",
- "reference": "f6b9d893ad28aefd8942dc0469c8397e2216fe30",
+ "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/e72ee2c23d952e4c368ee98610fa22b79b89b483",
+ "reference": "e72ee2c23d952e4c368ee98610fa22b79b89b483",
"shasum": ""
},
"require": {
@@ -3898,11 +3937,11 @@
],
"description": "Symfony DependencyInjection Component",
"homepage": "https://symfony.com",
- "time": "2018-10-02T12:40:59+00:00"
+ "time": "2018-10-31T10:54:16+00:00"
},
{
"name": "symfony/dom-crawler",
- "version": "v4.1.6",
+ "version": "v4.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/dom-crawler.git",
@@ -3959,16 +3998,16 @@
},
{
"name": "symfony/event-dispatcher",
- "version": "v4.1.6",
+ "version": "v4.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "bfb30c2ad377615a463ebbc875eba64a99f6aa3e"
+ "reference": "552541dad078c85d9414b09c041ede488b456cd5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/bfb30c2ad377615a463ebbc875eba64a99f6aa3e",
- "reference": "bfb30c2ad377615a463ebbc875eba64a99f6aa3e",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/552541dad078c85d9414b09c041ede488b456cd5",
+ "reference": "552541dad078c85d9414b09c041ede488b456cd5",
"shasum": ""
},
"require": {
@@ -4018,20 +4057,20 @@
],
"description": "Symfony EventDispatcher Component",
"homepage": "https://symfony.com",
- "time": "2018-07-26T09:10:45+00:00"
+ "time": "2018-10-10T13:52:42+00:00"
},
{
"name": "symfony/filesystem",
- "version": "v4.1.6",
+ "version": "v4.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "596d12b40624055c300c8b619755b748ca5cf0b5"
+ "reference": "fd7bd6535beb1f0a0a9e3ee960666d0598546981"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/596d12b40624055c300c8b619755b748ca5cf0b5",
- "reference": "596d12b40624055c300c8b619755b748ca5cf0b5",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/fd7bd6535beb1f0a0a9e3ee960666d0598546981",
+ "reference": "fd7bd6535beb1f0a0a9e3ee960666d0598546981",
"shasum": ""
},
"require": {
@@ -4068,20 +4107,20 @@
],
"description": "Symfony Filesystem Component",
"homepage": "https://symfony.com",
- "time": "2018-10-02T12:40:59+00:00"
+ "time": "2018-10-30T13:18:25+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.9.0",
+ "version": "v1.10.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "d0cd638f4634c16d8df4508e847f14e9e43168b8"
+ "reference": "c79c051f5b3a46be09205c73b80b346e4153e494"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d0cd638f4634c16d8df4508e847f14e9e43168b8",
- "reference": "d0cd638f4634c16d8df4508e847f14e9e43168b8",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494",
+ "reference": "c79c051f5b3a46be09205c73b80b346e4153e494",
"shasum": ""
},
"require": {
@@ -4127,20 +4166,20 @@
"portable",
"shim"
],
- "time": "2018-08-06T14:22:27+00:00"
+ "time": "2018-09-21T13:07:52+00:00"
},
{
"name": "symfony/translation",
- "version": "v4.1.6",
+ "version": "v4.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "9f0b61e339160a466ebcde167a6c5521c810e304"
+ "reference": "aa04dc1c75b7d3da7bd7003104cd0cfc5dff635c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/9f0b61e339160a466ebcde167a6c5521c810e304",
- "reference": "9f0b61e339160a466ebcde167a6c5521c810e304",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/aa04dc1c75b7d3da7bd7003104cd0cfc5dff635c",
+ "reference": "aa04dc1c75b7d3da7bd7003104cd0cfc5dff635c",
"shasum": ""
},
"require": {
@@ -4196,11 +4235,11 @@
],
"description": "Symfony Translation Component",
"homepage": "https://symfony.com",
- "time": "2018-10-02T16:36:10+00:00"
+ "time": "2018-10-28T18:38:52+00:00"
},
{
"name": "symfony/yaml",
- "version": "v4.1.6",
+ "version": "v4.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
diff --git a/doc/es-es/about/about.bb b/doc/es-es/about/about.bb
index 1d5f3a4a2..50d23c778 100644
--- a/doc/es-es/about/about.bb
+++ b/doc/es-es/about/about.bb
@@ -29,7 +29,7 @@ $Projectname es, bΓ‘sicamente, una aplicaciΓ³n de servidor web relativamente est
[*= Identidad nΓ³mada] La capacidad de autenticar y migrar fΓ‘cilmente una identidad a travΓ©s de hubs y dominios web independientes. La identidad nΓ³mada proporciona una verdadera propiedad de una identidad en lΓ­nea, porque las identidades de los canales controlados por una cuenta en un hub no estΓ‘n vinculadas al propio hub. Un hub es mΓ‘s como un "host" para canales. Con Hubzilla, no tienes una "cuenta" en un servidor como lo haces en sitios web tΓ­picos; tienes una identidad que puedes llevarte a travΓ©s de la rejilla usando clones.
-[*= Zot] El novedoso protocolo basado en JSON para la implementaciΓ³n de comunicaciones y servicios descentralizados seguros. Se diferencia de muchos otros protocolos de comunicaciΓ³n en que construye las comunicaciones sobre un marco de identidad y autenticaciΓ³n descentralizado. El componente de autenticaciΓ³n es similar a OpenID conceptualmente pero estΓ‘ aislado de las identidades basadas en DNS. Cuando es posible, la autenticaciΓ³n remota es silenciosa e invisible. Esto proporciona un mecanismo para el control de acceso distribuido a escala de Internet que es discreto.
+[*= Zot] El novedoso protocolo basado en JSON para la implementaciΓ³n de comunicaciones y servicios descentralizados seguros. Se diferencia de muchos otros protocolos de comunicaciΓ³n en que construye las comunicaciones sobre un marco de identidad y autenticaciΓ³n descentralizado. El componente de autenticaciΓ³n es similar a OpenID conceptualmente pero estΓ‘ aislado de las identidades basadas en DNS. Cuando es posible, la autenticaciΓ³n remota es silenciosa e invisible. Esto proporciona un mecanismo discreto para el control de acceso distribuido a escala de Internet.
[/dl]
@@ -41,7 +41,7 @@ Esta pΓ‘gina enumera algunas de las caracterΓ­sticas principales de $Projectname
[h4]Control deslizante de afinidad[/h4]
Cuando se aΓ±aden conexiones en $Projectname, los miembros tienen la opciΓ³n de asignar niveles de "afinidad" (cuΓ‘n cerca estΓ‘ su amigo).
-Por otro lado, al aΓ±adir el canal de un amigo, se puede situar bajo el nivel de afinidad de "Amigos".
+Por otro lado, al aΓ±adir el canal de un amigo, se puede situar bajo el nivel de afinidad, justamente, de "Amigos".
En este punto, la herramienta $Projectname [i]Control deslizante de afinidad[/i], que normalmente aparece en la parte superior de la pΓ‘gina, ajusta su contenido para incluir aquellos contactos que estΓ‘n dentro del rango de afinidad deseado. Los canales fuera de ese rango no se mostrarΓ‘n, a menos que ajuste el control deslizante para incluirlos.
@@ -62,7 +62,7 @@ Las listas de control de acceso se pueden aplicar a contenido y mensajes, fotos,
[h4]Inicio de sesiΓ³n ΓΊnico[/h4]
-Las listas de control de acceso funcionan para todos los canales de la red gracias a nuestra exclusiva tecnologΓ­a de inicio de sesiΓ³n ΓΊnico. La mayorΓ­a de los enlaces internos proporcionan un token de identidad que puede ser verificado en otros sitios de $Projectname y utilizado para controlar el acceso a recursos privados. Inicie sesiΓ³n una vez en el hub de su casa. DespuΓ©s de eso, la autenticaciΓ³n de todos los recursos de $Projectname es "mΓ‘gica".
+Las listas de control de acceso funcionan para todos los canales de la red gracias a nuestra exclusiva tecnologΓ­a de inicio de sesiΓ³n ΓΊnico. La mayorΓ­a de los enlaces internos proporcionan un token de identidad que puede ser verificado en otros sitios de $Projectname y utilizado para controlar el acceso a recursos privados. Inicie sesiΓ³n una vez en la pΓ‘gina principal del hub. DespuΓ©s de eso, la autenticaciΓ³n de todos los recursos de $Projectname es "mΓ‘gica".
[h4]Almacenamiento de Archivos habilitado para WebDAV[/h4]
@@ -93,7 +93,7 @@ Las aplicaciones pueden ser construidas y distribuidas por los miembros. Γ‰stas
[h4]DiseΓ±o[/h4]
-El diseΓ±o de la pΓ‘gina se basa en un lenguaje de descripciΓ³n llamado comanche. La propia $Projectname estΓ‘ escrito en diseΓ±os comanches que se pueden cambiar. Esto permite un nivel de personalizaciΓ³n que no se encuentra normalmente en los llamados "entornos multiusuario".
+El diseΓ±o de la pΓ‘gina se basa en un lenguaje de descripciΓ³n llamado comanche. La propia $Projectname estΓ‘ escrito en plantillas en comanche que se pueden cambiar. Esto permite un nivel de personalizaciΓ³n que no se encuentra normalmente en los llamados "entornos multiusuario".
[h4]Marcadores[/h4]
@@ -111,14 +111,14 @@ AdemΓ‘s, los mensajes pueden crearse utilizando "encriptaciΓ³n de extremo a extr
Por lo general, los mensajes pΓΊblicos no se cifran durante el transporte ni durante el almacenamiento.
-Los mensajes privados pueden ser revocados (no enviados) aunque no hay garantΓ­a de que el destinatario no lo haya leΓ­do todavΓ­a.
+Los mensajes privados pueden ser revocados (no enviados) aunque no hay garantΓ­a de que el destinatario no lo haya leΓ­do antes.
Los mensajes se pueden crear con una fecha de caducidad, en la que se borrarΓ‘n/quitarΓ‘n en el sitio del destinatario.
[h4]FederaciΓ³n de Servicios[/h4]
-AdemΓ‘s de aΓ±adir "conectores de publicaciΓ³n cruzada" a una variedad de redes alternativas, hay soporte nativo para la importaciΓ³n de contenido desde RSS/Atom feeds y puede utilizarlo para crear canales especiales. Los plugins tambiΓ©n estΓ‘n disponibles para comunicarse con otros usando los protocolos DiΓ‘spora, GNU-Social (OStatus) o Mastodon (ActivityPub). Estas redes no soportan la identidad nΓ³mada ni el control de acceso entre dominios; sin embargo, las comunicaciones bΓ‘sicas son soportadas desde/hacia la diΓ‘spora, Friendica, GNU-Social, Mastodon y otros proveedores que utilizan estos protocolos.
+AdemΓ‘s de aΓ±adir "conectores de publicaciΓ³n cruzada" a una variedad de redes alternativas, hay soporte nativo para la importaciΓ³n de contenido desde RSS/Atom feeds y puede utilizarlo para crear canales especiales. Los plugins tambiΓ©n estΓ‘n disponibles para comunicarse con otros usando los protocolos DiΓ‘spora, GNU-Social (OStatus) o Mastodon (ActivityPub). Estas redes no soportan la identidad nΓ³mada ni el control de acceso entre dominios; sin embargo, las comunicaciones bΓ‘sicas son soportadas desde o hacia Diaspora, Friendica, GNU-Social, Mastodon, Pleroma y otros proveedores que utilizan estos protocolos.
TambiΓ©n existe soporte experimental para la autenticaciΓ³n OpenID que puede utilizarse en las listas de control de acceso. Este es un trabajo en progreso. Su hub $Projectname puede ser utilizado como un proveedor de OpenID para autenticarle en servicios externos que utilizan esta tecnologΓ­a.
@@ -126,7 +126,7 @@ Los canales pueden tener permisos para convertirse en "canales derivados" cuando
[h4]Grupos de Privacidad[/h4]
-Nuestra implementaciΓ³n de grupos de privacidad es similar a la de Google "CΓ­rculos" y "Aspectos" de la DiΓ‘spora. Esto le permite filtrar su flujo entrante por grupos seleccionados y establecer automΓ‘ticamente la Lista de control de acceso saliente sΓ³lo para aquellos que se encuentren en ese grupo de privacidad cuando publique. Usted puede anular esto en cualquier momento (antes de enviar el correo).
+Nuestra implementaciΓ³n de grupos de privacidad es similar a la de Google "CΓ­rculos" y "Aspectos" de Diaspora. Esto le permite filtrar su flujo entrante por grupos seleccionados y establecer automΓ‘ticamente la Lista de control de acceso saliente sΓ³lo para aquellos que se encuentren en ese grupo de privacidad cuando publique. Usted puede anular esto en cualquier momento (antes de enviar el correo).
[h4]Servicios de directorio[/h4]
@@ -158,19 +158,25 @@ Las opciones son:
[h4]Foros PΓΊblicos y Privados[/h4]
-Los foros son tΓ­picamente canales que pueden estar abiertos a la participaciΓ³n de mΓΊltiples autores. Actualmente existen dos mecanismos para enviar mensajes a los foros: 1) mensajes de "muro a muro" y 2) a travΓ©s de las etiquetas @menciΓ³n del foro. Los foros pueden ser creados por cualquier persona y utilizados para cualquier propΓ³sito. El directorio contiene una opciΓ³n para buscar foros pΓΊblicos. Los foros privados sΓ³lo pueden ser publicados y, a menudo, sΓ³lo pueden ser vistos por los miembros.
+Los foros son tΓ­picamente canales que pueden estar abiertos a la participaciΓ³n de mΓΊltiples autores. Actualmente existen dos mecanismos para enviar mensajes a los foros:
+
+1) mensajes de "muro a muro" y
+
+2) a travΓ©s de las etiquetas @menciΓ³n del foro.
+
+Los foros pueden ser creados por cualquier persona y utilizados para cualquier propΓ³sito. El directorio contiene una opciΓ³n para buscar foros pΓΊblicos. Los foros privados sΓ³lo pueden ser publicados y, a menudo, sΓ³lo pueden ser vistos por los miembros.
[h4]ClonaciΓ³n de cuentas[/h4]
-Las cuentas en $Projectname se denominan [i]identidades nΓ³madas[/i], porque la identidad de un miembro no estΓ‘ vinculada al hub donde se creΓ³ la identidad originalmente. Por ejemplo, cuando creas una cuenta de Facebook o Gmail, estΓ‘ vinculada a esos servicios. No pueden funcionar sin Facebook.com o Gmail.com.
+Las cuentas en $Projectname se denominan [i]identidades nΓ³madas[/i], porque la identidad de un miembro no estΓ‘ vinculada al hub donde se creΓ³ la identidad originalmente. Por ejemplo, cuando cree una cuenta de Facebook o Gmail, estΓ‘ vinculada a esos servicios. No pueden funcionar sin Facebook.com o Gmail.com.
-Por el contrario, digamos que ha creado una identidad $Projectname llamada[b]tina@$Projectnamehub.com[/b]. Puede clonarlo a otro hub $Projectname eligiendo el mismo o un nombre diferente:[b]vivoParasiempre@algΓΊn$ProjectnameHub.info[/b]
+Por el contrario, digamos que ha creado una identidad $Projectname llamada [b]tina@$Projectnamehub.com[/b]. Puede clonarlo a otro hub $Projectname eligiendo el mismo o un nombre diferente:[b]vivoParasiempre@algΓΊn$ProjectnameHub.info[/b]
-Ahora ambos canales estΓ‘n sincronizados, lo que significa que todos sus contactos y preferencias se duplicarΓ‘n en su clon. No importa si envΓ­as un mensaje desde su hub original o desde el nuevo hub. Los mensajes se reflejarΓ‘n en ambas cuentas.
+Ahora ambos canales estΓ‘n sincronizados, lo que significa que todos sus contactos y preferencias se duplicarΓ‘n en su clon. No importa si envΓ­a un mensaje desde su hub original o desde el nuevo hub. Los mensajes se reflejarΓ‘n en ambas cuentas.
Esta es una caracterΓ­stica bastante revolucionaria, si consideramos algunos escenarios:
- ΒΏQuΓ© ocurre si el hub en el que se basa una identidad se desconecta de repente? Sin clonaciΓ³n, un miembro no podrΓ‘ comunicarse hasta que el hub vuelva a estar en lΓ­nea (sin duda muchos de ustedes han visto y maldecido el Twitter "Fail Whale"). Con la clonaciΓ³n, sΓ³lo tienesque iniciar sesiΓ³n en su cuenta clonada y la vida continΓΊa feliz para siempre.
+ ΒΏQuΓ© ocurre si el hub en el que se basa una identidad se desconecta de repente? Sin clonaciΓ³n, un miembro no podrΓ‘ comunicarse hasta que el hub vuelva a estar en lΓ­nea (sin duda muchos de ustedes han visto y maldecido el Twitter "Fail Whale"). Con la clonaciΓ³n, sΓ³lo tiene que iniciar sesiΓ³n en su cuenta clonada y la vida continΓΊa feliz para siempre.
El administrador de su hub ya no puede permitirse el lujo de pagar por su hub gratuito y pΓΊblico $Projectname. Anuncia que el centro cerrarΓ‘ en dos semanas. Esto le da tiempo suficiente para clonar su(s) identidad(es) y preservar las relaciones, amigos y contenido de su $Projectname.
@@ -193,9 +199,10 @@ $Projectname ofrece una sencilla copia de seguridad de la cuenta con un solo cli
[h4]Borrado de cuenta[/h4]
-Las cuentas se pueden eliminar inmediatamente haciendo clic en un enlace. Eso es todo. Todo el contenido asociado se elimina de la rejilla (esto incluye los mensajes y cualquier otro contenido producido por el perfil eliminado). Dependiendo del nΓΊmero de conexiones que tenga, el proceso de eliminaciΓ³n de contenido remoto podrΓ­a llevar algΓΊn tiempo, pero estΓ‘ previsto que ocurra tan rΓ‘pido como sea posible.
+Las cuentas se pueden eliminar inmediatamente haciendo clic en un enlace. Eso es todo. Todo el contenido asociado se elimina de la red (esto incluye los mensajes y cualquier otro contenido producido por el perfil eliminado). Dependiendo del nΓΊmero de conexiones que tenga, el proceso de eliminaciΓ³n de contenido remoto podrΓ­a llevar algΓΊn tiempo, pero estΓ‘ previsto que ocurra tan rΓ‘pido como sea posible.
[h4]SupresiΓ³n de contenido[/h4]
+
Cualquier contenido creado en $Projectname permanece bajo el control del miembro (o canal) que lo creΓ³ originalmente. En cualquier momento, un miembro puede borrar un mensaje o un rango de mensajes. El proceso de eliminaciΓ³n garantiza que el contenido se elimine, independientemente de si se publicΓ³ en el hub principal de un canal o en otro hub, donde el canal se autenticΓ³ de forma remota a travΓ©s de Zot (protocolo de autenticaciΓ³n y comunicaciΓ³n de $Projectname).
@@ -221,4 +228,4 @@ $Projectname se puede ampliar de varias maneras, a travΓ©s de la personalizaciΓ³
[h4]API[/h4]
-Una API estΓ‘ disponible para su uso por parte de servicios de terceros. Un plugin tambiΓ©n proporciona una implementaciΓ³n bΓ‘sica de Twitter (para los que existen cientos de herramientas de terceros). El acceso puede ser proporcionado por login/contraseΓ±a o OAuth, y el registro del cliente de las aplicaciones de OAuth es proporcionado. \ No newline at end of file
+Una API estΓ‘ disponible para su uso por parte de servicios de terceros. Un plugin tambiΓ©n proporciona una implementaciΓ³n bΓ‘sica de Twitter (para los que existen cientos de herramientas de terceros). El acceso puede ser proporcionado por login/contraseΓ±a o OAuth, y el registro del cliente de las aplicaciones de OAuth estΓ‘ disponible. \ No newline at end of file
diff --git a/include/items.php b/include/items.php
index 8eaeb61b7..b2c288b75 100755
--- a/include/items.php
+++ b/include/items.php
@@ -618,8 +618,6 @@ function get_item_elements($x,$allow_code = false) {
$arr['created'] = datetime_convert('UTC','UTC',$x['created']);
$arr['edited'] = datetime_convert('UTC','UTC',$x['edited']);
- if($arr['created'] > datetime_convert())
- $arr['created'] = datetime_convert();
if($arr['edited'] > datetime_convert())
$arr['edited'] = datetime_convert();
diff --git a/include/oembed.php b/include/oembed.php
index e5557dc11..426197c5f 100755
--- a/include/oembed.php
+++ b/include/oembed.php
@@ -221,7 +221,11 @@ function oembed_fetch_url($embedurl){
if(strpos(strtolower($embedurl),'.pdf') !== false) {
$action = 'allow';
- $j = [ 'html' => '<object data="' . $embedurl . '" type="application/pdf" width="500" height="720">' . '<a href="' . $embedurl . '">' . t('View PDF') . '</a></object>', 'width' => 500, 'height' => 720, 'type' => 'pdf' ];
+ $j = [
+ 'html' => '<object data="' . $embedurl . '" type="application/pdf" style="width: 100%; height: 300px;"></object>',
+ 'title' => t('View PDF'),
+ 'type' => 'pdf'
+ ];
}
diff --git a/include/photo/photo_driver.php b/include/photo/photo_driver.php
index 4173d727e..9aeb2ef17 100644
--- a/include/photo/photo_driver.php
+++ b/include/photo/photo_driver.php
@@ -112,7 +112,7 @@ abstract class photo_driver {
public function saveImage($path) {
if(!$this->is_valid())
return FALSE;
- file_put_contents($path, $this->imageString());
+ return (file_put_contents($path, $this->imageString()) ? true : false);
}
@@ -330,9 +330,9 @@ abstract class photo_driver {
}
- public function save($arr) {
+ public function save($arr, $skipcheck = false) {
- if(! $this->is_valid()) {
+ if(! ($skipcheck || $this->is_valid())) {
logger('attempt to store invalid photo.');
return false;
}
@@ -344,6 +344,7 @@ abstract class photo_driver {
$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'] : '');
@@ -360,6 +361,7 @@ abstract class photo_driver {
$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);
@@ -397,23 +399,24 @@ abstract class photo_driver {
allow_cid = '%s',
allow_gid = '%s',
deny_cid = '%s',
- deny_gid = '%s'
+ deny_gid = '%s',
+ expires = '%s'
where id = %d",
intval($p['aid']),
intval($p['uid']),
dbesc($p['xchan']),
dbesc($p['resource_id']),
- dbesc($p['created']),
- dbesc($p['edited']),
+ dbescdate($p['created']),
+ dbescdate($p['edited']),
dbesc(basename($p['filename'])),
- dbesc($this->getType()),
+ 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(strlen($this->imageString())),
+ (intval($p['os_storage']) ? @filesize($p['os_syspath']) : strlen($this->imageString())),
intval($p['imgscale']),
intval($p['photo_usage']),
dbesc($p['title']),
@@ -424,28 +427,29 @@ abstract class photo_driver {
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 )
- 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' )",
+ ( 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']),
- dbesc($p['created']),
- dbesc($p['edited']),
+ dbescdate($p['created']),
+ dbescdate($p['edited']),
dbesc(basename($p['filename'])),
- dbesc($this->getType()),
+ 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(strlen($this->imageString())),
+ (intval($p['os_storage']) ? @filesize($p['os_syspath']) : strlen($this->imageString())),
intval($p['imgscale']),
intval($p['photo_usage']),
dbesc($p['title']),
@@ -455,7 +459,8 @@ abstract class photo_driver {
dbesc($p['allow_cid']),
dbesc($p['allow_gid']),
dbesc($p['deny_cid']),
- dbesc($p['deny_gid'])
+ dbesc($p['deny_gid']),
+ dbescdate($p['expires'])
);
}
logger('photo save ' . $p['imgscale'] . ' returned ' . intval($r));
diff --git a/include/photo/photo_imagick.php b/include/photo/photo_imagick.php
index 89577e71e..f04c00245 100644
--- a/include/photo/photo_imagick.php
+++ b/include/photo/photo_imagick.php
@@ -31,8 +31,12 @@ class photo_imagick extends photo_driver {
if(! $data)
return;
- $this->image->readImageBlob($data);
-
+ try {
+ $this->image->readImageBlob($data);
+ }
+ catch (Exception $e) {
+ logger('imagick readImageBlob() exception:' . print_r($e,true));
+ }
/**
* Setup the image to the format it will be saved to
@@ -205,4 +209,4 @@ class photo_imagick extends photo_driver {
-} \ No newline at end of file
+}
diff --git a/include/text.php b/include/text.php
index edd0f7a5a..bd0d8048d 100644
--- a/include/text.php
+++ b/include/text.php
@@ -1105,23 +1105,33 @@ 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(
+ 'body' => $s,
+ 'uid' => local_channel()
+ );
+ 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
// Complain to your browser maker
$allow = get_config('system','sslify_everything');
-
- $pattern = (($allow) ? "/\<(.*?)src=\"(http\:.*?)\"(.*?)\>/" : "/\<img(.*?)src=\"(http\:.*?)\"(.*?)\>/" );
+ $pattern = (($allow) ? "/\<(.*?)src=[\"|'](http\:.*?)[\"|'](.*?)\>/" : "/\<img(.*?)src=[\"|'](http\:.*?)[\"|'](.*?)\>/" );
$matches = null;
- $cnt = preg_match_all($pattern,$s,$matches,PREG_SET_ORDER);
+ $cnt = preg_match_all($pattern, $s, $matches, PREG_SET_ORDER);
if ($cnt) {
foreach ($matches as $match) {
$filename = basename( parse_url($match[2], PHP_URL_PATH) );
@@ -3295,7 +3305,7 @@ function cleanup_bbcode($body) {
$body = preg_replace('/\[\/code\]\s*\[code\]/ism',"\n",$body);
- $body = scale_external_images($body,false);
+ $body = scale_external_images($body, false);
return $body;
}
@@ -3411,7 +3421,7 @@ function get_forum_channels($uid) {
$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_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",
+ $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)
);
diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql
index c820fca25..49a2c476a 100644
--- a/install/schema_mysql.sql
+++ b/install/schema_mysql.sql
@@ -916,7 +916,6 @@ CREATE TABLE IF NOT EXISTS `outq` (
KEY `outq_priority` (`outq_priority`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-
CREATE TABLE IF NOT EXISTS pchan (
`pchan_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`pchan_guid` char(191) NOT NULL DEFAULT '',
@@ -928,15 +927,16 @@ CREATE TABLE IF NOT EXISTS pchan (
KEY `pchan_hash` (`pchan_hash`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-
CREATE TABLE IF NOT EXISTS `pconfig` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL DEFAULT 0 ,
`cat` char(191) NOT NULL DEFAULT '',
`k` char(191) NOT NULL DEFAULT '',
`v` mediumtext NOT NULL,
+ `updated` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
PRIMARY KEY (`id`),
- UNIQUE KEY `access` (`uid`,`cat`,`k`)
+ UNIQUE KEY `access` (`uid`,`cat`,`k`),
+ KEY `pconfig_updated` (`updated`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `photo` (
@@ -947,6 +947,7 @@ CREATE TABLE IF NOT EXISTS `photo` (
`resource_id` char(191) NOT NULL DEFAULT '',
`created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
`edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
+ `expires` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
`title` char(191) NOT NULL DEFAULT '',
`description` text NOT NULL,
`album` char(191) NOT NULL DEFAULT '',
@@ -979,6 +980,7 @@ CREATE TABLE IF NOT EXISTS `photo` (
KEY `xchan` (`xchan`),
KEY `filesize` (`filesize`),
KEY `resource_id` (`resource_id`),
+ KEY `expires` (`expires`),
KEY `is_nsfw` (`is_nsfw`),
KEY `os_storage` (`os_storage`),
KEY `photo_usage` (`photo_usage`)
diff --git a/install/schema_postgres.sql b/install/schema_postgres.sql
index 3bc256377..1b6cab51b 100644
--- a/install/schema_postgres.sql
+++ b/install/schema_postgres.sql
@@ -897,7 +897,6 @@ create index "outq_async" on outq ("outq_async");
create index "outq_delivered" on outq ("outq_delivered");
create index "outq_priority" on outq ("outq_priority");
-
CREATE TABLE "pchan" (
"pchan_id" serial NOT NULL,
"pchan_guid" text NOT NULL,
@@ -906,7 +905,6 @@ CREATE TABLE "pchan" (
"pchan_prvkey" text NOT NULL,
PRIMARY KEY ("pchan_id")
);
-
create index "pchan_guid" on pchan ("pchan_guid");
create index "pchan_hash" on pchan ("pchan_hash");
@@ -916,9 +914,11 @@ CREATE TABLE "pconfig" (
"cat" text NOT NULL,
"k" text NOT NULL,
"v" text NOT NULL,
+ "updated" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
PRIMARY KEY ("id"),
UNIQUE ("uid","cat","k")
);
+create index "pconfig_updated_idx" on pconfig ("updated");
CREATE TABLE "photo" (
"id" serial NOT NULL,
@@ -928,6 +928,7 @@ CREATE TABLE "photo" (
"resource_id" text NOT NULL,
"created" timestamp NOT NULL,
"edited" timestamp NOT NULL,
+ "expires" timestamp NOT NULL,
"title" text NOT NULL,
"description" text NOT NULL,
"album" text NOT NULL,
@@ -961,6 +962,7 @@ create index "photo_aid" on photo ("aid");
create index "photo_xchan" on photo ("xchan");
create index "photo_filesize" on photo ("filesize");
create index "photo_resource_id" on photo ("resource_id");
+create index "photo_expires_idx" on photo ("expires");
create index "photo_usage" on photo ("photo_usage");
create index "photo_is_nsfw" on photo ("is_nsfw");
create index "photo_os_storage" on photo ("os_storage");
diff --git a/library/imagesloaded/imagesloaded.pkgd.min.js b/library/imagesloaded/imagesloaded.pkgd.min.js
deleted file mode 100644
index c3e71fadc..000000000
--- a/library/imagesloaded/imagesloaded.pkgd.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*!
- * imagesLoaded PACKAGED v4.1.0
- * JavaScript is all like "You images are done yet or what?"
- * MIT License
- */
-
-!function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}(this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},n=i[t]=i[t]||[];return n[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=0,o=i[n];e=e||[];for(var r=this._onceEvents&&this._onceEvents[t];o;){var s=r&&r[o];s&&(this.off(t,o),delete r[o]),o.apply(this,e),n+=s?0:1,o=i[n]}return this}},t}),function(t,e){"use strict";"function"==typeof define&&define.amd?define(["ev-emitter/ev-emitter"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter")):t.imagesLoaded=e(t,t.EvEmitter)}(window,function(t,e){function i(t,e){for(var i in e)t[i]=e[i];return t}function n(t){var e=[];if(Array.isArray(t))e=t;else if("number"==typeof t.length)for(var i=0;i<t.length;i++)e.push(t[i]);else e.push(t);return e}function o(t,e,r){return this instanceof o?("string"==typeof t&&(t=document.querySelectorAll(t)),this.elements=n(t),this.options=i({},this.options),"function"==typeof e?r=e:i(this.options,e),r&&this.on("always",r),this.getImages(),h&&(this.jqDeferred=new h.Deferred),void setTimeout(function(){this.check()}.bind(this))):new o(t,e,r)}function r(t){this.img=t}function s(t,e){this.url=t,this.element=e,this.img=new Image}var h=t.jQuery,a=t.console;o.prototype=Object.create(e.prototype),o.prototype.options={},o.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)},o.prototype.addElementImages=function(t){"IMG"==t.nodeName&&this.addImage(t),this.options.background===!0&&this.addElementBackgroundImages(t);var e=t.nodeType;if(e&&d[e]){for(var i=t.querySelectorAll("img"),n=0;n<i.length;n++){var o=i[n];this.addImage(o)}if("string"==typeof this.options.background){var r=t.querySelectorAll(this.options.background);for(n=0;n<r.length;n++){var s=r[n];this.addElementBackgroundImages(s)}}}};var d={1:!0,9:!0,11:!0};return o.prototype.addElementBackgroundImages=function(t){var e=getComputedStyle(t);if(e)for(var i=/url\((['"])?(.*?)\1\)/gi,n=i.exec(e.backgroundImage);null!==n;){var o=n&&n[2];o&&this.addBackground(o,t),n=i.exec(e.backgroundImage)}},o.prototype.addImage=function(t){var e=new r(t);this.images.push(e)},o.prototype.addBackground=function(t,e){var i=new s(t,e);this.images.push(i)},o.prototype.check=function(){function t(t,i,n){setTimeout(function(){e.progress(t,i,n)})}var e=this;return this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?void this.images.forEach(function(e){e.once("progress",t),e.check()}):void this.complete()},o.prototype.progress=function(t,e,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!t.isLoaded,this.emitEvent("progress",[this,t,e]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,t),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&a&&a.log("progress: "+i,t,e)},o.prototype.complete=function(){var t=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(t,[this]),this.emitEvent("always",[this]),this.jqDeferred){var e=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[e](this)}},r.prototype=Object.create(e.prototype),r.prototype.check=function(){var t=this.getIsImageComplete();return t?void this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),void(this.proxyImage.src=this.img.src))},r.prototype.getIsImageComplete=function(){return this.img.complete&&void 0!==this.img.naturalWidth},r.prototype.confirm=function(t,e){this.isLoaded=t,this.emitEvent("progress",[this,this.img,e])},r.prototype.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},r.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},r.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},r.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype=Object.create(r.prototype),s.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url;var t=this.getIsImageComplete();t&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},s.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype.confirm=function(t,e){this.isLoaded=t,this.emitEvent("progress",[this,this.element,e])},o.makeJQueryPlugin=function(e){e=e||t.jQuery,e&&(h=e,h.fn.imagesLoaded=function(t,e){var i=new o(this,t,e);return i.jqDeferred.promise(h(this))})},o.makeJQueryPlugin(),o}); \ No newline at end of file
diff --git a/vendor/blueimp/jquery-file-upload/README.md b/vendor/blueimp/jquery-file-upload/README.md
index d2f104d5c..d9e16ed18 100644
--- a/vendor/blueimp/jquery-file-upload/README.md
+++ b/vendor/blueimp/jquery-file-upload/README.md
@@ -10,7 +10,7 @@ Supports cross-domain, chunked and resumable file uploads and client-side image
## ⚠️ Security Notice
Security related releases:
-* [v9.25.1](https://github.com/blueimp/jQuery-File-Upload/releases/tag/v9.25.1) Mitigates some [Potential vulnerabilities with PHP+ImageMagick](VULNERABILITIES.md#potential-vulnerabilities-with-php+imagemagick).
+* [v9.25.1](https://github.com/blueimp/jQuery-File-Upload/releases/tag/v9.25.1) Mitigates some [Potential vulnerabilities with PHP+ImageMagick](VULNERABILITIES.md#potential-vulnerabilities-with-php-imagemagick).
* [v9.24.1](https://github.com/blueimp/jQuery-File-Upload/releases/tag/v9.24.1) Fixes a [Remote code execution vulnerability in the PHP component](VULNERABILITIES.md#remote-code-execution-vulnerability-in-the-php-component).
* v[9.10.1](https://github.com/blueimp/jQuery-File-Upload/releases/tag/9.10.1) Fixes an [Open redirect vulnerability in the GAE components](VULNERABILITIES.md#open-redirect-vulnerability-in-the-gae-components).
* Commit [4175032](https://github.com/blueimp/jQuery-File-Upload/commit/41750323a464e848856dc4c5c940663498beb74a) (*fixed in all tagged releases*) Fixes a [Cross-site scripting vulnerability in the Iframe Transport](VULNERABILITIES.md#cross-site-scripting-vulnerability-in-the-iframe-transport).
diff --git a/vendor/blueimp/jquery-file-upload/SECURITY.md b/vendor/blueimp/jquery-file-upload/SECURITY.md
index db58f7dd7..86ffc163b 100644
--- a/vendor/blueimp/jquery-file-upload/SECURITY.md
+++ b/vendor/blueimp/jquery-file-upload/SECURITY.md
@@ -113,7 +113,7 @@ location ^~ /path/to/project/server/php/files {
```
## Secure image processing configurations
-The following configuration mitigates [potential image processing vulnerabilities with ImageMagick](VULNERABILITIES.md#potential-vulnerabilities-with-php+imagemagick) by limiting the attack vectors to a small subset of image types (`GIF/JPEG/PNG`).
+The following configuration mitigates [potential image processing vulnerabilities with ImageMagick](VULNERABILITIES.md#potential-vulnerabilities-with-php-imagemagick) by limiting the attack vectors to a small subset of image types (`GIF/JPEG/PNG`).
Please also consider using alternative, safer image processing libraries like [libvips](https://github.com/libvips/libvips) or [imageflow](https://github.com/imazen/imageflow).
diff --git a/vendor/blueimp/jquery-file-upload/angularjs.html b/vendor/blueimp/jquery-file-upload/angularjs.html
index 2051bbf79..e8b05e77f 100644
--- a/vendor/blueimp/jquery-file-upload/angularjs.html
+++ b/vendor/blueimp/jquery-file-upload/angularjs.html
@@ -22,7 +22,7 @@
<meta name="description" content="File Upload widget with multiple file selection, drag&amp;drop support, progress bars, validation and preview images, audio and video for AngularJS. Supports cross-domain, chunked and resumable file uploads and client-side image resizing. Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Bootstrap styles -->
-<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
+<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- Generic page styles -->
<link rel="stylesheet" href="css/style.css">
<!-- blueimp Gallery styles -->
@@ -177,8 +177,8 @@
<a class="play-pause"></a>
<ol class="indicator"></ol>
</div>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
-<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
+<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" integrity="sha384-xBuQ/xzmlsLoJpyjoggmTEz8OWUFM0/RC5BsqQBDX2v5cMvDHcMakNTNrHIW2I5f" crossorigin="anonymous"></script>
+<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js" integrity="sha384-r6jjWwxAypHaESwS5an5J9dkfzwQuKVNV9FZM9B6fnt8PFuY0cVwLhV7BltCZhLy" crossorigin="anonymous"></script>
<!-- The jQuery UI widget factory, can be omitted if jQuery UI is already included -->
<script src="js/vendor/jquery.ui.widget.js"></script>
<!-- The Load Image plugin is included for the preview images and image resizing functionality -->
@@ -186,7 +186,7 @@
<!-- The Canvas to Blob plugin is included for image resizing functionality -->
<script src="https://blueimp.github.io/JavaScript-Canvas-to-Blob/js/canvas-to-blob.min.js"></script>
<!-- Bootstrap JS is not required, but included for the responsive demo navigation -->
-<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
+<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<!-- blueimp Gallery script -->
<script src="https://blueimp.github.io/Gallery/js/jquery.blueimp-gallery.min.js"></script>
<!-- The Iframe Transport is required for browsers without support for XHR file uploads -->
diff --git a/vendor/blueimp/jquery-file-upload/basic-plus.html b/vendor/blueimp/jquery-file-upload/basic-plus.html
index acee24843..6d53acdc1 100644
--- a/vendor/blueimp/jquery-file-upload/basic-plus.html
+++ b/vendor/blueimp/jquery-file-upload/basic-plus.html
@@ -20,7 +20,7 @@
<meta name="description" content="File Upload widget with multiple file selection, drag&amp;drop support, progress bar, validation and preview images, audio and video for jQuery. Supports cross-domain, chunked and resumable file uploads. Works with any server-side platform (Google App Engine, PHP, Python, Ruby on Rails, Java, etc.) that supports standard HTML form file uploads.">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Bootstrap styles -->
-<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
+<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- Generic page styles -->
<link rel="stylesheet" href="css/style.css">
<!-- CSS to style the file input field as button and adjust the Bootstrap progress bars -->
@@ -96,15 +96,15 @@
</div>
</div>
</div>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
+<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" integrity="sha384-xBuQ/xzmlsLoJpyjoggmTEz8OWUFM0/RC5BsqQBDX2v5cMvDHcMakNTNrHIW2I5f" crossorigin="anonymous"></script>
<!-- The jQuery UI widget factory, can be omitted if jQuery UI is already included -->
<script src="js/vendor/jquery.ui.widget.js"></script>
<!-- The Load Image plugin is included for the preview images and image resizing functionality -->
-<script src="https://blueimp.github.io/JavaScript-Load-Image/js/load-image.all.min.js"></script>
+<script src="https://blueimp.github.io/JavaScript-Load-Image/js/load-image.all.min.js"></script>
<!-- The Canvas to Blob plugin is included for image resizing functionality -->
<script src="https://blueimp.github.io/JavaScript-Canvas-to-Blob/js/canvas-to-blob.min.js"></script>
<!-- Bootstrap JS is not required, but included for the responsive demo navigation -->
-<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
+<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<!-- The Iframe Transport is required for browsers without support for XHR file uploads -->
<script src="js/jquery.iframe-transport.js"></script>
<!-- The basic File Upload plugin -->
diff --git a/vendor/blueimp/jquery-file-upload/basic.html b/vendor/blueimp/jquery-file-upload/basic.html
index 232a24624..a9ef6273e 100644
--- a/vendor/blueimp/jquery-file-upload/basic.html
+++ b/vendor/blueimp/jquery-file-upload/basic.html
@@ -20,7 +20,7 @@
<meta name="description" content="File Upload widget with multiple file selection, drag&amp;drop support and progress bar for jQuery. Supports cross-domain, chunked and resumable file uploads. Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Bootstrap styles -->
-<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
+<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- Generic page styles -->
<link rel="stylesheet" href="css/style.css">
<!-- CSS to style the file input field as button and adjust the Bootstrap progress bars -->
@@ -96,7 +96,7 @@
</div>
</div>
</div>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
+<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" integrity="sha384-xBuQ/xzmlsLoJpyjoggmTEz8OWUFM0/RC5BsqQBDX2v5cMvDHcMakNTNrHIW2I5f" crossorigin="anonymous"></script>
<!-- The jQuery UI widget factory, can be omitted if jQuery UI is already included -->
<script src="js/vendor/jquery.ui.widget.js"></script>
<!-- The Iframe Transport is required for browsers without support for XHR file uploads -->
@@ -104,7 +104,7 @@
<!-- The basic File Upload plugin -->
<script src="js/jquery.fileupload.js"></script>
<!-- Bootstrap JS is not required, but included for the responsive demo navigation -->
-<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
+<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script>
/*jslint unparam: true */
/*global window, $ */
diff --git a/vendor/blueimp/jquery-file-upload/bower-version-update.js b/vendor/blueimp/jquery-file-upload/bower-version-update.js
index 09ce3927e..09ce3927e 100755..100644
--- a/vendor/blueimp/jquery-file-upload/bower-version-update.js
+++ b/vendor/blueimp/jquery-file-upload/bower-version-update.js
diff --git a/vendor/blueimp/jquery-file-upload/bower.json b/vendor/blueimp/jquery-file-upload/bower.json
index 34594a32f..2a56262a1 100644
--- a/vendor/blueimp/jquery-file-upload/bower.json
+++ b/vendor/blueimp/jquery-file-upload/bower.json
@@ -1,6 +1,6 @@
{
"name": "blueimp-file-upload",
- "version": "9.25.1",
+ "version": "9.28.0",
"title": "jQuery File Upload",
"description": "File Upload widget with multiple file selection, drag&amp;drop support, progress bar, validation and preview images.",
"keywords": [
diff --git a/vendor/blueimp/jquery-file-upload/cors/postmessage.html b/vendor/blueimp/jquery-file-upload/cors/postmessage.html
index 6a56cf0b6..381a8e0cd 100644
--- a/vendor/blueimp/jquery-file-upload/cors/postmessage.html
+++ b/vendor/blueimp/jquery-file-upload/cors/postmessage.html
@@ -15,7 +15,7 @@
<head>
<meta charset="utf-8">
<title>jQuery File Upload Plugin postMessage API</title>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
+<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" integrity="sha384-xBuQ/xzmlsLoJpyjoggmTEz8OWUFM0/RC5BsqQBDX2v5cMvDHcMakNTNrHIW2I5f" crossorigin="anonymous"></script>
</head>
<body>
<script>
diff --git a/vendor/blueimp/jquery-file-upload/index.html b/vendor/blueimp/jquery-file-upload/index.html
index c8c66ad8b..37e08a7cb 100644
--- a/vendor/blueimp/jquery-file-upload/index.html
+++ b/vendor/blueimp/jquery-file-upload/index.html
@@ -22,7 +22,7 @@
<meta name="description" content="File Upload widget with multiple file selection, drag&amp;drop support, progress bars, validation and preview images, audio and video for jQuery. Supports cross-domain, chunked and resumable file uploads and client-side image resizing. Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Bootstrap styles -->
-<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
+<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- Generic page styles -->
<link rel="stylesheet" href="css/style.css">
<!-- blueimp Gallery styles -->
@@ -216,7 +216,7 @@
</tr>
{% } %}
</script>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
+<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" integrity="sha384-xBuQ/xzmlsLoJpyjoggmTEz8OWUFM0/RC5BsqQBDX2v5cMvDHcMakNTNrHIW2I5f" crossorigin="anonymous"></script>
<!-- The jQuery UI widget factory, can be omitted if jQuery UI is already included -->
<script src="js/vendor/jquery.ui.widget.js"></script>
<!-- The Templates plugin is included to render the upload/download listings -->
@@ -226,7 +226,7 @@
<!-- The Canvas to Blob plugin is included for image resizing functionality -->
<script src="https://blueimp.github.io/JavaScript-Canvas-to-Blob/js/canvas-to-blob.min.js"></script>
<!-- Bootstrap JS is not required, but included for the responsive demo navigation -->
-<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
+<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<!-- blueimp Gallery script -->
<script src="https://blueimp.github.io/Gallery/js/jquery.blueimp-gallery.min.js"></script>
<!-- The Iframe Transport is required for browsers without support for XHR file uploads -->
diff --git a/vendor/blueimp/jquery-file-upload/jquery-ui.html b/vendor/blueimp/jquery-file-upload/jquery-ui.html
index 842dd4ca7..e44d41e89 100644
--- a/vendor/blueimp/jquery-file-upload/jquery-ui.html
+++ b/vendor/blueimp/jquery-file-upload/jquery-ui.html
@@ -22,7 +22,7 @@
<meta name="description" content="File Upload widget with multiple file selection, drag&amp;drop support, progress bars, validation and preview images, audio and video for jQuery. Supports cross-domain, chunked and resumable file uploads and client-side image resizing. Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- jQuery UI styles -->
-<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/dark-hive/jquery-ui.css" id="theme">
+<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/dark-hive/jquery-ui.css" integrity="sha384-ufZtQaOYGuy/CibAC5jmelOpBu3H78Js7HrXSLo4LGccHUrGGHXt+uaTcDbio3kI" crossorigin="anonymous">
<!-- Generic page styles -->
<link rel="stylesheet" href="css/style.css">
<!-- Demo styles -->
@@ -201,8 +201,8 @@
</tr>
{% } %}
</script>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
-<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
+<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" integrity="sha384-xBuQ/xzmlsLoJpyjoggmTEz8OWUFM0/RC5BsqQBDX2v5cMvDHcMakNTNrHIW2I5f" crossorigin="anonymous"></script>
+<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js" integrity="sha384-Dziy8F2VlJQLMShA6FHWNul/veM9bCkRUaLqr199K94ntO5QUrLJBEbYegdSkkqX" crossorigin="anonymous"></script>
<!-- The Templates plugin is included to render the upload/download listings -->
<script src="https://blueimp.github.io/JavaScript-Templates/js/tmpl.min.js"></script>
<!-- The Load Image plugin is included for the preview images and image resizing functionality -->
diff --git a/vendor/blueimp/jquery-file-upload/package.json b/vendor/blueimp/jquery-file-upload/package.json
index 4b33a0362..0a635397c 100644
--- a/vendor/blueimp/jquery-file-upload/package.json
+++ b/vendor/blueimp/jquery-file-upload/package.json
@@ -1,6 +1,6 @@
{
"name": "blueimp-file-upload",
- "version": "9.25.1",
+ "version": "9.28.0",
"title": "jQuery File Upload",
"description": "File Upload widget with multiple file selection, drag&drop support, progress bar, validation and preview images, audio and video for jQuery. Supports cross-domain, chunked and resumable file uploads. Works with any server-side platform (Google App Engine, PHP, Python, Ruby on Rails, Java, etc.) that supports standard HTML form file uploads.",
"keywords": [
diff --git a/vendor/blueimp/jquery-file-upload/server/php/UploadHandler.php b/vendor/blueimp/jquery-file-upload/server/php/UploadHandler.php
index e44004395..5215e4c0f 100755..100644
--- a/vendor/blueimp/jquery-file-upload/server/php/UploadHandler.php
+++ b/vendor/blueimp/jquery-file-upload/server/php/UploadHandler.php
@@ -38,9 +38,9 @@ class UploadHandler
'image_resize' => 'Failed to resize image'
);
- protected const IMAGETYPE_GIF = 1;
- protected const IMAGETYPE_JPEG = 2;
- protected const IMAGETYPE_PNG = 3;
+ const IMAGETYPE_GIF = 1;
+ const IMAGETYPE_JPEG = 2;
+ const IMAGETYPE_PNG = 3;
protected $image_objects = array();
@@ -1047,13 +1047,18 @@ class UploadHandler
}
protected function create_scaled_image($file_name, $version, $options) {
- if ($this->options['image_library'] === 2) {
- return $this->imagemagick_create_scaled_image($file_name, $version, $options);
- }
- if ($this->options['image_library'] && extension_loaded('imagick')) {
- return $this->imagick_create_scaled_image($file_name, $version, $options);
+ try {
+ if ($this->options['image_library'] === 2) {
+ return $this->imagemagick_create_scaled_image($file_name, $version, $options);
+ }
+ if ($this->options['image_library'] && extension_loaded('imagick')) {
+ return $this->imagick_create_scaled_image($file_name, $version, $options);
+ }
+ return $this->gd_create_scaled_image($file_name, $version, $options);
+ } catch (\Exception $e) {
+ error_log($e->getMessage());
+ return false;
}
- return $this->gd_create_scaled_image($file_name, $version, $options);
}
protected function destroy_image_object($file_path) {
@@ -1066,12 +1071,12 @@ class UploadHandler
$fp = fopen($file_path, 'r');
$data = fread($fp, 4);
fclose($fp);
- // GIF: 47 49 46
- if (substr($data, 0, 3) === 'GIF') {
+ // GIF: 47 49 46 38
+ if ($data === 'GIF8') {
return self::IMAGETYPE_GIF;
}
- // JPG: FF D8
- if (bin2hex(substr($data, 0, 2)) === 'ffd8') {
+ // JPG: FF D8 FF
+ if (bin2hex(substr($data, 0, 3)) === 'ffd8ff') {
return self::IMAGETYPE_JPEG;
}
// PNG: 89 50 4E 47
@@ -1082,6 +1087,9 @@ class UploadHandler
}
protected function is_valid_image_file($file_path) {
+ if (!preg_match('/\.(gif|jpe?g|png)$/i', $file_path)) {
+ return false;
+ }
return !!$this->imagetype($file_path);
}
diff --git a/vendor/blueimp/jquery-file-upload/server/php/index.php b/vendor/blueimp/jquery-file-upload/server/php/index.php
index 9c2cfb8eb..6caabb710 100644
--- a/vendor/blueimp/jquery-file-upload/server/php/index.php
+++ b/vendor/blueimp/jquery-file-upload/server/php/index.php
@@ -9,7 +9,7 @@
* Licensed under the MIT license:
* https://opensource.org/licenses/MIT
*/
-exit;
+
error_reporting(E_ALL | E_STRICT);
require('UploadHandler.php');
$upload_handler = new UploadHandler();
diff --git a/vendor/blueimp/jquery-file-upload/test/index.html b/vendor/blueimp/jquery-file-upload/test/index.html
index 0b5cf57b7..b8c585df5 100644
--- a/vendor/blueimp/jquery-file-upload/test/index.html
+++ b/vendor/blueimp/jquery-file-upload/test/index.html
@@ -20,7 +20,7 @@
<meta charset="utf-8">
<title>jQuery File Upload Plugin Test</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-1.23.1.css">
+<link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-1.23.1.css" integrity="sha384-RW07PgMHO3eNYL7ddFK/okEi1rjvSeJ3Ck/TxGUHkmzSlGmw4R9/KGJYUD3OicMd" crossorigin="anonymous">
</head>
<body>
<h1 id="qunit-header">jQuery File Upload Plugin Test</h1>
@@ -145,7 +145,7 @@
</tr>
{% } %}
</script>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
+<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js" integrity="sha384-nvAa0+6Qg9clwYCGGPpDQLVpLNn0fRaROjHqs13t4Ggj3Ez50XnGQqc/r8MhnRDZ" crossorigin="anonymous"></script>
<script src="../js/vendor/jquery.ui.widget.js"></script>
<script src="https://blueimp.github.io/JavaScript-Templates/js/tmpl.min.js"></script>
<script src="https://blueimp.github.io/JavaScript-Load-Image/js/load-image.all.min.js"></script>
@@ -166,7 +166,7 @@ window.testBasicWidget = $.blueimp.fileupload;
/* global window, $ */
window.testUIWidget = $.blueimp.fileupload;
</script>
-<script src="https://code.jquery.com/qunit/qunit-1.23.1.js"></script>
+<script src="https://code.jquery.com/qunit/qunit-1.23.1.js" integrity="sha384-FJbPWND3tHbuhP8PhCp3Kn0bEtCxaIq+sfkmiJ+Su0jchKFnVbPQTTyPiuwqbkXa" crossorigin="anonymous"></script>
<script src="test.js"></script>
</body>
</html>
diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php
index 95f7e0978..fce8549f0 100644
--- a/vendor/composer/ClassLoader.php
+++ b/vendor/composer/ClassLoader.php
@@ -279,7 +279,7 @@ class ClassLoader
*/
public function setApcuPrefix($apcuPrefix)
{
- $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null;
+ $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
}
/**
diff --git a/vendor/composer/LICENSE b/vendor/composer/LICENSE
index f0157a6ed..f27399a04 100644
--- a/vendor/composer/LICENSE
+++ b/vendor/composer/LICENSE
@@ -1,56 +1,21 @@
-Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
-Upstream-Name: Composer
-Upstream-Contact: Jordi Boggiano <j.boggiano@seld.be>
-Source: https://github.com/composer/composer
-Files: *
-Copyright: 2016, Nils Adermann <naderman@naderman.de>
- 2016, Jordi Boggiano <j.boggiano@seld.be>
-License: Expat
+Copyright (c) Nils Adermann, Jordi Boggiano
-Files: src/Composer/Util/TlsHelper.php
-Copyright: 2016, Nils Adermann <naderman@naderman.de>
- 2016, Jordi Boggiano <j.boggiano@seld.be>
- 2013, Evan Coury <me@evancoury.com>
-License: Expat and BSD-2-Clause
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
-License: BSD-2-Clause
- Redistribution and use in source and binary forms, with or without modification,
- are permitted provided that the following conditions are met:
- .
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- .
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
- .
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
-License: Expat
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is furnished
- to do so, subject to the following conditions:
- .
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
- .
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php
index f3c814e02..86acbb152 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -380,6 +380,9 @@ return array(
'Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/Psr/Log/LoggerInterface.php',
'Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/Psr/Log/LoggerTrait.php',
'Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/Psr/Log/NullLogger.php',
+ 'Psr\\Log\\Test\\DummyTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
+ 'Psr\\Log\\Test\\LoggerInterfaceTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
+ 'Psr\\Log\\Test\\TestLogger' => $vendorDir . '/psr/log/Psr/Log/Test/TestLogger.php',
'Ramsey\\Uuid\\BinaryUtils' => $vendorDir . '/ramsey/uuid/src/BinaryUtils.php',
'Ramsey\\Uuid\\Builder\\DefaultUuidBuilder' => $vendorDir . '/ramsey/uuid/src/Builder/DefaultUuidBuilder.php',
'Ramsey\\Uuid\\Builder\\DegradedUuidBuilder' => $vendorDir . '/ramsey/uuid/src/Builder/DegradedUuidBuilder.php',
@@ -981,7 +984,6 @@ return array(
'Zotlabs\\Module\\Mood' => $baseDir . '/Zotlabs/Module/Mood.php',
'Zotlabs\\Module\\Network' => $baseDir . '/Zotlabs/Module/Network.php',
'Zotlabs\\Module\\New_channel' => $baseDir . '/Zotlabs/Module/New_channel.php',
- 'Zotlabs\\Module\\Nojs' => $baseDir . '/Zotlabs/Module/Nojs.php',
'Zotlabs\\Module\\Notes' => $baseDir . '/Zotlabs/Module/Notes.php',
'Zotlabs\\Module\\Notifications' => $baseDir . '/Zotlabs/Module/Notifications.php',
'Zotlabs\\Module\\Notify' => $baseDir . '/Zotlabs/Module/Notify.php',
@@ -1337,7 +1339,10 @@ return array(
'Zotlabs\\Update\\_1222' => $baseDir . '/Zotlabs/Update/_1222.php',
'Zotlabs\\Update\\_1223' => $baseDir . '/Zotlabs/Update/_1223.php',
'Zotlabs\\Update\\_1224' => $baseDir . '/Zotlabs/Update/_1224.php',
- 'Zotlabs\\Web\\CheckJS' => $baseDir . '/Zotlabs/Web/CheckJS.php',
+ 'Zotlabs\\Update\\_1225' => $baseDir . '/Zotlabs/Update/_1225.php',
+ 'Zotlabs\\Update\\_1226' => $baseDir . '/Zotlabs/Update/_1226.php',
+ 'Zotlabs\\Update\\_1227' => $baseDir . '/Zotlabs/Update/_1227.php',
+ 'Zotlabs\\Update\\_1228' => $baseDir . '/Zotlabs/Update/_1228.php',
'Zotlabs\\Web\\Controller' => $baseDir . '/Zotlabs/Web/Controller.php',
'Zotlabs\\Web\\HTTPHeaders' => $baseDir . '/Zotlabs/Web/HTTPHeaders.php',
'Zotlabs\\Web\\HTTPSig' => $baseDir . '/Zotlabs/Web/HTTPSig.php',
diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php
index ce0232306..ea23de753 100644
--- a/vendor/composer/autoload_static.php
+++ b/vendor/composer/autoload_static.php
@@ -548,6 +548,9 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerInterface.php',
'Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerTrait.php',
'Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/NullLogger.php',
+ 'Psr\\Log\\Test\\DummyTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
+ 'Psr\\Log\\Test\\LoggerInterfaceTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
+ 'Psr\\Log\\Test\\TestLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/TestLogger.php',
'Ramsey\\Uuid\\BinaryUtils' => __DIR__ . '/..' . '/ramsey/uuid/src/BinaryUtils.php',
'Ramsey\\Uuid\\Builder\\DefaultUuidBuilder' => __DIR__ . '/..' . '/ramsey/uuid/src/Builder/DefaultUuidBuilder.php',
'Ramsey\\Uuid\\Builder\\DegradedUuidBuilder' => __DIR__ . '/..' . '/ramsey/uuid/src/Builder/DegradedUuidBuilder.php',
@@ -1149,7 +1152,6 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Module\\Mood' => __DIR__ . '/../..' . '/Zotlabs/Module/Mood.php',
'Zotlabs\\Module\\Network' => __DIR__ . '/../..' . '/Zotlabs/Module/Network.php',
'Zotlabs\\Module\\New_channel' => __DIR__ . '/../..' . '/Zotlabs/Module/New_channel.php',
- 'Zotlabs\\Module\\Nojs' => __DIR__ . '/../..' . '/Zotlabs/Module/Nojs.php',
'Zotlabs\\Module\\Notes' => __DIR__ . '/../..' . '/Zotlabs/Module/Notes.php',
'Zotlabs\\Module\\Notifications' => __DIR__ . '/../..' . '/Zotlabs/Module/Notifications.php',
'Zotlabs\\Module\\Notify' => __DIR__ . '/../..' . '/Zotlabs/Module/Notify.php',
@@ -1506,7 +1508,9 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Update\\_1223' => __DIR__ . '/../..' . '/Zotlabs/Update/_1223.php',
'Zotlabs\\Update\\_1224' => __DIR__ . '/../..' . '/Zotlabs/Update/_1224.php',
'Zotlabs\\Update\\_1225' => __DIR__ . '/../..' . '/Zotlabs/Update/_1225.php',
- 'Zotlabs\\Web\\CheckJS' => __DIR__ . '/../..' . '/Zotlabs/Web/CheckJS.php',
+ 'Zotlabs\\Update\\_1226' => __DIR__ . '/../..' . '/Zotlabs/Update/_1226.php',
+ 'Zotlabs\\Update\\_1227' => __DIR__ . '/../..' . '/Zotlabs/Update/_1227.php',
+ 'Zotlabs\\Update\\_1228' => __DIR__ . '/../..' . '/Zotlabs/Update/_1228.php',
'Zotlabs\\Web\\Controller' => __DIR__ . '/../..' . '/Zotlabs/Web/Controller.php',
'Zotlabs\\Web\\HTTPHeaders' => __DIR__ . '/../..' . '/Zotlabs/Web/HTTPHeaders.php',
'Zotlabs\\Web\\HTTPSig' => __DIR__ . '/../..' . '/Zotlabs/Web/HTTPSig.php',
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index af845828e..d2f86ea99 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -1,20 +1,20 @@
[
{
"name": "blueimp/jquery-file-upload",
- "version": "v9.25.1",
- "version_normalized": "9.25.1.0",
+ "version": "v9.28.0",
+ "version_normalized": "9.28.0.0",
"source": {
"type": "git",
"url": "https://github.com/vkhramtsov/jQuery-File-Upload.git",
- "reference": "28891f9b2bc339bcc1ca8d548e5401e8563bf04b"
+ "reference": "ff5accfe2e5c4a522777faa980a90cf86a636d1d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/vkhramtsov/jQuery-File-Upload/zipball/28891f9b2bc339bcc1ca8d548e5401e8563bf04b",
- "reference": "28891f9b2bc339bcc1ca8d548e5401e8563bf04b",
+ "url": "https://api.github.com/repos/vkhramtsov/jQuery-File-Upload/zipball/ff5accfe2e5c4a522777faa980a90cf86a636d1d",
+ "reference": "ff5accfe2e5c4a522777faa980a90cf86a636d1d",
"shasum": ""
},
- "time": "2018-10-26T07:21:48+00:00",
+ "time": "2018-11-13T05:41:39+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -163,6 +163,47 @@
"description": "Internationalization library powered by CLDR data."
},
{
+ "name": "desandro/imagesloaded",
+ "version": "v4.1.4",
+ "version_normalized": "4.1.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/desandro/imagesloaded.git",
+ "reference": "67c4e57453120935180c45c6820e7d3fbd2ea1f9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/desandro/imagesloaded/zipball/67c4e57453120935180c45c6820e7d3fbd2ea1f9",
+ "reference": "67c4e57453120935180c45c6820e7d3fbd2ea1f9",
+ "shasum": ""
+ },
+ "time": "2018-01-02T16:53:35+00:00",
+ "type": "component",
+ "installation-source": "dist",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "David DeSandro",
+ "homepage": "http://desandro.com/",
+ "role": "developer"
+ }
+ ],
+ "description": "JavaScript is all like _You images done yet or what?_",
+ "homepage": "http://imagesloaded.desandro.com",
+ "keywords": [
+ "dom",
+ "images",
+ "javascript",
+ "jquery-plugin",
+ "library",
+ "loaded",
+ "ui"
+ ]
+ },
+ {
"name": "ezyang/htmlpurifier",
"version": "v4.10.0",
"version_normalized": "4.10.0.0",
@@ -457,23 +498,23 @@
},
{
"name": "psr/log",
- "version": "1.0.2",
- "version_normalized": "1.0.2.0",
+ "version": "1.1.0",
+ "version_normalized": "1.1.0.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
- "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
+ "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
- "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
+ "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
- "time": "2016-10-10T12:19:37+00:00",
+ "time": "2018-11-20T15:27:04+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -1141,8 +1182,8 @@
},
{
"name": "symfony/polyfill-ctype",
- "version": "v1.9.0",
- "version_normalized": "1.9.0.0",
+ "version": "v1.10.0",
+ "version_normalized": "1.10.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
diff --git a/vendor/desandro/imagesloaded/.gitignore b/vendor/desandro/imagesloaded/.gitignore
new file mode 100644
index 000000000..2486eb53d
--- /dev/null
+++ b/vendor/desandro/imagesloaded/.gitignore
@@ -0,0 +1,5 @@
+bower_components/
+node_modules/
+_site/
+build/
+package-lock.json
diff --git a/vendor/desandro/imagesloaded/.jshintrc b/vendor/desandro/imagesloaded/.jshintrc
new file mode 100644
index 000000000..78aa4af7b
--- /dev/null
+++ b/vendor/desandro/imagesloaded/.jshintrc
@@ -0,0 +1,12 @@
+{
+ "browser": true,
+ "curly": true,
+ "newcap": false,
+ "strict": true,
+ "undef": true,
+ "unused": true,
+ "globals": {
+ "imagesLoaded": false,
+ "QUnit": false
+ }
+}
diff --git a/vendor/desandro/imagesloaded/README.md b/vendor/desandro/imagesloaded/README.md
new file mode 100644
index 000000000..67b799dfd
--- /dev/null
+++ b/vendor/desandro/imagesloaded/README.md
@@ -0,0 +1,362 @@
+# imagesLoaded
+
+<p class="tagline">JavaScript is all like "You images done yet or what?"</p>
+
+[imagesloaded.desandro.com](http://imagesloaded.desandro.com)
+
+Detect when images have been loaded.
+
+## Install
+
+### Download
+
++ [imagesloaded.pkgd.min.js](https://unpkg.com/imagesloaded@4/imagesloaded.pkgd.min.js) minified
++ [imagesloaded.pkgd.js](https://unpkg.com/imagesloaded@4/imagesloaded.pkgd.js) un-minified
+
+### CDN
+
+``` html
+<script src="https://unpkg.com/imagesloaded@4/imagesloaded.pkgd.min.js"></script>
+<!-- or -->
+<script src="https://unpkg.com/imagesloaded@4/imagesloaded.pkgd.js"></script>
+```
+
+### Package managers
+
+Install via [npm](https://www.npmjs.com/package/imagesloaded): `npm install imagesloaded`
+
+Install via [Bower](http://bower.io): `bower install imagesloaded --save`
+
+## jQuery
+
+You can use imagesLoaded as a jQuery Plugin.
+
+``` js
+$('#container').imagesLoaded( function() {
+ // images have loaded
+});
+
+// options
+$('#container').imagesLoaded( {
+ // options...
+ },
+ function() {
+ // images have loaded
+ }
+);
+```
+
+`.imagesLoaded()` returns a [jQuery Deferred object](http://api.jquery.com/category/deferred-object/). This allows you to use `.always()`, `.done()`, `.fail()` and `.progress()`.
+
+``` js
+$('#container').imagesLoaded()
+ .always( function( instance ) {
+ console.log('all images loaded');
+ })
+ .done( function( instance ) {
+ console.log('all images successfully loaded');
+ })
+ .fail( function() {
+ console.log('all images loaded, at least one is broken');
+ })
+ .progress( function( instance, image ) {
+ var result = image.isLoaded ? 'loaded' : 'broken';
+ console.log( 'image is ' + result + ' for ' + image.img.src );
+ });
+```
+
+## Vanilla JavaScript
+
+You can use imagesLoaded with vanilla JS.
+
+``` js
+imagesLoaded( elem, callback )
+// options
+imagesLoaded( elem, options, callback )
+// you can use `new` if you like
+new imagesLoaded( elem, callback )
+```
+
++ `elem` _Element, NodeList, Array, or Selector String_
++ `options` _Object_
++ `callback` _Function_ - function triggered after all images have been loaded
+
+Using a callback function is the same as binding it to the `always` event (see below).
+
+``` js
+// element
+imagesLoaded( document.querySelector('#container'), function( instance ) {
+ console.log('all images are loaded');
+});
+// selector string
+imagesLoaded( '#container', function() {...});
+// multiple elements
+var posts = document.querySelectorAll('.post');
+imagesLoaded( posts, function() {...});
+```
+
+Bind events with vanilla JS with .on(), .off(), and .once() methods.
+
+``` js
+var imgLoad = imagesLoaded( elem );
+function onAlways( instance ) {
+ console.log('all images are loaded');
+}
+// bind with .on()
+imgLoad.on( 'always', onAlways );
+// unbind with .off()
+imgLoad.off( 'always', onAlways );
+```
+
+## Background
+
+Detect when background images have loaded, in addition to `<img>`s.
+
+Set `{ background: true }` to detect when the element's background image has loaded.
+
+``` js
+// jQuery
+$('#container').imagesLoaded( { background: true }, function() {
+ console.log('#container background image loaded');
+});
+
+// vanilla JS
+imagesLoaded( '#container', { background: true }, function() {
+ console.log('#container background image loaded');
+});
+```
+
+[See jQuery demo](http://codepen.io/desandro/pen/pjVMPB) or [vanilla JS demo](http://codepen.io/desandro/pen/avKooW) on CodePen.
+
+Set to a selector string like `{ background: '.item' }` to detect when the background images of child elements have loaded.
+
+``` js
+// jQuery
+$('#container').imagesLoaded( { background: '.item' }, function() {
+ console.log('all .item background images loaded');
+});
+
+// vanilla JS
+imagesLoaded( '#container', { background: '.item' }, function() {
+ console.log('all .item background images loaded');
+});
+```
+
+[See jQuery demo](http://codepen.io/desandro/pen/avKoZL) or [vanilla JS demo](http://codepen.io/desandro/pen/vNrBGz) on CodePen.
+
+## Events
+
+### always
+
+``` js
+// jQuery
+$('#container').imagesLoaded().always( function( instance ) {
+ console.log('ALWAYS - all images have been loaded');
+});
+
+// vanilla JS
+imgLoad.on( 'always', function( instance ) {
+ console.log('ALWAYS - all images have been loaded');
+});
+```
+
+Triggered after all images have been either loaded or confirmed broken.
+
++ `instance` _imagesLoaded_ - the imagesLoaded instance
+
+### done
+
+``` js
+// jQuery
+$('#container').imagesLoaded().done( function( instance ) {
+ console.log('DONE - all images have been successfully loaded');
+});
+
+// vanilla JS
+imgLoad.on( 'done', function( instance ) {
+ console.log('DONE - all images have been successfully loaded');
+});
+```
+
+Triggered after all images have successfully loaded without any broken images.
+
+### fail
+
+``` js
+$('#container').imagesLoaded().fail( function( instance ) {
+ console.log('FAIL - all images loaded, at least one is broken');
+});
+
+// vanilla JS
+imgLoad.on( 'fail', function( instance ) {
+ console.log('FAIL - all images loaded, at least one is broken');
+});
+```
+
+Triggered after all images have been loaded with at least one broken image.
+
+### progress
+
+``` js
+imgLoad.on( 'progress', function( instance, image ) {
+ var result = image.isLoaded ? 'loaded' : 'broken';
+ console.log( 'image is ' + result + ' for ' + image.img.src );
+});
+```
+
+Triggered after each image has been loaded.
+
++ `instance` _imagesLoaded_ - the imagesLoaded instance
++ `image` _LoadingImage_ - the LoadingImage instance of the loaded image
+
+<!-- sponsored -->
+
+## Properties
+
+### LoadingImage.img
+
+_Image_ - The `img` element
+
+### LoadingImage.isLoaded
+
+_Boolean_ - `true` when the image has successfully loaded
+
+### imagesLoaded.images
+
+Array of _LoadingImage_ instances for each image detected
+
+``` js
+var imgLoad = imagesLoaded('#container');
+imgLoad.on( 'always', function() {
+ console.log( imgLoad.images.length + ' images loaded' );
+ // detect which image is broken
+ for ( var i = 0, len = imgLoad.images.length; i < len; i++ ) {
+ var image = imgLoad.images[i];
+ var result = image.isLoaded ? 'loaded' : 'broken';
+ console.log( 'image is ' + result + ' for ' + image.img.src );
+ }
+});
+```
+
+## Browserify
+
+imagesLoaded works with [Browserify](http://browserify.org/).
+
+``` bash
+npm install imagesloaded --save
+```
+
+``` js
+var imagesLoaded = require('imagesloaded');
+
+imagesLoaded( elem, function() {...} );
+```
+
+Use `.makeJQueryPlugin` to make to use `.imagesLoaded()` jQuery plugin.
+
+``` js
+var $ = require('jquery');
+var imagesLoaded = require('imagesloaded');
+
+// provide jQuery argument
+imagesLoaded.makeJQueryPlugin( $ );
+// now use .imagesLoaded() jQuery plugin
+$('#container').imagesLoaded( function() {...});
+```
+
+## Webpack
+
+Install imagesLoaded with npm.
+
+``` bash
+npm install imagesloaded
+```
+
+You can then `require('imagesloaded')`.
+
+``` js
+// main.js
+var imagesLoaded = require('imagesloaded');
+
+imagesLoaded( '#container', function() {
+ // images have loaded
+});
+```
+
+Use `.makeJQueryPlugin` to make `.imagesLoaded()` jQuery plugin.
+
+``` js
+// main.js
+var imagesLoaded = require('imagesloaded');
+var $ = require('jquery');
+
+// provide jQuery argument
+imagesLoaded.makeJQueryPlugin( $ );
+// now use .imagesLoaded() jQuery plugin
+$('#container').imagesLoaded( function() {...});
+```
+
+Run webpack.
+
+``` bash
+webpack main.js bundle.js
+```
+
+## RequireJS
+
+imagesLoaded works with [RequireJS](http://requirejs.org).
+
+You can require [imagesloaded.pkgd.js](http://imagesloaded.desandro.com/imagesloaded.pkgd.js).
+
+``` js
+requirejs( [
+ 'path/to/imagesloaded.pkgd.js',
+], function( imagesLoaded ) {
+ imagesLoaded( '#container', function() { ... });
+});
+```
+
+Use `.makeJQueryPlugin` to make `.imagesLoaded()` jQuery plugin.
+
+``` js
+requirejs( [
+ 'jquery',
+ 'path/to/imagesloaded.pkgd.js',
+], function( $, imagesLoaded ) {
+ // provide jQuery argument
+ imagesLoaded.makeJQueryPlugin( $ );
+ // now use .imagesLoaded() jQuery plugin
+ $('#container').imagesLoaded( function() {...});
+});
+```
+
+You can manage dependencies with [Bower](http://bower.io). Set `baseUrl` to `bower_components` and set a path config for all your application code.
+
+``` js
+requirejs.config({
+ baseUrl: 'bower_components/',
+ paths: { // path to your app
+ app: '../'
+ }
+});
+
+requirejs( [
+ 'imagesloaded/imagesloaded',
+ 'app/my-component.js'
+], function( imagesLoaded, myComp ) {
+ imagesLoaded( '#container', function() { ... });
+});
+```
+
+## Browser support
+
++ IE9+
++ Android 2.3+
++ iOS Safari 4+
++ All other modern browsers
+
+Use [imagesLoaded v3](http://imagesloaded.desandro.com/v3/) for IE8 support.
+
+## MIT License
+
+imagesLoaded is released under the [MIT License](http://desandro.mit-license.org/). Have at it.
diff --git a/vendor/desandro/imagesloaded/bower.json b/vendor/desandro/imagesloaded/bower.json
new file mode 100644
index 000000000..795c69f07
--- /dev/null
+++ b/vendor/desandro/imagesloaded/bower.json
@@ -0,0 +1,37 @@
+{
+ "name": "imagesloaded",
+ "description": "JavaScript is all like _You images done yet or what?_",
+ "main": "imagesloaded.js",
+ "dependencies": {
+ "ev-emitter": "^1.0.0"
+ },
+ "devDependencies": {
+ "jquery": ">=1.9 <4.0",
+ "qunit": "^2.0.0"
+ },
+ "ignore": [
+ "**/.*",
+ "test",
+ "package.json",
+ "composer.json",
+ "node_modules",
+ "bower_components",
+ "tests",
+ "sandbox/",
+ "gulpfile.js",
+ "contributing.md"
+ ],
+ "homepage": "http://imagesloaded.desandro.com",
+ "authors": [
+ "David DeSandro"
+ ],
+ "moduleType": [
+ "amd",
+ "globals",
+ "node"
+ ],
+ "keywords": [
+ "images"
+ ],
+ "license": "MIT"
+}
diff --git a/vendor/desandro/imagesloaded/composer.json b/vendor/desandro/imagesloaded/composer.json
new file mode 100644
index 000000000..95ba64c4a
--- /dev/null
+++ b/vendor/desandro/imagesloaded/composer.json
@@ -0,0 +1,15 @@
+{
+ "name": "desandro/imagesloaded",
+ "description": "JavaScript is all like _You images done yet or what?_",
+ "type": "component",
+ "keywords": ["javascript", "library", "images", "loaded", "dom", "ui", "jquery-plugin"],
+ "homepage": "http://imagesloaded.desandro.com",
+ "license": "MIT",
+ "authors": [
+ {
+ "name": "David DeSandro",
+ "homepage": "http://desandro.com/",
+ "role": "developer"
+ }
+ ]
+}
diff --git a/vendor/desandro/imagesloaded/contributing.md b/vendor/desandro/imagesloaded/contributing.md
new file mode 100644
index 000000000..acac280cc
--- /dev/null
+++ b/vendor/desandro/imagesloaded/contributing.md
@@ -0,0 +1,20 @@
+## Submitting issues
+
+### Reduced test case required
+
+All bug reports and problem issues require a [**reduced test case**](http://css-tricks.com/reduced-test-cases/).
+
++ A reduced test case clearly demonstrates the bug or issue.
++ It contains the bare minimum HTML, CSS, and JavaScript required to demonstrate the bug.
++ A link to your production site is **not** a reduced test case.
+
+Create a test case by forking a [CodePen demos](http://codepen.io/desandro/pens/tags/?selected_tag=imagesloaded-docs).
+
++ [progress with jQuery](http://codepen.io/desandro/pen/bIFyl)
++ [progress with vanilla JS](http://codepen.io/desandro/pen/hlzaw)
++ [`{ background: true }` with jQuery](http://codepen.io/desandro/pen/pjVMPB)
++ [`{ background: true }` with vanilla JS](http://codepen.io/desandro/pen/avKooW)
++ [`{ background: '.selector' }` with jQuery](http://codepen.io/desandro/pen/avKoZL)
++ [`{ background: '.selector' }` with vanilla JS](http://codepen.io/desandro/pen/vNrBGz)
+
+Providing a reduced test case is the best way to get your issue addressed. They help you point out the problem. They help me verify and debug the problem. They help others understand the problem. Without a reduced test case, your issue may be closed.
diff --git a/vendor/desandro/imagesloaded/gulpfile.js b/vendor/desandro/imagesloaded/gulpfile.js
new file mode 100644
index 000000000..66f775f3d
--- /dev/null
+++ b/vendor/desandro/imagesloaded/gulpfile.js
@@ -0,0 +1,128 @@
+/*jshint node: true, strict: false */
+
+var fs = require('fs');
+var gulp = require('gulp');
+var rename = require('gulp-rename');
+var replace = require('gulp-replace');
+
+// ----- hint ----- //
+
+var jshint = require('gulp-jshint');
+
+gulp.task( 'hint-js', function() {
+ return gulp.src('imagesloaded.js')
+ .pipe( jshint() )
+ .pipe( jshint.reporter('default') );
+});
+
+gulp.task( 'hint-test', function() {
+ return gulp.src('test/unit/*.js')
+ .pipe( jshint() )
+ .pipe( jshint.reporter('default') );
+});
+
+gulp.task( 'hint-task', function() {
+ return gulp.src('gulpfile.js')
+ .pipe( jshint() )
+ .pipe( jshint.reporter('default') );
+});
+
+var jsonlint = require('gulp-json-lint');
+
+gulp.task( 'jsonlint', function() {
+ return gulp.src( '*.json' )
+ .pipe( jsonlint() )
+ .pipe( jsonlint.report('verbose') );
+});
+
+gulp.task( 'hint', [ 'hint-js', 'hint-test', 'hint-task', 'jsonlint' ]);
+
+// -------------------------- RequireJS makes pkgd -------------------------- //
+
+// refactored from gulp-requirejs-optimize
+// https://www.npmjs.com/package/gulp-requirejs-optimize/
+
+var gutil = require('gulp-util');
+var chalk = require('chalk');
+var rjsOptimize = require('gulp-requirejs-optimize');
+
+// regex for banner comment
+var reBannerComment = new RegExp('^\\s*(?:\\/\\*[\\s\\S]*?\\*\\/)\\s*');
+
+function getBanner() {
+ var src = fs.readFileSync( 'imagesloaded.js', 'utf8' );
+ var matches = src.match( reBannerComment );
+ var banner = matches[0].replace( 'imagesLoaded', 'imagesLoaded PACKAGED' );
+ return banner;
+}
+
+function addBanner( str ) {
+ return replace( /^/, str );
+}
+
+gulp.task( 'requirejs', function() {
+ var banner = getBanner();
+ // HACK src is not needed
+ // should refactor rjsOptimize to produce src
+ return gulp.src('imagesloaded.js')
+ .pipe( rjsOptimize({
+ baseUrl: 'bower_components',
+ optimize: 'none',
+ include: [
+ '../imagesloaded'
+ ]
+ }) )
+ // remove named module
+ .pipe( replace( "'../imagesloaded',", '' ) )
+ // add banner
+ .pipe( addBanner( banner ) )
+ .pipe( rename('imagesloaded.pkgd.js') )
+ .pipe( gulp.dest('.') );
+});
+
+
+// ----- uglify ----- //
+
+var uglify = require('gulp-uglify');
+
+gulp.task( 'uglify', [ 'requirejs' ], function() {
+ var banner = getBanner();
+ gulp.src('imagesloaded.pkgd.js')
+ .pipe( uglify() )
+ // add banner
+ .pipe( addBanner( banner ) )
+ .pipe( rename('imagesloaded.pkgd.min.js') )
+ .pipe( gulp.dest('.') );
+});
+
+// ----- version ----- //
+
+// set version in source files
+
+var minimist = require('minimist');
+
+// use gulp version -t 1.2.3
+gulp.task( 'version', function() {
+ var args = minimist( process.argv.slice(3) );
+ var version = args.t;
+ if ( !version || !/\d+\.\d+\.\d+/.test( version ) ) {
+ gutil.log( 'invalid version: ' + chalk.red( version ) );
+ return;
+ }
+ gutil.log( 'ticking version to ' + chalk.green( version ) );
+
+ gulp.src('imagesloaded.js')
+ .pipe( replace( /imagesLoaded v\d+\.\d+\.\d+/, 'imagesLoaded v' + version ) )
+ .pipe( gulp.dest('.') );
+
+ gulp.src( [ 'bower.json', 'package.json' ] )
+ .pipe( replace( /"version": "\d+\.\d+\.\d+"/, '"version": "' + version + '"' ) )
+ .pipe( gulp.dest('.') );
+});
+
+// ----- default ----- //
+
+gulp.task( 'default', [
+ 'hint',
+ 'uglify'
+]);
diff --git a/vendor/desandro/imagesloaded/imagesloaded.js b/vendor/desandro/imagesloaded/imagesloaded.js
new file mode 100644
index 000000000..f527a71e9
--- /dev/null
+++ b/vendor/desandro/imagesloaded/imagesloaded.js
@@ -0,0 +1,377 @@
+/*!
+ * imagesLoaded v4.1.4
+ * JavaScript is all like "You images are done yet or what?"
+ * MIT License
+ */
+
+( function( window, factory ) { 'use strict';
+ // universal module definition
+
+ /*global define: false, module: false, require: false */
+
+ if ( typeof define == 'function' && define.amd ) {
+ // AMD
+ define( [
+ 'ev-emitter/ev-emitter'
+ ], function( EvEmitter ) {
+ return factory( window, EvEmitter );
+ });
+ } else if ( typeof module == 'object' && module.exports ) {
+ // CommonJS
+ module.exports = factory(
+ window,
+ require('ev-emitter')
+ );
+ } else {
+ // browser global
+ window.imagesLoaded = factory(
+ window,
+ window.EvEmitter
+ );
+ }
+
+})( typeof window !== 'undefined' ? window : this,
+
+// -------------------------- factory -------------------------- //
+
+function factory( window, EvEmitter ) {
+
+'use strict';
+
+var $ = window.jQuery;
+var console = window.console;
+
+// -------------------------- helpers -------------------------- //
+
+// extend objects
+function extend( a, b ) {
+ for ( var prop in b ) {
+ a[ prop ] = b[ prop ];
+ }
+ return a;
+}
+
+var arraySlice = Array.prototype.slice;
+
+// turn element or nodeList into an array
+function makeArray( obj ) {
+ if ( Array.isArray( obj ) ) {
+ // use object if already an array
+ return obj;
+ }
+
+ var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';
+ if ( isArrayLike ) {
+ // convert nodeList to array
+ return arraySlice.call( obj );
+ }
+
+ // array of single index
+ return [ obj ];
+}
+
+// -------------------------- imagesLoaded -------------------------- //
+
+/**
+ * @param {Array, Element, NodeList, String} elem
+ * @param {Object or Function} options - if function, use as callback
+ * @param {Function} onAlways - callback function
+ */
+function ImagesLoaded( elem, options, onAlways ) {
+ // coerce ImagesLoaded() without new, to be new ImagesLoaded()
+ if ( !( this instanceof ImagesLoaded ) ) {
+ return new ImagesLoaded( elem, options, onAlways );
+ }
+ // use elem as selector string
+ var queryElem = elem;
+ if ( typeof elem == 'string' ) {
+ queryElem = document.querySelectorAll( elem );
+ }
+ // bail if bad element
+ if ( !queryElem ) {
+ console.error( 'Bad element for imagesLoaded ' + ( queryElem || elem ) );
+ return;
+ }
+
+ this.elements = makeArray( queryElem );
+ this.options = extend( {}, this.options );
+ // shift arguments if no options set
+ if ( typeof options == 'function' ) {
+ onAlways = options;
+ } else {
+ extend( this.options, options );
+ }
+
+ if ( onAlways ) {
+ this.on( 'always', onAlways );
+ }
+
+ this.getImages();
+
+ if ( $ ) {
+ // add jQuery Deferred object
+ this.jqDeferred = new $.Deferred();
+ }
+
+ // HACK check async to allow time to bind listeners
+ setTimeout( this.check.bind( this ) );
+}
+
+ImagesLoaded.prototype = Object.create( EvEmitter.prototype );
+
+ImagesLoaded.prototype.options = {};
+
+ImagesLoaded.prototype.getImages = function() {
+ this.images = [];
+
+ // filter & find items if we have an item selector
+ this.elements.forEach( this.addElementImages, this );
+};
+
+/**
+ * @param {Node} element
+ */
+ImagesLoaded.prototype.addElementImages = function( elem ) {
+ // filter siblings
+ if ( elem.nodeName == 'IMG' ) {
+ this.addImage( elem );
+ }
+ // get background image on element
+ if ( this.options.background === true ) {
+ this.addElementBackgroundImages( elem );
+ }
+
+ // find children
+ // no non-element nodes, #143
+ var nodeType = elem.nodeType;
+ if ( !nodeType || !elementNodeTypes[ nodeType ] ) {
+ return;
+ }
+ var childImgs = elem.querySelectorAll('img');
+ // concat childElems to filterFound array
+ for ( var i=0; i < childImgs.length; i++ ) {
+ var img = childImgs[i];
+ this.addImage( img );
+ }
+
+ // get child background images
+ if ( typeof this.options.background == 'string' ) {
+ var children = elem.querySelectorAll( this.options.background );
+ for ( i=0; i < children.length; i++ ) {
+ var child = children[i];
+ this.addElementBackgroundImages( child );
+ }
+ }
+};
+
+var elementNodeTypes = {
+ 1: true,
+ 9: true,
+ 11: true
+};
+
+ImagesLoaded.prototype.addElementBackgroundImages = function( elem ) {
+ var style = getComputedStyle( elem );
+ if ( !style ) {
+ // Firefox returns null if in a hidden iframe https://bugzil.la/548397
+ return;
+ }
+ // get url inside url("...")
+ var reURL = /url\((['"])?(.*?)\1\)/gi;
+ var matches = reURL.exec( style.backgroundImage );
+ while ( matches !== null ) {
+ var url = matches && matches[2];
+ if ( url ) {
+ this.addBackground( url, elem );
+ }
+ matches = reURL.exec( style.backgroundImage );
+ }
+};
+
+/**
+ * @param {Image} img
+ */
+ImagesLoaded.prototype.addImage = function( img ) {
+ var loadingImage = new LoadingImage( img );
+ this.images.push( loadingImage );
+};
+
+ImagesLoaded.prototype.addBackground = function( url, elem ) {
+ var background = new Background( url, elem );
+ this.images.push( background );
+};
+
+ImagesLoaded.prototype.check = function() {
+ var _this = this;
+ this.progressedCount = 0;
+ this.hasAnyBroken = false;
+ // complete if no images
+ if ( !this.images.length ) {
+ this.complete();
+ return;
+ }
+
+ function onProgress( image, elem, message ) {
+ // HACK - Chrome triggers event before object properties have changed. #83
+ setTimeout( function() {
+ _this.progress( image, elem, message );
+ });
+ }
+
+ this.images.forEach( function( loadingImage ) {
+ loadingImage.once( 'progress', onProgress );
+ loadingImage.check();
+ });
+};
+
+ImagesLoaded.prototype.progress = function( image, elem, message ) {
+ this.progressedCount++;
+ this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;
+ // progress event
+ this.emitEvent( 'progress', [ this, image, elem ] );
+ if ( this.jqDeferred && this.jqDeferred.notify ) {
+ this.jqDeferred.notify( this, image );
+ }
+ // check if completed
+ if ( this.progressedCount == this.images.length ) {
+ this.complete();
+ }
+
+ if ( this.options.debug && console ) {
+ console.log( 'progress: ' + message, image, elem );
+ }
+};
+
+ImagesLoaded.prototype.complete = function() {
+ var eventName = this.hasAnyBroken ? 'fail' : 'done';
+ this.isComplete = true;
+ this.emitEvent( eventName, [ this ] );
+ this.emitEvent( 'always', [ this ] );
+ if ( this.jqDeferred ) {
+ var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';
+ this.jqDeferred[ jqMethod ]( this );
+ }
+};
+
+// -------------------------- -------------------------- //
+
+function LoadingImage( img ) {
+ this.img = img;
+}
+
+LoadingImage.prototype = Object.create( EvEmitter.prototype );
+
+LoadingImage.prototype.check = function() {
+ // If complete is true and browser supports natural sizes,
+ // try to check for image status manually.
+ var isComplete = this.getIsImageComplete();
+ if ( isComplete ) {
+ // report based on naturalWidth
+ this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );
+ return;
+ }
+
+ // If none of the checks above matched, simulate loading on detached element.
+ this.proxyImage = new Image();
+ this.proxyImage.addEventListener( 'load', this );
+ this.proxyImage.addEventListener( 'error', this );
+ // bind to image as well for Firefox. #191
+ this.img.addEventListener( 'load', this );
+ this.img.addEventListener( 'error', this );
+ this.proxyImage.src = this.img.src;
+};
+
+LoadingImage.prototype.getIsImageComplete = function() {
+ // check for non-zero, non-undefined naturalWidth
+ // fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671
+ return this.img.complete && this.img.naturalWidth;
+};
+
+LoadingImage.prototype.confirm = function( isLoaded, message ) {
+ this.isLoaded = isLoaded;
+ this.emitEvent( 'progress', [ this, this.img, message ] );
+};
+
+// ----- events ----- //
+
+// trigger specified handler for event type
+LoadingImage.prototype.handleEvent = function( event ) {
+ var method = 'on' + event.type;
+ if ( this[ method ] ) {
+ this[ method ]( event );
+ }
+};
+
+LoadingImage.prototype.onload = function() {
+ this.confirm( true, 'onload' );
+ this.unbindEvents();
+};
+
+LoadingImage.prototype.onerror = function() {
+ this.confirm( false, 'onerror' );
+ this.unbindEvents();
+};
+
+LoadingImage.prototype.unbindEvents = function() {
+ this.proxyImage.removeEventListener( 'load', this );
+ this.proxyImage.removeEventListener( 'error', this );
+ this.img.removeEventListener( 'load', this );
+ this.img.removeEventListener( 'error', this );
+};
+
+// -------------------------- Background -------------------------- //
+
+function Background( url, element ) {
+ this.url = url;
+ this.element = element;
+ this.img = new Image();
+}
+
+// inherit LoadingImage prototype
+Background.prototype = Object.create( LoadingImage.prototype );
+
+Background.prototype.check = function() {
+ this.img.addEventListener( 'load', this );
+ this.img.addEventListener( 'error', this );
+ this.img.src = this.url;
+ // check if image is already complete
+ var isComplete = this.getIsImageComplete();
+ if ( isComplete ) {
+ this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );
+ this.unbindEvents();
+ }
+};
+
+Background.prototype.unbindEvents = function() {
+ this.img.removeEventListener( 'load', this );
+ this.img.removeEventListener( 'error', this );
+};
+
+Background.prototype.confirm = function( isLoaded, message ) {
+ this.isLoaded = isLoaded;
+ this.emitEvent( 'progress', [ this, this.element, message ] );
+};
+
+// -------------------------- jQuery -------------------------- //
+
+ImagesLoaded.makeJQueryPlugin = function( jQuery ) {
+ jQuery = jQuery || window.jQuery;
+ if ( !jQuery ) {
+ return;
+ }
+ // set local variable
+ $ = jQuery;
+ // $().imagesLoaded()
+ $.fn.imagesLoaded = function( options, callback ) {
+ var instance = new ImagesLoaded( this, options, callback );
+ return instance.jqDeferred.promise( $(this) );
+ };
+};
+// try making plugin
+ImagesLoaded.makeJQueryPlugin();
+
+// -------------------------- -------------------------- //
+
+return ImagesLoaded;
+
+});
diff --git a/library/imagesloaded/imagesloaded.pkgd.js b/vendor/desandro/imagesloaded/imagesloaded.pkgd.js
index ef23971be..a230750b3 100644
--- a/library/imagesloaded/imagesloaded.pkgd.js
+++ b/vendor/desandro/imagesloaded/imagesloaded.pkgd.js
@@ -1,11 +1,11 @@
/*!
- * imagesLoaded PACKAGED v4.1.0
+ * imagesLoaded PACKAGED v4.1.4
* JavaScript is all like "You images are done yet or what?"
* MIT License
*/
/**
- * EvEmitter v1.0.1
+ * EvEmitter v1.1.0
* Lil' event emitter
* MIT License
*/
@@ -14,7 +14,7 @@
( function( global, factory ) {
// universal module definition
- /* jshint strict: false */ /* globals define, module */
+ /* jshint strict: false */ /* globals define, module, window */
if ( typeof define == 'function' && define.amd ) {
// AMD - RequireJS
define( 'ev-emitter/ev-emitter',factory );
@@ -26,7 +26,7 @@
global.EvEmitter = factory();
}
-}( this, function() {
+}( typeof window != 'undefined' ? window : this, function() {
@@ -59,8 +59,8 @@ proto.once = function( eventName, listener ) {
// set once flag
// set onceEvents hash
var onceEvents = this._onceEvents = this._onceEvents || {};
- // set onceListeners array
- var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || [];
+ // set onceListeners object
+ var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};
// set flag
onceListeners[ listener ] = true;
@@ -85,13 +85,14 @@ proto.emitEvent = function( eventName, args ) {
if ( !listeners || !listeners.length ) {
return;
}
- var i = 0;
- var listener = listeners[i];
+ // copy over to avoid interference if .off() in listener
+ listeners = listeners.slice(0);
args = args || [];
// once stuff
var onceListeners = this._onceEvents && this._onceEvents[ eventName ];
- while ( listener ) {
+ for ( var i=0; i < listeners.length; i++ ) {
+ var listener = listeners[i]
var isOnce = onceListeners && onceListeners[ listener ];
if ( isOnce ) {
// remove listener
@@ -102,20 +103,22 @@ proto.emitEvent = function( eventName, args ) {
}
// trigger listener
listener.apply( this, args );
- // get next listener
- i += isOnce ? 0 : 1;
- listener = listeners[i];
}
return this;
};
+proto.allOff = function() {
+ delete this._events;
+ delete this._onceEvents;
+};
+
return EvEmitter;
}));
/*!
- * imagesLoaded v4.1.0
+ * imagesLoaded v4.1.4
* JavaScript is all like "You images are done yet or what?"
* MIT License
*/
@@ -146,7 +149,7 @@ return EvEmitter;
);
}
-})( window,
+})( typeof window !== 'undefined' ? window : this,
// -------------------------- factory -------------------------- //
@@ -167,22 +170,23 @@ function extend( a, b ) {
return a;
}
+var arraySlice = Array.prototype.slice;
+
// turn element or nodeList into an array
function makeArray( obj ) {
- var ary = [];
if ( Array.isArray( obj ) ) {
// use object if already an array
- ary = obj;
- } else if ( typeof obj.length == 'number' ) {
+ return obj;
+ }
+
+ var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';
+ if ( isArrayLike ) {
// convert nodeList to array
- for ( var i=0; i < obj.length; i++ ) {
- ary.push( obj[i] );
- }
- } else {
- // array of single index
- ary.push( obj );
+ return arraySlice.call( obj );
}
- return ary;
+
+ // array of single index
+ return [ obj ];
}
// -------------------------- imagesLoaded -------------------------- //
@@ -198,13 +202,19 @@ function ImagesLoaded( elem, options, onAlways ) {
return new ImagesLoaded( elem, options, onAlways );
}
// use elem as selector string
+ var queryElem = elem;
if ( typeof elem == 'string' ) {
- elem = document.querySelectorAll( elem );
+ queryElem = document.querySelectorAll( elem );
+ }
+ // bail if bad element
+ if ( !queryElem ) {
+ console.error( 'Bad element for imagesLoaded ' + ( queryElem || elem ) );
+ return;
}
- this.elements = makeArray( elem );
+ this.elements = makeArray( queryElem );
this.options = extend( {}, this.options );
-
+ // shift arguments if no options set
if ( typeof options == 'function' ) {
onAlways = options;
} else {
@@ -223,9 +233,7 @@ function ImagesLoaded( elem, options, onAlways ) {
}
// HACK check async to allow time to bind listeners
- setTimeout( function() {
- this.check();
- }.bind( this ));
+ setTimeout( this.check.bind( this ) );
}
ImagesLoaded.prototype = Object.create( EvEmitter.prototype );
@@ -393,7 +401,9 @@ LoadingImage.prototype.check = function() {
};
LoadingImage.prototype.getIsImageComplete = function() {
- return this.img.complete && this.img.naturalWidth !== undefined;
+ // check for non-zero, non-undefined naturalWidth
+ // fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671
+ return this.img.complete && this.img.naturalWidth;
};
LoadingImage.prototype.confirm = function( isLoaded, message ) {
diff --git a/vendor/desandro/imagesloaded/imagesloaded.pkgd.min.js b/vendor/desandro/imagesloaded/imagesloaded.pkgd.min.js
new file mode 100644
index 000000000..e443a77d6
--- /dev/null
+++ b/vendor/desandro/imagesloaded/imagesloaded.pkgd.min.js
@@ -0,0 +1,7 @@
+/*!
+ * imagesLoaded PACKAGED v4.1.4
+ * JavaScript is all like "You images are done yet or what?"
+ * MIT License
+ */
+
+!function(e,t){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",t):"object"==typeof module&&module.exports?module.exports=t():e.EvEmitter=t()}("undefined"!=typeof window?window:this,function(){function e(){}var t=e.prototype;return t.on=function(e,t){if(e&&t){var i=this._events=this._events||{},n=i[e]=i[e]||[];return n.indexOf(t)==-1&&n.push(t),this}},t.once=function(e,t){if(e&&t){this.on(e,t);var i=this._onceEvents=this._onceEvents||{},n=i[e]=i[e]||{};return n[t]=!0,this}},t.off=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){var n=i.indexOf(t);return n!=-1&&i.splice(n,1),this}},t.emitEvent=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){i=i.slice(0),t=t||[];for(var n=this._onceEvents&&this._onceEvents[e],o=0;o<i.length;o++){var r=i[o],s=n&&n[r];s&&(this.off(e,r),delete n[r]),r.apply(this,t)}return this}},t.allOff=function(){delete this._events,delete this._onceEvents},e}),function(e,t){"use strict";"function"==typeof define&&define.amd?define(["ev-emitter/ev-emitter"],function(i){return t(e,i)}):"object"==typeof module&&module.exports?module.exports=t(e,require("ev-emitter")):e.imagesLoaded=t(e,e.EvEmitter)}("undefined"!=typeof window?window:this,function(e,t){function i(e,t){for(var i in t)e[i]=t[i];return e}function n(e){if(Array.isArray(e))return e;var t="object"==typeof e&&"number"==typeof e.length;return t?d.call(e):[e]}function o(e,t,r){if(!(this instanceof o))return new o(e,t,r);var s=e;return"string"==typeof e&&(s=document.querySelectorAll(e)),s?(this.elements=n(s),this.options=i({},this.options),"function"==typeof t?r=t:i(this.options,t),r&&this.on("always",r),this.getImages(),h&&(this.jqDeferred=new h.Deferred),void setTimeout(this.check.bind(this))):void a.error("Bad element for imagesLoaded "+(s||e))}function r(e){this.img=e}function s(e,t){this.url=e,this.element=t,this.img=new Image}var h=e.jQuery,a=e.console,d=Array.prototype.slice;o.prototype=Object.create(t.prototype),o.prototype.options={},o.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)},o.prototype.addElementImages=function(e){"IMG"==e.nodeName&&this.addImage(e),this.options.background===!0&&this.addElementBackgroundImages(e);var t=e.nodeType;if(t&&u[t]){for(var i=e.querySelectorAll("img"),n=0;n<i.length;n++){var o=i[n];this.addImage(o)}if("string"==typeof this.options.background){var r=e.querySelectorAll(this.options.background);for(n=0;n<r.length;n++){var s=r[n];this.addElementBackgroundImages(s)}}}};var u={1:!0,9:!0,11:!0};return o.prototype.addElementBackgroundImages=function(e){var t=getComputedStyle(e);if(t)for(var i=/url\((['"])?(.*?)\1\)/gi,n=i.exec(t.backgroundImage);null!==n;){var o=n&&n[2];o&&this.addBackground(o,e),n=i.exec(t.backgroundImage)}},o.prototype.addImage=function(e){var t=new r(e);this.images.push(t)},o.prototype.addBackground=function(e,t){var i=new s(e,t);this.images.push(i)},o.prototype.check=function(){function e(e,i,n){setTimeout(function(){t.progress(e,i,n)})}var t=this;return this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?void this.images.forEach(function(t){t.once("progress",e),t.check()}):void this.complete()},o.prototype.progress=function(e,t,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded,this.emitEvent("progress",[this,e,t]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,e),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&a&&a.log("progress: "+i,e,t)},o.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(e,[this]),this.emitEvent("always",[this]),this.jqDeferred){var t=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[t](this)}},r.prototype=Object.create(t.prototype),r.prototype.check=function(){var e=this.getIsImageComplete();return e?void this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),void(this.proxyImage.src=this.img.src))},r.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWidth},r.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.img,t])},r.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},r.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},r.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},r.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype=Object.create(r.prototype),s.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url;var e=this.getIsImageComplete();e&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},s.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.element,t])},o.makeJQueryPlugin=function(t){t=t||e.jQuery,t&&(h=t,h.fn.imagesLoaded=function(e,t){var i=new o(this,e,t);return i.jqDeferred.promise(h(this))})},o.makeJQueryPlugin(),o}); \ No newline at end of file
diff --git a/vendor/desandro/imagesloaded/package.json b/vendor/desandro/imagesloaded/package.json
new file mode 100644
index 000000000..ced516d8e
--- /dev/null
+++ b/vendor/desandro/imagesloaded/package.json
@@ -0,0 +1,48 @@
+{
+ "name": "imagesloaded",
+ "version": "4.1.4",
+ "description": "JavaScript is all like _You images done yet or what?_",
+ "main": "imagesloaded.js",
+ "dependencies": {
+ "ev-emitter": "^1.0.0"
+ },
+ "devDependencies": {
+ "chalk": "^1.1.1",
+ "cheerio": "^0.19.0",
+ "gulp": "^3.9.0",
+ "gulp-jshint": "^1.11.2",
+ "gulp-json-lint": "^0.1.0",
+ "gulp-rename": "^1.2.2",
+ "gulp-replace": "^0.5.4",
+ "gulp-requirejs-optimize": "github:metafizzy/gulp-requirejs-optimize",
+ "gulp-uglify": "^1.4.2",
+ "gulp-util": "^3.0.7",
+ "highlight.js": "^8.9.1",
+ "marked": "^0.3.5",
+ "minimist": "^1.2.0",
+ "transfob": "^1.0.0"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/desandro/imagesloaded.git"
+ },
+ "keywords": [
+ "images",
+ "loaded",
+ "ui",
+ "dom",
+ "jquery-plugin"
+ ],
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/desandro/imagesloaded/issues"
+ },
+ "homepage": "https://github.com/desandro/imagesloaded",
+ "directories": {
+ "test": "test"
+ },
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "author": "David DeSandro"
+}
diff --git a/vendor/desandro/imagesloaded/sandbox/background/css/background.css b/vendor/desandro/imagesloaded/sandbox/background/css/background.css
new file mode 100644
index 000000000..509966a7d
--- /dev/null
+++ b/vendor/desandro/imagesloaded/sandbox/background/css/background.css
@@ -0,0 +1,29 @@
+.box {
+ width: 300px;
+ height: 300px;
+ margin: 0 20px 20px 0;
+ border: 1px solid;
+ display: inline-block;
+}
+
+.orange-tree {
+ background: url('http://i.imgur.com/bwy74ok.jpg');
+ background-size: cover;
+}
+
+.thunder-cloud {
+ background: url('../../../test/img/thunder-cloud.jpg');
+ background-size: contain;
+}
+
+.multi1 {
+ background:
+ url("http://i.imgur.com/ZAVN3.png"),
+ url('http://i.imgur.com/6UdOxeB.png') bottom right,
+ url(http://i.imgur.com/LkmcILl.jpg);
+ background-size: cover;
+}
+
+.blue {
+ background: #09F;
+} \ No newline at end of file
diff --git a/vendor/desandro/imagesloaded/sandbox/background/index.html b/vendor/desandro/imagesloaded/sandbox/background/index.html
new file mode 100644
index 000000000..853f8ff35
--- /dev/null
+++ b/vendor/desandro/imagesloaded/sandbox/background/index.html
@@ -0,0 +1,51 @@
+<!doctype html>
+<html>
+<head>
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width" />
+
+ <title>background</title>
+
+ <!-- put in separate folder so JS path is different from CSS path -->
+ <link rel="stylesheet" href="css/background.css" >
+
+</head>
+<body>
+
+ <h1>background</h1>
+
+<div class="box orange-tree"></div>
+
+<div class="box thunder-cloud"></div>
+
+<div class="box multi1"></div>
+
+<div class="box blue"></div>
+
+<script src="../../bower_components/ev-emitter/ev-emitter.js"></script>
+<script src="../../imagesloaded.js"></script>
+<script>
+
+var imgLoad0 = imagesLoaded( '.orange-tree', { background: true }, function() {
+ console.log('orange tree bg images loaded', imgLoad0.images.length );
+});
+
+var imgLoad1 = imagesLoaded( '.thunder-cloud', { background: true }, function() {
+ console.log('thunder cloud bg images loaded', imgLoad1.images.length);
+});
+
+var imgLoad2 = imagesLoaded( '.multi1', { background: true }, function() {
+ console.log('multi1 bg images loaded', imgLoad2.images.length);
+});
+
+var imgLoad3 = imagesLoaded( '.box', { background: true }, function() {
+ console.log('.box bg images loaded', imgLoad3.images.length);
+});
+imgLoad3.on('progress', function( instance, image, element ) {
+ console.log( 'progress on .box', image.img.src, element.className );
+});
+
+</script>
+
+</body>
+</html>
diff --git a/vendor/desandro/imagesloaded/sandbox/progress/index.html b/vendor/desandro/imagesloaded/sandbox/progress/index.html
new file mode 100644
index 000000000..b01ce28c5
--- /dev/null
+++ b/vendor/desandro/imagesloaded/sandbox/progress/index.html
@@ -0,0 +1,89 @@
+<!doctype html>
+<html>
+<head>
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width" />
+
+ <title>progress</title>
+
+ <style>
+ #image-container img {
+ max-height: 140px;
+ }
+
+ li {
+ height: 140px;
+ min-width: 100px;
+ display: block;
+ float: left;
+ list-style: none;
+ margin: 0 5px 5px 0;
+ background-color: black;
+ background-position: center center;
+ background-repeat: no-repeat;
+ }
+
+ li img,
+ #status {
+ -webkit-transition: opacity 0.4s;
+ -moz-transition: opacity 0.4s;
+ -ms-transition: opacity 0.4s;
+ transition: opacity 0.4s;
+ }
+
+ li.is-loading {
+ background-color: black;
+ background-image: url('http://desandro.github.io/imagesloaded/assets/loading.gif');
+ }
+
+ li.is-broken {
+ background-image: url('http://desandro.github.io/imagesloaded/assets/broken.png');
+ background-color: #be3730;
+ width: 120px;
+ }
+
+ li.is-loading img,
+ li.is-broken img {
+ opacity: 0;
+ }
+
+ .buttons { margin-bottom: 1.0em; }
+
+ button {
+ font-size: 18px;
+ padding: 0.4em 0.8em;
+ font-family: sans-serif;
+ }
+
+ #status {
+ opacity: 0;
+ position: fixed;
+ right: 20px;
+ top: 20px;
+ background: hsla( 0, 0%, 0%, 0.8);
+ padding: 20px;
+ border-radius: 10px;
+ z-index: 2; /* over other stuff */
+ }
+ </style>
+
+</head>
+<body>
+
+ <h1>progress</h1>
+
+ <div class="buttons">
+ <button id="add">Add images</button>
+ <button id="reset">Reset</button>
+ </div>
+ <div id="status">
+ <progress max="7" value="0"></progress>
+ </div>
+ <div id="image-container"></div>
+
+<script src="../../bower_components/ev-emitter/ev-emitter.js"></script>
+<script src="../../imagesloaded.js"></script>
+<script src="progress.js"></script>
+
+</body>
+</html>
diff --git a/vendor/desandro/imagesloaded/sandbox/progress/progress.js b/vendor/desandro/imagesloaded/sandbox/progress/progress.js
new file mode 100644
index 000000000..7c00003f5
--- /dev/null
+++ b/vendor/desandro/imagesloaded/sandbox/progress/progress.js
@@ -0,0 +1,111 @@
+/* jshint strict: false */
+
+var progressElem, statusElem;
+var supportsProgress;
+var loadedImageCount, imageCount;
+
+var container = document.querySelector('#image-container');
+statusElem = document.querySelector('#status');
+progressElem = document.querySelector('progress');
+
+supportsProgress = progressElem &&
+ // IE does not support progress
+ progressElem.toString().indexOf('Unknown') === -1;
+
+document.querySelector('#add').onclick = function() {
+ // add new images
+ var fragment = getItemsFragment();
+ container.insertBefore( fragment, container.firstChild );
+ // use ImagesLoaded
+ var imgLoad = imagesLoaded( container );
+ imgLoad.on( 'progress', onProgress );
+ imgLoad.on( 'always', onAlways );
+ // reset progress counter
+ imageCount = imgLoad.images.length;
+ resetProgress();
+ updateProgress( 0 );
+};
+
+// reset container
+document.querySelector('#reset').onclick = function() {
+ empty( container );
+};
+
+// ----- set text helper ----- //
+
+var docElem = document.documentElement;
+var textSetter = docElem.textContent !== undefined ? 'textContent' : 'innerText';
+
+function setText( elem, value ) {
+ elem[ textSetter ] = value;
+}
+
+function empty( elem ) {
+ while ( elem.firstChild ) {
+ elem.removeChild( elem.firstChild );
+ }
+}
+
+// ----- ----- //
+
+// return doc fragment with
+function getItemsFragment() {
+ var fragment = document.createDocumentFragment();
+ for ( var i = 0; i < 7; i++ ) {
+ var item = getImageItem();
+ fragment.appendChild( item );
+ }
+ return fragment;
+}
+
+// return an <li> with a <img> in it
+function getImageItem() {
+ var item = document.createElement('li');
+ item.className = 'is-loading';
+ var img = document.createElement('img');
+ var size = Math.random() * 3 + 1;
+ var width = Math.random() * 110 + 100;
+ width = Math.round( width * size );
+ var height = Math.round( 140 * size );
+ var rando = Math.ceil( Math.random() * 1000 );
+ // 10% chance of broken image src
+ // random parameter to prevent cached images
+ img.src = rando < 100 ? '//foo/broken-' + rando + '.jpg' :
+ // use picsum for great random images
+ 'https://picsum.photos/' + width + '/' + height + '/' + '?random';
+ item.appendChild( img );
+ return item;
+}
+
+// ----- ----- //
+
+function resetProgress() {
+ statusElem.style.opacity = 1;
+ loadedImageCount = 0;
+ if ( supportsProgress ) {
+ progressElem.setAttribute( 'max', imageCount );
+ }
+}
+
+function updateProgress( value ) {
+ if ( supportsProgress ) {
+ progressElem.setAttribute( 'value', value );
+ } else {
+ // if you don't support progress elem
+ setText( statusElem, value + ' / ' + imageCount );
+ }
+}
+
+// triggered after each item is loaded
+function onProgress( imgLoad, image ) {
+ // change class if the image is loaded or broken
+ image.img.parentNode.className = image.isLoaded ? '' : 'is-broken';
+ // update progress element
+ loadedImageCount++;
+ updateProgress( loadedImageCount );
+}
+
+// hide status when done
+function onAlways() {
+ statusElem.style.opacity = 0;
+}
diff --git a/vendor/desandro/imagesloaded/test/css/tests.css b/vendor/desandro/imagesloaded/test/css/tests.css
new file mode 100644
index 000000000..af8a7e885
--- /dev/null
+++ b/vendor/desandro/imagesloaded/test/css/tests.css
@@ -0,0 +1,41 @@
+img {
+ display: inline-block;
+ max-width: 240px;
+}
+
+/* ---- backgrounds ---- */
+
+.bg-box {
+ width: 240px;
+ height: 240px;
+ margin: 0 20px 20px 0;
+ border: 1px solid;
+ display: inline-block;
+}
+
+.bg-box.tulip {
+ background: url('http://i.imgur.com/9xYjgCk.jpg');
+ background-size: cover;
+}
+
+.bg-box.thunder-cloud {
+ background: url('../img/thunder-cloud.jpg');
+ background-size: contain;
+}
+
+.bg-box.multi {
+ background:
+ url("http://i.imgur.com/ZAVN3.png"),
+ url('http://i.imgur.com/6UdOxeB.png') bottom right,
+ url(https://picsum.photos/601/401/?random);
+ background-size: cover;
+}
+
+.bg-box.blue {
+ background: #09F;
+}
+
+.bg-box.gulls {
+ background-image: url('http://i.imgur.com/qKhkOKC.jpg');
+ background-size: cover;
+}
diff --git a/vendor/desandro/imagesloaded/test/img/blue-shell.jpg b/vendor/desandro/imagesloaded/test/img/blue-shell.jpg
new file mode 100644
index 000000000..b47f1e927
--- /dev/null
+++ b/vendor/desandro/imagesloaded/test/img/blue-shell.jpg
Binary files differ
diff --git a/vendor/desandro/imagesloaded/test/img/bowser-jr.jpg b/vendor/desandro/imagesloaded/test/img/bowser-jr.jpg
new file mode 100644
index 000000000..b1de2a76f
--- /dev/null
+++ b/vendor/desandro/imagesloaded/test/img/bowser-jr.jpg
Binary files differ
diff --git a/vendor/desandro/imagesloaded/test/img/thunder-cloud.jpg b/vendor/desandro/imagesloaded/test/img/thunder-cloud.jpg
new file mode 100644
index 000000000..54fc9a1b7
--- /dev/null
+++ b/vendor/desandro/imagesloaded/test/img/thunder-cloud.jpg
Binary files differ
diff --git a/vendor/desandro/imagesloaded/test/index.html b/vendor/desandro/imagesloaded/test/index.html
new file mode 100644
index 000000000..02b04f4a6
--- /dev/null
+++ b/vendor/desandro/imagesloaded/test/index.html
@@ -0,0 +1,104 @@
+<!doctype html>
+<html>
+<head>
+ <meta charset="utf-8">
+
+ <title>imagesLoaded tests</title>
+
+ <link rel="stylesheet" href="../bower_components/qunit/qunit/qunit.css" />
+ <link rel="stylesheet" href="css/tests.css" />
+
+ <script src="../bower_components/ev-emitter/ev-emitter.js"></script>
+ <script src="../bower_components/qunit/qunit/qunit.js"></script>
+ <script src="../bower_components/jquery/dist/jquery.js"></script>
+
+ <script src="../imagesloaded.js"></script>
+
+ <script src="unit/basics.js"></script>
+ <script src="unit/selector-string.js"></script>
+ <script src="unit/single-element.js"></script>
+ <script src="unit/local-files.js"></script>
+ <script src="unit/data-uri.js"></script>
+ <script src="unit/append.js"></script>
+ <script src="unit/no-images.js"></script>
+ <script src="unit/jquery-success.js"></script>
+ <script src="unit/jquery-fail.js"></script>
+ <script src="unit/non-element.js"></script>
+ <script src="unit/background.js"></script>
+
+</head>
+<body>
+
+ <h1>imagesLoaded tests</h1>
+
+ <div id="qunit"></div>
+
+ <h2>Basics</h2>
+
+ <div id="basics">
+ <img src="http://i.imgur.com/xrQHn.jpg" />
+ <img src="http://i.imgur.com/b3fBJ.jpg" />
+ <img src="http://i.imgur.com/xmSh2.jpg" />
+ <img src="http://i.imgur.com/iIpJm.jpg" />
+ <img src="http://i.imgur.com/cvZZl10.gif" />
+ </div>
+
+ <img id="mario-with-shell" src="http://i.imgur.com/ZAVN3.png" >
+
+ <h2>Locals</h2>
+
+ <div id="locals">
+ <img src="img/blue-shell.jpg" />
+ <img src="img/bowser-jr.jpg" />
+ <!-- thunder cloud has bad permissions, should 403 -->
+ <img src="img/not-there.jpg" />
+ </div>
+
+ <h2>Data URI</h2>
+
+ <div id="data-uri">
+ <img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAARgAA/+4ADkFkb2JlAGTAAAAAAf/bAIQABAMDAwMDBAMDBAYEAwQGBwUEBAUHCAYGBwYGCAoICQkJCQgKCgwMDAwMCgwMDQ0MDBERERERFBQUFBQUFBQUFAEEBQUIBwgPCgoPFA4ODhQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU/8AAEQgAMAAwAwERAAIRAQMRAf/EAJMAAAEFAQEBAAAAAAAAAAAAAAYAAwQHCAUBAgEAAgIDAQEAAAAAAAAAAAAAAAUEBgECAwcIEAABAwMDAgQFAwUAAAAAAAACAQMEEQUGACESMQdBUSIyYUJiExRSIwihgiQVFhEAAQMCBQEFBgcAAAAAAAAAAQARAgMEITFBEgVRYYGRIgZxocHRchPw4TJCIxQH/9oADAMBAAIRAxEAPwDf2hCWhC42R5JBxuF+RJq7JcqMWIC/uOmngnkKfMXh/TSTmOZt+MoGrVP0x1kez4nTwCl21rOvPbHvPRRMHuFzutmcuF2NClPyn1ERSjYNiXEQD4DTx389RvTl/VvrKNxUzqGRA6B2AHgt72lGlVMI/tbxRJqyKCloQloQm31eRlxY4iT6CqtCaqIqVNkVURaJXWk9207W3Ng+T9qyGfFUtPutrbyFIuazTtWRyy+1FbuIKyw9v6QiO7tODVdhEuXmldfM/qbi+arXMql2A2hDmAHQM7D29+Kt9tc04w20Rh7+9FkKZIx1VFhf8bkv3I5biqqu6p5Kvw0u9N+sL3iav9eX8tJ22dPoOnsy7FwrW8bnzZS6/NHkZ4pEdt42yZIxQlaP3DXwXX1LQqmrTjMxMNwfbLMdh7VWJBiQ7p3Xdapt99mMy5JkOC1HZEnHXTVBEQBKkSqvRERN9CFSFx7q5PkqOz8TfZs2ON8lizJDIvyZLadHlFxeLYF1BOKlTdadNWy34emIg1XMjoNElr35EmgEORO4uaXWUNnya2QMpxZ50FemSWBhuxXBJFB9tKGDn219ftAtvStdJvUnEQHHXEqQJIpTaP6jI7SwGrk5KVZ3z1IieDkfgqDkOf8AcEsmQ7FGbs+LspRm7SowzJkh2u7iNGvFhpE9iqJGXVeOvPfQX+Yw4+Iu+Q89zIOIPhSfqdanXSOQxxU6+5oSBhROA9/5Isgd08vxltq5ZQ+zfccNUKZIYZFiUwz4ugjXocEfcQ8UKnRa7a9cuOHpyiftOJDQ6pPR5AmTTCvONJYmR2ZcVwXosgBdYeBeQG2aIQkKp1RUWqaqZDJ0qL7p5U9nz1w7cY887FtMSQLGR3JteKyVb9TkJrxQK0F4/HcE8V1ZONsAwrVMtB8Uru7v7flGaGZlqdt8AGnXUOMwQqTYogjTolUTy1Z4yEkid1DwPIrzLzLKbNdba7GsFo+wlruDraCxL/IqQ/jkgopIAJ+9Ui9dKcemlUjWlUkCPKGbwXWpCAhEjMu697gZHfYmW4pabRbnZVjuzjwXa4NAJsRRZ4kX5JKKqCE2pfaUVH1pvXprANaE4iIwLv4IpxgYSJzGSnwLQ7cbe4DLyNx3iJRbVEIadFoi+emkpiJXEll2O1uXu9u5cLt1fnXZVinS1ZsFwMuSwjfWoRHK7q0p1RkvkqgL6aKlc5Pj3BrQ7x8fmn1pd7/Kc1W9zukjtr3AvuMX0VjPSpsm5WqQ5sEyFMeJ4XGyXYlFSVtxE3Eh36ppnYV4VKMRqAyj3luTJwuxIvzV6bKG2+ipJFRJQXdBXqqeVNMwAEs2mKYKZc7MItPG3NbH2PI4jLnH6gL01+IrocrIAllgkk26XgSaYJuG2XueJxHnOPjxAdq+XJaaHKCBHPFSYeQt2JoYDj9Ejigipruop4rrBiDmsGBlih+DOkdzc8s2K2BFkPtTI1wukltOTcOFDeB43XFTZFLigNoq1Ii26Lpdf3EKdEjUhgmdpbyEnK1plWF4pm8BLZltoi3eEKqTYSm0MmyXqTZ7EBbdQVF1R4VJQLxLJ2Q6zdlX8asvxO5O3TtPLbulofLktiukhWpbH0syTRRcBPAXaEn6i0+teV24T8VFq24mEMOdve/F3f8Awf8AjljPJRClS5sQIqeFeYOGS0+kFXTGXLUgMCosbJl9tdu+/FoeWEuHpKc3QZUSdFKMXxQnHGyT+4E0R5aiRiidk6IsX/jVmOW3Jq5d15bdqsrBcksdrfV2Y/T5XZIIgttr8yNciX9Q6X3XK7g0PFSqVuILSmLYbiuE2/8A1eJ2iLaIKrycbitoCuElfU4XuMt+pqq6QTqSmXkXUoBl/9k=" />
+ <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAAwCAMAAAC/knOqAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMBQTFRFkF0QF27/Bgsp/fQF+fr6jqvpDEG2zp4CCx9Ys4IFo5JU8MqQXJH2Ulxj89QDC0bIsrKxIHn//fxztcv2iYqG5ebmCjCHzNjxAzTYRmih2drcCzijMof+OB8U/Pg59PHXE2D9xMK9eUMDAVf8kXNP/fvr2eP0p6WgOUtnAkX7Eljwa3WB5er2UXjVC0jZAh9/EFHa8PHyl5mZJVKt6NM34dzNz87NASGpsbzZDlDytq4tLWfs4bQFyLNp////+/v7DjziEwAAAEB0Uk5T////////////////////////////////////////////////////////////////////////////////////AMJ7sUQAAAPaSURBVHjadNWLdqo6EAZgQKGRA0YUYzRQY1ELqFykiojV93+rM0FQbLt/VlcvfpmVhGQq3V6TjgyjLOWyNIzR9sdn0stvE0MuQrmOZxmjf9pRybln+sJZspWZiSU7o7+twTmXtcU3BmhZ4f6/zLJk2ej+ttsyDIXVN4klsGzqmQP1ZXn9044TQbmcuS5Yx3Ic380cy2rj2qZJktzrui7MFqiDKlutcv1ip0mNseuGFbaedeVd235qGOMkAo4VJYB4AVcUbHG5erjxtN1ME8kwpgHybV0/63vbRF5QrUFk+7ADwpgGD82nva9+p4m+CQKYWFjwUH3YKYNkjPrnCr6/D4fz93f46WsKuIDqu8amPmGE5bnZr2u+fw2Hwwr3N4FYRZKsazshBLCggPv9S79K56saV+NRbU8McO6+ifSavL1dLtVQk2LYT7VtY/hcgnw8HgkGAL9Q2E78tDGJfWBV3CbiFwnqmzlsfmPXUDd2pTtUFAVVj6IIDtVNqmGtmW+aEYJQDZ9puM/gPTX7cNtBYeS7r+z+hVyfAp0+3gUsDsXKP5IXGLPne7uVUJf8TRFPEi1Ln1YVq/sbazzBbN8+v2LGjCguzNBtllVRwovoPtvnvcgYihlpLaueQeFRjY1f79vWhxfCGKpz54gVRYTZ7Nedn8JeiPNG7lhBGS2KIKdZ99edT6cKQjEiBGMf+UhhZRFQSnG02/60J9i0qmCMcsbimPGABkXIRYdQX+2EaaEcinOc57GWlWXpeR7cYqsUPWj0YksKN73QNEpLdZJer9d0rToeVC2LEG5+2rIqLjjXKKPJ6PrMxPJkK6DcsdSn3dIo5DnK8113de22tOHJWhyUDp88rBFFPEJxvruu0jYVOEE0tCyjsSMchQVBOZ3Px+MfeOehmHJLbs76LioKpuT5QND0hV4nnqZoGPrb3Z6iKNIUJc6Os5nA3ZfKTgCvGtq3Kuw2BIpMP5/O/8JGQEzC4N/BGuyuwAyZKYvtw/GOYc7A4RHf1ICNbUIi2blJqocJWt5Skm8OiyPo8aGufX/UQJvd9sSPZFUqKfGPcHRYPF0MBovT8VhXh3TT1cqgFM7kzESslEbqUezdyszJ4HvwKfhi8eCra0incwFm+1N9Hub9ztnffOqf+0/IY8BhpWbnTmfePjurs2iJZ922dXsPqQcMFouqWfbnLfst+ii05t7Stjd2lb0Y1Lt0hkA73y3bexNddzjs93S7yd5e9i4XaPFQ5tLqD5LohxfouG+S5G/u8T8+7l34Al25+7SHpVRlKS312fo4OA0Ws7Fe/1FaLg+V+l+AAQAurhhy+upm/wAAAABJRU5ErkJggg==" />
+ </div>
+
+ <h2>append</h2>
+
+ <div id="append"></div>
+
+ <h2>no images</h2>
+
+ <div id="no-images"></div>
+
+ <h2>jQuery success</h2>
+
+ <div id="jquery-success">
+ <img src="http://i.imgur.com/YbYCPFF.png" />
+ <img src="http://i.imgur.com/6UdOxeB.png" />
+ <img src="http://i.imgur.com/qd8G15D.png" />
+ </div>
+
+ <h2>jQuery fail</h2>
+
+ <div id="jquery-fail">
+ <img src="http://i.imgur.com/xmSh2.jpg" />
+ <img src="img/bowser-jr.jpg" />
+ <img src="http://i.imgur.com/ZAVN3.png">
+ <img src="img/not-there.jpg" />
+ <img src="foobar.jpg" />
+ </div>
+
+ <h2>background</h2>
+
+ <div id="background">
+ <div class="bg-box tulip"></div>
+ <div class="bg-box thunder-cloud"></div>
+ <div class="bg-box multi"></div>
+ <div class="bg-box blue"></div>
+ <div class="bg-box gulls">
+ <img src="https://picsum.photos/400/300/?random" />
+ <img src="https://picsum.photos/800/600/?random" />
+ </div>
+ </div>
+
+</body>
+</html>
diff --git a/vendor/desandro/imagesloaded/test/unit/append.js b/vendor/desandro/imagesloaded/test/unit/append.js
new file mode 100644
index 000000000..7a6b3c827
--- /dev/null
+++ b/vendor/desandro/imagesloaded/test/unit/append.js
@@ -0,0 +1,30 @@
+QUnit.test( 'append', function( assert ) {
+ 'use strict';
+
+ var imgUrls = [
+ 'http://i.imgur.com/bwy74ok.jpg',
+ 'http://i.imgur.com/bAZWoqx.jpg',
+ 'http://i.imgur.com/PgmEBSB.jpg',
+ 'http://i.imgur.com/aboaFoB.jpg',
+ 'http://i.imgur.com/LkmcILl.jpg',
+ 'http://i.imgur.com/q9zO6tw.jpg'
+ ];
+
+ // create images
+ var fragment = document.createDocumentFragment();
+ for ( var i=0, len = imgUrls.length; i < len; i++ ) {
+ var img = document.createElement('img');
+ img.src = imgUrls[i];
+ fragment.appendChild( img );
+ }
+
+ var elem = document.querySelector('#append');
+ elem.appendChild( fragment );
+ var done = assert.async();
+
+ imagesLoaded( elem, { debug: false } ).on( 'always', function() {
+ assert.ok( 'appended images loaded' );
+ done();
+ });
+
+});
diff --git a/vendor/desandro/imagesloaded/test/unit/background.js b/vendor/desandro/imagesloaded/test/unit/background.js
new file mode 100644
index 000000000..ca76fad6f
--- /dev/null
+++ b/vendor/desandro/imagesloaded/test/unit/background.js
@@ -0,0 +1,70 @@
+QUnit.test( 'background', function( assert ) {
+ 'use strict';
+
+ // from Modernizr
+ var supportsMultiBGs = ( function() {
+ var style = document.createElement('a').style;
+ style.cssText = 'background:url(https://),url(https://),red url(https://)';
+ return (/(url\s*\(.*?){3}/).test(style.background);
+ })();
+
+ var multiBGCount = supportsMultiBGs ? 3 : 0;
+ var done = assert.async( 14 + multiBGCount );
+
+ var imgLoad0 = imagesLoaded( '#background .tulip', { background: true }, function() {
+ assert.ok( true, 'callback triggered on .orange-tree');
+ done();
+ });
+ assert.equal( imgLoad0.images.length, 1, '1 image on .images' );
+
+ imgLoad0.on( 'progress', function( instance, image, element ) {
+ assert.ok( element.nodeName == 'DIV', 'progress; element is div');
+ assert.ok( image.isLoaded, 'progress; image.isLoaded');
+ done();
+ });
+
+ var imgLoad1 = imagesLoaded( '#background .thunder-cloud', { background: true }, function() {
+ assert.ok( true, 'callback triggered on .thunder-cloud');
+ done();
+ });
+ assert.equal( imgLoad1.images.length, 1, '1 image on .images' );
+
+ // multiple backgrounds
+ var imgLoad2 = imagesLoaded( '#background .multi', { background: true }, function() {
+ assert.ok( true, 'callback triggered on .multi');
+ done();
+ });
+ assert.equal( imgLoad2.images.length, multiBGCount, 'correct multiple BG count on .images' );
+
+ // multiple elements
+ var imgLoad3 = imagesLoaded( '#background .bg-box', { background: true }, function() {
+ assert.ok( true, 'callback triggered on .bg-box');
+ var count = 5 + multiBGCount;
+ assert.equal( imgLoad3.images.length, count, count + ' images on .bg-box' );
+ done();
+ });
+
+ imgLoad3.on('progress', function( instance, image/*, element */) {
+ assert.ok( true, 'progress on .bg-box; ' + image.img.src );
+ assert.equal( image.isLoaded, true, 'image.isLoaded == true' );
+ done();
+ });
+
+ // background and <img> children
+ var imgLoad4 = imagesLoaded( '#background .gulls', { background: true } );
+ assert.equal( imgLoad4.images.length, 3, '3 images: 1 background and 2 <img>' );
+
+ imgLoad4.on( 'progress', function( instance, image ) {
+ assert.equal( image.isLoaded, true, 'image is loaded' );
+ done();
+ });
+
+ // child background selector
+ var imgLoad5 = imagesLoaded( '#background', { background: '.bg-box' }, function() {
+ var count = 5 + multiBGCount;
+ assert.equal( imgLoad5.images.length, count,
+ count + ' images on .bg-box, with {background: .bg-box}' );
+ done();
+ });
+
+});
diff --git a/vendor/desandro/imagesloaded/test/unit/basics.js b/vendor/desandro/imagesloaded/test/unit/basics.js
new file mode 100644
index 000000000..6c502a793
--- /dev/null
+++ b/vendor/desandro/imagesloaded/test/unit/basics.js
@@ -0,0 +1,28 @@
+QUnit.test( 'basics', function( assert ) {
+
+ 'use strict';
+
+ var elem = document.querySelector('#basics');
+ var images = elem.querySelectorAll('img');
+ var done = assert.async( 3 + images.length );
+
+ var imgLoader = new imagesLoaded( elem, function( obj ) {
+ assert.ok( true, 'callback function triggered' );
+ assert.equal( imgLoader, obj, 'callback argument and instance match' );
+ done();
+ });
+ imgLoader.on( 'done', function() {
+ assert.ok( true, 'done event triggered' );
+ done();
+ });
+ imgLoader.on( 'always', function() {
+ assert.ok( true, 'always event triggered' );
+ done();
+ });
+
+ imgLoader.on( 'progress', function( loader, image ) {
+ assert.ok( image.isLoaded, 'image is loaded');
+ done();
+ });
+
+});
diff --git a/vendor/desandro/imagesloaded/test/unit/data-uri.js b/vendor/desandro/imagesloaded/test/unit/data-uri.js
new file mode 100644
index 000000000..635f69859
--- /dev/null
+++ b/vendor/desandro/imagesloaded/test/unit/data-uri.js
@@ -0,0 +1,10 @@
+QUnit.test( 'data-uri', function( assert ) {
+ 'use strict';
+
+ var done = assert.async();
+ imagesLoaded('#data-uri', { debug: false }).on( 'done', function( obj ) {
+ assert.ok( true, 'data-uri images loaded' );
+ assert.equal( obj.images.length, 2, 'instance has 2 images' );
+ done();
+ });
+});
diff --git a/vendor/desandro/imagesloaded/test/unit/jquery-fail.js b/vendor/desandro/imagesloaded/test/unit/jquery-fail.js
new file mode 100644
index 000000000..b2180f6f2
--- /dev/null
+++ b/vendor/desandro/imagesloaded/test/unit/jquery-fail.js
@@ -0,0 +1,29 @@
+QUnit.test( 'jquery fail', function( assert ) {
+
+ 'use strict';
+
+ var $ = window.jQuery;
+ var $images = $('#jquery-fail img');
+ var done = assert.async( 3 + $images.length );
+
+ $('#jquery-fail').imagesLoaded( function( instance ) {
+ assert.ok( true, 'callback triggered' );
+ assert.ok( instance instanceof imagesLoaded, 'instance instanceof imagesLoaded' );
+ done();
+ })
+ .fail( function( instance ) {
+ assert.ok( true, 'fail triggered' );
+ assert.ok( instance instanceof imagesLoaded, 'instance instanceof imagesLoaded' );
+ done();
+ })
+ .always( function( instance ) {
+ assert.ok( true, 'always triggered' );
+ assert.ok( instance instanceof imagesLoaded, 'instance instanceof imagesLoaded' );
+ done();
+ })
+ .progress( function(/* instance, image */) {
+ assert.ok( true, 'progress trigged');
+ done();
+ });
+
+ });
diff --git a/vendor/desandro/imagesloaded/test/unit/jquery-success.js b/vendor/desandro/imagesloaded/test/unit/jquery-success.js
new file mode 100644
index 000000000..f16621088
--- /dev/null
+++ b/vendor/desandro/imagesloaded/test/unit/jquery-success.js
@@ -0,0 +1,28 @@
+QUnit.test( 'jquery success', function( assert ) {
+
+ 'use strict';
+
+ var $ = window.jQuery;
+ var done = assert.async( 6 );
+
+ $('#jquery-success').imagesLoaded( function( instance ) {
+ assert.ok( true, 'callback triggered' );
+ assert.ok( instance instanceof imagesLoaded, 'instance instanceof imagesLoaded' );
+ done();
+ })
+ .done( function( instance ) {
+ assert.ok( true, 'done triggered' );
+ assert.ok( instance instanceof imagesLoaded, 'instance instanceof imagesLoaded' );
+ done();
+ })
+ .always( function( instance ) {
+ assert.ok( true, 'always triggered' );
+ assert.ok( instance instanceof imagesLoaded, 'instance instanceof imagesLoaded' );
+ done();
+ })
+ .progress( function( instance, image ) {
+ assert.ok( image.isLoaded, 'progress trigged, image is loaded');
+ done();
+ });
+
+});
diff --git a/vendor/desandro/imagesloaded/test/unit/local-files.js b/vendor/desandro/imagesloaded/test/unit/local-files.js
new file mode 100644
index 000000000..61da6ae92
--- /dev/null
+++ b/vendor/desandro/imagesloaded/test/unit/local-files.js
@@ -0,0 +1,31 @@
+QUnit.test( 'local files', function( assert ) {
+ 'use strict';
+
+ var elem = document.querySelector('#locals');
+ var done = assert.async( 6 );
+
+ var imgLoader = new imagesLoaded( elem, function( obj ) {
+ assert.ok( true, 'callback function triggered' );
+ assert.equal( imgLoader, obj, 'callback argument and instance match' );
+ done();
+ });
+ imgLoader.on( 'fail', function() {
+ assert.ok( true, 'fail event triggered' );
+ done();
+ });
+ imgLoader.on( 'always', function() {
+ assert.ok( true, 'always event triggered' );
+ done();
+ });
+
+ imgLoader.on( 'progress', function( loader, image ) {
+ assert.ok( true, 'image progressed');
+ if ( image.img.src.indexOf('img/not-there.jpg') !== -1 ) {
+ assert.ok( !image.isLoaded, 'thunder cloud is not loaded' );
+ } else {
+ assert.ok( image.isLoaded, 'image is loaded' );
+ }
+ done();
+ });
+
+});
diff --git a/vendor/desandro/imagesloaded/test/unit/no-images.js b/vendor/desandro/imagesloaded/test/unit/no-images.js
new file mode 100644
index 000000000..841216381
--- /dev/null
+++ b/vendor/desandro/imagesloaded/test/unit/no-images.js
@@ -0,0 +1,11 @@
+QUnit.test( 'no images', function( assert ) {
+ 'use strict';
+
+ var elem = document.querySelector('#no-images');
+ var done = assert.async();
+ imagesLoaded( elem, function() {
+ assert.ok( true, 'triggered with no images' );
+ done();
+ });
+
+});
diff --git a/vendor/desandro/imagesloaded/test/unit/non-element.js b/vendor/desandro/imagesloaded/test/unit/non-element.js
new file mode 100644
index 000000000..4c9986fa6
--- /dev/null
+++ b/vendor/desandro/imagesloaded/test/unit/non-element.js
@@ -0,0 +1,24 @@
+QUnit.test( 'dismiss non-element nodes', function( assert ) {
+ 'use strict';
+
+ var $ = window.jQuery;
+ var done = assert.async( 2 );
+
+ $(' <img src="https://picsum.photos/401/301/?random" /> <img src="https://picsum.photos/402/302/?random" /> ')
+ .imagesLoaded(function() {
+ assert.ok( true, 'elements from jQuery string ok' );
+ done();
+ });
+
+ // test fragment
+ var frag = document.createDocumentFragment();
+ var img = new Image();
+ img.src = 'https://picsum.photos/403/303/?random';
+ frag.appendChild( img );
+ var imgLoad = imagesLoaded( frag, function() {
+ assert.ok( true, 'document fragment ok' );
+ assert.equal( imgLoad.images.length, 1, '1 image found' );
+ done();
+ });
+
+});
diff --git a/vendor/desandro/imagesloaded/test/unit/selector-string.js b/vendor/desandro/imagesloaded/test/unit/selector-string.js
new file mode 100644
index 000000000..8c43c4bef
--- /dev/null
+++ b/vendor/desandro/imagesloaded/test/unit/selector-string.js
@@ -0,0 +1,12 @@
+QUnit.test( 'selector string', function( assert ) {
+ 'use strict';
+ var images = document.querySelectorAll('#basics img');
+ var done = assert.async();
+ var imgLoad = imagesLoaded('#basics', { debug: true }).on( 'done', function( obj ) {
+ assert.ok( true, 'selector string worked' );
+ assert.ok( obj.images, 'argument has images' );
+ assert.equal( obj.images.length, images.length, 'images.length matches' );
+ done();
+ });
+ assert.ok( imgLoad.options.debug, 'debug option set' );
+});
diff --git a/vendor/desandro/imagesloaded/test/unit/single-element.js b/vendor/desandro/imagesloaded/test/unit/single-element.js
new file mode 100644
index 000000000..42d7e48ee
--- /dev/null
+++ b/vendor/desandro/imagesloaded/test/unit/single-element.js
@@ -0,0 +1,11 @@
+QUnit.test( 'single element', function( assert ) {
+ 'use strict';
+ var elem = document.querySelector('#mario-with-shell');
+ var done = assert.async();
+ imagesLoaded( elem ).on( 'done', function( obj ) {
+ assert.ok( true, 'single element worked' );
+ assert.ok( obj.images, 'argument has images' );
+ assert.equal( obj.images.length, 1, 'images.length = 1' );
+ done();
+ });
+});
diff --git a/vendor/psr/log/README.md b/vendor/psr/log/README.md
index 574bc1cb2..5571a25e8 100644
--- a/vendor/psr/log/README.md
+++ b/vendor/psr/log/README.md
@@ -7,6 +7,13 @@ This repository holds all interfaces/classes/traits related to
Note that this is not a logger of its own. It is merely an interface that
describes a logger. See the specification for more details.
+Installation
+------------
+
+```bash
+composer require psr/log
+```
+
Usage
-----
diff --git a/view/css/default.css b/view/css/default.css
index 765a197d9..bd0f14ba2 100644
--- a/view/css/default.css
+++ b/view/css/default.css
@@ -1,22 +1,37 @@
main {
- display: table;
- table-layout: fixed;
position: relative;
- width: 100%;
- height: 100vh;
+ min-height: 100vh;
+ display: flex;
+ flex-direction: column;
}
-aside {
+.content {
+ display: flex;
+ flex: 1;
+}
+
+.columns {
+ display: flex;
+ flex:1;
+ min-width: 0;
+}
+
+#region_1 {
position: relative;
- display: table-cell;
- vertical-align: top;
+ order: 1;
padding: 4.5rem 7px 0px 7px;
}
-section {
+#region_2 {
position: relative;
- width: 100%;
- display: table-cell;
- vertical-align: top;
+ flex: 1;
+ order: 2;
padding: 4.5rem 7px 200px 7px;
+ min-width: 0;
+}
+
+#region_3 {
+ position: relative;
+ order: 3;
+ padding: 4.5rem 7px 0px 7px;
}
diff --git a/view/css/mod_connedit.css b/view/css/mod_connedit.css
index 67a182c5c..b02f928f0 100644
--- a/view/css/mod_connedit.css
+++ b/view/css/mod_connedit.css
@@ -71,7 +71,6 @@
width: 32px;
height: 32px;
border-radius: 4px;
- border: 1px solid #ccc;
text-align: center;
}
diff --git a/view/es-es/hmessages.po b/view/es-es/hmessages.po
index 3b42394b1..67cb21672 100644
--- a/view/es-es/hmessages.po
+++ b/view/es-es/hmessages.po
@@ -15,7 +15,7 @@ msgstr ""
"Project-Id-Version: hubzilla\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-10-19 11:04+0200\n"
-"PO-Revision-Date: 2018-10-24 11:35+0000\n"
+"PO-Revision-Date: 2018-11-21 11:04+0000\n"
"Last-Translator: Manuel JimΓ©nez Friaza <mjfriaza@disroot.org>\n"
"Language-Team: Spanish (Spain) (http://www.transifex.com/Friendica/hubzilla/language/es_ES/)\n"
"MIME-Version: 1.0\n"
@@ -1729,7 +1729,7 @@ msgstr "Importar elementos"
#: ../../Zotlabs/Module/Import_items.php:126
msgid ""
"Use this form to import existing posts and content from an export file."
-msgstr "Utilice este formulario para importar entradas existentes y contenido desde un archivo de exportaciΓ³n."
+msgstr "Utilice este formulario para importar entradas y contenido desde un archivo de exportaciΓ³n."
#: ../../Zotlabs/Module/Import_items.php:127
#: ../../Zotlabs/Module/Import.php:548
@@ -1807,7 +1807,7 @@ msgstr "Un canal es una identidad ΓΊnica en la red. Puede representar a una pers
#: ../../Zotlabs/Module/New_channel.php:183
msgid ""
"or <a href=\"import\">import an existing channel</a> from another location."
-msgstr "O <a href=\"import\">importar un canal existente</a> desde otro lugar."
+msgstr "O <a href=\"import\">importar un canal </a> desde otro lugar."
#: ../../Zotlabs/Module/New_channel.php:188
msgid "Validate"
@@ -4496,7 +4496,7 @@ 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 "Dejar en blanco para mantener su alias de canal existente. Se le asignarΓ‘ aleatoriamente uno similar si cualquiera de los dos nombres ya estΓ‘ asignado en este sitio."
+msgstr "Dejar en blanco para mantener su alias de canal . Se le asignarΓ‘ aleatoriamente uno similar si cualquiera de los dos nombres ya estΓ‘ asignado en este sitio."
#: ../../Zotlabs/Module/Import.php:562
msgid ""
@@ -4942,7 +4942,7 @@ msgstr "Introducir un nombre de Γ‘lbum"
#: ../../Zotlabs/Module/Photos.php:698
msgid "or select an existing album (doubleclick)"
-msgstr "o seleccionar uno existente (doble click)"
+msgstr "o seleccionar un Γ‘lbum (con un doble click)"
#: ../../Zotlabs/Module/Photos.php:699
msgid "Create a status post for this upload"
@@ -5010,7 +5010,7 @@ msgstr "Introducir un nuevo nombre de Γ‘lbum"
#: ../../Zotlabs/Module/Photos.php:1067
msgid "or select an existing one (doubleclick)"
-msgstr "o seleccionar uno (doble click) existente"
+msgstr "o seleccionar un Γ‘lbum (con un doble click)"
#: ../../Zotlabs/Module/Photos.php:1072
msgid "Add a Tag"
@@ -5557,7 +5557,7 @@ msgstr "Usar una foto de sus Γ‘lbumes"
#: ../../Zotlabs/Module/Profile_photo.php:474
#: ../../Zotlabs/Module/Cover_photo.php:409
msgid "Select existing photo"
-msgstr "Seleccionar una foto existente"
+msgstr "Seleccionar una foto"
#: ../../Zotlabs/Module/Profile_photo.php:493
#: ../../Zotlabs/Module/Cover_photo.php:426
@@ -8443,7 +8443,7 @@ msgid ""
"A deleted group with this name was revived. Existing item permissions "
"<strong>may</strong> apply to this group and any future members. If this is "
"not what you intended, please create another group with a different name."
-msgstr "Un grupo suprimido con este nombre ha sido restablecido. <strong>Es posible</strong> que los permisos existentes sean aplicados a este grupo y sus futuros miembros. Si no quiere esto, por favor cree otro grupo con un nombre diferente."
+msgstr "Un grupo suprimido con este nombre ha sido restablecido. <strong>Es posible</strong> que los permisos que ya existen sean aplicados a este grupo y sus futuros miembros. Si no quiere esto, por favor cree otro grupo con un nombre diferente."
#: ../../Zotlabs/Lib/Group.php:270 ../../include/group.php:264
msgid "Add new connections to this privacy group"
@@ -11149,11 +11149,11 @@ msgstr "Por favor visite el sitio web de $Projectname"
#: ../../addon/upgrade_info/upgrade_info.php:46
msgid "app store"
-msgstr "depΓ³sito de apps"
+msgstr "aplicaciones disponibles"
#: ../../addon/upgrade_info/upgrade_info.php:47
msgid "and install possibly missing apps."
-msgstr "e instalar aplicaciones que posiblemente falten."
+msgstr "e instale las aplicaciones que posiblemente falten."
#: ../../addon/upgrade_info/upgrade_info.php:52
msgid "Upgrade Info"
@@ -11364,7 +11364,7 @@ msgstr "Eliminar los datos de localizaciΓ³n geogrΓ‘fica del navegador"
#: ../../addon/hsse/hsse.php:99 ../../include/conversation.php:1302
msgid "Embed (existing) photo from your photo albums"
-msgstr "Insertar (existente) foto de sus Γ‘lbumes de fotos"
+msgstr "Insertar una foto de sus Γ‘lbumes"
#: ../../addon/hsse/hsse.php:135 ../../include/conversation.php:1338
msgid "Tag term:"
@@ -12247,7 +12247,7 @@ msgstr "Crear nuevos eventos aquΓ­."
msgid ""
"You can accept new connections and change permissions for existing ones "
"here. You can also e.g. create groups of contacts."
-msgstr "Puede aceptar nuevas conexiones y cambiar permisos para las existentes aquΓ­. TambiΓ©n puede, por ejemplo, crear grupos de contactos."
+msgstr "Puede aceptar nuevas conexiones y cambiar permisos para las que ya existen aquΓ­. TambiΓ©n puede, por ejemplo, crear grupos de contactos."
#: ../../addon/tour/tour.php:82
msgid "System notifications will arrive here"
@@ -14455,7 +14455,7 @@ msgstr "Etiquetas de la comunidad"
#: ../../include/features.php:143
msgid "Ability to tag existing posts"
-msgstr "Capacidad de etiquetar entradas existentes"
+msgstr "Capacidad de etiquetar entradas"
#: ../../include/features.php:150
msgid "Emoji Reactions"
diff --git a/view/es-es/hstrings.php b/view/es-es/hstrings.php
index a459e10dd..1dd38b930 100644
--- a/view/es-es/hstrings.php
+++ b/view/es-es/hstrings.php
@@ -300,7 +300,7 @@ App::$strings["Imported file is empty."] = "El fichero importado estΓ‘ vacΓ­o.";
App::$strings["Warning: Database versions differ by %1\$d updates."] = "AtenciΓ³n: Las versiones de la base de datos difieren en %1\$d actualizaciones.";
App::$strings["Import completed"] = "ImportaciΓ³n completada";
App::$strings["Import Items"] = "Importar elementos";
-App::$strings["Use this form to import existing posts and content from an export file."] = "Utilice este formulario para importar entradas existentes y contenido desde un archivo de exportaciΓ³n.";
+App::$strings["Use this form to import existing posts and content from an export file."] = "Utilice este formulario para importar entradas y contenido desde un archivo de exportaciΓ³n.";
App::$strings["File to Upload"] = "Fichero para subir";
App::$strings["You have created %1$.0f of %2$.0f allowed channels."] = "Ha creado %1$.0f de %2$.0f canales permitidos.";
App::$strings["Loading"] = "Cargando";
@@ -315,7 +315,7 @@ App::$strings["Select a channel permission role compatible with your usage needs
App::$strings["Read more about channel permission roles"] = "Leer mΓ‘s sobre los roles y permisos";
App::$strings["Create a Channel"] = "Crear un canal";
App::$strings["A channel is a unique network identity. It can represent a person (social network profile), a forum (group), a business or celebrity page, a newsfeed, and many other things."] = "Un canal es una identidad ΓΊnica en la red. Puede representar a una persona (un perfil de una red social), un foro o grupo, un negocio o una pΓ‘gina de una celebridad, un \"feed\" de noticias, y muchas otras cosas.";
-App::$strings["or <a href=\"import\">import an existing channel</a> from another location."] = "O <a href=\"import\">importar un canal existente</a> desde otro lugar.";
+App::$strings["or <a href=\"import\">import an existing channel</a> from another location."] = "O <a href=\"import\">importar un canal </a> desde otro lugar.";
App::$strings["Validate"] = "Validar";
App::$strings["Channel removals are not allowed within 48 hours of changing the account password."] = "La eliminaciΓ³n de canales no estΓ‘ permitida hasta pasadas 48 horas desde el ΓΊltimo cambio de contraseΓ±a.";
App::$strings["Remove This Channel"] = "Eliminar este canal";
@@ -914,7 +914,7 @@ App::$strings["For either option, please choose whether to make this hub your ne
App::$strings["Make this hub my primary location"] = "Convertir este servidor en mi ubicaciΓ³n primaria";
App::$strings["Move this channel (disable all previous locations)"] = "Mover este canal (desactivar todas las ubicaciones anteriores)";
App::$strings["Use this channel nickname instead of the one provided"] = "Usa este alias de canal en lugar del que se proporciona";
-App::$strings["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."] = "Dejar en blanco para mantener su alias de canal existente. Se le asignarΓ‘ aleatoriamente uno similar si cualquiera de los dos nombres ya estΓ‘ asignado en este sitio.";
+App::$strings["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."] = "Dejar en blanco para mantener su alias de canal . Se le asignarΓ‘ aleatoriamente uno similar si cualquiera de los dos nombres ya estΓ‘ asignado en este sitio.";
App::$strings["This process may take several minutes to complete. Please submit the form only once and leave this page open until finished."] = "Este proceso puede tardar varios minutos en completarse. Por favor envΓ­e el formulario una sola vez y mantenga esta pΓ‘gina abierta hasta que termine.";
App::$strings["Authentication failed."] = "FallΓ³ la autenticaciΓ³n.";
App::$strings["Remote Authentication"] = "Acceso desde su servidor";
@@ -1014,7 +1014,7 @@ App::$strings["%1$.2f MB of %2$.2f MB photo storage used."] = "%1$.2f MB de %2$.
App::$strings["%1$.2f MB photo storage used."] = "%1$.2f MB de almacenamiento de fotos utilizado.";
App::$strings["Upload Photos"] = "Subir fotos";
App::$strings["Enter an album name"] = "Introducir un nombre de Γ‘lbum";
-App::$strings["or select an existing album (doubleclick)"] = "o seleccionar uno existente (doble click)";
+App::$strings["or select an existing album (doubleclick)"] = "o seleccionar un Γ‘lbum (con un doble click)";
App::$strings["Create a status post for this upload"] = "Crear un mensaje de estado para esta subida";
App::$strings["Description (optional)"] = "DescripciΓ³n (opcional)";
App::$strings["Show Newest First"] = "Mostrar lo mΓ‘s reciente primero";
@@ -1031,7 +1031,7 @@ App::$strings["Rotate CW (right)"] = "Girar CW (a la derecha)";
App::$strings["Rotate CCW (left)"] = "Girar CCW (a la izquierda)";
App::$strings["Move photo to album"] = "Mover la foto a un Γ‘lbum";
App::$strings["Enter a new album name"] = "Introducir un nuevo nombre de Γ‘lbum";
-App::$strings["or select an existing one (doubleclick)"] = "o seleccionar uno (doble click) existente";
+App::$strings["or select an existing one (doubleclick)"] = "o seleccionar un Γ‘lbum (con un doble click)";
App::$strings["Add a Tag"] = "AΓ±adir una etiqueta";
App::$strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Ejemplos: @eva, @Carmen_Osuna, @jaime@ejemplo.com";
App::$strings["Flag as adult in album view"] = "Marcar como \"solo para adultos\" en el Γ‘lbum";
@@ -1153,7 +1153,7 @@ App::$strings["Use Photo for Profile"] = "Usar la fotografΓ­a para el perfil";
App::$strings["Change Profile Photo"] = "Cambiar la foto del perfil";
App::$strings["Use"] = "Usar";
App::$strings["Use a photo from your albums"] = "Usar una foto de sus Γ‘lbumes";
-App::$strings["Select existing photo"] = "Seleccionar una foto existente";
+App::$strings["Select existing photo"] = "Seleccionar una foto";
App::$strings["Crop Image"] = "Recortar imagen";
App::$strings["Please adjust the image cropping for optimum viewing."] = "Por favor ajuste el recorte de la imagen para una visiΓ³n Γ³ptima.";
App::$strings["Done Editing"] = "EdiciΓ³n completada";
@@ -1829,7 +1829,7 @@ App::$strings["Directory Options"] = "Opciones del directorio";
App::$strings["Safe Mode"] = "Modo seguro";
App::$strings["Public Forums Only"] = "Solo foros pΓΊblicos";
App::$strings["This Website Only"] = "Solo este sitio web";
-App::$strings["A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "Un grupo suprimido con este nombre ha sido restablecido. <strong>Es posible</strong> que los permisos existentes sean aplicados a este grupo y sus futuros miembros. Si no quiere esto, por favor cree otro grupo con un nombre diferente.";
+App::$strings["A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "Un grupo suprimido con este nombre ha sido restablecido. <strong>Es posible</strong> que los permisos que ya existen sean aplicados a este grupo y sus futuros miembros. Si no quiere esto, por favor cree otro grupo con un nombre diferente.";
App::$strings["Add new connections to this privacy group"] = "AΓ±adir conexiones nuevas a este grupo de canales";
App::$strings["edit"] = "editar";
App::$strings["Edit group"] = "Editar grupo";
@@ -2458,8 +2458,8 @@ App::$strings["Jappix Mini Settings"] = "Ajustes de Jappix Mini";
App::$strings["Your channel has been upgraded to the latest \$Projectname version."] = "Su canal ha sido actualizado a la ΓΊltima versiΓ³n de \$Projectname.";
App::$strings["To improve usability, we have converted some features into installable stand-alone apps."] = "Para mejorar la usabilidad, hemos convertido algunas caracterΓ­sticas en aplicaciones independientes instalables.";
App::$strings["Please visit the \$Projectname"] = "Por favor visite el sitio web de \$Projectname";
-App::$strings["app store"] = "depΓ³sito de apps";
-App::$strings["and install possibly missing apps."] = "e instalar aplicaciones que posiblemente falten.";
+App::$strings["app store"] = "aplicaciones disponibles";
+App::$strings["and install possibly missing apps."] = "e instale las aplicaciones que posiblemente falten.";
App::$strings["Upgrade Info"] = "InformaciΓ³n de actualizaciΓ³n";
App::$strings["Do not show this again"] = "No mostrar esto de nuevo";
App::$strings["Access Denied"] = "Acceso denegado";
@@ -2509,7 +2509,7 @@ App::$strings["WYSIWYG status editor"] = "Editor de estado de WYSIWYG";
App::$strings["WYSIWYG Status"] = "Estado de WYSIWYG";
App::$strings["Set your location"] = "Establecer su ubicaciΓ³n";
App::$strings["Clear browser location"] = "Eliminar los datos de localizaciΓ³n geogrΓ‘fica del navegador";
-App::$strings["Embed (existing) photo from your photo albums"] = "Insertar (existente) foto de sus Γ‘lbumes de fotos";
+App::$strings["Embed (existing) photo from your photo albums"] = "Insertar una foto de sus Γ‘lbumes";
App::$strings["Tag term:"] = "TΓ©rmino de la etiqueta:";
App::$strings["Where are you right now?"] = "ΒΏDonde estΓ‘ ahora?";
App::$strings["Choose a different album..."] = "Elegir un Γ‘lbum diferente...";
@@ -2706,7 +2706,7 @@ App::$strings["Click here to see activity from your connections."] = "Pulsar aqu
App::$strings["Click here to see your channel home."] = "Pulsar aquΓ­ para ver la pΓ‘gina de inicio de su canal.";
App::$strings["You can access your private messages from here."] = "Puede acceder a sus mensajes privados desde aquΓ­.";
App::$strings["Create new events here."] = "Crear nuevos eventos aquΓ­.";
-App::$strings["You can accept new connections and change permissions for existing ones here. You can also e.g. create groups of contacts."] = "Puede aceptar nuevas conexiones y cambiar permisos para las existentes aquΓ­. TambiΓ©n puede, por ejemplo, crear grupos de contactos.";
+App::$strings["You can accept new connections and change permissions for existing ones here. You can also e.g. create groups of contacts."] = "Puede aceptar nuevas conexiones y cambiar permisos para las que ya existen aquΓ­. TambiΓ©n puede, por ejemplo, crear grupos de contactos.";
App::$strings["System notifications will arrive here"] = "Las notificaciones del sistema llegarΓ‘n aquΓ­";
App::$strings["Search for content and users"] = "Buscar contenido y usuarios";
App::$strings["Browse for new contacts"] = "Buscar nuevos contactos";
@@ -3270,7 +3270,7 @@ App::$strings["Connection Filtering"] = "Filtrado de conexiones";
App::$strings["Filter incoming posts from connections based on keywords/content"] = "Filtrar publicaciones entrantes de conexiones por palabras clave o contenido";
App::$strings["Conversation"] = "ConversaciΓ³n";
App::$strings["Community Tagging"] = "Etiquetas de la comunidad";
-App::$strings["Ability to tag existing posts"] = "Capacidad de etiquetar entradas existentes";
+App::$strings["Ability to tag existing posts"] = "Capacidad de etiquetar entradas";
App::$strings["Emoji Reactions"] = "Emoticonos \"emoji\"";
App::$strings["Add emoji reaction ability to posts"] = "Activar la capacidad de aΓ±adir un emoticono \"emoji\" a las entradas";
App::$strings["Dislike Posts"] = "Desagrado de publicaciones";
diff --git a/view/js/main.js b/view/js/main.js
index f4bfd413b..a69bcfa64 100644
--- a/view/js/main.js
+++ b/view/js/main.js
@@ -558,7 +558,8 @@ function handleNotificationsItems(notifyType, data) {
if(filter) {
$('#nav-' + notifyType + '-menu .notification').each(function(i, el){
var cn = $(el).data('contact_name').toString().toLowerCase();
- if(cn.indexOf(filter) === -1)
+ var ca = $(el).data('contact_addr').toString().toLowerCase();
+ if(cn.indexOf(filter) === -1 && ca.indexOf(filter) === -1)
$(el).addClass('d-none');
else
$(el).removeClass('d-none');
diff --git a/view/php/default.php b/view/php/default.php
index 60f3f6a6f..388c94382 100644
--- a/view/php/default.php
+++ b/view/php/default.php
@@ -10,12 +10,16 @@
<header><?php if(x($page,'header')) echo $page['header']; ?></header>
<nav class="navbar fixed-top navbar-expand-lg navbar-dark bg-dark"><?php if(x($page,'nav')) echo $page['nav']; ?></nav>
<main>
- <aside id="region_1"><div class="aside_spacer"><div id="left_aside_wrapper"><?php if(x($page,'aside')) echo $page['aside']; ?></div></div></aside>
- <section id="region_2"><?php if(x($page,'content')) echo $page['content']; ?>
+ <div class="content">
+ <div class="columns">
+ <aside id="region_1"><div class="aside_spacer"><div id="left_aside_wrapper"><?php if(x($page,'aside')) echo $page['aside']; ?></div></div></aside>
+ <section id="region_2"><?php if(x($page,'content')) echo $page['content']; ?>
<div id="page-footer"></div>
- <div id="pause"></div>
- </section>
- <aside id="region_3" class="d-none d-xl-table-cell"><div class="aside_spacer"><div id="right_aside_wrapper"><?php if(x($page,'right_aside')) echo $page['right_aside']; ?></div></div></aside>
+ <div id="pause"></div>
+ </section>
+ <aside id="region_3" class="d-none d-xl-table-cell"><div class="aside_spacer"><div id="right_aside_wrapper"><?php if(x($page,'right_aside')) echo $page['right_aside']; ?></div></div></aside>
+ </div>
+ </div>
</main>
<footer><?php if(x($page,'footer')) echo $page['footer']; ?></footer>
</body>
diff --git a/view/php/theme_init.php b/view/php/theme_init.php
index dd8dcb5ee..73e559c45 100644
--- a/view/php/theme_init.php
+++ b/view/php/theme_init.php
@@ -36,7 +36,7 @@ head_add_js('/library/colorbox/jquery.colorbox-min.js');
head_add_js('/library/jquery.AreYouSure/jquery.are-you-sure.js');
head_add_js('/library/tableofcontents/jquery.toc.js');
-head_add_js('/library/imagesloaded/imagesloaded.pkgd.min.js');
+head_add_js('/vendor/desandro/imagesloaded/imagesloaded.pkgd.min.js');
/**
* Those who require this feature will know what to do with it.
* Those who don't, won't.
diff --git a/view/ru/hmessages.po b/view/ru/hmessages.po
index d21f707d1..6a8c8805c 100644
--- a/view/ru/hmessages.po
+++ b/view/ru/hmessages.po
@@ -12,7 +12,7 @@ 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-10-18 11:06+0200\n"
+"PO-Revision-Date: 2018-11-19 14:12+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:3087
+#: ../../view/theme/redbasic/php/config.php:15 ../../include/text.php:3086
#: ../../Zotlabs/Module/Admin/Site.php:187
msgid "Default"
msgstr "По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ"
@@ -41,8 +41,8 @@ msgstr "Ѐокус (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Hubzilla)"
#: ../../Zotlabs/Module/Xchan.php:15
#: ../../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:1084
-#: ../../Zotlabs/Module/Photos.php:1124 ../../Zotlabs/Module/Photos.php:1242
+#: ../../Zotlabs/Module/Profiles.php:723 ../../Zotlabs/Module/Photos.php:1097
+#: ../../Zotlabs/Module/Photos.php:1137 ../../Zotlabs/Module/Photos.php:1255
#: ../../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
@@ -79,15 +79,15 @@ 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:888 ../../Zotlabs/Module/Group.php:140
-#: ../../Zotlabs/Module/Group.php:156 ../../Zotlabs/Module/Mood.php:156
+#: ../../Zotlabs/Module/Connedit.php:893 ../../Zotlabs/Module/Group.php:140
+#: ../../Zotlabs/Module/Group.php:156 ../../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:565
#: ../../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:767
+#: ../../Zotlabs/Widget/Eventstools.php:16 ../../Zotlabs/Lib/ThreadItem.php:770
#: ../../extend/addon/hzaddons/dwpost/dwpost.php:89
#: ../../extend/addon/hzaddons/fuzzloc/fuzzloc.php:191
#: ../../extend/addon/hzaddons/redphotos/redphotos.php:136
@@ -106,7 +106,7 @@ msgstr "Ѐокус (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Hubzilla)"
#: ../../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:86
+#: ../../extend/addon/hzaddons/ljpost/ljpost.php:89
#: ../../extend/addon/hzaddons/statusnet/statusnet.php:322
#: ../../extend/addon/hzaddons/statusnet/statusnet.php:380
#: ../../extend/addon/hzaddons/statusnet/statusnet.php:432
@@ -150,9 +150,9 @@ 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:1629 ../../Zotlabs/Storage/Browser.php:405
#: ../../Zotlabs/Module/Defperms.php:197 ../../Zotlabs/Module/Profiles.php:681
-#: ../../Zotlabs/Module/Photos.php:699 ../../Zotlabs/Module/Api.php:99
+#: ../../Zotlabs/Module/Photos.php:712 ../../Zotlabs/Module/Api.php:99
#: ../../Zotlabs/Module/Events.php:472 ../../Zotlabs/Module/Events.php:473
#: ../../Zotlabs/Module/Sources.php:124 ../../Zotlabs/Module/Sources.php:159
#: ../../Zotlabs/Module/Settings/Display.php:89
@@ -163,7 +163,7 @@ 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:397 ../../Zotlabs/Module/Connedit.php:780
+#: ../../Zotlabs/Module/Connedit.php:398 ../../Zotlabs/Module/Connedit.php:785
#: ../../Zotlabs/Module/Wiki.php:227 ../../Zotlabs/Module/Wiki.php:228
#: ../../Zotlabs/Module/Import.php:554 ../../Zotlabs/Module/Import.php:558
#: ../../Zotlabs/Module/Import.php:559 ../../Zotlabs/Lib/Libzotdir.php:162
@@ -189,8 +189,8 @@ msgstr "Узкая панСль Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ"
#: ../../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:70
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:82
+#: ../../extend/addon/hzaddons/ljpost/ljpost.php:73
+#: ../../extend/addon/hzaddons/ljpost/ljpost.php:85
#: ../../extend/addon/hzaddons/statusnet/statusnet.php:389
#: ../../extend/addon/hzaddons/statusnet/statusnet.php:411
#: ../../extend/addon/hzaddons/statusnet/statusnet.php:415
@@ -229,9 +229,9 @@ 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:1629 ../../Zotlabs/Storage/Browser.php:405
#: ../../Zotlabs/Module/Defperms.php:197 ../../Zotlabs/Module/Profiles.php:681
-#: ../../Zotlabs/Module/Photos.php:699 ../../Zotlabs/Module/Api.php:98
+#: ../../Zotlabs/Module/Photos.php:712 ../../Zotlabs/Module/Api.php:98
#: ../../Zotlabs/Module/Events.php:472 ../../Zotlabs/Module/Events.php:473
#: ../../Zotlabs/Module/Sources.php:124 ../../Zotlabs/Module/Sources.php:159
#: ../../Zotlabs/Module/Settings/Display.php:89
@@ -242,7 +242,7 @@ 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:397 ../../Zotlabs/Module/Wiki.php:227
+#: ../../Zotlabs/Module/Connedit.php:398 ../../Zotlabs/Module/Wiki.php:227
#: ../../Zotlabs/Module/Wiki.php:228 ../../Zotlabs/Module/Import.php:554
#: ../../Zotlabs/Module/Import.php:558 ../../Zotlabs/Module/Import.php:559
#: ../../Zotlabs/Lib/Libzotdir.php:162 ../../Zotlabs/Lib/Libzotdir.php:163
@@ -268,8 +268,8 @@ msgstr "НСт"
#: ../../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:70
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:82
+#: ../../extend/addon/hzaddons/ljpost/ljpost.php:73
+#: ../../extend/addon/hzaddons/ljpost/ljpost.php:85
#: ../../extend/addon/hzaddons/statusnet/statusnet.php:389
#: ../../extend/addon/hzaddons/statusnet/statusnet.php:411
#: ../../extend/addon/hzaddons/statusnet/statusnet.php:415
@@ -414,13 +414,13 @@ msgid "Monthly"
msgstr "ЕТСмСсячно"
#: ../../include/selectors.php:60 ../../include/selectors.php:77
-#: ../../include/channel.php:1487
+#: ../../include/channel.php:1536
#: ../../extend/addon/hzaddons/openid/Mod_Id.php:85
msgid "Male"
msgstr "ΠœΡƒΠΆΡ‡ΠΈΠ½Π°"
#: ../../include/selectors.php:60 ../../include/selectors.php:77
-#: ../../include/channel.php:1485
+#: ../../include/channel.php:1534
#: ../../extend/addon/hzaddons/openid/Mod_Id.php:87
msgid "Female"
msgstr "Π–Π΅Π½Ρ‰ΠΈΠ½Π°"
@@ -457,20 +457,20 @@ 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 "НСспСцифичСский"
#: ../../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:1315 ../../include/event.php:1322
+#: ../../include/event.php:1318 ../../include/event.php:1325
#: ../../Zotlabs/Module/Cdav.php:1227 ../../Zotlabs/Module/Profiles.php:795
-#: ../../Zotlabs/Module/Connedit.php:919
+#: ../../Zotlabs/Module/Connedit.php:924
#: ../../Zotlabs/Access/PermissionRoles.php:306
msgid "Other"
msgstr "Π”Ρ€ΡƒΠ³ΠΎΠΉ"
@@ -567,14 +567,14 @@ msgstr "НСвСрный"
msgid "Sex Addict"
msgstr "Π­Ρ€ΠΎΡ‚ΠΎΠΌΠ°Π½"
-#: ../../include/selectors.php:134 ../../include/channel.php:444
-#: ../../include/channel.php:445 ../../include/channel.php:452
+#: ../../include/selectors.php:134 ../../include/channel.php:493
+#: ../../include/channel.php:494 ../../include/channel.php:501
#: ../../Zotlabs/Module/Settings/Channel.php:70
#: ../../Zotlabs/Module/Settings/Channel.php:74
#: ../../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
+#: ../../Zotlabs/Module/Connedit.php:717 ../../Zotlabs/Widget/Affinity.php:24
msgid "Friends"
msgstr "Π”Ρ€ΡƒΠ·ΡŒΡ"
@@ -662,7 +662,7 @@ msgstr "Всё Ρ€Π°Π²Π½ΠΎ"
msgid "Ask me"
msgstr "Бпроси мСня"
-#: ../../include/photos.php:27 ../../include/items.php:3675
+#: ../../include/photos.php:27 ../../include/items.php:3701
#: ../../include/attach.php:150 ../../include/attach.php:197
#: ../../include/attach.php:270 ../../include/attach.php:379
#: ../../include/attach.php:393 ../../include/attach.php:400
@@ -670,8 +670,8 @@ msgstr "Бпроси мСня"
#: ../../include/attach.php:1116 ../../include/attach.php:1281
#: ../../Zotlabs/Module/Mail.php:146 ../../Zotlabs/Module/Defperms.php:181
#: ../../Zotlabs/Module/Network.php:17 ../../Zotlabs/Module/Common.php:38
-#: ../../Zotlabs/Module/Item.php:229 ../../Zotlabs/Module/Item.php:248
-#: ../../Zotlabs/Module/Item.php:258 ../../Zotlabs/Module/Item.php:1110
+#: ../../Zotlabs/Module/Item.php:231 ../../Zotlabs/Module/Item.php:250
+#: ../../Zotlabs/Module/Item.php:260 ../../Zotlabs/Module/Item.php:1136
#: ../../Zotlabs/Module/Achievements.php:34
#: ../../Zotlabs/Module/Display.php:448 ../../Zotlabs/Module/Poke.php:157
#: ../../Zotlabs/Module/Profile.php:85 ../../Zotlabs/Module/Profile.php:101
@@ -698,8 +698,8 @@ 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:119
-#: ../../Zotlabs/Module/Channel.php:286 ../../Zotlabs/Module/Channel.php:325
+#: ../../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/Viewsrc.php:19 ../../Zotlabs/Module/Menu.php:129
#: ../../Zotlabs/Module/Menu.php:140 ../../Zotlabs/Module/Setup.php:209
@@ -713,9 +713,9 @@ 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:390
+#: ../../Zotlabs/Module/Editpost.php:17 ../../Zotlabs/Module/Connedit.php:391
#: ../../Zotlabs/Module/Group.php:14 ../../Zotlabs/Module/Group.php:30
-#: ../../Zotlabs/Module/Connections.php:32 ../../Zotlabs/Module/Mood.php:124
+#: ../../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
@@ -727,6 +727,7 @@ msgstr "Бпроси мСня"
#: ../../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/openid/Mod_Id.php:53
#: ../../extend/addon/hzaddons/keepout/keepout.php:36
@@ -761,16 +762,16 @@ msgctxt "photo_upload"
msgid "%1$s posted %2$s to %3$s"
msgstr "%1$s ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» %2$s Π² %3$s"
-#: ../../include/photos.php:667 ../../include/nav.php:417
+#: ../../include/photos.php:669 ../../include/nav.php:417
msgid "Photo Albums"
msgstr "Π€ΠΎΡ‚ΠΎΠ°Π»ΡŒΠ±ΠΎΠΌΡ‹"
-#: ../../include/photos.php:668 ../../Zotlabs/Module/Photos.php:1367
-#: ../../Zotlabs/Module/Photos.php:1380 ../../Zotlabs/Module/Photos.php:1381
+#: ../../include/photos.php:670 ../../Zotlabs/Module/Photos.php:1380
+#: ../../Zotlabs/Module/Photos.php:1393 ../../Zotlabs/Module/Photos.php:1394
msgid "Recent Photos"
msgstr "ПослСдниС Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ"
-#: ../../include/photos.php:672
+#: ../../include/photos.php:674
msgid "Upload New Photos"
msgstr "Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ"
@@ -778,19 +779,19 @@ msgstr "Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ"
msgid "View PDF"
msgstr "ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ PDF"
-#: ../../include/oembed.php:347
+#: ../../include/oembed.php:352
msgid " by "
msgstr " ΠΏΠΎ "
-#: ../../include/oembed.php:348
+#: ../../include/oembed.php:353
msgid " on "
msgstr " Π½Π° "
-#: ../../include/oembed.php:377
+#: ../../include/oembed.php:382
msgid "Embedded content"
msgstr "ВстроСнноС содСрТимоС"
-#: ../../include/oembed.php:386
+#: ../../include/oembed.php:391
msgid "Embedding disabled"
msgstr "ВстраиваниС ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ"
@@ -853,7 +854,7 @@ msgstr "Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: name=ivan and country=russia"
#: ../../include/contact_widgets.php:53 ../../include/features.php:325
#: ../../Zotlabs/Widget/Filer.php:28
-#: ../../Zotlabs/Widget/Activity_filter.php:136
+#: ../../Zotlabs/Widget/Activity_filter.php:137
msgid "Saved Folders"
msgstr "Π‘ΠΎΡ…Ρ€Π°Π½Ρ‘Π½Π½Ρ‹Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ"
@@ -879,8 +880,8 @@ msgstr "ΠžΠ±Ρ‰ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹"
msgid "View all %d common connections"
msgstr "ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС %d ΠΎΠ±Ρ‰ΠΈΡ… ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ²"
-#: ../../include/menu.php:118 ../../include/channel.php:1303
-#: ../../include/channel.php:1307 ../../Zotlabs/Storage/Browser.php:290
+#: ../../include/menu.php:118 ../../include/channel.php:1352
+#: ../../include/channel.php:1356 ../../Zotlabs/Storage/Browser.php:290
#: ../../Zotlabs/Module/Oauth.php:173 ../../Zotlabs/Module/Oauth2.php:194
#: ../../Zotlabs/Module/Editlayout.php:114
#: ../../Zotlabs/Module/Editblock.php:114 ../../Zotlabs/Module/Menu.php:175
@@ -899,55 +900,55 @@ msgstr "ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС %d ΠΎΠ±Ρ‰ΠΈΡ… ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ²"
msgid "Edit"
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:221 ../../include/channel.php:606
+#: ../../include/channel.php:222 ../../include/channel.php:655
#: ../../Zotlabs/Module/Changeaddr.php:46
msgid "Reserved nickname. Please choose another."
msgstr "Π—Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ΠΉ псСвдоним. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ."
-#: ../../include/channel.php:226 ../../include/channel.php:611
+#: ../../include/channel.php:227 ../../include/channel.php:660
#: ../../Zotlabs/Module/Changeaddr.php:51
msgid ""
"Nickname has unsupported characters or is already being used on this site."
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:1158
+#: ../../include/channel.php:1207
#: ../../extend/addon/hzaddons/chess/chess.php:486
msgid "Requested channel is not available."
msgstr "Π—Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½Ρ‹ΠΉ ΠΊΠ°Π½Π°Π» Π½Π΅ доступСн."
-#: ../../include/channel.php:1204 ../../Zotlabs/Module/Achievements.php:15
+#: ../../include/channel.php:1253 ../../Zotlabs/Module/Achievements.php:15
#: ../../Zotlabs/Module/Profile.php:20 ../../Zotlabs/Module/Editlayout.php:31
#: ../../Zotlabs/Module/Filestorage.php:51
#: ../../Zotlabs/Module/Editblock.php:31 ../../Zotlabs/Module/Menu.php:91
@@ -959,84 +960,84 @@ msgstr "Π—Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½Ρ‹ΠΉ ΠΊΠ°Π½Π°Π» Π½Π΅ доступСн."
msgid "Requested profile is not available."
msgstr "Π—Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ Π½Π΅ доступСн."
-#: ../../include/channel.php:1296 ../../Zotlabs/Module/Profiles.php:728
+#: ../../include/channel.php:1345 ../../Zotlabs/Module/Profiles.php:728
msgid "Change profile photo"
msgstr "Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡŽ профиля"
-#: ../../include/channel.php:1303 ../../include/nav.php:109
+#: ../../include/channel.php:1352 ../../include/nav.php:109
#: ../../Zotlabs/Module/Profiles.php:830
msgid "Edit Profiles"
msgstr "Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ"
-#: ../../include/channel.php:1304
+#: ../../include/channel.php:1353
msgid "Create New Profile"
msgstr "Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ"
-#: ../../include/channel.php:1307 ../../include/nav.php:111
+#: ../../include/channel.php:1356 ../../include/nav.php:111
#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:58
msgid "Edit Profile"
msgstr "Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ"
-#: ../../include/channel.php:1322 ../../Zotlabs/Module/Profiles.php:820
+#: ../../include/channel.php:1371 ../../Zotlabs/Module/Profiles.php:820
msgid "Profile Image"
msgstr "Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ профиля"
-#: ../../include/channel.php:1325
+#: ../../include/channel.php:1374
msgid "Visible to everybody"
msgstr "Π’ΠΈΠ΄Π½ΠΎ всСм"
-#: ../../include/channel.php:1326 ../../Zotlabs/Module/Profiles.php:725
+#: ../../include/channel.php:1375 ../../Zotlabs/Module/Profiles.php:725
#: ../../Zotlabs/Module/Profiles.php:824
msgid "Edit visibility"
msgstr "Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ"
-#: ../../include/channel.php:1383 ../../include/conversation.php:1058
+#: ../../include/channel.php:1432 ../../include/conversation.php:1058
#: ../../include/connections.php:110 ../../Zotlabs/Module/Directory.php:342
#: ../../Zotlabs/Module/Suggest.php:71 ../../Zotlabs/Widget/Suggestions.php:44
#: ../../Zotlabs/Widget/Follow.php:32
msgid "Connect"
msgstr "ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ"
-#: ../../include/channel.php:1398 ../../include/event.php:54
+#: ../../include/channel.php:1447 ../../include/event.php:54
#: ../../include/event.php:86 ../../Zotlabs/Module/Directory.php:328
msgid "Location:"
msgstr "ΠœΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:"
-#: ../../include/channel.php:1402 ../../include/channel.php:1530
+#: ../../include/channel.php:1451 ../../include/channel.php:1579
msgid "Gender:"
msgstr "Пол:"
-#: ../../include/channel.php:1403 ../../include/channel.php:1574
+#: ../../include/channel.php:1452 ../../include/channel.php:1623
#: ../../extend/addon/hzaddons/jappixmini/jappixmini.php:305
msgid "Status:"
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:1528 ../../Zotlabs/Module/Settings/Channel.php:499
+#: ../../include/channel.php:1577 ../../Zotlabs/Module/Settings/Channel.php:499
msgid "Full Name:"
msgstr "ПолноС имя:"
-#: ../../include/channel.php:1535
+#: ../../include/channel.php:1584
msgid "Like this channel"
msgstr "нравится этот ΠΊΠ°Π½Π°Π»"
-#: ../../include/channel.php:1546 ../../include/conversation.php:1693
-#: ../../include/taxonomy.php:661 ../../Zotlabs/Module/Photos.php:1162
+#: ../../include/channel.php:1595 ../../include/conversation.php:1693
+#: ../../include/taxonomy.php:661 ../../Zotlabs/Module/Photos.php:1175
#: ../../Zotlabs/Lib/ThreadItem.php:218
msgctxt "noun"
msgid "Like"
@@ -1045,136 +1046,136 @@ msgstr[0] "Нравится"
msgstr[1] "Нравится"
msgstr[2] "Нравится"
-#: ../../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:1571 ../../Zotlabs/Module/Directory.php:323
+#: ../../include/channel.php:1620 ../../Zotlabs/Module/Directory.php:323
msgid "Age:"
msgstr "Возраст:"
-#: ../../include/channel.php:1580
+#: ../../include/channel.php:1629
#, php-format
msgid "for %1$d %2$s"
msgstr "для %1$d %2$s"
-#: ../../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:1600 ../../Zotlabs/Module/Directory.php:339
+#: ../../include/channel.php:1649 ../../Zotlabs/Module/Directory.php:339
msgid "Hometown:"
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:1606 ../../Zotlabs/Module/Directory.php:341
+#: ../../include/channel.php:1655 ../../Zotlabs/Module/Directory.php:341
msgid "About:"
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:1651 ../../Zotlabs/Module/Profperm.php:113
+#: ../../include/channel.php:1700 ../../Zotlabs/Module/Profperm.php:113
#: ../../Zotlabs/Lib/Apps.php:337
msgid "Profile"
msgstr "ΠŸΡ€ΠΎΡ„ΠΈΠ»ΡŒ"
-#: ../../include/channel.php:1653
+#: ../../include/channel.php:1702
msgid "Like this thing"
msgstr "нравится этo"
-#: ../../include/channel.php:1654 ../../Zotlabs/Module/Events.php:692
+#: ../../include/channel.php:1703 ../../Zotlabs/Module/Events.php:692
#: ../../Zotlabs/Module/Cal.php:340
msgid "Export"
msgstr "Экспорт"
-#: ../../include/channel.php:2088 ../../Zotlabs/Module/Cover_photo.php:276
+#: ../../include/channel.php:2137 ../../Zotlabs/Module/Cover_photo.php:276
msgid "cover photo"
msgstr "фотография ΠΎΠ±Π»ΠΎΠΆΠΊΠΈ"
-#: ../../include/channel.php:2341 ../../boot.php:1626
+#: ../../include/channel.php:2390 ../../boot.php:1625
#: ../../Zotlabs/Module/Rmagic.php:75
msgid "Remote Authentication"
msgstr "УдалСнная аутСнтификация"
-#: ../../include/channel.php:2342 ../../Zotlabs/Module/Rmagic.php:76
+#: ../../include/channel.php:2391 ../../Zotlabs/Module/Rmagic.php:76
msgid "Enter your channel address (e.g. channel@example.com)"
msgstr "Π’Π²Π΅Π΄ΠΈΡ‚Π΅ адрСс вашСго ΠΊΠ°Π½Π°Π»Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: channel@example.com)"
-#: ../../include/channel.php:2343 ../../Zotlabs/Module/Rmagic.php:77
+#: ../../include/channel.php:2392 ../../Zotlabs/Module/Rmagic.php:77
msgid "Authenticate"
msgstr "ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° подлинности"
-#: ../../include/channel.php:2497 ../../Zotlabs/Module/Admin/Accounts.php:91
+#: ../../include/channel.php:2547 ../../Zotlabs/Module/Admin/Accounts.php:91
#, php-format
msgid "Account '%s' deleted"
msgstr "Аккаунт '%s' ΡƒΠ΄Π°Π»Π΅Π½"
-#: ../../include/message.php:13 ../../include/text.php:1709
+#: ../../include/message.php:13 ../../include/text.php:1708
msgid "Download binary/encrypted content"
msgstr "Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ / Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ содСрТимоС"
@@ -1205,7 +1206,7 @@ msgid "post"
msgstr "публикация"
#: ../../include/items.php:384 ../../Zotlabs/Module/Dreport.php:10
-#: ../../Zotlabs/Module/Dreport.php:68 ../../Zotlabs/Module/Profperm.php:28
+#: ../../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
@@ -1217,44 +1218,44 @@ msgstr "публикация"
msgid "Permission denied"
msgstr "Доступ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½"
-#: ../../include/items.php:911 ../../include/items.php:971
+#: ../../include/items.php:921 ../../include/items.php:981
msgid "(Unknown)"
msgstr "(НСизвСстный)"
-#: ../../include/items.php:1157
+#: ../../include/items.php:1169
msgid "Visible to anybody on the internet."
msgstr "Π’ΠΈΠ΄Π΅Π½ всСм Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅."
-#: ../../include/items.php:1159
+#: ../../include/items.php:1171
msgid "Visible to you only."
msgstr "Π’ΠΈΠ΄Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π°ΠΌ."
-#: ../../include/items.php:1161
+#: ../../include/items.php:1173
msgid "Visible to anybody in this network."
msgstr "Π’ΠΈΠ΄Π½ΠΎ всСм Π² этой сСти."
-#: ../../include/items.php:1163
+#: ../../include/items.php:1175
msgid "Visible to anybody authenticated."
msgstr "Π’ΠΈΠ΄Π½ΠΎ всСм Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ."
-#: ../../include/items.php:1165
+#: ../../include/items.php:1177
#, php-format
msgid "Visible to anybody on %s."
msgstr "Π’ΠΈΠ΄Π½ΠΎ всСм Π² %s."
-#: ../../include/items.php:1167
+#: ../../include/items.php:1179
msgid "Visible to all connections."
msgstr "Π’ΠΈΠ΄Π½ΠΎ всСм ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌ."
-#: ../../include/items.php:1169
+#: ../../include/items.php:1181
msgid "Visible to approved connections."
msgstr "Π’ΠΈΠ΄Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌ."
-#: ../../include/items.php:1171
+#: ../../include/items.php:1183
msgid "Visible to specific connections."
msgstr "Π’ΠΈΠ΄Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌ."
-#: ../../include/items.php:3587 ../../Zotlabs/Module/Display.php:45
+#: ../../include/items.php:3613 ../../Zotlabs/Module/Display.php:45
#: ../../Zotlabs/Module/Display.php:452 ../../Zotlabs/Module/Admin.php:62
#: ../../Zotlabs/Module/Filestorage.php:24 ../../Zotlabs/Module/Viewsrc.php:25
#: ../../Zotlabs/Module/Admin/Addons.php:259
@@ -1262,90 +1263,90 @@ msgstr "Π’ΠΈΠ΄Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌ."
msgid "Item not found."
msgstr "Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½."
-#: ../../include/items.php:4167 ../../Zotlabs/Module/Group.php:61
+#: ../../include/items.php:4193 ../../Zotlabs/Module/Group.php:61
#: ../../Zotlabs/Module/Group.php:200
msgid "Privacy group not found."
msgstr "Π“Ρ€ΡƒΠΏΠΏΠ° бСзопасности Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°."
-#: ../../include/items.php:4183
+#: ../../include/items.php:4209
msgid "Privacy group is empty."
msgstr "Π“Ρ€ΡƒΠΏΠΏΠ° бСзопасности пуста"
-#: ../../include/items.php:4190
+#: ../../include/items.php:4216
#, php-format
msgid "Privacy group: %s"
msgstr "Π“Ρ€ΡƒΠΏΠΏΠ° бСзопасности: %s"
-#: ../../include/items.php:4200 ../../Zotlabs/Module/Connedit.php:851
+#: ../../include/items.php:4226 ../../Zotlabs/Module/Connedit.php:856
#, php-format
msgid "Connection: %s"
msgstr "ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚: %s"
-#: ../../include/items.php:4202
+#: ../../include/items.php:4228
msgid "Connection not found."
msgstr "ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½."
-#: ../../include/items.php:4544 ../../Zotlabs/Module/Cover_photo.php:269
+#: ../../include/items.php:4570 ../../Zotlabs/Module/Cover_photo.php:269
msgid "female"
msgstr "ΠΆΠ΅Π½Ρ‰ΠΈΠ½Π°"
-#: ../../include/items.php:4545 ../../Zotlabs/Module/Cover_photo.php:270
+#: ../../include/items.php:4571 ../../Zotlabs/Module/Cover_photo.php:270
#, php-format
msgid "%1$s updated her %2$s"
msgstr "%1$s ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»Π° Π΅Ρ‘ %2$s"
-#: ../../include/items.php:4546 ../../Zotlabs/Module/Cover_photo.php:271
+#: ../../include/items.php:4572 ../../Zotlabs/Module/Cover_photo.php:271
msgid "male"
msgstr "ΠΌΡƒΠΆΡ‡ΠΈΠ½Π°"
-#: ../../include/items.php:4547 ../../Zotlabs/Module/Cover_photo.php:272
+#: ../../include/items.php:4573 ../../Zotlabs/Module/Cover_photo.php:272
#, php-format
msgid "%1$s updated his %2$s"
msgstr "%1$s ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» Π΅Π³ΠΎ %2$s"
-#: ../../include/items.php:4549 ../../Zotlabs/Module/Cover_photo.php:274
+#: ../../include/items.php:4575 ../../Zotlabs/Module/Cover_photo.php:274
#, php-format
msgid "%1$s updated their %2$s"
msgstr "%1$s ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ ΠΈΡ… %2$s"
-#: ../../include/items.php:4551
+#: ../../include/items.php:4577
msgid "profile photo"
msgstr "Ѐотография профиля"
-#: ../../include/items.php:4742
+#: ../../include/items.php:4769
#, php-format
msgid "[Edited %s]"
msgstr "[ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ %s]"
-#: ../../include/items.php:4742
+#: ../../include/items.php:4769
msgctxt "edit_activity"
msgid "Post"
msgstr "ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ"
-#: ../../include/items.php:4742
+#: ../../include/items.php:4769
msgctxt "edit_activity"
msgid "Comment"
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 &ldquo;%3$s&rdquo;"
msgstr "%1$s ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» %2$s Π½Π° &ldquo;%3$s&rdquo;"
-#: ../../include/activities.php:59
+#: ../../include/activities.php:60
#, php-format
msgid "Visit %1$s's %2$s"
msgstr "ΠŸΠΎΡΠ΅Ρ‚ΠΈΡ‚ΡŒ %1$s %2$s"
-#: ../../include/activities.php:62
+#: ../../include/activities.php:63
#, php-format
msgid "%1$s has an updated %2$s, changing %3$s."
msgstr "%1$s ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ %2$s, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ %3$s."
@@ -1402,7 +1403,7 @@ msgstr "Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ Π±Π»ΠΎΠ³Π° / списка"
msgid "Comments will be displayed separately"
msgstr "ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ"
-#: ../../include/features.php:125 ../../include/text.php:981
+#: ../../include/features.php:125 ../../include/text.php:980
#: ../../Zotlabs/Module/Connections.php:334 ../../Zotlabs/Lib/Apps.php:308
msgid "Connections"
msgstr "ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹"
@@ -1687,53 +1688,53 @@ msgstr "НСсколько ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ"
msgid "Ability to create multiple profiles"
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:546
msgid "older"
msgstr "ΡΡ‚Π°Ρ€ΡˆΠ΅"
-#: ../../include/text.php:545
+#: ../../include/text.php:548
msgid "newer"
msgstr "Π½ΠΎΠ²Π΅Π΅"
-#: ../../include/text.php:969
+#: ../../include/text.php:968
msgid "No connections"
msgstr "НСт ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ²"
-#: ../../include/text.php:1001
+#: ../../include/text.php:1000
#, php-format
msgid "View all %s connections"
msgstr "ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС %s ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ²"
-#: ../../include/text.php:1057
+#: ../../include/text.php:1056
#, php-format
msgid "Network: %s"
msgstr "Π‘Π΅Ρ‚ΡŒ: %s"
-#: ../../include/text.php:1068 ../../include/text.php:1080
+#: ../../include/text.php:1067 ../../include/text.php:1079
#: ../../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:150 ../../Zotlabs/Lib/Apps.php:328
+#: ../../Zotlabs/Widget/Activity_filter.php:151 ../../Zotlabs/Lib/Apps.php:328
msgid "Search"
msgstr "Поиск"
-#: ../../include/text.php:1069 ../../include/text.php:1081
+#: ../../include/text.php:1068 ../../include/text.php:1080
#: ../../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
@@ -1741,409 +1742,409 @@ msgstr "Поиск"
msgid "Save"
msgstr "Π—Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ"
-#: ../../include/text.php:1146 ../../include/text.php:1150
+#: ../../include/text.php:1145 ../../include/text.php:1149
msgid "poke"
msgstr "Π’ΠΊΠ½ΡƒΡ‚ΡŒ"
-#: ../../include/text.php:1146 ../../include/text.php:1150
+#: ../../include/text.php:1145 ../../include/text.php:1149
#: ../../include/conversation.php:251
msgid "poked"
msgstr "Ρ‚ΠΊΠ½ΡƒΡ‚"
-#: ../../include/text.php:1151
+#: ../../include/text.php:1150
msgid "ping"
msgstr "ΠŸΠΈΠ½Π³Π°Π½ΡƒΡ‚ΡŒ"
-#: ../../include/text.php:1151
+#: ../../include/text.php:1150
msgid "pinged"
msgstr "ΠžΡ‚ΠΏΠΈΠ½Π³ΠΎΠ²Π°Π½"
-#: ../../include/text.php:1152
+#: ../../include/text.php:1151
msgid "prod"
msgstr "ΠŸΠΎΠ΄Ρ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒ"
-#: ../../include/text.php:1152
+#: ../../include/text.php:1151
msgid "prodded"
msgstr "ΠŸΠΎΠ΄Ρ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚"
-#: ../../include/text.php:1153
+#: ../../include/text.php:1152
msgid "slap"
msgstr "Π¨Π»Ρ‘ΠΏΠ½ΡƒΡ‚ΡŒ"
-#: ../../include/text.php:1153
+#: ../../include/text.php:1152
msgid "slapped"
msgstr "Π¨Π»Ρ‘ΠΏΠ½ΡƒΡ‚"
-#: ../../include/text.php:1154
+#: ../../include/text.php:1153
msgid "finger"
msgstr "Π£ΠΊΠ°Π·Π°Ρ‚ΡŒ"
-#: ../../include/text.php:1154
+#: ../../include/text.php:1153
msgid "fingered"
msgstr "Π£ΠΊΠ°Π·Π°Π½"
-#: ../../include/text.php:1155
+#: ../../include/text.php:1154
msgid "rebuff"
msgstr "Π”Π°Ρ‚ΡŒ ΠΎΡ‚ΠΏΠΎΡ€"
-#: ../../include/text.php:1155
+#: ../../include/text.php:1154
msgid "rebuffed"
msgstr "Π”Π°Π½ ΠΎΡ‚ΠΏΠΎΡ€"
-#: ../../include/text.php:1178
+#: ../../include/text.php:1177
msgid "happy"
msgstr "счастливый"
-#: ../../include/text.php:1179
+#: ../../include/text.php:1178
msgid "sad"
msgstr "грустный"
-#: ../../include/text.php:1180
+#: ../../include/text.php:1179
msgid "mellow"
msgstr "спокойный"
-#: ../../include/text.php:1181
+#: ../../include/text.php:1180
msgid "tired"
msgstr "усталый"
-#: ../../include/text.php:1182
+#: ../../include/text.php:1181
msgid "perky"
msgstr "вСсёлый"
-#: ../../include/text.php:1183
+#: ../../include/text.php:1182
msgid "angry"
msgstr "сСрдитый"
-#: ../../include/text.php:1184
+#: ../../include/text.php:1183
msgid "stupefied"
msgstr "ΠΎΡ‚ΡƒΠΏΠ΅Π²ΡˆΠΈΠΉ"
-#: ../../include/text.php:1185
+#: ../../include/text.php:1184
msgid "puzzled"
msgstr "Π½Π΅Π΄ΠΎΡƒΠΌΠ΅Π²Π°ΡŽΡ‰ΠΈΠΉ"
-#: ../../include/text.php:1186
+#: ../../include/text.php:1185
msgid "interested"
msgstr "заинтСрСсованный"
-#: ../../include/text.php:1187
+#: ../../include/text.php:1186
msgid "bitter"
msgstr "Π΅Π΄ΠΊΠΈΠΉ"
-#: ../../include/text.php:1188
+#: ../../include/text.php:1187
msgid "cheerful"
msgstr "Π±ΠΎΠ΄Ρ€Ρ‹ΠΉ"
-#: ../../include/text.php:1189
+#: ../../include/text.php:1188
msgid "alive"
msgstr "энСргичный"
-#: ../../include/text.php:1190
+#: ../../include/text.php:1189
msgid "annoyed"
msgstr "Ρ€Π°Π·Π΄Ρ€Π°ΠΆΡ‘Π½Π½Ρ‹ΠΉ"
-#: ../../include/text.php:1191
+#: ../../include/text.php:1190
msgid "anxious"
msgstr "обСспокоСнный"
-#: ../../include/text.php:1192
+#: ../../include/text.php:1191
msgid "cranky"
msgstr "ΠΊΠ°ΠΏΡ€ΠΈΠ·Π½Ρ‹ΠΉ"
-#: ../../include/text.php:1193
+#: ../../include/text.php:1192
msgid "disturbed"
msgstr "встрСвоТСнный"
-#: ../../include/text.php:1194
+#: ../../include/text.php:1193
msgid "frustrated"
msgstr "Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ"
-#: ../../include/text.php:1195
+#: ../../include/text.php:1194
msgid "depressed"
msgstr "ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ"
-#: ../../include/text.php:1196
+#: ../../include/text.php:1195
msgid "motivated"
msgstr "ΠΌΠΎΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ"
-#: ../../include/text.php:1197
+#: ../../include/text.php:1196
msgid "relaxed"
msgstr "расслаблСнный"
-#: ../../include/text.php:1198
+#: ../../include/text.php:1197
msgid "surprised"
msgstr "ΡƒΠ΄ΠΈΠ²Π»Π΅Π½Π½Ρ‹ΠΉ"
-#: ../../include/text.php:1377 ../../include/js_strings.php:95
+#: ../../include/text.php:1376 ../../include/js_strings.php:95
msgid "Monday"
msgstr "ПонСдСльник"
-#: ../../include/text.php:1377 ../../include/js_strings.php:96
+#: ../../include/text.php:1376 ../../include/js_strings.php:96
msgid "Tuesday"
msgstr "Π’Ρ‚ΠΎΡ€Π½ΠΈΠΊ"
-#: ../../include/text.php:1377 ../../include/js_strings.php:97
+#: ../../include/text.php:1376 ../../include/js_strings.php:97
msgid "Wednesday"
msgstr "Π‘Ρ€Π΅Π΄Π°"
-#: ../../include/text.php:1377 ../../include/js_strings.php:98
+#: ../../include/text.php:1376 ../../include/js_strings.php:98
msgid "Thursday"
msgstr "Π§Π΅Ρ‚Π²Π΅Ρ€Π³"
-#: ../../include/text.php:1377 ../../include/js_strings.php:99
+#: ../../include/text.php:1376 ../../include/js_strings.php:99
msgid "Friday"
msgstr "ΠŸΡΡ‚Π½ΠΈΡ†Π°"
-#: ../../include/text.php:1377 ../../include/js_strings.php:100
+#: ../../include/text.php:1376 ../../include/js_strings.php:100
msgid "Saturday"
msgstr "Π‘ΡƒΠ±Π±ΠΎΡ‚Π°"
-#: ../../include/text.php:1377 ../../include/js_strings.php:94
+#: ../../include/text.php:1376 ../../include/js_strings.php:94
msgid "Sunday"
msgstr "Π’ΠΎΡΠΊΡ€Π΅ΡΠ΅Π½ΡŒΠ΅"
-#: ../../include/text.php:1381 ../../include/js_strings.php:70
+#: ../../include/text.php:1380 ../../include/js_strings.php:70
msgid "January"
msgstr "Π―Π½Π²Π°Ρ€ΡŒ"
-#: ../../include/text.php:1381 ../../include/js_strings.php:71
+#: ../../include/text.php:1380 ../../include/js_strings.php:71
msgid "February"
msgstr "Π€Π΅Π²Ρ€Π°Π»ΡŒ"
-#: ../../include/text.php:1381 ../../include/js_strings.php:72
+#: ../../include/text.php:1380 ../../include/js_strings.php:72
msgid "March"
msgstr "ΠœΠ°Ρ€Ρ‚"
-#: ../../include/text.php:1381 ../../include/js_strings.php:73
+#: ../../include/text.php:1380 ../../include/js_strings.php:73
msgid "April"
msgstr "ΠΠΏΡ€Π΅Π»ΡŒ"
-#: ../../include/text.php:1381
+#: ../../include/text.php:1380
msgid "May"
msgstr "Май"
-#: ../../include/text.php:1381 ../../include/js_strings.php:75
+#: ../../include/text.php:1380 ../../include/js_strings.php:75
msgid "June"
msgstr "Июнь"
-#: ../../include/text.php:1381 ../../include/js_strings.php:76
+#: ../../include/text.php:1380 ../../include/js_strings.php:76
msgid "July"
msgstr "Июль"
-#: ../../include/text.php:1381 ../../include/js_strings.php:77
+#: ../../include/text.php:1380 ../../include/js_strings.php:77
msgid "August"
msgstr "Август"
-#: ../../include/text.php:1381 ../../include/js_strings.php:78
+#: ../../include/text.php:1380 ../../include/js_strings.php:78
msgid "September"
msgstr "Π‘Π΅Π½Ρ‚ΡΠ±Ρ€ΡŒ"
-#: ../../include/text.php:1381 ../../include/js_strings.php:79
+#: ../../include/text.php:1380 ../../include/js_strings.php:79
msgid "October"
msgstr "ΠžΠΊΡ‚ΡΠ±Ρ€ΡŒ"
-#: ../../include/text.php:1381 ../../include/js_strings.php:80
+#: ../../include/text.php:1380 ../../include/js_strings.php:80
msgid "November"
msgstr "ΠΠΎΡΠ±Ρ€ΡŒ"
-#: ../../include/text.php:1381 ../../include/js_strings.php:81
+#: ../../include/text.php:1380 ../../include/js_strings.php:81
msgid "December"
msgstr "Π”Π΅ΠΊΠ°Π±Ρ€ΡŒ"
-#: ../../include/text.php:1455
+#: ../../include/text.php:1454
msgid "Unknown Attachment"
msgstr "НСизвСстноС Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅"
-#: ../../include/text.php:1457 ../../Zotlabs/Storage/Browser.php:287
+#: ../../include/text.php:1456 ../../Zotlabs/Storage/Browser.php:287
#: ../../Zotlabs/Module/Sharedwithme.php:106
msgid "Size"
msgstr "Π Π°Π·ΠΌΠ΅Ρ€"
-#: ../../include/text.php:1457 ../../include/feedutils.php:860
+#: ../../include/text.php:1456 ../../include/feedutils.php:860
msgid "unknown"
msgstr "нСизвСстный"
-#: ../../include/text.php:1493
+#: ../../include/text.php:1492
msgid "remove category"
msgstr "ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ"
-#: ../../include/text.php:1567
+#: ../../include/text.php:1566
msgid "remove from file"
msgstr "ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°"
-#: ../../include/text.php:1850 ../../Zotlabs/Module/Events.php:663
+#: ../../include/text.php:1849 ../../Zotlabs/Module/Events.php:663
#: ../../Zotlabs/Module/Cal.php:314
msgid "Link to Source"
msgstr "Бсылка Π½Π° источник"
-#: ../../include/text.php:1872 ../../include/language.php:423
+#: ../../include/text.php:1871 ../../include/language.php:423
msgid "default"
msgstr "ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ"
-#: ../../include/text.php:1880
+#: ../../include/text.php:1879
msgid "Page layout"
msgstr "Π¨Π°Π±Π»ΠΎΠ½ страницы"
-#: ../../include/text.php:1880
+#: ../../include/text.php:1879
msgid "You can create your own with the layouts tool"
msgstr "Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой собствСнный с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнта шаблонов"
-#: ../../include/text.php:1890 ../../Zotlabs/Module/Wiki.php:217
+#: ../../include/text.php:1889 ../../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:1891
+#: ../../include/text.php:1890
msgid "HTML"
msgstr ""
-#: ../../include/text.php:1892 ../../Zotlabs/Module/Wiki.php:217
+#: ../../include/text.php:1891 ../../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:1893 ../../Zotlabs/Module/Wiki.php:217
+#: ../../include/text.php:1892 ../../Zotlabs/Module/Wiki.php:217
#: ../../Zotlabs/Widget/Wiki_pages.php:38
#: ../../Zotlabs/Widget/Wiki_pages.php:95
msgid "Text"
msgstr "ВСкст"
-#: ../../include/text.php:1894
+#: ../../include/text.php:1893
msgid "Comanche Layout"
msgstr "Π¨Π°Π±Π»ΠΎΠ½ Comanche"
-#: ../../include/text.php:1899
+#: ../../include/text.php:1898
msgid "PHP"
msgstr ""
-#: ../../include/text.php:1908
+#: ../../include/text.php:1907
msgid "Page content type"
msgstr "Π’ΠΈΠΏ содСрТимого страницы"
-#: ../../include/text.php:2028 ../../include/conversation.php:116
-#: ../../Zotlabs/Module/Tagger.php:69 ../../Zotlabs/Module/Like.php:384
-#: ../../Zotlabs/Module/Subthread.php:111 ../../Zotlabs/Lib/Activity.php:1570
+#: ../../include/text.php:2027 ../../include/conversation.php:116
+#: ../../Zotlabs/Module/Tagger.php:69 ../../Zotlabs/Module/Like.php:387
+#: ../../Zotlabs/Module/Subthread.php:112 ../../Zotlabs/Lib/Activity.php:1570
#: ../../extend/addon/hzaddons/redphotos/redphotohelper.php:71
-#: ../../extend/addon/hzaddons/pubcrawl/as.php:1512
-#: ../../extend/addon/hzaddons/diaspora/Receiver.php:1539
+#: ../../extend/addon/hzaddons/pubcrawl/as.php:1494
+#: ../../extend/addon/hzaddons/diaspora/Receiver.php:1541
msgid "photo"
msgstr "Ρ„ΠΎΡ‚ΠΎ"
-#: ../../include/text.php:2031 ../../include/conversation.php:119
-#: ../../include/event.php:1153 ../../Zotlabs/Module/Tagger.php:73
-#: ../../Zotlabs/Module/Events.php:260 ../../Zotlabs/Module/Like.php:386
+#: ../../include/text.php:2030 ../../include/conversation.php:119
+#: ../../include/event.php:1156 ../../Zotlabs/Module/Tagger.php:73
+#: ../../Zotlabs/Module/Events.php:260 ../../Zotlabs/Module/Like.php:389
msgid "event"
msgstr "событиС"
-#: ../../include/text.php:2034 ../../include/conversation.php:144
-#: ../../Zotlabs/Module/Like.php:384 ../../Zotlabs/Module/Subthread.php:111
+#: ../../include/text.php:2033 ../../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:1512
-#: ../../extend/addon/hzaddons/diaspora/Receiver.php:1539
+#: ../../extend/addon/hzaddons/pubcrawl/as.php:1494
+#: ../../extend/addon/hzaddons/diaspora/Receiver.php:1541
msgid "status"
msgstr "статус"
-#: ../../include/text.php:2036 ../../include/conversation.php:146
+#: ../../include/text.php:2035 ../../include/conversation.php:146
#: ../../Zotlabs/Module/Tagger.php:79
msgid "comment"
msgstr "ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ"
-#: ../../include/text.php:2041
+#: ../../include/text.php:2040
msgid "activity"
msgstr "Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ"
-#: ../../include/text.php:2142
+#: ../../include/text.php:2141
msgid "a-z, 0-9, -, and _ only"
msgstr "Волько a-z, 0-9, -, и _"
-#: ../../include/text.php:2462
+#: ../../include/text.php:2461
msgid "Design Tools"
msgstr "Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π΄ΠΈΠ·Π°ΠΉΠ½Π°"
-#: ../../include/text.php:2465 ../../Zotlabs/Module/Blocks.php:154
+#: ../../include/text.php:2464 ../../Zotlabs/Module/Blocks.php:154
msgid "Blocks"
msgstr "Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ"
-#: ../../include/text.php:2466 ../../Zotlabs/Module/Menu.php:170
+#: ../../include/text.php:2465 ../../Zotlabs/Module/Menu.php:170
msgid "Menus"
msgstr "МСню"
-#: ../../include/text.php:2467 ../../Zotlabs/Module/Layouts.php:184
+#: ../../include/text.php:2466 ../../Zotlabs/Module/Layouts.php:184
msgid "Layouts"
msgstr "Π¨Π°Π±Π»ΠΎΠ½Ρ‹"
-#: ../../include/text.php:2468
+#: ../../include/text.php:2467
msgid "Pages"
msgstr "Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Ρ‹"
-#: ../../include/text.php:2489 ../../Zotlabs/Module/Cal.php:343
+#: ../../include/text.php:2488 ../../Zotlabs/Module/Cal.php:343
msgid "Import"
msgstr "Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ"
-#: ../../include/text.php:2490
+#: ../../include/text.php:2489
msgid "Import website..."
msgstr "Π˜ΠΌΠΏΠΎΡ€Ρ‚ Π²Π΅Π±-сайта..."
-#: ../../include/text.php:2491
+#: ../../include/text.php:2490
msgid "Select folder to import"
msgstr "Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°"
-#: ../../include/text.php:2492
+#: ../../include/text.php:2491
msgid "Import from a zipped folder:"
msgstr "Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π² zip-Π°Ρ€Ρ…ΠΈΠ²Π΅:"
-#: ../../include/text.php:2493
+#: ../../include/text.php:2492
msgid "Import from cloud files:"
msgstr "Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ· сСтСвых Ρ„Π°ΠΉΠ»ΠΎΠ²:"
-#: ../../include/text.php:2494
+#: ../../include/text.php:2493
msgid "/cloud/channel/path/to/folder"
msgstr ""
-#: ../../include/text.php:2495
+#: ../../include/text.php:2494
msgid "Enter path to website files"
msgstr "Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ Π²Π΅Π±-сайта"
-#: ../../include/text.php:2496
+#: ../../include/text.php:2495
msgid "Select folder"
msgstr "Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³"
-#: ../../include/text.php:2497
+#: ../../include/text.php:2496
msgid "Export website..."
msgstr "Экспорт Π²Π΅Π±-сайта..."
-#: ../../include/text.php:2498
+#: ../../include/text.php:2497
msgid "Export to a zip file"
msgstr "Π­ΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ZIP Ρ„Π°ΠΉΠ»."
-#: ../../include/text.php:2499
+#: ../../include/text.php:2498
msgid "website.zip"
msgstr ""
-#: ../../include/text.php:2500
+#: ../../include/text.php:2499
msgid "Enter a name for the zip file."
msgstr "Π’Π²Π΅Π΄ΠΈΡ‚Π΅ имя для ZIP Ρ„Π°ΠΉΠ»Π°."
-#: ../../include/text.php:2501
+#: ../../include/text.php:2500
msgid "Export to cloud files"
msgstr "Π­ΡΠΊΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² сСтСвыС Ρ„Π°ΠΉΠ»Ρ‹:"
-#: ../../include/text.php:2502
+#: ../../include/text.php:2501
msgid "/path/to/export/folder"
msgstr ""
-#: ../../include/text.php:2503
+#: ../../include/text.php:2502
msgid "Enter a path to a cloud files destination."
msgstr "Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ сСтСвых Ρ„Π°ΠΉΠ»ΠΎΠ²."
-#: ../../include/text.php:2504
+#: ../../include/text.php:2503
msgid "Specify folder"
msgstr "Π£ΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³"
-#: ../../include/text.php:2824 ../../Zotlabs/Storage/Browser.php:131
+#: ../../include/text.php:2823 ../../Zotlabs/Storage/Browser.php:131
msgid "Collection"
msgstr "ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ"
@@ -2161,7 +2162,7 @@ msgstr "НС ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉΡΡ ΠΈΠ΄Π΅Π½Ρ‚
msgid "Unable to create a unique channel address. Import failed."
msgstr "НС ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ адрСс ΠΊΠ°Π½Π°Π»Π°. Π˜ΠΌΠΏΠΎΡ€Ρ‚ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½."
-#: ../../include/import.php:117
+#: ../../include/import.php:116
msgid "Cloned channel not found. Import failed."
msgstr "Клон ΠΊΠ°Π½Π°Π»Π° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½. Π˜ΠΌΠΏΠΎΡ€Ρ‚ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½."
@@ -2182,7 +2183,7 @@ msgstr "Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ"
#: ../../include/group.php:320 ../../include/nav.php:95
#: ../../Zotlabs/Module/Group.php:132 ../../Zotlabs/Module/Group.php:143
-#: ../../Zotlabs/Widget/Activity_filter.php:70 ../../Zotlabs/Lib/Group.php:324
+#: ../../Zotlabs/Widget/Activity_filter.php:41 ../../Zotlabs/Lib/Group.php:324
#: ../../Zotlabs/Lib/Apps.php:339
msgid "Privacy Groups"
msgstr "Π“Ρ€ΡƒΠΏΠΏΡ‹ бСзопасности"
@@ -2272,20 +2273,20 @@ msgstr "Π­Ρ‚ΠΎ дСйствиС ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ ограничСния, усΡ
msgid "This action is not available under your subscription plan."
msgstr "Π­Ρ‚ΠΎ дСйствиС Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·-Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π² вашСм ΠΏΠ»Π°Π½Π΅."
-#: ../../include/zot.php:773
+#: ../../include/zot.php:775
msgid "Invalid data packet"
msgstr "НСвСрный ΠΏΠ°ΠΊΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ…"
-#: ../../include/zot.php:800 ../../Zotlabs/Lib/Libzot.php:663
+#: ../../include/zot.php:802 ../../Zotlabs/Lib/Libzot.php:667
msgid "Unable to verify channel signature"
msgstr "НСвозмоТно ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ подпись ΠΊΠ°Π½Π°Π»Π°"
-#: ../../include/zot.php:2571 ../../Zotlabs/Lib/Libsync.php:733
+#: ../../include/zot.php:2575 ../../Zotlabs/Lib/Libsync.php:733
#, php-format
msgid "Unable to verify site signature for %s"
msgstr "НСвозмоТно ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ подпись сайта %s"
-#: ../../include/zot.php:4235
+#: ../../include/zot.php:4272
msgid "invalid target signature"
msgstr "нСдопустимая цСлСвая подпись"
@@ -2346,11 +2347,6 @@ msgstr "НС найдСно"
msgid "Page not found."
msgstr "Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°."
-#: ../../include/dba/dba_driver.php:178
-#, php-format
-msgid "Cannot locate DNS info for database server '%s'"
-msgstr "НС удаСтся Π½Π°ΠΉΡ‚ΠΈ DNS ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ для сСрвСра Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… '%s'"
-
#: ../../include/bbcode.php:200 ../../include/bbcode.php:1201
#: ../../include/bbcode.php:1204 ../../include/bbcode.php:1209
#: ../../include/bbcode.php:1212 ../../include/bbcode.php:1215
@@ -2430,17 +2426,17 @@ msgstr "$1 писал:"
msgid "channel"
msgstr "ΠΊΠ°Π½Π°Π»"
-#: ../../include/conversation.php:160 ../../Zotlabs/Module/Like.php:438
+#: ../../include/conversation.php:160 ../../Zotlabs/Module/Like.php:441
#: ../../Zotlabs/Lib/Activity.php:1605
-#: ../../extend/addon/hzaddons/pubcrawl/as.php:1547
-#: ../../extend/addon/hzaddons/diaspora/Receiver.php:1568
+#: ../../extend/addon/hzaddons/pubcrawl/as.php:1529
+#: ../../extend/addon/hzaddons/diaspora/Receiver.php:1570
#, 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:440
+#: ../../include/conversation.php:163 ../../Zotlabs/Module/Like.php:443
#: ../../Zotlabs/Lib/Activity.php:1607
-#: ../../extend/addon/hzaddons/pubcrawl/as.php:1549
+#: ../../extend/addon/hzaddons/pubcrawl/as.php:1531
#, php-format
msgid "%1$s doesn't like %2$s's %3$s"
msgstr "%1$s Π½Π΅ нравится %2$s %3$s"
@@ -2465,52 +2461,52 @@ msgstr "%1$s Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π² ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ с %2$s"
msgid "%1$s poked %2$s"
msgstr "%1$s Ρ‚ΠΊΠ½ΡƒΠ» %2$s"
-#: ../../include/conversation.php:268 ../../Zotlabs/Module/Mood.php:75
+#: ../../include/conversation.php:268 ../../Zotlabs/Module/Mood.php:76
#, php-format
msgctxt "mood"
msgid "%1$s is %2$s"
msgstr "%1$s Π² %2$s"
-#: ../../include/conversation.php:483 ../../Zotlabs/Lib/ThreadItem.php:440
+#: ../../include/conversation.php:483 ../../Zotlabs/Lib/ThreadItem.php:443
msgid "This is an unsaved preview"
msgstr "Π­Ρ‚ΠΎ нСсохранённый просмотр"
-#: ../../include/conversation.php:619 ../../Zotlabs/Module/Photos.php:1139
+#: ../../include/conversation.php:619 ../../Zotlabs/Module/Photos.php:1152
msgctxt "title"
msgid "Likes"
msgstr "Нравится"
-#: ../../include/conversation.php:619 ../../Zotlabs/Module/Photos.php:1139
+#: ../../include/conversation.php:619 ../../Zotlabs/Module/Photos.php:1152
msgctxt "title"
msgid "Dislikes"
msgstr "НС нравится"
-#: ../../include/conversation.php:620 ../../Zotlabs/Module/Photos.php:1140
+#: ../../include/conversation.php:620 ../../Zotlabs/Module/Photos.php:1153
msgctxt "title"
msgid "Agree"
msgstr "БогласСн"
-#: ../../include/conversation.php:620 ../../Zotlabs/Module/Photos.php:1140
+#: ../../include/conversation.php:620 ../../Zotlabs/Module/Photos.php:1153
msgctxt "title"
msgid "Disagree"
msgstr "НС согласСн"
-#: ../../include/conversation.php:620 ../../Zotlabs/Module/Photos.php:1140
+#: ../../include/conversation.php:620 ../../Zotlabs/Module/Photos.php:1153
msgctxt "title"
msgid "Abstain"
msgstr "ВоздСрТался"
-#: ../../include/conversation.php:621 ../../Zotlabs/Module/Photos.php:1141
+#: ../../include/conversation.php:621 ../../Zotlabs/Module/Photos.php:1154
msgctxt "title"
msgid "Attending"
msgstr "ΠŸΠΎΡΠ΅Ρ‰Π°ΡŽ"
-#: ../../include/conversation.php:621 ../../Zotlabs/Module/Photos.php:1141
+#: ../../include/conversation.php:621 ../../Zotlabs/Module/Photos.php:1154
msgctxt "title"
msgid "Not attending"
msgstr "НС ΠΏΠΎΡΠ΅Ρ‰Π°ΡŽ"
-#: ../../include/conversation.php:621 ../../Zotlabs/Module/Photos.php:1141
+#: ../../include/conversation.php:621 ../../Zotlabs/Module/Photos.php:1154
msgctxt "title"
msgid "Might attend"
msgstr "Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ посСщу"
@@ -2522,15 +2518,15 @@ 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:1205 ../../Zotlabs/Module/Oauth.php:174
+#: ../../Zotlabs/Module/Photos.php:1218 ../../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:655
-#: ../../Zotlabs/Module/Connedit.php:924
+#: ../../Zotlabs/Module/Webpages.php:257 ../../Zotlabs/Module/Connedit.php:660
+#: ../../Zotlabs/Module/Connedit.php:929
#: ../../Zotlabs/Module/Connections.php:292
#: ../../Zotlabs/Module/Card_edit.php:129
#: ../../Zotlabs/Module/Article_edit.php:129
@@ -2574,17 +2570,17 @@ msgstr "ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ:"
msgid "Filed under:"
msgstr "Π₯Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄:"
-#: ../../include/conversation.php:766 ../../Zotlabs/Lib/ThreadItem.php:375
+#: ../../include/conversation.php:766 ../../Zotlabs/Lib/ThreadItem.php:378
#, php-format
msgid "from %s"
msgstr "ΠΎΡ‚ %s"
-#: ../../include/conversation.php:769 ../../Zotlabs/Lib/ThreadItem.php:378
+#: ../../include/conversation.php:769 ../../Zotlabs/Lib/ThreadItem.php:381
#, php-format
msgid "last edited: %s"
msgstr "послСднСС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅: %s"
-#: ../../include/conversation.php:770 ../../Zotlabs/Lib/ThreadItem.php:379
+#: ../../include/conversation.php:770 ../../Zotlabs/Lib/ThreadItem.php:382
#, php-format
msgid "Expires: %s"
msgstr "Π‘Ρ€ΠΎΠΊ дСйствия: %s"
@@ -2593,8 +2589,8 @@ msgstr "Π‘Ρ€ΠΎΠΊ дСйствия: %s"
msgid "View in context"
msgstr "ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π² контСкстС"
-#: ../../include/conversation.php:787 ../../Zotlabs/Module/Photos.php:1105
-#: ../../Zotlabs/Lib/ThreadItem.php:441
+#: ../../include/conversation.php:787 ../../Zotlabs/Module/Photos.php:1118
+#: ../../Zotlabs/Lib/ThreadItem.php:444
msgid "Please wait"
msgstr "ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅ поТалуйста"
@@ -2627,12 +2623,12 @@ msgid "Unfollow Thread"
msgstr "ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΌΡƒ"
#: ../../include/conversation.php:1038 ../../include/nav.php:106
-#: ../../Zotlabs/Module/Connedit.php:595 ../../Zotlabs/Lib/Apps.php:319
+#: ../../Zotlabs/Module/Connedit.php:600 ../../Zotlabs/Lib/Apps.php:319
#: ../../extend/addon/hzaddons/openclipatar/openclipatar.php:57
msgid "View Profile"
msgstr "ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ"
-#: ../../include/conversation.php:1048 ../../Zotlabs/Module/Connedit.php:616
+#: ../../include/conversation.php:1048 ../../Zotlabs/Module/Connedit.php:621
msgid "Recent Activity"
msgstr "ПослСдниС дСйствия"
@@ -2656,13 +2652,13 @@ 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:819
-#: ../../Zotlabs/Module/Photos.php:1275
+#: ../../Zotlabs/Module/Cdav.php:819 ../../Zotlabs/Module/Photos.php:832
+#: ../../Zotlabs/Module/Photos.php:1288
#: ../../Zotlabs/Module/Embedphotos.php:146
#: ../../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:964
+#: ../../extend/addon/hzaddons/pubcrawl/as.php:949
msgid "Unknown"
msgstr "НСизвСстный"
@@ -2800,14 +2796,14 @@ msgstr "ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹"
msgid "Comments disabled"
msgstr "ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹"
-#: ../../include/conversation.php:1356 ../../Zotlabs/Module/Photos.php:1125
+#: ../../include/conversation.php:1356 ../../Zotlabs/Module/Photos.php:1138
#: ../../Zotlabs/Module/Events.php:480 ../../Zotlabs/Module/Webpages.php:262
-#: ../../Zotlabs/Lib/ThreadItem.php:777
+#: ../../Zotlabs/Lib/ThreadItem.php:780
#: ../../extend/addon/hzaddons/hsse/hsse.php:153
msgid "Preview"
msgstr "ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр"
-#: ../../include/conversation.php:1389 ../../Zotlabs/Module/Photos.php:1104
+#: ../../include/conversation.php:1389 ../../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
@@ -2825,32 +2821,32 @@ msgstr "НазваниС ссылки Π½Π° страницу "
msgid "Post as"
msgstr "ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ"
-#: ../../include/conversation.php:1403 ../../Zotlabs/Lib/ThreadItem.php:768
+#: ../../include/conversation.php:1403 ../../Zotlabs/Lib/ThreadItem.php:771
#: ../../extend/addon/hzaddons/hsse/hsse.php:200
msgid "Bold"
msgstr "Π–ΠΈΡ€Π½Ρ‹ΠΉ"
-#: ../../include/conversation.php:1404 ../../Zotlabs/Lib/ThreadItem.php:769
+#: ../../include/conversation.php:1404 ../../Zotlabs/Lib/ThreadItem.php:772
#: ../../extend/addon/hzaddons/hsse/hsse.php:201
msgid "Italic"
msgstr "ΠšΡƒΡ€ΡΠΈΠ²"
-#: ../../include/conversation.php:1405 ../../Zotlabs/Lib/ThreadItem.php:770
+#: ../../include/conversation.php:1405 ../../Zotlabs/Lib/ThreadItem.php:773
#: ../../extend/addon/hzaddons/hsse/hsse.php:202
msgid "Underline"
msgstr "ΠŸΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚Ρ‹ΠΉ"
-#: ../../include/conversation.php:1406 ../../Zotlabs/Lib/ThreadItem.php:771
+#: ../../include/conversation.php:1406 ../../Zotlabs/Lib/ThreadItem.php:774
#: ../../extend/addon/hzaddons/hsse/hsse.php:203
msgid "Quote"
msgstr "Π¦ΠΈΡ‚Π°Ρ‚Π°"
-#: ../../include/conversation.php:1407 ../../Zotlabs/Lib/ThreadItem.php:772
+#: ../../include/conversation.php:1407 ../../Zotlabs/Lib/ThreadItem.php:775
#: ../../extend/addon/hzaddons/hsse/hsse.php:204
msgid "Code"
msgstr "Код"
-#: ../../include/conversation.php:1408 ../../Zotlabs/Lib/ThreadItem.php:774
+#: ../../include/conversation.php:1408 ../../Zotlabs/Lib/ThreadItem.php:777
#: ../../extend/addon/hzaddons/hsse/hsse.php:205
msgid "Attach/Upload file"
msgstr "ΠŸΡ€ΠΈΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ/Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»"
@@ -2872,7 +2868,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:925
+#: ../../Zotlabs/Module/Editpost.php:109 ../../Zotlabs/Module/Connedit.php:930
#: ../../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
@@ -2904,8 +2900,8 @@ msgstr "ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ"
msgid "Toggle comments"
msgstr "ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ"
-#: ../../include/conversation.php:1424 ../../Zotlabs/Module/Photos.php:700
-#: ../../Zotlabs/Module/Photos.php:1070 ../../Zotlabs/Module/Editblock.php:129
+#: ../../include/conversation.php:1424 ../../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
#: ../../extend/addon/hzaddons/hsse/hsse.php:221
@@ -2940,12 +2936,12 @@ msgstr "Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π°Ρ‚Ρƒ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ"
#: ../../include/conversation.php:1458 ../../Zotlabs/Module/Mail.php:294
#: ../../Zotlabs/Module/Mail.php:436 ../../Zotlabs/Module/Chat.php:221
-#: ../../Zotlabs/Lib/ThreadItem.php:781
+#: ../../Zotlabs/Lib/ThreadItem.php:784
#: ../../extend/addon/hzaddons/hsse/hsse.php:255
msgid "Encrypt text"
msgstr "Π—Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ тСкст"
-#: ../../include/conversation.php:1696 ../../Zotlabs/Module/Photos.php:1167
+#: ../../include/conversation.php:1696 ../../Zotlabs/Module/Photos.php:1180
#: ../../Zotlabs/Lib/ThreadItem.php:223
msgctxt "noun"
msgid "Dislike"
@@ -3053,12 +3049,12 @@ msgstr "Π’Ρ‹Π±ΠΎΡ€ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ языка"
msgid "Delete this item?"
msgstr "Π£Π΄Π°Π»ΠΈΡ‚ΡŒ этот элСмСнт?"
-#: ../../include/js_strings.php:6 ../../Zotlabs/Module/Photos.php:1123
-#: ../../Zotlabs/Module/Photos.php:1241 ../../Zotlabs/Lib/ThreadItem.php:766
+#: ../../include/js_strings.php:6 ../../Zotlabs/Module/Photos.php:1136
+#: ../../Zotlabs/Module/Photos.php:1254 ../../Zotlabs/Lib/ThreadItem.php:769
msgid "Comment"
msgstr "ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ"
-#: ../../include/js_strings.php:7 ../../Zotlabs/Lib/ThreadItem.php:473
+#: ../../include/js_strings.php:7 ../../Zotlabs/Lib/ThreadItem.php:476
#, php-format
msgid "%s show all"
msgstr "%s ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ всё"
@@ -3115,7 +3111,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:871
+#: ../../Zotlabs/Module/Connedit.php:876
msgid "Rating"
msgstr "ΠžΡ†Π΅Π½ΠΊΠ°"
@@ -3413,9 +3409,9 @@ msgstr ""
#: ../../include/network.php:1778 ../../Zotlabs/Lib/Activity.php:1417
#: ../../Zotlabs/Lib/Activity.php:1614
-#: ../../extend/addon/hzaddons/pubcrawl/as.php:1222
-#: ../../extend/addon/hzaddons/pubcrawl/as.php:1377
-#: ../../extend/addon/hzaddons/pubcrawl/as.php:1556
+#: ../../extend/addon/hzaddons/pubcrawl/as.php:1204
+#: ../../extend/addon/hzaddons/pubcrawl/as.php:1359
+#: ../../extend/addon/hzaddons/pubcrawl/as.php:1538
msgid "ActivityPub"
msgstr ""
@@ -3423,7 +3419,7 @@ msgstr ""
#: ../../Zotlabs/Module/Profiles.php:787
#: ../../Zotlabs/Module/Admin/Accounts.php:171
#: ../../Zotlabs/Module/Admin/Accounts.php:183
-#: ../../Zotlabs/Module/Connedit.php:911
+#: ../../Zotlabs/Module/Connedit.php:916
#: ../../extend/addon/hzaddons/rtof/rtof.php:93
#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:56
#: ../../extend/addon/hzaddons/openid/MysqlProvider.php:57
@@ -3479,7 +3475,7 @@ msgstr "YYYY-MM-DD ΠΈΠ»ΠΈ MM-DD"
msgid "Required"
msgstr "ВрСбуСтся"
-#: ../../include/datetime.php:238 ../../boot.php:2558
+#: ../../include/datetime.php:238 ../../boot.php:2557
msgid "never"
msgstr "Π½ΠΈΠΊΠΎΠ³Π΄Π°"
@@ -3564,7 +3560,7 @@ msgstr "Π‘ Π”Π½Π΅ΠΌ роТдСния %1$s !"
msgid "Visible to your default audience"
msgstr "Π’ΠΈΠ΄Π½ΠΎ вашСй Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ."
-#: ../../include/acl_selectors.php:88 ../../Zotlabs/Module/Acl.php:120
+#: ../../include/acl_selectors.php:88 ../../Zotlabs/Module/Acl.php:121
#: ../../Zotlabs/Module/Lockview.php:117 ../../Zotlabs/Module/Lockview.php:153
msgctxt "acl"
msgid "Profile"
@@ -3597,15 +3593,15 @@ msgstr "ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ"
msgid "Don't show"
msgstr "НС ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ"
-#: ../../include/acl_selectors.php:123 ../../Zotlabs/Module/Photos.php:704
-#: ../../Zotlabs/Module/Photos.php:1073 ../../Zotlabs/Module/Chat.php:243
+#: ../../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:677
+#: ../../Zotlabs/Module/Thing.php:372 ../../Zotlabs/Module/Connedit.php:682
msgid "Permissions"
msgstr "Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ"
-#: ../../include/acl_selectors.php:125 ../../Zotlabs/Module/Photos.php:1295
-#: ../../Zotlabs/Lib/ThreadItem.php:435
+#: ../../include/acl_selectors.php:125 ../../Zotlabs/Module/Photos.php:1308
+#: ../../Zotlabs/Lib/ThreadItem.php:438
msgid "Close"
msgstr "Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ"
@@ -3629,37 +3625,37 @@ msgstr "НовоС окно"
msgid "Open the selected location in a different window or browser tab"
msgstr "ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ΅ мСстополоТСниС Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΈΠ»ΠΈ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°"
-#: ../../include/connections.php:696 ../../include/event.php:1308
+#: ../../include/connections.php:696 ../../include/event.php:1311
#: ../../Zotlabs/Module/Cdav.php:1224 ../../Zotlabs/Module/Profiles.php:792
-#: ../../Zotlabs/Module/Connedit.php:916
+#: ../../Zotlabs/Module/Connedit.php:921
msgid "Mobile"
msgstr "ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ"
-#: ../../include/connections.php:697 ../../include/event.php:1309
+#: ../../include/connections.php:697 ../../include/event.php:1312
#: ../../Zotlabs/Module/Cdav.php:1225 ../../Zotlabs/Module/Profiles.php:793
-#: ../../Zotlabs/Module/Connedit.php:917
+#: ../../Zotlabs/Module/Connedit.php:922
msgid "Home"
msgstr "Π”ΠΎΠΌΠ°ΡˆΠ½ΠΈΠΉ"
-#: ../../include/connections.php:698 ../../include/event.php:1310
+#: ../../include/connections.php:698 ../../include/event.php:1313
msgid "Home, Voice"
msgstr "Π”ΠΎΠΌ, голос"
-#: ../../include/connections.php:699 ../../include/event.php:1311
+#: ../../include/connections.php:699 ../../include/event.php:1314
msgid "Home, Fax"
msgstr "Π”ΠΎΠΌ, факс"
-#: ../../include/connections.php:700 ../../include/event.php:1312
+#: ../../include/connections.php:700 ../../include/event.php:1315
#: ../../Zotlabs/Module/Cdav.php:1226 ../../Zotlabs/Module/Profiles.php:794
-#: ../../Zotlabs/Module/Connedit.php:918
+#: ../../Zotlabs/Module/Connedit.php:923
msgid "Work"
msgstr "Π Π°Π±ΠΎΡ‡ΠΈΠΉ"
-#: ../../include/connections.php:701 ../../include/event.php:1313
+#: ../../include/connections.php:701 ../../include/event.php:1316
msgid "Work, Voice"
msgstr "Π Π°Π±ΠΎΡ‚Π°, голос"
-#: ../../include/connections.php:702 ../../include/event.php:1314
+#: ../../include/connections.php:702 ../../include/event.php:1317
msgid "Work, Fax"
msgstr "Π Π°Π±ΠΎΡ‚Π°, факс"
@@ -3679,23 +3675,23 @@ msgstr "ΠžΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅:"
msgid "This event has been added to your calendar."
msgstr "Π­Ρ‚ΠΎ событиС Π±Ρ‹Π»ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π² ваш ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ€ΡŒ."
-#: ../../include/event.php:1227
+#: ../../include/event.php:1230
msgid "Not specified"
msgstr "НС ΡƒΠΊΠ°Π·Π°Π½ΠΎ"
-#: ../../include/event.php:1228
+#: ../../include/event.php:1231
msgid "Needs Action"
msgstr "Π’Ρ€Π΅Π±ΡƒΠ΅Ρ‚ дСйствия"
-#: ../../include/event.php:1229
+#: ../../include/event.php:1232
msgid "Completed"
msgstr "Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ"
-#: ../../include/event.php:1230
+#: ../../include/event.php:1233
msgid "In Process"
msgstr "Π’ процСссС"
-#: ../../include/event.php:1231
+#: ../../include/event.php:1234
msgid "Cancelled"
msgstr "ΠžΡ‚ΠΌΠ΅Π½Π΅Π½ΠΎ"
@@ -3753,7 +3749,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:1623
msgid "Logout"
msgstr "Π’Ρ‹Ρ…ΠΎΠ΄"
@@ -3773,7 +3769,7 @@ msgstr "Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ / Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ"
msgid "Edit your profile"
msgstr "Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ"
-#: ../../include/nav.php:118 ../../include/nav.php:122 ../../boot.php:1625
+#: ../../include/nav.php:118 ../../include/nav.php:122 ../../boot.php:1624
#: ../../Zotlabs/Lib/Apps.php:311
msgid "Login"
msgstr "Π’ΠΎΠΉΡ‚ΠΈ"
@@ -3790,7 +3786,7 @@ msgstr "Π”ΠΎΠΌΠΎΠΉ"
msgid "Log me out of this site"
msgstr "Π’Ρ‹ΠΉΡ‚ΠΈ с этого сайта"
-#: ../../include/nav.php:156 ../../boot.php:1605
+#: ../../include/nav.php:156 ../../boot.php:1604
#: ../../Zotlabs/Module/Register.php:289
msgid "Register"
msgstr "РСгистрация"
@@ -3818,7 +3814,7 @@ msgstr "Установка ΠΈ конфигурация сайта"
#: ../../include/nav.php:293 ../../Zotlabs/Module/Defperms.php:256
#: ../../Zotlabs/Module/New_channel.php:157
#: ../../Zotlabs/Module/New_channel.php:164
-#: ../../Zotlabs/Module/Connedit.php:853
+#: ../../Zotlabs/Module/Connedit.php:858
#: ../../Zotlabs/Widget/Notifications.php:162
msgid "Loading"
msgstr "Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ°"
@@ -3914,7 +3910,7 @@ msgid "View Webpages"
msgstr "ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π²Π΅Π±-страниц"
#: ../../include/nav.php:506 ../../Zotlabs/Module/Wiki.php:206
-#: ../../Zotlabs/Widget/Wiki_list.php:19
+#: ../../Zotlabs/Widget/Wiki_list.php:15
msgid "Wikis"
msgstr ""
@@ -3993,51 +3989,51 @@ msgstr "ошибка ΠΏΡ€ΠΈ записи Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…."
msgid "Empty path"
msgstr "ΠŸΡƒΡΡ‚ΠΎΠ΅ имя ΠΏΡƒΡ‚ΠΈ"
-#: ../../include/photo/photo_driver.php:741
+#: ../../include/photo/photo_driver.php:774
#: ../../Zotlabs/Module/Profile_photo.php:120
#: ../../Zotlabs/Module/Profile_photo.php:248
msgid "Profile Photos"
msgstr "Π€ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ профиля"
-#: ../../boot.php:1604
+#: ../../boot.php:1603
msgid "Create an account to access services and applications"
msgstr "Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ для доступа ΠΊ слуТбам ΠΈ прилоТСниям"
-#: ../../boot.php:1628
+#: ../../boot.php:1627
msgid "Login/Email"
msgstr "ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ / email"
-#: ../../boot.php:1629
+#: ../../boot.php:1628
msgid "Password"
msgstr "ΠŸΠ°Ρ€ΠΎΠ»ΡŒ"
-#: ../../boot.php:1630
+#: ../../boot.php:1629
msgid "Remember me"
msgstr "Π—Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ мСня"
-#: ../../boot.php:1633
+#: ../../boot.php:1632
msgid "Forgot your password?"
msgstr "Π—Π°Π±Ρ‹Π»ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΈΠ½?"
-#: ../../boot.php:1634 ../../Zotlabs/Module/Lostpass.php:91
+#: ../../boot.php:1633 ../../Zotlabs/Module/Lostpass.php:91
msgid "Password Reset"
msgstr "Π‘Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ"
-#: ../../boot.php:2431
+#: ../../boot.php:2430
#, php-format
msgid "[$Projectname] Website SSL error for %s"
msgstr "[$Projectname] Ошибка SSL/TLS Π²Π΅Π±-сайта для %s"
-#: ../../boot.php:2436
+#: ../../boot.php:2435
msgid "Website SSL certificate is not valid. Please correct."
msgstr "SSL/TLS сСртификат Π²Π΅Π±-сайт нСдСйствитСлСн. Π˜ΡΠΏΡ€Π°Π²ΡŒΡ‚Π΅ это."
-#: ../../boot.php:2552
+#: ../../boot.php:2551
#, php-format
msgid "[$Projectname] Cron tasks not running on %s"
msgstr "[$Projectname] Задания Cron Π½Π΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ Π½Π° %s"
-#: ../../boot.php:2557
+#: ../../boot.php:2556
msgid "Cron/Scheduled tasks not running."
msgstr "Задания Cron / ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° Π½Π΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹."
@@ -4072,7 +4068,7 @@ 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:922
+#: ../../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/Widget/Cdav.php:128 ../../Zotlabs/Widget/Cdav.php:165
@@ -4092,7 +4088,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:907 ../../Zotlabs/Module/Group.php:144
+#: ../../Zotlabs/Module/Connedit.php:912 ../../Zotlabs/Module/Group.php:144
#: ../../Zotlabs/Module/Wiki.php:218
#: ../../Zotlabs/Widget/Wiki_page_history.php:22
#: ../../Zotlabs/Lib/NativeWikiPage.php:561
@@ -4131,7 +4127,7 @@ msgstr "Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ"
msgid "Upload file"
msgstr "Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»"
-#: ../../Zotlabs/Storage/Browser.php:392 ../../Zotlabs/Module/Photos.php:714
+#: ../../Zotlabs/Storage/Browser.php:392 ../../Zotlabs/Module/Photos.php:727
#: ../../Zotlabs/Module/Cover_photo.php:395
#: ../../Zotlabs/Module/Embedphotos.php:158
#: ../../Zotlabs/Module/Profile_photo.php:459
@@ -4280,7 +4276,7 @@ msgid ""
"to correctly use this feature."
msgstr "ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅. ИзмСнСниС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… настроСк ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ нСработоспособности вашСго ΠΊΠ°Π½Π°Π»Π°. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΏΠΎΠΊΠΈΠ½ΡŒΡ‚Π΅ эту страницу, Ссли Π²Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π΅ Π·Π½Π°Ρ‡Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ."
-#: ../../Zotlabs/Module/Defperms.php:67 ../../Zotlabs/Module/Connedit.php:80
+#: ../../Zotlabs/Module/Defperms.php:67 ../../Zotlabs/Module/Connedit.php:81
msgid "Could not access contact record."
msgstr "НС ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ записи ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°."
@@ -4308,7 +4304,7 @@ msgstr "ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ \"Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ\""
#: ../../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:132
+#: ../../Zotlabs/Module/Group.php:101 ../../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/Connect.php:104 ../../Zotlabs/Module/Pdledit.php:42
@@ -4321,11 +4317,11 @@ msgstr "Π½Π΅ установлСно"
msgid "Set custom default permissions for new connections"
msgstr "Настройка ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ "
-#: ../../Zotlabs/Module/Defperms.php:254 ../../Zotlabs/Module/Connedit.php:851
+#: ../../Zotlabs/Module/Defperms.php:254 ../../Zotlabs/Module/Connedit.php:856
msgid "Connection Default Permissions"
msgstr "Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°"
-#: ../../Zotlabs/Module/Defperms.php:255 ../../Zotlabs/Module/Connedit.php:852
+#: ../../Zotlabs/Module/Defperms.php:255 ../../Zotlabs/Module/Connedit.php:857
msgid "Apply these permissions automatically"
msgstr "ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ эти Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ автоматичСски"
@@ -4335,15 +4331,15 @@ msgid ""
"If enabled, connection requests will be approved without your interaction"
msgstr "Если Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ, запросы ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Ρ‹ Π±Π΅Π· вашСго участия"
-#: ../../Zotlabs/Module/Defperms.php:256 ../../Zotlabs/Module/Connedit.php:853
+#: ../../Zotlabs/Module/Defperms.php:256 ../../Zotlabs/Module/Connedit.php:858
msgid "Permission role"
msgstr "Роль Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ"
-#: ../../Zotlabs/Module/Defperms.php:257 ../../Zotlabs/Module/Connedit.php:854
+#: ../../Zotlabs/Module/Defperms.php:257 ../../Zotlabs/Module/Connedit.php:859
msgid "Add permission role"
msgstr "Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ€ΠΎΠ»ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ"
-#: ../../Zotlabs/Module/Defperms.php:261 ../../Zotlabs/Module/Connedit.php:867
+#: ../../Zotlabs/Module/Defperms.php:261 ../../Zotlabs/Module/Connedit.php:872
msgid ""
"The permissions indicated on this page will be applied to all new "
"connections."
@@ -4354,17 +4350,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:887
+#: ../../Zotlabs/Module/Tokens.php:183 ../../Zotlabs/Module/Connedit.php:892
msgid "inherited"
msgstr "наслСдуСтся"
#: ../../Zotlabs/Module/Defperms.php:266 ../../Zotlabs/Module/Permcats.php:121
-#: ../../Zotlabs/Module/Tokens.php:181 ../../Zotlabs/Module/Connedit.php:892
+#: ../../Zotlabs/Module/Tokens.php:181 ../../Zotlabs/Module/Connedit.php:897
msgid "My Settings"
msgstr "Мои настройки"
#: ../../Zotlabs/Module/Defperms.php:269 ../../Zotlabs/Module/Permcats.php:126
-#: ../../Zotlabs/Module/Tokens.php:186 ../../Zotlabs/Module/Connedit.php:894
+#: ../../Zotlabs/Module/Tokens.php:186 ../../Zotlabs/Module/Connedit.php:899
msgid "Individual Permissions"
msgstr "Π˜Π½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ"
@@ -4405,7 +4401,7 @@ msgid "Permission category name"
msgstr "НаимСнованиС ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ"
#: ../../Zotlabs/Module/Permcats.php:127 ../../Zotlabs/Module/Tokens.php:187
-#: ../../Zotlabs/Module/Connedit.php:895
+#: ../../Zotlabs/Module/Connedit.php:900
msgid ""
"Some permissions may be inherited from your channel's <a href=\"settings"
"\"><strong>privacy settings</strong></a>, which have higher priority than "
@@ -4425,69 +4421,69 @@ msgstr "Запрос Xchan начинаСтся с (ΠΈΠ»ΠΈ webbie):"
msgid "Not found."
msgstr "НС найдСно."
-#: ../../Zotlabs/Module/Dreport.php:45
+#: ../../Zotlabs/Module/Dreport.php:56
msgid "Invalid message"
msgstr "НСвСрноС сообщСниС"
-#: ../../Zotlabs/Module/Dreport.php:78
+#: ../../Zotlabs/Module/Dreport.php:89
msgid "no results"
msgstr "НичСго Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ."
-#: ../../Zotlabs/Module/Dreport.php:93
+#: ../../Zotlabs/Module/Dreport.php:103
msgid "channel sync processed"
msgstr "синхронизация ΠΊΠ°Π½Π°Π»Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°"
-#: ../../Zotlabs/Module/Dreport.php:97
+#: ../../Zotlabs/Module/Dreport.php:107
msgid "queued"
msgstr "Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ"
-#: ../../Zotlabs/Module/Dreport.php:101
+#: ../../Zotlabs/Module/Dreport.php:111
msgid "posted"
msgstr "ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ"
-#: ../../Zotlabs/Module/Dreport.php:105
+#: ../../Zotlabs/Module/Dreport.php:115
msgid "accepted for delivery"
msgstr "принято ΠΊ доставкС"
-#: ../../Zotlabs/Module/Dreport.php:109
+#: ../../Zotlabs/Module/Dreport.php:119
msgid "updated"
msgstr "ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ"
-#: ../../Zotlabs/Module/Dreport.php:112
+#: ../../Zotlabs/Module/Dreport.php:122
msgid "update ignored"
msgstr "ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ игнорируСтся"
-#: ../../Zotlabs/Module/Dreport.php:115
+#: ../../Zotlabs/Module/Dreport.php:125
msgid "permission denied"
msgstr "доступ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½"
-#: ../../Zotlabs/Module/Dreport.php:119
+#: ../../Zotlabs/Module/Dreport.php:129
msgid "recipient not found"
msgstr "ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½"
-#: ../../Zotlabs/Module/Dreport.php:122
+#: ../../Zotlabs/Module/Dreport.php:132
msgid "mail recalled"
msgstr "ΠΏΠΎΡ‡Ρ‚Π° ΠΎΡ‚ΠΎΠ·Π²Π°Π½Π°"
-#: ../../Zotlabs/Module/Dreport.php:125
+#: ../../Zotlabs/Module/Dreport.php:135
msgid "duplicate mail received"
msgstr "ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ сообщСниС"
-#: ../../Zotlabs/Module/Dreport.php:128
+#: ../../Zotlabs/Module/Dreport.php:138
msgid "mail delivered"
msgstr "ΠΏΠΎΡ‡Ρ‚Π° доставлСн"
-#: ../../Zotlabs/Module/Dreport.php:148
+#: ../../Zotlabs/Module/Dreport.php:158
#, php-format
msgid "Delivery report for %1$s"
msgstr "ΠžΡ‚Ρ‡Ρ‘Ρ‚ ΠΎ доставкС для %1$s"
-#: ../../Zotlabs/Module/Dreport.php:151 ../../Zotlabs/Widget/Wiki_pages.php:41
+#: ../../Zotlabs/Module/Dreport.php:161 ../../Zotlabs/Widget/Wiki_pages.php:41
#: ../../Zotlabs/Widget/Wiki_pages.php:98
msgid "Options"
msgstr "ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹"
-#: ../../Zotlabs/Module/Dreport.php:152
+#: ../../Zotlabs/Module/Dreport.php:162
msgid "Redeliver"
msgstr "Π”ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ"
@@ -4495,29 +4491,29 @@ msgstr "Π”ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ"
msgid "No such group"
msgstr "НСт Ρ‚Π°ΠΊΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹"
-#: ../../Zotlabs/Module/Network.php:148
+#: ../../Zotlabs/Module/Network.php:149
msgid "No such channel"
msgstr "НСт Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π°"
-#: ../../Zotlabs/Module/Network.php:163 ../../Zotlabs/Module/Channel.php:133
+#: ../../Zotlabs/Module/Network.php:164 ../../Zotlabs/Module/Channel.php:177
msgid "Search Results For:"
msgstr "Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ поиска для:"
-#: ../../Zotlabs/Module/Network.php:193 ../../Zotlabs/Module/Display.php:80
-#: ../../Zotlabs/Module/Pubstream.php:94 ../../Zotlabs/Module/Channel.php:168
+#: ../../Zotlabs/Module/Network.php:194 ../../Zotlabs/Module/Display.php:80
+#: ../../Zotlabs/Module/Pubstream.php:94 ../../Zotlabs/Module/Channel.php:212
#: ../../Zotlabs/Module/Hq.php:134
msgid "Reset form"
msgstr "ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ"
-#: ../../Zotlabs/Module/Network.php:231
+#: ../../Zotlabs/Module/Network.php:233
msgid "Privacy group is empty"
msgstr "Π“Ρ€ΡƒΠΏΠΏΠ° бСзопасности пуста"
-#: ../../Zotlabs/Module/Network.php:242
+#: ../../Zotlabs/Module/Network.php:243
msgid "Privacy group: "
msgstr "Π“Ρ€ΡƒΠΏΠΏΠ° бСзопасности: "
-#: ../../Zotlabs/Module/Network.php:291
+#: ../../Zotlabs/Module/Network.php:316
#: ../../extend/addon/hzaddons/redred/redred.php:65
msgid "Invalid channel."
msgstr "ΠΠ΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Π½Π°Π»."
@@ -4559,40 +4555,40 @@ msgstr "ΠžΠ±Ρ‰ΠΈΡ… ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² Π½Π΅Ρ‚."
msgid "View Common Connections"
msgstr "ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ²"
-#: ../../Zotlabs/Module/Acl.php:359
+#: ../../Zotlabs/Module/Acl.php:360
msgid "network"
msgstr "ΡΠ΅Ρ‚ΡŒ"
-#: ../../Zotlabs/Module/Item.php:194
+#: ../../Zotlabs/Module/Item.php:196
msgid "Unable to locate original post."
msgstr "НС ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π½Π°ΠΉΡ‚ΠΈ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡŽ."
-#: ../../Zotlabs/Module/Item.php:479
+#: ../../Zotlabs/Module/Item.php:483
msgid "Empty post discarded."
msgstr "ΠŸΡƒΡΡ‚Π°Ρ публикация ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½Π°."
-#: ../../Zotlabs/Module/Item.php:866
+#: ../../Zotlabs/Module/Item.php:892
msgid "Duplicate post suppressed."
msgstr "ПодавлСна Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰Π°ΡΡΡ публикация."
-#: ../../Zotlabs/Module/Item.php:1011
+#: ../../Zotlabs/Module/Item.php:1037
msgid "System error. Post not saved."
msgstr "БистСмная ошибка. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ Π½Π΅ сохранСна."
-#: ../../Zotlabs/Module/Item.php:1047
+#: ../../Zotlabs/Module/Item.php:1073
msgid "Your comment is awaiting approval."
msgstr "Π’Π°Ρˆ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ одобрСния."
-#: ../../Zotlabs/Module/Item.php:1164
+#: ../../Zotlabs/Module/Item.php:1190
msgid "Unable to obtain post information from database."
msgstr "НСвозмоТно ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…"
-#: ../../Zotlabs/Module/Item.php:1171
+#: ../../Zotlabs/Module/Item.php:1197
#, php-format
msgid "You have reached your limit of %1$.0f top level posts."
msgstr "Π’Ρ‹ достигли вашСго ограничСния Π² %1$.0f ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ высокого уровня."
-#: ../../Zotlabs/Module/Item.php:1178
+#: ../../Zotlabs/Module/Item.php:1204
#, php-format
msgid "You have reached your limit of %1$.0f webpages."
msgstr "Π’Ρ‹ достигли вашСго ограничСния Π² %1$.0f страниц."
@@ -4602,13 +4598,13 @@ msgid "Some blurb about what to do when you're new here"
msgstr "НСкоторыС прСдлоТСния ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π²Ρ‹ здСсь Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ "
#: ../../Zotlabs/Module/Display.php:29 ../../Zotlabs/Module/Directory.php:67
-#: ../../Zotlabs/Module/Directory.php:72 ../../Zotlabs/Module/Photos.php:545
+#: ../../Zotlabs/Module/Directory.php:72 ../../Zotlabs/Module/Photos.php:558
#: ../../Zotlabs/Module/Viewconnections.php:23
#: ../../Zotlabs/Module/Ratings.php:83 ../../Zotlabs/Module/Search.php:17
msgid "Public access denied."
msgstr "ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ доступ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½."
-#: ../../Zotlabs/Module/Display.php:374 ../../Zotlabs/Module/Channel.php:424
+#: ../../Zotlabs/Module/Display.php:374 ../../Zotlabs/Module/Channel.php:468
msgid ""
"You must enable javascript for your browser to be able to view this content."
msgstr "Для просмотра этого содСрТимого Π² вашСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ JavaScript"
@@ -4649,11 +4645,11 @@ msgstr "событиС ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ"
msgid "shared a file with you"
msgstr "с Π²Π°ΠΌΠΈ подСлились Ρ„Π°ΠΉΠ»ΠΎΠΌ"
-#: ../../Zotlabs/Module/Ping.php:659
+#: ../../Zotlabs/Module/Ping.php:665
msgid "Private forum"
msgstr "Частный Ρ„ΠΎΡ€ΡƒΠΌ"
-#: ../../Zotlabs/Module/Ping.php:659
+#: ../../Zotlabs/Module/Ping.php:665
msgid "Public forum"
msgstr "ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΡƒΠΌ"
@@ -4858,13 +4854,13 @@ msgstr "Π”Π°Ρ‚Π° ΠΈ врСмя окончания"
msgid "Description"
msgstr "ОписаниС"
-#: ../../Zotlabs/Module/Cdav.php:924 ../../Zotlabs/Module/Photos.php:973
+#: ../../Zotlabs/Module/Cdav.php:924 ../../Zotlabs/Module/Photos.php:986
#: ../../Zotlabs/Module/Events.php:690 ../../Zotlabs/Module/Events.php:699
#: ../../Zotlabs/Module/Cal.php:338 ../../Zotlabs/Module/Cal.php:345
msgid "Previous"
msgstr "ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π°Ρ"
-#: ../../Zotlabs/Module/Cdav.php:925 ../../Zotlabs/Module/Photos.php:982
+#: ../../Zotlabs/Module/Cdav.php:925 ../../Zotlabs/Module/Photos.php:995
#: ../../Zotlabs/Module/Events.php:691 ../../Zotlabs/Module/Events.php:700
#: ../../Zotlabs/Module/Cal.php:339 ../../Zotlabs/Module/Cal.php:346
#: ../../Zotlabs/Module/Setup.php:263
@@ -4920,49 +4916,49 @@ msgstr "Π£Π΄Π°Π»ΠΈΡ‚ΡŒ всё"
msgid "Sorry! Editing of recurrent events is not yet implemented."
msgstr "ΠŸΡ€ΠΎΡΡ‚ΠΈΡ‚Π΅, Π½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ событий ΠΏΠΎΠΊΠ° Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ."
-#: ../../Zotlabs/Module/Cdav.php:1216 ../../Zotlabs/Module/Connedit.php:908
+#: ../../Zotlabs/Module/Cdav.php:1216 ../../Zotlabs/Module/Connedit.php:913
msgid "Organisation"
msgstr "ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ"
-#: ../../Zotlabs/Module/Cdav.php:1217 ../../Zotlabs/Module/Connedit.php:909
+#: ../../Zotlabs/Module/Cdav.php:1217 ../../Zotlabs/Module/Connedit.php:914
msgid "Title"
msgstr "НаимСнованиС"
#: ../../Zotlabs/Module/Cdav.php:1218 ../../Zotlabs/Module/Profiles.php:786
-#: ../../Zotlabs/Module/Connedit.php:910
+#: ../../Zotlabs/Module/Connedit.php:915
msgid "Phone"
msgstr "Π’Π΅Π»Π΅Ρ„ΠΎΠ½"
#: ../../Zotlabs/Module/Cdav.php:1220 ../../Zotlabs/Module/Profiles.php:788
-#: ../../Zotlabs/Module/Connedit.php:912
+#: ../../Zotlabs/Module/Connedit.php:917
msgid "Instant messenger"
msgstr "ΠœΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅Ρ€"
#: ../../Zotlabs/Module/Cdav.php:1221 ../../Zotlabs/Module/Profiles.php:789
-#: ../../Zotlabs/Module/Connedit.php:913
+#: ../../Zotlabs/Module/Connedit.php:918
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:914
+#: ../../Zotlabs/Module/Connedit.php:919
msgid "Address"
msgstr "АдрСс"
#: ../../Zotlabs/Module/Cdav.php:1223 ../../Zotlabs/Module/Profiles.php:791
-#: ../../Zotlabs/Module/Connedit.php:915
+#: ../../Zotlabs/Module/Connedit.php:920
msgid "Note"
msgstr "Π—Π°ΠΌΠ΅Ρ‚ΠΊΠ°"
#: ../../Zotlabs/Module/Cdav.php:1228 ../../Zotlabs/Module/Profiles.php:796
-#: ../../Zotlabs/Module/Connedit.php:920
+#: ../../Zotlabs/Module/Connedit.php:925
#: ../../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:921
+#: ../../Zotlabs/Module/Connedit.php:926
msgid "Add Field"
msgstr "Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π΅"
@@ -4970,36 +4966,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:923 ../../Zotlabs/Lib/Apps.php:513
+#: ../../Zotlabs/Module/Connedit.php:928 ../../Zotlabs/Lib/Apps.php:513
msgid "Update"
msgstr "ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ"
-#: ../../Zotlabs/Module/Cdav.php:1234 ../../Zotlabs/Module/Connedit.php:926
+#: ../../Zotlabs/Module/Cdav.php:1234 ../../Zotlabs/Module/Connedit.php:931
msgid "P.O. Box"
msgstr "абонСнтский ящик"
-#: ../../Zotlabs/Module/Cdav.php:1235 ../../Zotlabs/Module/Connedit.php:927
+#: ../../Zotlabs/Module/Cdav.php:1235 ../../Zotlabs/Module/Connedit.php:932
msgid "Additional"
msgstr "Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ"
-#: ../../Zotlabs/Module/Cdav.php:1236 ../../Zotlabs/Module/Connedit.php:928
+#: ../../Zotlabs/Module/Cdav.php:1236 ../../Zotlabs/Module/Connedit.php:933
msgid "Street"
msgstr "Π£Π»ΠΈΡ†Π°"
-#: ../../Zotlabs/Module/Cdav.php:1237 ../../Zotlabs/Module/Connedit.php:929
+#: ../../Zotlabs/Module/Cdav.php:1237 ../../Zotlabs/Module/Connedit.php:934
msgid "Locality"
msgstr "НасСлённый ΠΏΡƒΠ½ΠΊΡ‚"
-#: ../../Zotlabs/Module/Cdav.php:1238 ../../Zotlabs/Module/Connedit.php:930
+#: ../../Zotlabs/Module/Cdav.php:1238 ../../Zotlabs/Module/Connedit.php:935
msgid "Region"
msgstr "Π Π΅Π³ΠΈΠΎΠ½"
-#: ../../Zotlabs/Module/Cdav.php:1239 ../../Zotlabs/Module/Connedit.php:931
+#: ../../Zotlabs/Module/Cdav.php:1239 ../../Zotlabs/Module/Connedit.php:936
msgid "ZIP Code"
msgstr "ИндСкс"
#: ../../Zotlabs/Module/Cdav.php:1240 ../../Zotlabs/Module/Profiles.php:757
-#: ../../Zotlabs/Module/Connedit.php:932
+#: ../../Zotlabs/Module/Connedit.php:937
msgid "Country"
msgstr "Π‘Ρ‚Ρ€Π°Π½Π°"
@@ -5011,12 +5007,12 @@ msgstr "ΠšΠ°Π»Π΅Π½Π΄Π°Ρ€ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ"
msgid "Default Addressbook"
msgstr "АдрСсная ΠΊΠ½ΠΈΠ³Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ"
-#: ../../Zotlabs/Module/Profile.php:45 ../../Zotlabs/Module/Channel.php:54
+#: ../../Zotlabs/Module/Profile.php:45 ../../Zotlabs/Module/Channel.php:98
#: ../../Zotlabs/Module/Hcard.php:37
msgid "Posts and comments"
msgstr "ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ"
-#: ../../Zotlabs/Module/Profile.php:52 ../../Zotlabs/Module/Channel.php:61
+#: ../../Zotlabs/Module/Profile.php:52 ../../Zotlabs/Module/Channel.php:105
#: ../../Zotlabs/Module/Hcard.php:44
msgid "Only posts"
msgstr "Волько ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ"
@@ -5026,7 +5022,7 @@ msgid "vcard"
msgstr "vCard"
#: ../../Zotlabs/Module/Ochannel.php:32 ../../Zotlabs/Module/Chat.php:31
-#: ../../Zotlabs/Module/Channel.php:39
+#: ../../Zotlabs/Module/Channel.php:41
#: ../../extend/addon/hzaddons/chess/chess.php:508
msgid "You must be logged in to see this page."
msgstr "Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ эту страницу."
@@ -5039,12 +5035,12 @@ msgstr "НСт Π½ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠΉ систСмы."
msgid "System Notifications"
msgstr "БистСмныС оповСщСния "
-#: ../../Zotlabs/Module/Impel.php:183
+#: ../../Zotlabs/Module/Impel.php:185
#, php-format
msgid "%s element installed"
msgstr "%s элСмСнт установлСн"
-#: ../../Zotlabs/Module/Impel.php:186
+#: ../../Zotlabs/Module/Impel.php:188
#, php-format
msgid "%s element installation failed"
msgstr "%sустановка элСмСнта Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Π°."
@@ -5179,23 +5175,15 @@ msgstr "Π‘Π»ΠΈΠ·ΠΊΠΈΠ΅ ΠΊ просрочкС Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Ρ‹"
msgid "Channels"
msgstr "ΠšΠ°Π½Π°Π»Ρ‹"
-#: ../../Zotlabs/Module/Admin.php:115 ../../Zotlabs/Module/Locs.php:119
-msgid "Primary"
-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:140 ../../Zotlabs/Module/Admin/Logs.php:82
+#: ../../Zotlabs/Module/Admin.php:138 ../../Zotlabs/Module/Admin/Logs.php:82
#: ../../Zotlabs/Module/Admin/Channels.php:145
#: ../../Zotlabs/Module/Admin/Security.php:92
#: ../../Zotlabs/Module/Admin/Addons.php:341
@@ -5207,35 +5195,35 @@ msgstr "Π’Π°ΡˆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹
msgid "Administration"
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 "ВСрсия рСпозитория (master)"
-#: ../../Zotlabs/Module/Admin.php:150
+#: ../../Zotlabs/Module/Admin.php:148
msgid "Repository version (dev)"
msgstr "ВСрсия рСпозитория (dev)"
@@ -5511,173 +5499,173 @@ 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 "Π’Ρ‹ использовали %1$.2f ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚ ΠΈΠ· %2$.2f для хранСния Ρ„ΠΎΡ‚ΠΎ."
-#: ../../Zotlabs/Module/Photos.php:651
+#: ../../Zotlabs/Module/Photos.php:664
#, php-format
msgid "%1$.2f MB photo storage used."
msgstr "Π’Ρ‹ использовали %1$.2f ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚ для хранСния Ρ„ΠΎΡ‚ΠΎ."
-#: ../../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:813 ../../Zotlabs/Module/Photos.php:1352
+#: ../../Zotlabs/Module/Photos.php:826 ../../Zotlabs/Module/Photos.php:1365
#: ../../Zotlabs/Module/Embedphotos.php:140
#: ../../Zotlabs/Widget/Portfolio.php:87 ../../Zotlabs/Widget/Album.php:78
msgid "View Photo"
msgstr "ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡŽ"
-#: ../../Zotlabs/Module/Photos.php:844 ../../Zotlabs/Module/Embedphotos.php:156
+#: ../../Zotlabs/Module/Photos.php:857 ../../Zotlabs/Module/Embedphotos.php:156
#: ../../Zotlabs/Widget/Portfolio.php:108 ../../Zotlabs/Widget/Album.php:95
msgid "Edit Album"
msgstr "Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π€ΠΎΡ‚ΠΎΠ°Π»ΡŒΠ±ΠΎΠΌ"
-#: ../../Zotlabs/Module/Photos.php:846 ../../Zotlabs/Module/Photos.php:1383
+#: ../../Zotlabs/Module/Photos.php:859 ../../Zotlabs/Module/Photos.php:1396
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:1022 ../../Zotlabs/Module/Tagrm.php:137
+#: ../../Zotlabs/Module/Photos.php:1035 ../../Zotlabs/Module/Tagrm.php:137
#: ../../Zotlabs/Module/Admin/Addons.php:455
#: ../../extend/addon/hzaddons/superblock/Mod_Superblock.php:91
msgid "Remove"
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 "ΠŸΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ CW (Π½Π°ΠΏΡ€Π°Π²ΠΎ)"
-#: ../../Zotlabs/Module/Photos.php:1062
+#: ../../Zotlabs/Module/Photos.php:1075
msgid "Rotate CCW (left)"
msgstr "ΠŸΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ CCW (Π½Π°Π»Π΅Π²ΠΎ)"
-#: ../../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 "ΠŸΡ€ΠΈΠΌΠ΅Ρ€: @bob, @Barbara_Jensen, @jim@example.com"
-#: ../../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:289
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:290
msgid "I don't like this (toggle)"
msgstr "ΠΌΠ½Π΅ это Π½Π΅ нравится (ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅)"
-#: ../../Zotlabs/Module/Photos.php:1121 ../../Zotlabs/Module/Photos.php:1239
-#: ../../Zotlabs/Lib/ThreadItem.php:764
+#: ../../Zotlabs/Module/Photos.php:1134 ../../Zotlabs/Module/Photos.php:1252
+#: ../../Zotlabs/Lib/ThreadItem.php:767
msgid "This is you"
msgstr "Π­Ρ‚ΠΎ Π²Ρ‹"
-#: ../../Zotlabs/Module/Photos.php:1158 ../../Zotlabs/Module/Photos.php:1170
+#: ../../Zotlabs/Module/Photos.php:1171 ../../Zotlabs/Module/Photos.php:1183
#: ../../Zotlabs/Lib/ThreadItem.php:214 ../../Zotlabs/Lib/ThreadItem.php:226
msgid "View all"
msgstr "ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС"
-#: ../../Zotlabs/Module/Photos.php:1267
+#: ../../Zotlabs/Module/Photos.php:1280
msgid "Photo Tools"
msgstr "Π€ΠΎΡ‚ΠΎ-Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹"
-#: ../../Zotlabs/Module/Photos.php:1276
+#: ../../Zotlabs/Module/Photos.php:1289
msgid "In This Photo:"
msgstr "На этой Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ:"
-#: ../../Zotlabs/Module/Photos.php:1281
+#: ../../Zotlabs/Module/Photos.php:1294
msgid "Map"
msgstr "ΠšΠ°Ρ€Ρ‚Π°"
-#: ../../Zotlabs/Module/Photos.php:1289 ../../Zotlabs/Lib/ThreadItem.php:429
+#: ../../Zotlabs/Module/Photos.php:1302 ../../Zotlabs/Lib/ThreadItem.php:432
msgctxt "noun"
msgid "Likes"
msgstr "Нравится"
-#: ../../Zotlabs/Module/Photos.php:1290 ../../Zotlabs/Lib/ThreadItem.php:430
+#: ../../Zotlabs/Module/Photos.php:1303 ../../Zotlabs/Lib/ThreadItem.php:433
msgctxt "noun"
msgid "Dislikes"
msgstr "НС нравится"
@@ -6444,6 +6432,10 @@ msgstr "ΠœΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ"
msgid "Manage Channel Locations"
msgstr "Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ мСстополоТСниСм ΠΊΠ°Π½Π°Π»Π°"
+#: ../../Zotlabs/Module/Locs.php:119
+msgid "Primary"
+msgstr "Основной"
+
#: ../../Zotlabs/Module/Locs.php:120 ../../Zotlabs/Module/Menu.php:176
msgid "Drop"
msgstr "Π£Π΄Π°Π»ΠΈΡ‚ΡŒ"
@@ -7410,7 +7402,7 @@ msgstr "Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊ"
msgid "No service class restrictions found."
msgstr "ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ класса обслуТиваниС Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ."
-#: ../../Zotlabs/Module/Channel.php:116
+#: ../../Zotlabs/Module/Channel.php:160
msgid "Insufficient permissions. Request redirected to profile page."
msgstr "НСдостаточно ΠΏΡ€Π°Π². Запрос ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ Π½Π° страницу профиля."
@@ -7519,44 +7511,44 @@ msgstr "Канал нСдоступСн."
msgid "Previous action reversed."
msgstr "ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ дСйствиС ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½ΠΎ."
-#: ../../Zotlabs/Module/Like.php:442
+#: ../../Zotlabs/Module/Like.php:445
#, php-format
msgid "%1$s agrees with %2$s's %3$s"
msgstr "%1$s согласСн с %2$s %3$s"
-#: ../../Zotlabs/Module/Like.php:444
+#: ../../Zotlabs/Module/Like.php:447
#, 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:446
+#: ../../Zotlabs/Module/Like.php:449
#, 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:448
-#: ../../extend/addon/hzaddons/diaspora/Receiver.php:2111
+#: ../../Zotlabs/Module/Like.php:451
+#: ../../extend/addon/hzaddons/diaspora/Receiver.php:2120
#, php-format
msgid "%1$s is attending %2$s's %3$s"
msgstr "%1$s посСщаСт %2$s%3$s"
-#: ../../Zotlabs/Module/Like.php:450
-#: ../../extend/addon/hzaddons/diaspora/Receiver.php:2113
+#: ../../Zotlabs/Module/Like.php:453
+#: ../../extend/addon/hzaddons/diaspora/Receiver.php:2122
#, php-format
msgid "%1$s is not attending %2$s's %3$s"
msgstr "%1$s Π½Π΅ посСщаСт %2$s%3$s"
-#: ../../Zotlabs/Module/Like.php:452
-#: ../../extend/addon/hzaddons/diaspora/Receiver.php:2115
+#: ../../Zotlabs/Module/Like.php:455
+#: ../../extend/addon/hzaddons/diaspora/Receiver.php:2124
#, php-format
msgid "%1$s may attend %2$s's %3$s"
msgstr "%1$s ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚ΡŒ %2$s%3$s"
-#: ../../Zotlabs/Module/Like.php:564
+#: ../../Zotlabs/Module/Like.php:566
msgid "Action completed."
msgstr "ДСйствиС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ."
-#: ../../Zotlabs/Module/Like.php:565
+#: ../../Zotlabs/Module/Like.php:567
msgid "Thank you."
msgstr "Бпасибо."
@@ -8148,14 +8140,14 @@ msgstr "Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ доступно для записи"
msgid ""
"SSL certificate cannot be validated. Fix certificate or disable https access "
"to this site."
-msgstr ""
+msgstr "SSL certificate cannot be validated. Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ https доступ ΠΊ этому сайту."
#: ../../Zotlabs/Module/Setup.php:659
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 ""
+msgstr "Если Ρƒ вас Π΅ΡΡ‚ΡŒ https-доступ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ сайту ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ TCP-ΠΏΠΎΡ€Ρ‚Ρƒ 443 (ΠΏΠΎΡ€Ρ‚ https), Π²Ρ‹ Π”ΠžΠ›Π–ΠΠ« ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сСртификат, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ для Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Π’Ρ‹ НЕ Π”ΠžΠ›Π–ΠΠ« ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ самоподписанныС сСртификаты!"
#: ../../Zotlabs/Module/Setup.php:660
msgid ""
@@ -8168,18 +8160,18 @@ 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 ""
+msgstr "Если ваш сСртификат Π½Π΅ ΠΏΡ€ΠΈΠ·Π½Π°Π½, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… сайтов (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ сами ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ сСртификаты) ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π΅Π΅ сообщСниС ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ… с Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ."
#: ../../Zotlabs/Module/Setup.php:662
msgid ""
"This can cause usability issues elsewhere (not just on your own site) so we "
"must insist on this requirement."
-msgstr ""
+msgstr "Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ удобства использования ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… мСст (Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° вашСм собствСнном сайтС), поэтому ΠΌΡ‹ настаиваСм Π½Π° этом Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΈ."
#: ../../Zotlabs/Module/Setup.php:663
msgid ""
"Providers are available that issue free certificates which are browser-valid."
-msgstr ""
+msgstr "Доступны поставщики, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π΄Π°ΡŽΡ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ для Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° бСсплатныС сСртификаты."
#: ../../Zotlabs/Module/Setup.php:665
msgid ""
@@ -8187,17 +8179,17 @@ msgid ""
"authority, check to see if you have failed to install an intermediate cert. "
"These are not normally required by browsers, but are required for server-to-"
"server communications."
-msgstr ""
+msgstr "Если Π²Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ сСртификат дСйствитСлСн ΠΈ подписан Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ ΠΎΡ€Π³Π°Π½ΠΎΠΌ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, установлСн Π»ΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ сСртификаты. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ, Π½ΠΎ Π±Ρ‹Π²Π°ΡŽΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для связи ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвСрами."
#: ../../Zotlabs/Module/Setup.php:667
msgid "SSL certificate validation"
-msgstr ""
+msgstr "ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° SSL сСртификата"
#: ../../Zotlabs/Module/Setup.php:673
msgid ""
"Url rewrite in .htaccess is not working. Check your server configuration."
"Test: "
-msgstr ""
+msgstr "ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ URL Π² .htaccess Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ настройки вашСго сСрвСра."
#: ../../Zotlabs/Module/Setup.php:676
msgid "Url rewrite is working"
@@ -8208,7 +8200,7 @@ 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 ""
+msgstr "Π€Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… \".htconfig.php\" Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ записан. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ»Π°Π³Π°Π΅ΠΌΡ‹ΠΉ тСкст для создания Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Π²Π΅Π±-сСрвСра."
#: ../../Zotlabs/Module/Setup.php:714
#: ../../extend/addon/hzaddons/rendezvous/rendezvous.php:401
@@ -8953,7 +8945,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:881 ../../Zotlabs/Module/Connedit.php:882
msgid ""
"words one per line or #tags or /patterns/ or lang=xx, leave blank to import "
"all posts"
@@ -9298,12 +9290,12 @@ msgid "No registrations."
msgstr "НСт Π½ΠΎΠ²Ρ‹Ρ… рСгистраций."
#: ../../Zotlabs/Module/Admin/Accounts.php:176
-#: ../../Zotlabs/Module/Connedit.php:623
+#: ../../Zotlabs/Module/Connedit.php:628
msgid "Block"
msgstr "Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ"
#: ../../Zotlabs/Module/Admin/Accounts.php:177
-#: ../../Zotlabs/Module/Connedit.php:623
+#: ../../Zotlabs/Module/Connedit.php:628
msgid "Unblock"
msgstr "Π Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ"
@@ -9467,21 +9459,21 @@ msgstr "ΠŸΠ°Ρ€ΠΎΠ»ΡŒ"
msgid "Expires (yyyy-mm-dd)"
msgstr "Π‘Ρ€ΠΎΠΊ дСйствия (yyyy-mm-dd)"
-#: ../../Zotlabs/Module/Tokens.php:180 ../../Zotlabs/Module/Connedit.php:891
+#: ../../Zotlabs/Module/Tokens.php:180 ../../Zotlabs/Module/Connedit.php:896
msgid "Their Settings"
msgstr "Π˜Ρ… настройки"
#: ../../Zotlabs/Module/Notifications.php:60
-#: ../../Zotlabs/Lib/ThreadItem.php:422
+#: ../../Zotlabs/Lib/ThreadItem.php:425
msgid "Mark all seen"
msgstr "ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ просмотрСнноС"
-#: ../../Zotlabs/Module/Subthread.php:142
+#: ../../Zotlabs/Module/Subthread.php:143
#, php-format
msgid "%1$s is following %2$s's %3$s"
msgstr "%1$s отслСТиваСт %2$s's %3$s"
-#: ../../Zotlabs/Module/Subthread.php:144
+#: ../../Zotlabs/Module/Subthread.php:145
#, php-format
msgid "%1$s stopped following %2$s's %3$s"
msgstr "%1$s ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΠ» ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ %2$s's %3$s"
@@ -9711,268 +9703,268 @@ msgstr "ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½."
msgid "Item is not editable"
msgstr "Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ нСльзя Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ"
-#: ../../Zotlabs/Module/Connedit.php:110
+#: ../../Zotlabs/Module/Connedit.php:111
msgid "Could not locate selected profile."
msgstr "НС ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ."
-#: ../../Zotlabs/Module/Connedit.php:247
+#: ../../Zotlabs/Module/Connedit.php:248
msgid "Connection updated."
msgstr "ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹."
-#: ../../Zotlabs/Module/Connedit.php:249
+#: ../../Zotlabs/Module/Connedit.php:250
msgid "Failed to update connection record."
msgstr "НС ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ запись ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°."
-#: ../../Zotlabs/Module/Connedit.php:303
+#: ../../Zotlabs/Module/Connedit.php:304
msgid "is now connected to"
msgstr "Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½ ΠΊ"
-#: ../../Zotlabs/Module/Connedit.php:428
+#: ../../Zotlabs/Module/Connedit.php:429
msgid "Could not access address book record."
msgstr "НС ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ записи адрСсной ΠΊΠ½ΠΈΠ³ΠΈ."
-#: ../../Zotlabs/Module/Connedit.php:476
+#: ../../Zotlabs/Module/Connedit.php:477 ../../Zotlabs/Module/Connedit.php:481
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:496 ../../Zotlabs/Module/Connedit.php:505
+#: ../../Zotlabs/Module/Connedit.php:514 ../../Zotlabs/Module/Connedit.php:523
+#: ../../Zotlabs/Module/Connedit.php:536
msgid "Unable to set address book parameters."
msgstr "НС ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ адрСсной ΠΊΠ½ΠΈΠ³ΠΈ."
-#: ../../Zotlabs/Module/Connedit.php:555
+#: ../../Zotlabs/Module/Connedit.php:560
msgid "Connection has been removed."
msgstr "ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚ Π±Ρ‹Π» ΡƒΠ΄Π°Π»Ρ‘Π½."
-#: ../../Zotlabs/Module/Connedit.php:598
+#: ../../Zotlabs/Module/Connedit.php:603
#, php-format
msgid "View %s's profile"
msgstr "ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ %s профиля"
-#: ../../Zotlabs/Module/Connedit.php:602
+#: ../../Zotlabs/Module/Connedit.php:607
msgid "Refresh Permissions"
msgstr "ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ"
-#: ../../Zotlabs/Module/Connedit.php:605
+#: ../../Zotlabs/Module/Connedit.php:610
msgid "Fetch updated permissions"
msgstr "ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ"
-#: ../../Zotlabs/Module/Connedit.php:609
+#: ../../Zotlabs/Module/Connedit.php:614
msgid "Refresh Photo"
msgstr "ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡŽ"
-#: ../../Zotlabs/Module/Connedit.php:612
+#: ../../Zotlabs/Module/Connedit.php:617
msgid "Fetch updated photo"
msgstr "ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½Π½ΡƒΡŽ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡŽ"
-#: ../../Zotlabs/Module/Connedit.php:619
+#: ../../Zotlabs/Module/Connedit.php:624
msgid "View recent posts and comments"
msgstr "ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ послСдниС ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ"
-#: ../../Zotlabs/Module/Connedit.php:626
+#: ../../Zotlabs/Module/Connedit.php:631
msgid "Block (or Unblock) all communications with this connection"
msgstr "Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ (ΠΈΠ»ΠΈ Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ) связи с этим ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠΌ"
-#: ../../Zotlabs/Module/Connedit.php:627
+#: ../../Zotlabs/Module/Connedit.php:632
msgid "This connection is blocked!"
msgstr "Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½!"
-#: ../../Zotlabs/Module/Connedit.php:631
+#: ../../Zotlabs/Module/Connedit.php:636
msgid "Unignore"
msgstr "НС ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ"
-#: ../../Zotlabs/Module/Connedit.php:631
+#: ../../Zotlabs/Module/Connedit.php:636
#: ../../Zotlabs/Module/Connections.php:308
msgid "Ignore"
msgstr "Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ"
-#: ../../Zotlabs/Module/Connedit.php:634
+#: ../../Zotlabs/Module/Connedit.php:639
msgid "Ignore (or Unignore) all inbound communications from this connection"
msgstr "Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ (ΠΈΠ»ΠΈ Π½Π΅ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ) всС связи для этого ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°"
-#: ../../Zotlabs/Module/Connedit.php:635
+#: ../../Zotlabs/Module/Connedit.php:640
msgid "This connection is ignored!"
msgstr "Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ игнорируСтся!"
-#: ../../Zotlabs/Module/Connedit.php:639
+#: ../../Zotlabs/Module/Connedit.php:644
msgid "Unarchive"
msgstr "Π Π°Π·Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ"
-#: ../../Zotlabs/Module/Connedit.php:639
+#: ../../Zotlabs/Module/Connedit.php:644
msgid "Archive"
msgstr "Π—Π°Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ"
-#: ../../Zotlabs/Module/Connedit.php:642
+#: ../../Zotlabs/Module/Connedit.php:647
msgid ""
"Archive (or Unarchive) this connection - mark channel dead but keep content"
msgstr "Π—Π°Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ (ΠΈΠ»ΠΈ Ρ€Π°Π·Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ) этот ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ - ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΊΠ°Π½Π°Π» ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹ΠΌ Π½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ содСрТимоС"
-#: ../../Zotlabs/Module/Connedit.php:643
+#: ../../Zotlabs/Module/Connedit.php:648
msgid "This connection is archived!"
msgstr "Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ Π·Π°Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½!"
-#: ../../Zotlabs/Module/Connedit.php:647
+#: ../../Zotlabs/Module/Connedit.php:652
msgid "Unhide"
msgstr "ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ"
-#: ../../Zotlabs/Module/Connedit.php:647
+#: ../../Zotlabs/Module/Connedit.php:652
msgid "Hide"
msgstr "Π‘ΠΊΡ€Ρ‹Ρ‚ΡŒ"
-#: ../../Zotlabs/Module/Connedit.php:650
+#: ../../Zotlabs/Module/Connedit.php:655
msgid "Hide or Unhide this connection from your other connections"
msgstr "Π‘ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ этот ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ ΠΎΡ‚ / для ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…"
-#: ../../Zotlabs/Module/Connedit.php:651
+#: ../../Zotlabs/Module/Connedit.php:656
msgid "This connection is hidden!"
msgstr "Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ скрыт!"
-#: ../../Zotlabs/Module/Connedit.php:658
+#: ../../Zotlabs/Module/Connedit.php:663
msgid "Delete this connection"
msgstr "Π£Π΄Π°Π»ΠΈΡ‚ΡŒ этот ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚"
-#: ../../Zotlabs/Module/Connedit.php:666
+#: ../../Zotlabs/Module/Connedit.php:671
msgid "Fetch Vcard"
msgstr "ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ vCard"
-#: ../../Zotlabs/Module/Connedit.php:669
+#: ../../Zotlabs/Module/Connedit.php:674
msgid "Fetch electronic calling card for this connection"
msgstr "ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΡƒΡŽ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΡƒ для этого ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°"
-#: ../../Zotlabs/Module/Connedit.php:680
+#: ../../Zotlabs/Module/Connedit.php:685
msgid "Open Individual Permissions section by default"
msgstr "ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π» \"Π˜Π½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ\" ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ"
-#: ../../Zotlabs/Module/Connedit.php:703
+#: ../../Zotlabs/Module/Connedit.php:708
msgid "Affinity"
msgstr "Бходство"
-#: ../../Zotlabs/Module/Connedit.php:706
+#: ../../Zotlabs/Module/Connedit.php:711
msgid "Open Set Affinity section by default"
msgstr "ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΡΠ΅ΠΊΡ†ΠΈΡŽ установлСния сходства ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ"
-#: ../../Zotlabs/Module/Connedit.php:710 ../../Zotlabs/Widget/Affinity.php:22
+#: ../../Zotlabs/Module/Connedit.php:715 ../../Zotlabs/Widget/Affinity.php:22
msgid "Me"
msgstr "Π―"
-#: ../../Zotlabs/Module/Connedit.php:711 ../../Zotlabs/Widget/Affinity.php:23
+#: ../../Zotlabs/Module/Connedit.php:716 ../../Zotlabs/Widget/Affinity.php:23
msgid "Family"
msgstr "БСмья"
-#: ../../Zotlabs/Module/Connedit.php:713 ../../Zotlabs/Widget/Affinity.php:25
+#: ../../Zotlabs/Module/Connedit.php:718 ../../Zotlabs/Widget/Affinity.php:25
msgid "Acquaintances"
msgstr "Π—Π½Π°ΠΊΠΎΠΌΡ‹Π΅"
-#: ../../Zotlabs/Module/Connedit.php:714
+#: ../../Zotlabs/Module/Connedit.php:719
#: ../../Zotlabs/Module/Connections.php:97
#: ../../Zotlabs/Module/Connections.php:111
#: ../../Zotlabs/Widget/Affinity.php:26
msgid "All"
msgstr "ВсС"
-#: ../../Zotlabs/Module/Connedit.php:740
+#: ../../Zotlabs/Module/Connedit.php:745
msgid "Filter"
msgstr "Π€ΠΈΠ»ΡŒΡ‚Ρ€"
-#: ../../Zotlabs/Module/Connedit.php:743
+#: ../../Zotlabs/Module/Connedit.php:748
msgid "Open Custom Filter section by default"
msgstr "ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΡΠ΅ΠΊΡ†ΠΈΡŽ \"НастраиваСмый Ρ„ΠΈΠ»ΡŒΡ‚Ρ€\" ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ"
-#: ../../Zotlabs/Module/Connedit.php:780
+#: ../../Zotlabs/Module/Connedit.php:785
msgid "Approve this connection"
msgstr "Π£Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ этот ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚"
-#: ../../Zotlabs/Module/Connedit.php:780
+#: ../../Zotlabs/Module/Connedit.php:785
msgid "Accept connection to allow communication"
msgstr "ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ связь"
-#: ../../Zotlabs/Module/Connedit.php:785
+#: ../../Zotlabs/Module/Connedit.php:790
msgid "Set Affinity"
msgstr "Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ сходство"
-#: ../../Zotlabs/Module/Connedit.php:788
+#: ../../Zotlabs/Module/Connedit.php:793
msgid "Set Profile"
msgstr "Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ"
-#: ../../Zotlabs/Module/Connedit.php:791
+#: ../../Zotlabs/Module/Connedit.php:796
msgid "Set Affinity & Profile"
msgstr "Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ сходство ΠΈ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ"
-#: ../../Zotlabs/Module/Connedit.php:839
+#: ../../Zotlabs/Module/Connedit.php:844
msgid "This connection is unreachable from this location."
msgstr "Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ нСдоступСн для Π΄Π°Π½Π½ΠΎΠ³ΠΎ мСстополоТСния"
-#: ../../Zotlabs/Module/Connedit.php:840
+#: ../../Zotlabs/Module/Connedit.php:845
msgid "This connection may be unreachable from other channel locations."
msgstr "Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСдоступСн ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… мСст размСщСния ΠΊΠ°Π½Π°Π»Π°"
-#: ../../Zotlabs/Module/Connedit.php:842
+#: ../../Zotlabs/Module/Connedit.php:847
msgid "Location independence is not supported by their network."
msgstr "НСзависимоС мСстополоТСниС Π½Π΅ поддСрТиваСтся ΠΈΡ… ΡΠ΅Ρ‚ΡŒΡŽ."
-#: ../../Zotlabs/Module/Connedit.php:848
+#: ../../Zotlabs/Module/Connedit.php:853
msgid ""
"This connection is unreachable from this location. Location independence is "
"not supported by their network."
msgstr "Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ нСдоступСн ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ мСстополоТСния. НСзависимоС мСстополоТСниС Π½Π΅ поддСрТиваСтся ΠΈΡ… ΡΠ΅Ρ‚ΡŒΡŽ."
-#: ../../Zotlabs/Module/Connedit.php:852
+#: ../../Zotlabs/Module/Connedit.php:857
msgid "Connection requests will be approved without your interaction"
msgstr "Запросы ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Ρ‹ Π±Π΅Π· вашСго участия"
-#: ../../Zotlabs/Module/Connedit.php:861
+#: ../../Zotlabs/Module/Connedit.php:866
msgid "This connection's primary address is"
msgstr "Π“Π»Π°Π²Π½Ρ‹ΠΉ адрСс это ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°"
-#: ../../Zotlabs/Module/Connedit.php:862
+#: ../../Zotlabs/Module/Connedit.php:867
msgid "Available locations:"
msgstr "ДоступныС располоТСния:"
-#: ../../Zotlabs/Module/Connedit.php:868
+#: ../../Zotlabs/Module/Connedit.php:873
msgid "Connection Tools"
msgstr "Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ²"
-#: ../../Zotlabs/Module/Connedit.php:870
+#: ../../Zotlabs/Module/Connedit.php:875
msgid "Slide to adjust your degree of friendship"
msgstr "ΠŸΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒ для настройки стСпСни Π΄Ρ€ΡƒΠΆΠ±Ρ‹"
-#: ../../Zotlabs/Module/Connedit.php:872
+#: ../../Zotlabs/Module/Connedit.php:877
msgid "Slide to adjust your rating"
msgstr "ΠŸΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒ для настройки ΠΎΡ†Π΅Π½ΠΊΠΈ"
-#: ../../Zotlabs/Module/Connedit.php:873 ../../Zotlabs/Module/Connedit.php:878
+#: ../../Zotlabs/Module/Connedit.php:878 ../../Zotlabs/Module/Connedit.php:883
msgid "Optionally explain your rating"
msgstr "ΠžΠ±ΡŠΡΡΠ½ΠΈΡ‚Π΅ свою ΠΎΡ†Π΅Π½ΠΊΡƒ (Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ)"
-#: ../../Zotlabs/Module/Connedit.php:875
+#: ../../Zotlabs/Module/Connedit.php:880
msgid "Custom Filter"
msgstr "НастраиваСмый Ρ„ΠΈΠ»ΡŒΡ‚Ρ€"
-#: ../../Zotlabs/Module/Connedit.php:876
+#: ../../Zotlabs/Module/Connedit.php:881
msgid "Only import posts with this text"
msgstr "Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с этим тСкстом"
-#: ../../Zotlabs/Module/Connedit.php:877
+#: ../../Zotlabs/Module/Connedit.php:882
msgid "Do not import posts with this text"
msgstr "НС ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ с этим тСкстом"
-#: ../../Zotlabs/Module/Connedit.php:879
+#: ../../Zotlabs/Module/Connedit.php:884
msgid "This information is public!"
msgstr "Π­Ρ‚Π° информация общСдоступна!"
-#: ../../Zotlabs/Module/Connedit.php:884
+#: ../../Zotlabs/Module/Connedit.php:889
msgid "Connection Pending Approval"
msgstr "ΠžΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΠ΅ подтвСрТдСния ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ²"
-#: ../../Zotlabs/Module/Connedit.php:889
+#: ../../Zotlabs/Module/Connedit.php:894
#, 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:896
+#: ../../Zotlabs/Module/Connedit.php:901
msgid ""
"Some permissions may be inherited from your channel's <a href=\"settings"
"\"><strong>privacy settings</strong></a>, which have higher priority than "
@@ -9980,11 +9972,11 @@ msgid ""
"any impact unless the inherited setting changes."
msgstr "НСкоторыС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ унаслСдованы ΠΈΠ· <a href=\"settings\"><strong>настроСк приватности</strong></a> вашСго ΠΊΠ°Π½Π°Π»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ высокий ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Ρ‡Π΅ΠΌ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ эти настройки, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹ Π΄ΠΎ измСнСния ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ наслСдству настроСк."
-#: ../../Zotlabs/Module/Connedit.php:897
+#: ../../Zotlabs/Module/Connedit.php:902
msgid "Last update:"
msgstr "ПослСднСС обновлСниС:"
-#: ../../Zotlabs/Module/Connedit.php:905
+#: ../../Zotlabs/Module/Connedit.php:910
msgid "Details"
msgstr "БвСдСния"
@@ -10180,15 +10172,15 @@ msgstr "Поиск Π²Π°ΡˆΠΈΡ… ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ²"
msgid "Connections search"
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:325
msgid "Mood"
msgstr "НастроСниС"
@@ -10413,6 +10405,7 @@ msgid "System layout"
msgstr "БистСмный шаблон"
#: ../../Zotlabs/Module/Wiki.php:35
+#: ../../extend/addon/hzaddons/flashcards/Mod_Flashcards.php:34
#: ../../extend/addon/hzaddons/cart/cart.php:1297
msgid "Profile Unavailable."
msgstr "ΠŸΡ€ΠΎΡ„ΠΈΠ»ΡŒ нСдоступСн."
@@ -10429,7 +10422,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:1440
+#: ../../extend/addon/hzaddons/cart/cart.php:1443
msgid "Invalid channel"
msgstr "ΠΠ΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Π½Π°Π»"
@@ -10937,7 +10930,7 @@ msgstr "ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°. ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄
#: ../../Zotlabs/Widget/Forums.php:100
#: ../../Zotlabs/Widget/Notifications.php:119
#: ../../Zotlabs/Widget/Notifications.php:120
-#: ../../Zotlabs/Widget/Activity_filter.php:102
+#: ../../Zotlabs/Widget/Activity_filter.php:73
msgid "Forums"
msgstr "Π€ΠΎΡ€ΡƒΠΌΡ‹"
@@ -10979,7 +10972,7 @@ msgstr "ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ"
#: ../../Zotlabs/Widget/Notifications.php:46
#: ../../Zotlabs/Widget/Notifications.php:122
#: ../../Zotlabs/Widget/Notifications.php:153
-#: ../../Zotlabs/Widget/Activity_filter.php:164
+#: ../../Zotlabs/Widget/Activity_filter.php:165
msgid "Filter by name"
msgstr "ΠžΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ"
@@ -11372,57 +11365,57 @@ msgstr "УстановлСнныС прилоТСния"
msgid "Remove term"
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"
-msgstr "ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π³Π΄Π΅ Π²Ρ‹ Π±Ρ‹Π»ΠΈ упомянуты ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡Π΅Π½Ρ‹"
-
-#: ../../Zotlabs/Widget/Activity_filter.php:41
-msgid "Starred Posts"
-msgstr "ΠžΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ"
-
-#: ../../Zotlabs/Widget/Activity_filter.php:45
-msgid "Show posts that I have starred"
-msgstr "ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠ»"
-
-#: ../../Zotlabs/Widget/Activity_filter.php:65
+#: ../../Zotlabs/Widget/Activity_filter.php:36
#, php-format
msgid "Show posts related to the %s privacy group"
msgstr "ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ относящиСся ΠΊ Π³Ρ€ΡƒΠΏΠΏΠ΅ бСзопасности %s"
-#: ../../Zotlabs/Widget/Activity_filter.php:74
+#: ../../Zotlabs/Widget/Activity_filter.php:45
msgid "Show my privacy groups"
msgstr "ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠΎΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ бСзопасности"
-#: ../../Zotlabs/Widget/Activity_filter.php:95
+#: ../../Zotlabs/Widget/Activity_filter.php:66
msgid "Show posts to this forum"
msgstr "ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ этого Ρ„ΠΎΡ€ΡƒΠΌΠ°"
-#: ../../Zotlabs/Widget/Activity_filter.php:106
+#: ../../Zotlabs/Widget/Activity_filter.php:77
msgid "Show forums"
msgstr "ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΡƒΠΌΡ‹"
-#: ../../Zotlabs/Widget/Activity_filter.php:130
+#: ../../Zotlabs/Widget/Activity_filter.php:91
+msgid "Starred Posts"
+msgstr "ΠžΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ"
+
+#: ../../Zotlabs/Widget/Activity_filter.php:95
+msgid "Show posts that I have starred"
+msgstr "ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠ»"
+
+#: ../../Zotlabs/Widget/Activity_filter.php:106
+msgid "Personal Posts"
+msgstr "Π›ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ"
+
+#: ../../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 "ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π² %s"
-#: ../../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: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 "Π€ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ ΠΏΠΎΡ‚ΠΎΠΊΠ°"
@@ -12164,7 +12157,7 @@ msgstr "ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ"
msgid "Delivery Report"
msgstr "ΠžΡ‚Ρ‡Ρ‘Ρ‚ ΠΎ доставкС"
-#: ../../Zotlabs/Lib/ThreadItem.php:321
+#: ../../Zotlabs/Lib/ThreadItem.php:323
#, php-format
msgid "%d comment"
msgid_plural "%d comments"
@@ -12172,73 +12165,73 @@ msgstr[0] "%d ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ"
msgstr[1] "%d коммСнтария"
msgstr[2] "%d ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π²"
-#: ../../Zotlabs/Lib/ThreadItem.php:355 ../../Zotlabs/Lib/ThreadItem.php:356
+#: ../../Zotlabs/Lib/ThreadItem.php:357 ../../Zotlabs/Lib/ThreadItem.php:358
#, php-format
msgid "View %s's profile - %s"
msgstr "ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ %s профиля - %s"
-#: ../../Zotlabs/Lib/ThreadItem.php:359
+#: ../../Zotlabs/Lib/ThreadItem.php:361
msgid "to"
msgstr "ΠΊ"
-#: ../../Zotlabs/Lib/ThreadItem.php:360
+#: ../../Zotlabs/Lib/ThreadItem.php:362
msgid "via"
msgstr "Ρ‡Π΅Ρ€Π΅Π·"
-#: ../../Zotlabs/Lib/ThreadItem.php:361
+#: ../../Zotlabs/Lib/ThreadItem.php:363
msgid "Wall-to-Wall"
msgstr "Π‘Ρ‚Π΅Π½Π°-ΠΊ-Π‘Ρ‚Π΅Π½Π΅"
-#: ../../Zotlabs/Lib/ThreadItem.php:362
+#: ../../Zotlabs/Lib/ThreadItem.php:364
msgid "via Wall-To-Wall:"
msgstr "Ρ‡Π΅Ρ€Π΅Π· Π‘Ρ‚Π΅Π½Π°-ΠΊ-Π‘Ρ‚Π΅Π½Π΅:"
-#: ../../Zotlabs/Lib/ThreadItem.php:387
+#: ../../Zotlabs/Lib/ThreadItem.php:390
msgid "Attend"
msgstr "ΠŸΠΎΡΠ΅Ρ‚ΠΈΡ‚ΡŒ"
-#: ../../Zotlabs/Lib/ThreadItem.php:388
+#: ../../Zotlabs/Lib/ThreadItem.php:391
msgid "Attendance Options"
msgstr "ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ посСщаСмости"
-#: ../../Zotlabs/Lib/ThreadItem.php:389
+#: ../../Zotlabs/Lib/ThreadItem.php:392
msgid "Vote"
msgstr "Π“ΠΎΠ»ΠΎΡΠΎΠ²Π°Ρ‚ΡŒ"
-#: ../../Zotlabs/Lib/ThreadItem.php:390
+#: ../../Zotlabs/Lib/ThreadItem.php:393
msgid "Voting Options"
msgstr "ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ голосования"
-#: ../../Zotlabs/Lib/ThreadItem.php:411
+#: ../../Zotlabs/Lib/ThreadItem.php:414
#: ../../extend/addon/hzaddons/bookmarker/bookmarker.php:38
msgid "Save Bookmarks"
msgstr "Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ"
-#: ../../Zotlabs/Lib/ThreadItem.php:412
+#: ../../Zotlabs/Lib/ThreadItem.php:415
msgid "Add to Calendar"
msgstr "Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ€ΡŒ"
-#: ../../Zotlabs/Lib/ThreadItem.php:773
+#: ../../Zotlabs/Lib/ThreadItem.php:776
msgid "Image"
msgstr "Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅"
-#: ../../Zotlabs/Lib/ThreadItem.php:775
+#: ../../Zotlabs/Lib/ThreadItem.php:778
msgid "Insert Link"
msgstr "Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ссылку"
-#: ../../Zotlabs/Lib/ThreadItem.php:776
+#: ../../Zotlabs/Lib/ThreadItem.php:779
msgid "Video"
msgstr "Π’ΠΈΠ΄Π΅ΠΎ"
-#: ../../Zotlabs/Lib/ThreadItem.php:786
+#: ../../Zotlabs/Lib/ThreadItem.php:789
msgid "Your full name (required)"
msgstr "Π’Π°ΡˆΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ имя (трСбуСтся)"
-#: ../../Zotlabs/Lib/ThreadItem.php:787
+#: ../../Zotlabs/Lib/ThreadItem.php:790
msgid "Your email address (required)"
msgstr "Π’Π°Ρˆ адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ (трСбуСтся)"
-#: ../../Zotlabs/Lib/ThreadItem.php:788
+#: ../../Zotlabs/Lib/ThreadItem.php:791
msgid "Your website URL (optional)"
msgstr "URL вашСго вСбсайта (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ)"
@@ -12339,11 +12332,11 @@ msgstr "4. ЭкспСрт - я ΡƒΠΌΠ΅ΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ"
msgid "5. Wizard - I probably know more than you do"
msgstr "5. Π’ΠΎΠ»ΡˆΠ΅Π±Π½ΠΈΠΊ - Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ я знаю большС Ρ‡Π΅ΠΌ Ρ‚Ρ‹"
-#: ../../Zotlabs/Lib/NativeWiki.php:152
+#: ../../Zotlabs/Lib/NativeWiki.php:143
msgid "Wiki updated successfully"
msgstr "Wiki ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π°"
-#: ../../Zotlabs/Lib/NativeWiki.php:206
+#: ../../Zotlabs/Lib/NativeWiki.php:197
msgid "Wiki files deleted successfully"
msgstr "Wiki ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΡƒΠ΄Π°Π»Π΅Π½Π°"
@@ -12383,72 +12376,68 @@ msgstr "Π‘Π΅Ρ€Π²Π΅Ρ€Ρ‹ ΠΈ рСсурсы ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°"
msgid "Project Creator and Tech Lead"
msgstr "Π‘ΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ тСхничСский Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ"
-#: ../../extend/addon/hzaddons/donate/donate.php:23
-msgid "Admin, developer, directorymin, support bloke"
-msgstr "Администратор, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, администратор ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°"
-
-#: ../../extend/addon/hzaddons/donate/donate.php:50
+#: ../../extend/addon/hzaddons/donate/donate.php:49
msgid ""
"And the hundreds of other people and organisations who helped make the "
"Hubzilla possible."
msgstr "И сотни Π΄Ρ€ΡƒΠ³ΠΈΡ… людСй ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π»ΠΈ Π² создании Hubzilla."
-#: ../../extend/addon/hzaddons/donate/donate.php:53
+#: ../../extend/addon/hzaddons/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 "ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Redmatrix / Hubzilla ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ, Π² основном, Π΄ΠΎΠ±Ρ€ΠΎΠ²ΠΎΠ»ΡŒΡ†Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ своС врСмя ΠΈ ΠΎΠΏΡ‹Ρ‚ ΠΈ, часто, ΠΎΠΏΠ»Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΈΠ· своСго ΠΊΠ°Ρ€ΠΌΠ°Π½Π° услуги, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ½ΠΈ дСлятся с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ."
-#: ../../extend/addon/hzaddons/donate/donate.php:54
+#: ../../extend/addon/hzaddons/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 "Π—Π΄Π΅ΡΡŒ Π½Π΅Ρ‚ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ финансирования ΠΈ Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹, ΠΌΡ‹ Π½Π΅ собираСм ΠΈ Π½Π΅ ΠΏΡ€ΠΎΠ΄Π°Π΅ΠΌ Π²Π°ΡˆΡƒ Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. (ΠœΡ‹ Π½Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌ Π²Π°ΡˆΡƒ Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ - <strong>это Π΄Π΅Π»Π°Π΅Ρ‚Π΅ Π²Ρ‹</strong>.)"
-#: ../../extend/addon/hzaddons/donate/donate.php:55
+#: ../../extend/addon/hzaddons/donate/donate.php:54
msgid ""
"Help support our ground-breaking work in decentralisation, web identity, and "
"privacy."
msgstr "ΠŸΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½Π°ΡˆΡƒ Π½ΠΎΠ²Π°Ρ‚ΠΎΡ€ΡΠΊΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² областях Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π²Π΅Π±-ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ."
-#: ../../extend/addon/hzaddons/donate/donate.php:57
+#: ../../extend/addon/hzaddons/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 "Π’ Π²Π°ΡˆΠΈΡ… поТСртвованиях ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ сСрвСры ΠΈ слуТбы, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π½Π°ΠΌ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ возмоТности ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅."
-#: ../../extend/addon/hzaddons/donate/donate.php:60
+#: ../../extend/addon/hzaddons/donate/donate.php:59
msgid "Donate"
msgstr "ΠŸΠΎΠΆΠ΅Ρ€Ρ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ"
-#: ../../extend/addon/hzaddons/donate/donate.php:62
+#: ../../extend/addon/hzaddons/donate/donate.php:61
msgid ""
"Choose a project, developer, or public hub to support with a one-time "
"donation"
msgstr "Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΈΠ»ΠΈ общСдоступный ΡƒΠ·Π΅Π» для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ΅ Π΅Π΄ΠΈΠ½ΠΎΡ€Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ поТСртвования"
-#: ../../extend/addon/hzaddons/donate/donate.php:63
+#: ../../extend/addon/hzaddons/donate/donate.php:62
msgid "Donate Now"
msgstr "ΠŸΠΎΠΆΠ΅Ρ€Ρ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ сСйчас"
-#: ../../extend/addon/hzaddons/donate/donate.php:64
+#: ../../extend/addon/hzaddons/donate/donate.php:63
msgid ""
"<strong><em>Or</em></strong> become a project sponsor (Hubzilla Project only)"
msgstr "<strong><em>ΠΈΠ»ΠΈ</em></strong> ΡΡ‚Π°Π½ΡŒΡ‚Π΅ спонсором ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Hubzilla)"
-#: ../../extend/addon/hzaddons/donate/donate.php:65
+#: ../../extend/addon/hzaddons/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 "ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Ссли ΠΆΠ΅Π»Π°Π΅Ρ‚Π΅, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ вашС имя для отобраТСния Π² спискС спонсоров."
-#: ../../extend/addon/hzaddons/donate/donate.php:66
+#: ../../extend/addon/hzaddons/donate/donate.php:65
msgid "Sponsor"
msgstr "Бпонсор"
-#: ../../extend/addon/hzaddons/donate/donate.php:69
+#: ../../extend/addon/hzaddons/donate/donate.php:68
msgid "Special thanks to: "
msgstr "ΠžΡΠΎΠ±Ρ‹Π΅ благодарности:"
@@ -12535,11 +12524,11 @@ msgid "A simple gallery for your photo albums"
msgstr "ΠŸΡ€ΠΎΡΡ‚Π°Ρ галлСрСя для Π²Π°ΡˆΠΈΡ… Ρ„ΠΎΡ‚ΠΎΠ°Π»ΡŒΠ±ΠΎΠΌΠΎΠ²"
#: ../../extend/addon/hzaddons/gallery/Mod_Gallery.php:115
-#: ../../extend/addon/hzaddons/gallery/gallery.php:47
+#: ../../extend/addon/hzaddons/gallery/gallery.php:28
msgid "Gallery"
msgstr "ГалСрСя"
-#: ../../extend/addon/hzaddons/gallery/gallery.php:50
+#: ../../extend/addon/hzaddons/gallery/gallery.php:31
msgid "Photo Gallery"
msgstr "ЀотогалСрСя"
@@ -12881,7 +12870,7 @@ msgid ""
"return key"
msgstr "Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² Hubzilla! Π–Π΅Π»Π°Π΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Π·ΠΎΡ€ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса?</p> <p>Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²Π°ΠΈΡ‚ΡŒ ΠΈ Π² любоС врСмя ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ² страницу ΠΈΠ»ΠΈ пСрСйдя Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ.</p><p>Π’Π°ΠΊΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ \"Назад\""
-#: ../../extend/addon/hzaddons/superblock/superblock.php:318
+#: ../../extend/addon/hzaddons/superblock/superblock.php:337
msgid "Block Completely"
msgstr "Π—Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ"
@@ -13599,32 +13588,28 @@ msgid "Until modified date yyyy-mm-dd"
msgstr "Заканчивая Π΄Π°Ρ‚ΠΎΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ yyyy-mm-dd"
#: ../../extend/addon/hzaddons/ljpost/ljpost.php:42
-msgid "Post to LiveJournal"
-msgstr "ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π² LiveJournal"
-
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:70
-msgid "Enable LiveJournal Post Plugin"
-msgstr "Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ LiveJournal"
+msgid "Post to Livejournal"
+msgstr "ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π² Livejournal"
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:74
-msgid "LiveJournal username"
-msgstr "Имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ LiveJournal"
+#: ../../extend/addon/hzaddons/ljpost/ljpost.php:73
+msgid "Enable Livejournal Post Plugin"
+msgstr "Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π°ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ Π² Livejournal"
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:78
-msgid "LiveJournal password"
-msgstr "ΠŸΠ°Ρ€ΠΎΠ»ΡŒ LiveJournal"
+#: ../../extend/addon/hzaddons/ljpost/ljpost.php:77
+msgid "Livejournal username"
+msgstr "Имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Livejournal"
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:82
-msgid "Post to LiveJournal by default"
-msgstr "ΠŸΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π² LiveJournal ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ"
+#: ../../extend/addon/hzaddons/ljpost/ljpost.php:81
+msgid "Livejournal password"
+msgstr "ΠŸΠ°Ρ€ΠΎΠ»ΡŒ Livejournal"
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:86
-msgid "LiveJournal Post Settings"
-msgstr "Настройки ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ Π² LiveJournal"
+#: ../../extend/addon/hzaddons/ljpost/ljpost.php:85
+msgid "Post to Livejournal by default"
+msgstr "ΠŸΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π² Livejournal ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ"
-#: ../../extend/addon/hzaddons/ljpost/ljpost.php:101
-msgid "LiveJournal Settings saved."
-msgstr "Настройки LiveJournal сохранСны."
+#: ../../extend/addon/hzaddons/ljpost/ljpost.php:89
+msgid "Livejournal Post Settings"
+msgstr "Настройки ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² Livejournal"
#: ../../extend/addon/hzaddons/statusnet/statusnet.php:143
msgid "Post to GNU social"
@@ -13825,8 +13810,8 @@ msgstr "Настройки модСрирования сообщСства"
msgid "Can moderate reputation on my channel."
msgstr "ΠœΠΎΠΆΠ΅Ρ‚ ΠΌΠΎΠ΄Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ†ΠΈΡŽ Π½Π° ΠΌΠΎΡ‘ΠΌ ΠΊΠ°Π½Π°Π»Π΅"
-#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:544
-#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:547
+#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:542
+#: ../../extend/addon/hzaddons/channelreputation/channelreputation.php:545
msgid "Channel Reputation"
msgstr "РСпутация ΠΊΠ°Π½Π°Π»Π°"
@@ -14160,7 +14145,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:1462
+#: ../../extend/addon/hzaddons/cart/cart.php:1465
msgid "Order not found."
msgstr "Π—Π°ΠΊΠ°Π· Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½."
@@ -14173,7 +14158,7 @@ msgid "Access Denied."
msgstr "Доступ Π·Π°ΠΏΡ€Π΅Ρ‰Ρ‘Π½."
#: ../../extend/addon/hzaddons/cart/myshop.php:111
-#: ../../extend/addon/hzaddons/cart/cart.php:1330
+#: ../../extend/addon/hzaddons/cart/cart.php:1333
msgid "Order Not Found"
msgstr "Π—Π°ΠΊΠ°Π· Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½"
@@ -14217,32 +14202,32 @@ msgstr "Π‘Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ дСинсΡ
msgid "Shop"
msgstr "Магазин"
-#: ../../extend/addon/hzaddons/cart/cart.php:1391
+#: ../../extend/addon/hzaddons/cart/cart.php:1394
msgid "Cart utilities for orders and payments"
msgstr "Π£Ρ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡Π΅ΠΊ для Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΈ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ"
-#: ../../extend/addon/hzaddons/cart/cart.php:1429
+#: ../../extend/addon/hzaddons/cart/cart.php:1432
msgid "You must be logged into the Grid to shop."
msgstr "Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² сСти для доступа ΠΊ ΠΌΠ°Π³Π°Π·ΠΈΠ½Ρƒ"
-#: ../../extend/addon/hzaddons/cart/cart.php:1470
+#: ../../extend/addon/hzaddons/cart/cart.php:1473
msgid "Access denied."
msgstr "Доступ Π·Π°ΠΏΡ€Π΅Ρ‰Ρ‘Π½."
-#: ../../extend/addon/hzaddons/cart/cart.php:1522
-#: ../../extend/addon/hzaddons/cart/cart.php:1665
+#: ../../extend/addon/hzaddons/cart/cart.php:1525
+#: ../../extend/addon/hzaddons/cart/cart.php:1668
msgid "No Order Found"
msgstr "НСт Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… Π·Π°ΠΊΠ°Π·ΠΎΠ²"
-#: ../../extend/addon/hzaddons/cart/cart.php:1531
+#: ../../extend/addon/hzaddons/cart/cart.php:1534
msgid "An unknown error has occurred Please start again."
msgstr "ΠŸΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° нСизвСстная ошибка. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ снова."
-#: ../../extend/addon/hzaddons/cart/cart.php:1698
+#: ../../extend/addon/hzaddons/cart/cart.php:1701
msgid "Invalid Payment Type. Please start again."
msgstr "ΠΠ΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ°. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ снова."
-#: ../../extend/addon/hzaddons/cart/cart.php:1705
+#: ../../extend/addon/hzaddons/cart/cart.php:1708
msgid "Order not found"
msgstr "Π—Π°ΠΊΠ°Π· Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½"
@@ -14415,7 +14400,7 @@ msgstr "Ошибка создания Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹."
msgid "You must select a local channel /chess/channelname"
msgstr "Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Π½Π°Π» /chess/channelname"
-#: ../../extend/addon/hzaddons/chess/chess.php:1066
+#: ../../extend/addon/hzaddons/chess/chess.php:1071
msgid "Enable notifications"
msgstr "Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ оповСщСния"
diff --git a/view/ru/hstrings.php b/view/ru/hstrings.php
index 598d02718..02c88dde3 100644
--- a/view/ru/hstrings.php
+++ b/view/ru/hstrings.php
@@ -470,7 +470,6 @@ App::$strings["Help:"] = "ΠŸΠΎΠΌΠΎΡ‰ΡŒ:";
App::$strings["Help"] = "ΠŸΠΎΠΌΠΎΡ‰ΡŒ";
App::$strings["Not Found"] = "НС найдСно";
App::$strings["Page not found."] = "Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°.";
-App::$strings["Cannot locate DNS info for database server '%s'"] = "НС удаСтся Π½Π°ΠΉΡ‚ΠΈ DNS ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ для сСрвСра Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… '%s'";
App::$strings["Image/photo"] = "Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ / фотография";
App::$strings["Encrypted content"] = "Π—Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ содСрТаниС";
App::$strings["Install %1\$s element %2\$s"] = "Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ %1\$s элСмСнт %2\$s";
@@ -1152,8 +1151,6 @@ App::$strings["Blocked accounts"] = "Π—Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π°ΠΊΠΊΠ°ΡƒΠ½
App::$strings["Expired accounts"] = "ΠŸΡ€ΠΎΡΡ€ΠΎΡ‡Π΅Π½Π½Ρ‹Π΅ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Ρ‹";
App::$strings["Expiring accounts"] = "Π‘Π»ΠΈΠ·ΠΊΠΈΠ΅ ΠΊ просрочкС Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Ρ‹";
App::$strings["Channels"] = "ΠšΠ°Π½Π°Π»Ρ‹";
-App::$strings["Primary"] = "Основной";
-App::$strings["Clones"] = "ΠšΠ»ΠΎΠ½Ρ‹";
App::$strings["Message queues"] = "ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ сообщСний";
App::$strings["Your software should be updated"] = "Π’Π°ΡˆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ";
App::$strings["Administration"] = "АдминистрированиС";
@@ -1439,6 +1436,7 @@ App::$strings["Please select another location to become primary before removing
App::$strings["Syncing locations"] = "Π‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ мСстополоТСниС";
App::$strings["No locations found."] = "ΠœΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ";
App::$strings["Manage Channel Locations"] = "Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ мСстополоТСниСм ΠΊΠ°Π½Π°Π»Π°";
+App::$strings["Primary"] = "Основной";
App::$strings["Drop"] = "Π£Π΄Π°Π»ΠΈΡ‚ΡŒ";
App::$strings["Sync Now"] = "Π‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ";
App::$strings["Please wait several minutes between consecutive operations."] = "ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΏΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅ нСсколько ΠΌΠΈΠ½ΡƒΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ опСрациями.";
@@ -1828,17 +1826,17 @@ App::$strings["Note: as a security measure, you should give the web server write
App::$strings["%s is writable"] = "%s доступСн для записи";
App::$strings["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"] = "Π­Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ хранСния для Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². Для Π²Π΅Π±-сСрвСра трСбуСтся доступ Π½Π° запись начиная с Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° хранСния.";
App::$strings["store is writable"] = "Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ доступно для записи";
-App::$strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "";
-App::$strings["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!"] = "";
+App::$strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "SSL certificate cannot be validated. Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ https доступ ΠΊ этому сайту.";
+App::$strings["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!"] = "Если Ρƒ вас Π΅ΡΡ‚ΡŒ https-доступ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ сайту ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ TCP-ΠΏΠΎΡ€Ρ‚Ρƒ 443 (ΠΏΠΎΡ€Ρ‚ https), Π²Ρ‹ Π”ΠžΠ›Π–ΠΠ« ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сСртификат, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ для Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Π’Ρ‹ НЕ Π”ΠžΠ›Π–ΠΠ« ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ самоподписанныС сСртификаты!";
App::$strings["This restriction is incorporated because public posts from you may for example contain references to images on your own hub."] = "Π­Ρ‚ΠΈ ограничСния приняты ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ваши общСдоступныС ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ссылки Π½Π° изобраТСния Π½Π° вашСм собствСнном Ρ…Π°Π±Π΅.";
-App::$strings["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."] = "";
-App::$strings["This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement."] = "";
-App::$strings["Providers are available that issue free certificates which are browser-valid."] = "";
-App::$strings["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. These are not normally required by browsers, but are required for server-to-server communications."] = "";
-App::$strings["SSL certificate validation"] = "";
-App::$strings["Url rewrite in .htaccess is not working. Check your server configuration.Test: "] = "";
+App::$strings["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."] = "Если ваш сСртификат Π½Π΅ ΠΏΡ€ΠΈΠ·Π½Π°Π½, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… сайтов (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ сами ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ сСртификаты) ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π΅Π΅ сообщСниС ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ… с Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ.";
+App::$strings["This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement."] = "Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ удобства использования ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… мСст (Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° вашСм собствСнном сайтС), поэтому ΠΌΡ‹ настаиваСм Π½Π° этом Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΈ.";
+App::$strings["Providers are available that issue free certificates which are browser-valid."] = "Доступны поставщики, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π΄Π°ΡŽΡ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ для Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° бСсплатныС сСртификаты.";
+App::$strings["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. These are not normally required by browsers, but are required for server-to-server communications."] = "Если Π²Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ сСртификат дСйствитСлСн ΠΈ подписан Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ ΠΎΡ€Π³Π°Π½ΠΎΠΌ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, установлСн Π»ΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ сСртификаты. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ, Π½ΠΎ Π±Ρ‹Π²Π°ΡŽΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для связи ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвСрами.";
+App::$strings["SSL certificate validation"] = "ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° SSL сСртификата";
+App::$strings["Url rewrite in .htaccess is not working. Check your server configuration.Test: "] = "ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ URL Π² .htaccess Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ настройки вашСго сСрвСра.";
App::$strings["Url rewrite is working"] = "ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ URL Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚";
-App::$strings["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."] = "";
+App::$strings["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."] = "Π€Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… \".htconfig.php\" Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ записан. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ»Π°Π³Π°Π΅ΠΌΡ‹ΠΉ тСкст для создания Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Π²Π΅Π±-сСрвСра.";
App::$strings["Errors encountered creating database tables."] = "ΠŸΡ€ΠΈ создании Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ошибки.";
App::$strings["<h1>What next?</h1>"] = "<h1>Π§Ρ‚ΠΎ дальшС? </h1>";
App::$strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "Π’Π°ΠΌ понадобится [Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ] Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ для ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚Π΅Π»Ρ.";
@@ -2588,14 +2586,14 @@ App::$strings["Addon Features"] = "Настройки Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ";
App::$strings["App Collections"] = "ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ";
App::$strings["Installed apps"] = "УстановлСнныС прилоТСния";
App::$strings["Remove term"] = "Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½";
-App::$strings["Personal Posts"] = "Π›ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ";
-App::$strings["Show posts that mention or involve me"] = "ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π³Π΄Π΅ Π²Ρ‹ Π±Ρ‹Π»ΠΈ упомянуты ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡Π΅Π½Ρ‹";
-App::$strings["Starred Posts"] = "ΠžΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ";
-App::$strings["Show posts that I have starred"] = "ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠ»";
App::$strings["Show posts related to the %s privacy group"] = "ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ относящиСся ΠΊ Π³Ρ€ΡƒΠΏΠΏΠ΅ бСзопасности %s";
App::$strings["Show my privacy groups"] = "ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠΎΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ бСзопасности";
App::$strings["Show posts to this forum"] = "ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ этого Ρ„ΠΎΡ€ΡƒΠΌΠ°";
App::$strings["Show forums"] = "ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΡƒΠΌΡ‹";
+App::$strings["Starred Posts"] = "ΠžΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ";
+App::$strings["Show posts that I have starred"] = "ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠ»";
+App::$strings["Personal Posts"] = "Π›ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ";
+App::$strings["Show posts that mention or involve me"] = "ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π³Π΄Π΅ Π²Ρ‹ Π±Ρ‹Π»ΠΈ упомянуты ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡Π΅Π½Ρ‹";
App::$strings["Show posts that I have filed to %s"] = "ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π² %s";
App::$strings["Show filed post categories"] = "ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ";
App::$strings["Panel search"] = "ПанСль поиска";
@@ -2824,7 +2822,6 @@ App::$strings["Post to Dreamwidth by default"] = "ΠŸΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π² Drea
App::$strings["Dreamwidth Post Settings"] = "Настройки ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ Π² Dreamwidth";
App::$strings["Project Servers and Resources"] = "Π‘Π΅Ρ€Π²Π΅Ρ€Ρ‹ ΠΈ рСсурсы ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°";
App::$strings["Project Creator and Tech Lead"] = "Π‘ΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ тСхничСский Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ";
-App::$strings["Admin, developer, directorymin, support bloke"] = "Администратор, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, администратор ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°";
App::$strings["And the hundreds of other people and organisations who helped make the Hubzilla possible."] = "И сотни Π΄Ρ€ΡƒΠ³ΠΈΡ… людСй ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π»ΠΈ Π² создании Hubzilla.";
App::$strings["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."] = "ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Redmatrix / Hubzilla ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ, Π² основном, Π΄ΠΎΠ±Ρ€ΠΎΠ²ΠΎΠ»ΡŒΡ†Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ своС врСмя ΠΈ ΠΎΠΏΡ‹Ρ‚ ΠΈ, часто, ΠΎΠΏΠ»Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΈΠ· своСго ΠΊΠ°Ρ€ΠΌΠ°Π½Π° услуги, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ½ΠΈ дСлятся с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ.";
App::$strings["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>.)"] = "Π—Π΄Π΅ΡΡŒ Π½Π΅Ρ‚ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ финансирования ΠΈ Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹, ΠΌΡ‹ Π½Π΅ собираСм ΠΈ Π½Π΅ ΠΏΡ€ΠΎΠ΄Π°Π΅ΠΌ Π²Π°ΡˆΡƒ Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. (ΠœΡ‹ Π½Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌ Π²Π°ΡˆΡƒ Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ - <strong>это Π΄Π΅Π»Π°Π΅Ρ‚Π΅ Π²Ρ‹</strong>.)";
@@ -3102,13 +3099,12 @@ App::$strings["This will import all your cloud files from another server."] = "Π
App::$strings["Hubzilla Server base URL"] = "Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ URL сСрвСра Hubzilla";
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 username"] = "Имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ LiveJournal";
-App::$strings["LiveJournal password"] = "ΠŸΠ°Ρ€ΠΎΠ»ΡŒ LiveJournal";
-App::$strings["Post to LiveJournal by default"] = "ΠŸΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π² LiveJournal ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ";
-App::$strings["LiveJournal Post Settings"] = "Настройки ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ Π² LiveJournal";
-App::$strings["LiveJournal Settings saved."] = "Настройки LiveJournal сохранСны.";
+App::$strings["Post to Livejournal"] = "ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π² Livejournal";
+App::$strings["Enable Livejournal Post Plugin"] = "Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π°ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ Π² 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["Post to GNU social"] = "ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π² GNU Social";
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 ΠΏΠΎ Π²Π²Π΅Π΄Ρ‘Π½Π½ΠΎΠΌΡƒ Π²Π°ΠΌΠΈ ΠΏΡƒΡ‚ΠΈ";
diff --git a/view/theme/redbasic/js/redbasic.js b/view/theme/redbasic/js/redbasic.js
index 688e92148..8d3b795cc 100644
--- a/view/theme/redbasic/js/redbasic.js
+++ b/view/theme/redbasic/js/redbasic.js
@@ -121,9 +121,9 @@ function toggleAside() {
$('main').addClass('region_1-on')
$('<div id="overlay"></div>').appendTo('section');
$('#left_aside_wrapper').stick_in_parent({
- offset_top: $('nav').outerHeight(true) + 10,
- parent: '#region_1',
- spacer: '#left_aside_spacer'
+ offset_top: parseInt($('aside').css('padding-top')),
+ parent: 'main',
+ spacer: '.aside_spacer'
});
}
}
diff --git a/view/tpl/notifications_widget.tpl b/view/tpl/notifications_widget.tpl
index e38356597..98047f1d9 100644
--- a/view/tpl/notifications_widget.tpl
+++ b/view/tpl/notifications_widget.tpl
@@ -135,14 +135,14 @@
{{$no_notifications}}<span class="jumping-dots"><span class="dot-1">.</span><span class="dot-2">.</span><span class="dot-3">.</span></span>
</div>
<div id="nav-notifications-template" rel="template">
- <a class="list-group-item clearfix notification {6}" href="{0}" title="{2}" data-b64mid="{7}" data-notify_id="{8}" data-thread_top="{9}" data-contact_name="{2}" data-contact_addr="{3}">
+ <a class="list-group-item clearfix notification {6}" href="{0}" title="{3}" data-b64mid="{7}" data-notify_id="{8}" data-thread_top="{9}" data-contact_name="{2}" data-contact_addr="{3}">
<img class="menu-img-3" data-src="{1}">
<span class="contactname">{2}</span>
<span class="dropdown-sub-text">{4}<br>{5}</span>
</a>
</div>
<div id="nav-notifications-forums-template" rel="template">
- <a class="list-group-item clearfix notification notification-forum" href="{0}" title="{4}" data-b64mid="{7}" data-notify_id="{8}" data-thread_top="{9}" data-contact_name="{2}" data-contact_addr="{3}">
+ <a class="list-group-item clearfix notification notification-forum" href="{0}" title="{4} - {3}" data-b64mid="{7}" data-notify_id="{8}" data-thread_top="{9}" data-contact_name="{2}" data-contact_addr="{3}">
<span class="float-right badge badge-{{$notification.severity}}">{10}</span>
<img class="menu-img-1" data-src="{1}">
<span class="">{2}</span>